Retroalimentación de estado de MATLAB con perturbación

0

Estoy trabajando en un proyecto en Matlab. Quiero convertir esta forma de espacio de estado estándar que es Ax + Bu para usar la función lqr y luego usar R, Q para obtener los términos K, S, e. ¿Hay alguna forma de obtener K, S, e en este caso o cómo puedo convertir a la forma estándar? Las matrices A, B1 y B2 son las siguientes.

M1f= 1; %kg

M1r= 1; %kg

M2=2.9; %kg

J=2.18; %kgm²

l=3; %m

lf=1.5; %m

K1f=2717; %N/m

K1r=2717; %N/m

C1f=5; %N/m

C1r=5; %N/m

K2f=970; %N/m

K2r=970; %N/m

C2f=7.5; %Ns/m

C2r=7.5; %Ns/m

m61= -K2f/M1f;

m62= 0;

m63= K1f/M1f;

m64= 0;

m65= (-K2f*lf)/M1f;

m66= (-C1f-C2f)/M1f;

m67= 0;

m68= C2f/M1f;

m69= (-C2f*lf)/M1f;

m71= 0;

m72= -K2r/M1r;

m73= 0;

m74= K1r/M1r;

m75= K2r*(l-lf)/M1r;

m76= 0;

m77= (-C1r-C2r)/M1r;

m78= C2r/M1r;

m79= (C2r*(l-lf))/M1r;

m81= K2f/M2;

m82= K2r/M2;

m83= 0;

m84= 0;

m85= ((K2f*lf)-K2r*(l-lf))/M2;

m86= C2f/M2;

m87= C2r/M2;

m88= (-C2f-C2r)/M2;

m89= ((C2f*lf)-C2r*(l-lf))/M2;

m91= (-K2f*lf)/J;

m92= (K2r*(l-lf))/J;

m93= 0;

m94= 0;
m95= (-K2f*(lf^2)-K2r*((l-lf)^2))/J;

m96= (-C2f*lf)/J;

m97= (C2r*(l-lf))/J;

m98= ((C2f*lf)-(C2r*(l-lf)))/J;

m99= ((-C2f*(lf^2))-(C2r*((l-lf)^2)))/J;

A=[0 0 0 0 0 1 0 -1 0;0 0 0 0 0 0 1 -1 0;0 0 0 0 0 -1 0 0 0;0 0 0 0 0 0 -1 0 0;...
  0 0 0 0 0 0 0 0 1;m61 m62 m63 m64 m65 m66 m67 m68 m69;...
  m71 m72 m73 m74 m75 m76 m77 m78 m79;m81 m82 m83 m84 m85 m86 m87 m88 m89;...
  m91 m92 m93 m94 m95 m96 m97 m98 m99];

B=[0 0 0 0;0 0 0 0;1 0 0 0;0 1 0 0;0 0 0 0;C1f/M1f 0 -1/M1f 0;0 C1r/M1r 0 -1/M1r;...
  0 0 1/M2 1/M2;0 0 -lf/J (l-lf)/J];

B1=B(:,1:2);

B2=B(:,3:4);

C=[0 0 0 0 0 0 0 1 0;0 0 0 0 0 0 0 0 1];

D=[0 0];
    
pregunta Cagdas

0 respuestas

Lea otras preguntas en las etiquetas