求MATLAB高手解答,下面是我在M文件里面写的一个函数,想放到S函数中怎么改写

问题描述:

求MATLAB高手解答,下面是我在M文件里面写的一个函数,想放到S函数中怎么改写
function [s_2,s_1,s1,ds1,ds2,ub,uc]=chaoliu1(u,u1,p1,p2,q1,q2,r1,r2,x1,x2,b1,b2)
ub=u;uc=u;ua=u1;
for i=1:3;
dQb1=f(b1,ub);
dQb2=f(b2,uc);
Sb=f1(p1,q1,dQb1,dQb2);
Sc=f1(p2,q2,dQb2,0);
ds2=f2(p2,q2,uc,r2,x2);
ds1=f2(p1,q1,ub,r1,x1);
s_2=Sc;
s2=s_2+ds2;
s_1=s2+Sb;
s1=s_1+ds1;
duab=f3(s1,r1,x1,ua);
d_uab=f4(s1,x1,r1,ua);
ub=f5(ua,duab,d_uab);
dubc=f3(s2,r2,x2,ub);
d_ubc=f4(s2,x2,r2,ub);
uc=f5(ub,dubc,d_ubc);
end
end
function A=f(b,u)
A=-(b*u^2)/2;
end
function B=f1(p,q,dq1,dq2)
B=p+q*1i+dq1*1i+dq2*1i;
end
function C=f2(p,q,u,r,x)
C=(p^2+q^2)*(r+x*1i)/u^2;
end
function D=f3(s,r,x,u)
D=(real(s)*r+imag(s)*x)/u;
end
function E=f4(s,x,r,u)
E=(real(x)*x-imag(s)*r)/u;
end
function F=f5(u,du,d_u)
F=sqrt((u-du)^2+d_u^2);
end
就是把这个放在S函数自定义模块中,然后一面连12个输入量,另外一面可以显示输出量
1个回答 分类:综合 2014-11-28

问题解答:

我来补答
simulink--user-defined function下拖一个S-Function到你的模型,就可以用了 在simulink----user-defined function还有个s-Function Builder,他可以生成用c语 言写的s函数 在matlab的workspace下打sfundemos.
里面有个mlfile,然后选择好你的m文件路径.
不知道这样是不是你要求的.
 
 
展开全文阅读
剩余:2000
上一页:画钩的
下一页:速率