【发布时间】:2016-04-29 08:04:44
【问题描述】:
我正在尝试使用 MATLAB R2015a 最小化具有两个变量的目标函数。目标函数为:
function i3 = fob_2(kp,ti)
G_P = tf(0.2,[2 4 1]);
G_TT = tf(0.1,[0.5 1]);
G_TC = tf(kp*[1 1/ti],[1 0]);
G_CV = 50;
G_TA = 0.1;
G_direct = G_TC * G_CV * G_P;
G_loop = feedback (G_direct , G_TT);
G_SYS = G_TA * G_loop;
SP = 1;
[DT,time] = step(SP * G_SYS);
error = SP - DT;
i3 = trapz(time,error.^2);
我尝试了一些优化功能,但似乎都不起作用。我总是在函数的第五行收到错误消息:“没有足够的输入参数。”,即
G_TC = tf(kp*[1 1/ti],[1 0]);
我尝试了以下函数,由使用的语法呈现(此时我不太关心起点。我更关心得到答案并正确编程优化函数):
y=fminimax(fob_2,[1,1])
y=fminsearch(fob_2,[1,1])
y=fminunc(fob_2,[1,1])
我确信该函数已正确编程,因为当我尝试使用两个参数调用它时,类似于:
fob_2(2,5)
MATLAB 返回计算值。
所以,问题出在我这边,但我看不出我在哪里弄错了。你能帮帮我吗?
提前谢谢你。
【问题讨论】:
标签: matlab optimization