Estoy tratando de diseñar un observador de Luenberger (o un observador de retroalimentación de estado completo) de manera que con un sensor disponible I Puede estimar todos los estados. Se muestra un buen tutorial aquí .
Mi sistema es de 4to orden:
num = [-0.00198 2];
den = [1 0.1201 12.22 0.4201 2];
sys = tf(num,den);
[A, B, C, D] = tf2ss(num,den);
Primero tengo un vector de fila de polos para obtener mi respuesta deseada:
poles = [-2.6 + 1i*2.39, -2.6 - 1i*2.39, -100, -120];
K = acker(A,B,poles)
rank(obsv(A,C)); % =4
Mo = rank([C;C*A;C*A^2;C*A^3]) % =4
Luego procedo a calcular los polos de la planta y, por lo tanto, los polos que quiero para mi observador deberían ser aproximadamente 3 veces más rápidos.
plant = (A-B*K);
poles_cl = eig(plant)
poles = 3*poles_cl % THIS IS WRONG
des_poles = (min(real(poles_cl))*3)-(1:4); %This is better
des_poles =
-361.0000 -362.0000 -363.0000 -364.0000
Luego procedo a usar la fórmula de Ackermann para la colocación de postes usando los nuevos postes:
% design observer by placing poles of A-LC at des_poles
L=acker(A',C',poles_des)'
eig_obs = eig(A-L*C)
L =
1.0e+09 *
8.6121
0.1037
0.0005
0.0000
eig_obs =
-361.0000
-362.0000
-363.0000
-364.0000
Y finalmente trama. Para que el observador (software) nos proporcione todos los estados como salida, debemos establecer C = eye(4)
:
C = eye(4);
mysys=ss(A-L*C,[B L],C,0); %Not sure if this is correct
tf(mysys)
step(mysys)
Se pueden ver cuatro salidas:
Siguiendoestemodeloparaunobservadorderetroalimentacióndeestadocompleto:
LuegoestoytratandodeverificarlosresultadosenSimulinkyestoyteniendoproblemasconeldiagramadebloques.Comosepuedever,tengodosmodelosespacialesestatales,unoparalaplantarealyotroparaelobservador.
Enelsiguientediagrama,estoycomparandoelestado1,quedacomoresultadoelsegundográficoquesemuestraacontinuación.
Estoyutilizandoelespaciodetrabajobasegeneradoporelcódigoanterior:
Alejecutarme,obtengounasalidadelobservadorquenorastreanisiguelaplantacomoseesperaba:
Estadosrealesyobservadoresalcompararelestado4conelbloquedesuma:
Estadosrealesyobservadoresalcompararelestado1hastaelbloquedesuma:
Cualquiersugerenciasobreporquéelestadoqueelijocompararatravésdelbloquedesumaestáefectuandolasestimacionesdelobservadorseríaapreciada.
Parámetrosdelobservador:
Parámetrosdelaplanta:
- ¿Por qué el estado que estoy comparando afecta la respuesta del observador?