Está en la página 1de 4

LABORATORIO

2
(Parte 1)
Transformaciones Canónicas
(Controlable y Observable)

1. Planta Estudiada

 El balanceo de un barco puede ser regulado empleando aletas que se proyectan en


el agua para generar un torque de estabilización.

 El desplazamiento de las aletas es controlado por actuadores y se asume que el


torque generado por las aletas es proporcional a su desplazamiento.

2. Diagrama de Bloques

 Se muestra el diagrama de bloques de este sistema

X3 X1

1
Transformaciones Canónicas Ing. Eddie Sobrado
3. Modelo de Espacio – Estado

El modelo de estado obtenido en el primer laboratorio fue:

4. Transformaciones del Modelo de Espacio – Estado a FCC, FCO

a. Programa:

clear all; %borra variables del workspace (memoria de matlab)


clc; %limpia la pantalla
%----------- matrices del sistema -----------------
A=[-0.4 1 0;-4 0 40;0 0 -4];
B=[0 0 2]';
C=[1 0 0];
D=0;
%----- coeficientes del Polinomio caracteristico ---
polinomio=poly(A) %polinomio caracteristico
a0 = polinomio(4) %coeficiente del polinomio
a1 = polinomio(3) %coeficiente del polinomio
a2 = polinomio(2) %coeficiente del polinomio

% ------- Matriz M ----------------------


M=[a1 a2 1; a2 1 0; 1 0 0 ];

%-------- creacion de las Matrices S y V ------------


S=[B A*B A^2*B]
V=[C; C*A; C*A^2]

%------ Prueba de la controlabilidad del sistema -------


SS = ctrb(A,B); %calculo la matriz S de controlabilidad
rango = rank(SS); %verifico el rango de la matriz S
fprintf('Num.de vectores LI de la Matriz S:\n');
disp(rango); %visualizo el rango de la matriz S

%------ Prueba de la observabilidad del sistema --------


VV = obsv(A,C); %calculo la matriz de observabilidad
rango = rank(VV);
fprintf('Num.de vectores LI de la Matriz V:\n');
disp(rango);
%-------- Forma Canonica Controlable -------------
P = S*M;
A_fcc = inv(P)*A*P
B_fcc = inv(P)*B
C_fcc = C*P
%-------- Forma Canonica Observable -------------
P = inv(M*V);
A_fco = inv(P)*A*P
B_fco = inv(P)*B
C_fco = C*P

2
Transformaciones Canónicas Ing. Eddie Sobrado
b. Descripción del programa:

 Ingresamos las matrices de estado:

>> A=[-0.4 1 0;-4 0 40;0 0 -4];


>> B=[0 0 2]';
>> C=[1 0 0];
>> D=0;

 Determinamos el polinomio característico del Sistema en Lazo abierto (SLA):

>> polinomio = poly(A)

polinomio =

1.0000 4.4000 5.6000 16.0000

 Determinamos los coeficientes a0, a1, a2 a partir del polinomio característico:

>> a0 = polinomio(4)
>> a1 = polinomio(3)
>> a2 = polinomio(2)

 Recordando, la matriz M se evalúa así:

 Entonces como el sistema es de tercer orden, nuestro M sera:

>> M = [a1 a2 1; a2 1 0; 1 0 0 ];

 Probaremos la controlabilidad y observabilidad del sistema. Para ello podemos


formar las matriz de controlabilidad S y la de observabilidad V:

>> S=[ B A*B A^2*B ]


>> V=[ C; C*A; C*A^2 ]

Sin embargo estas matrices lo podemos calcular usando la función ctrb() y obsv() de
matlab:

>> SS = ctrb(A,B);
>> VV = obsv(A,C);
(verifique que la matriz S (V) es igual a SS (VV))

 Una vez hallado S ( o SS) y V (o VV), evaluamos el rango de dichas matrices. La


función rank(), nos devuelve el numero de vectores linealmente independientes
de una matriz.
3
Transformaciones Canónicas Ing. Eddie Sobrado
 Ya que las matrices SS y VV son de dimensión 3 por tanto esperaríamos que el
rango sea 3.

>> rango = rank(SS);


>> rango = rank(VV);

En ambos casos resulta de rango completo, es decir rango 3.

 Pasar el modelo de la planta estudiada a la FCC.

>> P = S*M;
>> A_fcc = inv(P)*A*P
>> B_fcc = inv(P)*B
>> C_fcc = C*P

 Pasar el modelo de la planta estudiada a la FCO.

>> P = inv(M*V);
>> A_fco = inv(P)*A*P
>> B_fco = inv(P)*B
>> C_fco = C*P

4
Transformaciones Canónicas Ing. Eddie Sobrado

También podría gustarte