Bonjour à tous
je travaille sur un projet de commande en temps réel d'un procédé, il utilise la fonction prédéfinie de Matlab fmincon ,
j'ai trouvé un problème d'utilisation de cette fonction, en faite j'utilise cette
fonction pour minimiser un critère pour enfin appliquer la valeur au système réel
j'ai écris ce code:
U1=myfun(A,lamda,Nu,Ypast,Yr,AC,BC);
où myfun est une fonction que j'ai la crée pour faire la minimisation
code de myfun:
1 2 3 4 5 6 7
| function f=myfun(A,lamda,Nu,Ypast,Yr,AC,BC)
f=fmincon(@equation,0.1*ones(Nu,1),AC,BC)
function y=equation(x)
trans=x'*(A'*A+lamda*eye(Nu))*x+(Yr-Ypast)'*A*x+x'*A'*(Yr-Ypast)+(Yr-Ypast)'*(Yr-Ypast);
y=trans(1);
end
end |
la solution de minimisation n'est pas logique car le système diverge.
ce comme si la minimisation ne tient pas compte de critère car elle donne toujours la borne inf comme solution.
Merci je vous attend par impatience, je vraiment besoin de ça.


Partager