求助非线性函数编写仿真
我刚学MATLAB,有个问题:想用M 函数编写一个非线性函数(分段函数),然后在SIMULINK中调用组成模块,在SIMULINK中给信号y,u,和其他参数设定,想问下怎样才能使两者联系起来,直接用模块MATLAB Fcn吗?我编写了一段但是运行错误,说是y没定义,请高手指教啊
function f=fal(y,u,a,d)
e=y-u
if abs(e)<=d
f=e*d^(a-1);
else
f=(abs(e))^a*sign(e);
end
回复 楼主 vsunl 的帖子
有没有输入信号y?回复 沙发 ch_j1985 的帖子
y和u,还有其他的参数都从simulink中输入,我只想利用M函数来实现这个算法,然后可以通过命令启动仿真,输出数据和画图,就是这个想法,请继续指教,谢谢! Simulink中函数的输入没搭对! 我编写了一段但是运行错误,说是y没定义,请高手指教啊?
是不是直接运行了你这个函数文件? 那样的话肯定没有定义y
回复 5楼 yufeng 的帖子
是的,我写完函数先run ,就发现错误提示没有定义y,这样不对吗?那正确的做法应该怎样,谢谢 应采用这种方式:function f=fal(U)
y=U(1);
u=U(2);
a=U(3);
d=U(4);
e=y-u;
if abs(e)<=d
f=e*d^(a-1);
else
f=(abs(e))^a*sign(e);
end
回复 7楼 xianfa110 的帖子
谢谢!在高手的帮助下终于解决了,:handshake 本帖最后由 wusonghua618 于 2010-11-14 22:46 编辑
我觉得MATLAB fcn 函数不能实现fal函数的功能。我现在在做扩张状态观测器,想请教你一下怎么解决的,我q232082290 ,谢谢。
页:
[1]