| 1:M语言和C语言哪个方便这个问题,当然M文件方便些,不用转化,当然你想用什么语言写都行,看你哪个方面强些:)总之,条条大路通罗马. 2:一般情况下都用自带的模板,因为S函数有它特定的形式但也可以写成下面的样子
 function [sys,x0]=bbmodel(t,x,u,flag)
 
 if abs(flag) == 1
 sys(1)=x(2);
 sys(2)=0.7143*(x(1)*x(2)^2-9.81*sin(x(3)));
 sys(3)=x(4);
 sys(4)=u;
 %with disturbence
 %   sys(4)=u+sin(20*t);
 
 elseif flag == 3
 sys=x;
 
 elseif flag == 0
 x0=[2.4;-0.1;0.6;0.1];
 %x0=[1.6;0.05;-0.6;-0.05];
 %x0=[-1.6;-0.05;0.6;0.05];
 %x0=[-2.4;0.1;-0.6;-0.1];
 %x0=[0.1;0;-1.5;0];
 sizes(1)=4;     %number of continuous states
 sizes(2)=0;     %number of discrete states
 sizes(3)=4;     %number of outputs
 sizes(4)=1;     %number of inputs
 sizes(5)=0;     %number of discontinuous roots
 sizes(6)=0;     %flag of direct feedthough...
 %(used for finding algebraic loops)
 sys=sizes;
 
 else
 sys = [ ];
 end
 也就是说function [sys,x0]=bbmodel(t,x,u,flag)必须要有,然后根据FLAG来写。
 如果你是纯的M文件,那么可以采用MATLAB FCN
 3:看下http://forum.vibunion.com/forum/ ... ght=mex%CE%C4%BC%FE
 你看下simulink的help里面的S函数的介绍,里面有如何用C来写S函数等等你所问的问题。
 |