Я пытаюсь свести к минимуму объективную функцию с двумя переменными, используя MATLAB R2015a. Целевая функция: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 возвращает вычисленное значение.
Итак, проблема в моем конце, но я не вижу, где я ошибаюсь. Вы можете мне помочь?
Заранее спасибо.