当前位置:编程学习 > Matlab >>

求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个输入量,另外一面可以显示输出量 很急,跪求啊~
答案:simulink--user-defined function下拖一个S-Function到你的模型,就可以用了 在simulink----user-defined function还有个s-Function Builder,他可以生成用c语 言写的s函数 在matlab的workspace下打sfundemos。

里面有个mlfile,然后选择好你的m文件路径。

不知道这样是不是你要求的。

上一个:matlab中clock函数怎么用
下一个:matlab中如何直接计算求和,可以不采用for循环直接调用什么函数吗?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,