Está en la página 1de 6

P2.

% Sistema barco

A=[-0.0895 -0.286 0;-0.0439 -0.272 0;0 1 0];

B=[0.0145 -0.0122 0]';

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

barco=ss(A,B,C,D)

Gbarco=zpk(barco)

Gbarco =

-0.0122 (s+0.1417)

------------------------

s (s+0.3253) (s+0.03624)

Sistema tipo 1

% calculo K ackerman

P=[-0.2 -0.2+0.2*j -0.2-0.2*j]

K=acker(A,B,P)

>> K

K=

0.2766 -19.2204 -9.2568

AA=A-B*K

eig(AA)

ans =

-0.2000 + 0.0000i
-0.2000 + 0.2000i

-0.2000 - 0.2000i

% caso phi_d nula

barco_control_nula=ss(AA,[],C,[])

x10=1.5;x20=0;x30=0;

x0=[x10 x20 x30]';

[y,t,x]=initial(barco_control_nula,x0)

plot(t,x)

% caso phi_d escalon 10

K3=K(3)

BB=B*K3;

barco_control_escalon=ss(AA,BB,C,D)

step(10*barco_control_escalon)
% dicretizacion y control discreto

T=0.2;

barco_dis=c2d(barco,T);

[G,H,C,D]=ssdata(barco_dis)

Pdis=exp(P*T)

Kdis=acker(G,H,Pdis)

>> Kdis

Kdis =

0.3511 -19.1666 -9.0377

% caso phi_d nula discreto

GG=G-H*Kdis;

eig(GG)

barco_controld_nula=ss(GG,[],C,[],T)

x10=1.5;x20=0;x30=0;

x0=[x10 x20 x30]';

initial(barco_controld_nula,x0)
% caso phi_d escalon 10 discreta

K3dis=Kdis(3)

HH=H*K3dis;

barco_controld_escalon=ss(GG,HH,C,D,T)

step(10*barco_controld_escalon)

% calculo de ganancia de observador

Pob=[-0.8 -0.8+0.8*j -0.8-0.8*j];

Kob=acker(A',C',Pob')'
>> Kob

Kob =

-19.0856

1.8113

2.0385

% Ecuacion del observador (papel)

dx_est/dt = A*x_est+B*u+Kob*(y-C*x_est)

u=-K*x_est

Sustituyendo

dx_est/dt = (A-B*K-Kob*C)*x_est + Kob*y

dx_est/dt = AO*x_est + BO*y

siendo AO y BO las matrices del sistema observador, con entrada y(t) y salida x_est(t)

También podría gustarte