主题:请教高人一个有关s-function的问题!!谢谢
在simulink里,我想[color=0000FF]用s-function实现在线求函数最小值的问题。输入u由simulink模块给。[/color]
求y=(x-u)^2的在每个采样时间的最小值。输出为此最小值所对应的x值。
求最小值用的是: x = fminbnd(myfun,x1,x2)命令。
(myfun为自己另外建立的目标函数。x1,x2为求最小值的条件范围)
可是运行这个模块,他总说:Undefined function or variable 'u'.
就是输入量u在myfun函数里不认。
程序大致如下:
%%%%%%%%%%%%%%%%%%%%%%%
function [sys,x0,str,ts] = wudi(t,x,u,flag)
switch flag,
case 0
...
[color=FF0000]function sys = mdlOutputs(t,x,u)
sys=fminbnd(@myfun,-10,10);[/color]...
%%%%%%%%%%%%%%%%%%%%%%%%
然后自己定义一个myfun:
[color=0000FF]function f = myfun(x)
f=(x+u).^2;[/color]%%%%%%%%%%%%%%%%%%%%%%%
myfun函数里就是不认这个输入u(去掉u可以)。如何定义u,才能让u能够在这个调用的函数里也能用阿??
谢谢各位高人指点!
求y=(x-u)^2的在每个采样时间的最小值。输出为此最小值所对应的x值。
求最小值用的是: x = fminbnd(myfun,x1,x2)命令。
(myfun为自己另外建立的目标函数。x1,x2为求最小值的条件范围)
可是运行这个模块,他总说:Undefined function or variable 'u'.
就是输入量u在myfun函数里不认。
程序大致如下:
%%%%%%%%%%%%%%%%%%%%%%%
function [sys,x0,str,ts] = wudi(t,x,u,flag)
switch flag,
case 0
...
[color=FF0000]function sys = mdlOutputs(t,x,u)
sys=fminbnd(@myfun,-10,10);[/color]...
%%%%%%%%%%%%%%%%%%%%%%%%
然后自己定义一个myfun:
[color=0000FF]function f = myfun(x)
f=(x+u).^2;[/color]%%%%%%%%%%%%%%%%%%%%%%%
myfun函数里就是不认这个输入u(去掉u可以)。如何定义u,才能让u能够在这个调用的函数里也能用阿??
谢谢各位高人指点!