Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

nonlinear H-infinity control

3 Ansichten (letzte 30 Tage)
jj kena
jj kena am 14 Nov. 2014
Geschlossen: Sabin am 15 Mai 2025
%the closed-loop system response W=[-0.0367; -0.0327; -0.0333; -0.0762; 0.0883; -0.0093; 503.0411; -9.4101; -45.3581; 0.0006];
x0=[-300 300 5000]'; X(:,1)=x0; h=x2^2/x3; T(1)=0; tf=1; delta_t=0.01; N_t=round(tf/delta_t)+1; r(1)=0; u(1)=0; sum_z=delta_t*((h'*h)+u(1)'*u(1)); w=[70*sin(0); 70*sin(pi/4); 70*cos(0)]; sum_w=delta_t*(w'*w); i=0; for i=2:N_t; x1=X(1,i-1);x2=X(2,i-1); x3=X(3,i-1); f=[x2^2/x3;-x1*x2/x3;x1]; g1=[0;1;0]; g2=[0;-1;0]; DBF= [ 2*x1 0 0 x2 x1 0 x3 0 x1 0 2*x2 0 0 x3 x2 0 0 2*x3 1/x3 0 -x1/x3^2 x2/x3 x1/x3 -x1*x2/x3^2 0 2*x2/x3 -x2^2/x3^2 0 4*x2^3/x3^2 -2*x2^4/x3^3]; uu=-0.5*g2'*DBF'*W; t=delta_t * (i-1); w=[70*sin(0.5*t); 70*sin(0.5*t+pi/4); 70*cos(0.5*t)];
X(:,i)=X(:,i-1)+delta_t*(f+g2*uu+g1'*w);
T(i)=t;
u(i)=uu;
sum_z=sum_z+delta_t*(h'*h+u(i)'*u(i));
sum_w=sum_w+delta_t*(w'*w);
r(i)=sum_z/sum_w;
end
% system states
figure(6)
plot(T,X(1,:),'-',T,X(2,:),'-.',T,X(3,:),'-*');
legend('x_1','x_2','x_3');
%control of the system
figure (7)
plot(T,u,'-');
legend('u');
% gamma with t
figure(8)
plot(T,r,'-');
legend('r_1');
i have the above code for my nonlinear system, when i run it i get wrong results,will appreciate any help

Antworten (0)

Diese Frage ist geschlossen.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by