использование fmincon в matlab simulink - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь минимизировать простую функцию стоимости в Matlab. Блок оптимизации имеет входные данные из других блоков в моделировании. Я пытался использовать coder.extrinsi c (), как показано ниже, но результат не правильный. Буду признателен за вашу помощь и комментарии.

function [y, x] = test(u)

  coder.extrinsic('opt_problem') ;
  y = 0 ;
  x = 0 ;
  [y, x] = opt_problem(u) ;
end

function [y, x] = opt_problem(u)

  cost = @(z)(target(z, u)) ;
  z = fmincon(cost,[0 0],[],[],[],[],[0;0],[1;1] ) ;
  x = z(1) ;
  y = z(2) ;

function r = target(z, u)
  r = norm(u + u.*z(2) + z(1).^2) ;  
end
end

Диаграмма simulink включена в рисунок. введите описание изображения здесь

...