|
楼主 |
发表于 2007-5-25 23:35
|
显示全部楼层
谢谢提醒了,你编的没问题,我是在embedfded matlab fuction ,里面不支持&与方式
最后一个用else(代替else if)好象就没什么问题了,你说的方法很好,再次谢过了,说来惭愧啊
自己基础太差了 啥也不懂啊:@L :@L
现在主要的问题还是那三个s函数,搞定一个就行了,我现在用s函数实现的是ke(k)=ke(k-1)+We*m*ke0;
现在在s函数里面update这个地方写sys=x+u(2)*u(1)*0.006;全部的如下
function [sys,x0,str,ts]=mineke(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case 9,
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function[sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 =[];
str = [];
ts = [-1 0];
function sys=mdlUpdate(t,x,u)
sys=x+u(2)*u(1)*0.006;
function sys=mdlOutputs(t,x,u)
sys=x;
我试过很多次,应该还是没有实现这个功能,还请指正 |
|