Sei sulla pagina 1di 15

TEMA 4 TÉCNICAS DE CONTROL DE SISTEMAS DE GRAN DIMENSIÓN

En este tema, vimos una introducción sobre las formas que teníamos de controlar los sistemas
complejos compuestos en subdivisiones, dentro de estas formas se ubicaban el control
jerarquizado, y el descentralizado. Para enfocarnos en el control descentralizado, debido a los
problemas del control centralizado, ya que Debido a la configuración física y a las grandes
dimensiones de muchos sistemas, el control jerárquico centralizado no es sólo no factible a
nivel económico, sino que además no es necesario.

En la práctica 8 aprendimos como obtener los modos comunes de un sistema, es decir, los
autovalores de un sistema descentralizado que aparece sea cual sea la ganancia de
realimentación que se utilice. Si es estable y tiene un buen comportamiento, no habrá
problemas. Cuando es inestable, habrá que evitarlo a toda costa. No existe un rango de
ganancias que pueda evitar la aparición de este polo.

En la práctica 9 practicamos, la anteriormente vista en teoría, como compensación dinámica


descentralizada en la que ahora se pretende determinar las
distintas leyes de control dinámico de forma que los polos de bucle cerrado
queden ubicados según un conjunto de autovalores previamente
especificados, con claras influencias en el método de adición de variables.

OBTENCIÓN DEL MODO COMÚN DE UN SISTEMA

Sea nuestro sistema de control descentralizado con nuestras N estaciones locales de control,
siguiente:

Donde aparecen N subsistemas a controlar y, por tanto, N bloques de salida. La salida total
estará compuesta por los N canales de salida:

El problema de estabilización descentralizada consiste en obtener N leyes de control local


independientes entre sí, cada una con un compensador dinámico.

Las leyes de control descentralizado, varían con respecto a lo visto hasta ahora, la ley de
control no se apoya en el vector de estado, sino en la señal de salida.
De esta forma, para cada subsistema:

Donde:

* Z(t): es una nueva variable de estado introducida para compensar la falta de información que
se tiene al no trabajar con el vector de estado.

*V(t): es un vector de perturbaciones/ruido del sistema.

LOCALIZACIÓN DEL MODO COMÚN

Consideraremos el problema de forma compacta, incluyendo tanto el sistema como los


compensadores.

Matrices unificadas del sistema:

Con cada Bi & Ci pertenecen a una de las estaciones de control.

En cuanto al controlador:

Donde las matrices H,K,L,S y G son matrices diagonales por bloques del tipo:

Aplicando el control a nuestro sistema tendremos:


La matriz dinámica del sistema realimentado será el objetivo del diseño del control
descentralizado. En ella aparece el modo común, cuyo estudio está muy relacionado con el
bloque A+BKC.

Teniendo todo esto en cuenta, se define el polinomio fijo del sistema (A,B,C) como el máximo
común divisor el conjunto de polinomios característicos para todos los valores de K.

Puesto que K puede tomar infinitos valores, para determinar el modo común se puede realizar
el siguiente test:

*Fijamos K para una primera prueba y se calculan los autovalores del sistema.

*Se vuelve a repetir la prueba para varios valores de K y se comparan los distintos resultados
que se van obteniendo.

*Aquellos autovalores que se repiten conforman el modo común del sistema.

El valor nulo de K también es válido, por lo que en bucle abiierto también aparecen los posibles
modos comunes del sistema.
%La función modo común:%

function M=ModoComun(A,B,C,D)

for i=1:4
l=i
i=i+1
K=zeros(2,2);
for j=1:2
K(j,j)=rand(1);
end
V(l,:)=eig(A+B*K*C);
end
i=0;
M=NaN*ones(4,1);
for i=1:4
if sum(V(:,i)/4)==V(1,i)
M(i)=V(1,i);
end
end
%Probamos con la práctica:%
clear all
A=[0.5 0 1 0.75;0.1 1.2 0 0.1;0 0 -1 0;0 0 0.4 0.75];
B=[0.85 0 0 1;0 1 1.25 0]';
C=[1 0 0 0;0 0 0.5 1];
D=0;
M=ModoComun(A,B,C,D)

%Obtenemos:
>>
M=

1.2000
NaN
NaN
NaN
%

Para obtener el modo común se han comparado todos los elementos y solo aquellos que son
iguales se introducen en el vector M de modos comunes. Como el número máximo de modos
comunes es 4, ese vector tiene cuatro componentes, pero no necesariamente ha de haber 4
modos comunes. El Not a Number es simplemente para indicar que ese elemento del vector
no representa un modo común. El único modo común del sistema es el 1.2.
COMPENSACIÓN DINÁMICA DESCENTRALIZADA

Partimos del sistema genérico:

Se pretende hallar una dinámica según:

De manera que se tiene:

Se pretende establecer los polos de lazo cerrado de:

en unos valores deseados, siguiendo unas especificaciones concretas.

Para determinar el tamaño del vector z, o lo que es lo mismo, el número de variables auxiliares
a añadir al vector de estados x, hay que apoyarse en las matrices de observabilidad y
controlabilidad.

De esta forma, se buscan los valores ɳc ɳo más pequeños que cumplen:

De manera que el número de variables auxiliares z que se van a introducir vendrá dado por el
valor de ɳ:

Vamos a exponer un teorema, que garantiza la existencia de una matriz de ganancias de


realimentación de las salidas para la adecuada ubicación de los polos.
Se construyen las matrices ampliadas:

Y definimos un conjunto de autovalores para el sistema en bucle cerrado:

Suponiendo los compensadores:

La matriz de ganancias del sistema ampliado quedaría:

Según esto, ambos sistemas, el original y el ampliado deben tener igual máximo común divisor,
o lo que es lo mismo, deben compartir autovalores.

Los autovalores del ampliado serán los del original, más un conjunto de autovalores asociados.
Surge ahora el problema de la ubicación de los polos, el comando place no nos da una matriz K
de la forma deseada, por ello se ha de hacer a mano.
PROCEDIMIENTO:

1 Comprobar si el sistema (A,B,C) es controlable y observable.


2 Hallar ɳc y ɳo para la obtención de ɳ.
3 Ampliación del sistema.
4 Determinar las matrices K, H, S y F para situar los autovalores en las posiciones ideales.
clear all
A=[0 0;1 -2];
B=[0.2 0;0 0.5];
C=[0 5;2 0];
D=0;
%Controlabilidad y observabilidad
W=[B A*B]
rank(W)
V=[C; A*C]
rank(V)
%n0 y nc pueden ser 2 o 1, ya que al ser 1, nos quedaría la condición
como
%rango(B)=2, que se cumple (igual que se cumpliría rango(B,AB)=2, ya
que la
%matriz B tiene rango 2)
mu=1
syms k1 h1 s1 k2 f1 real

k1=1;
s1=1;
h1=1;

Amu=[A zeros(2,1);0 0 0]
Bmu=[B zeros(2,1);0 0 1]
Cmu=[C zeros(2,1);0 0 1]
% Kmu=subs([k1 0 h1;0 k2 0;s1 0 f1],[k1 h1 s1],[1 1 1]);
K=[k1 0;0 k2]
lanI_r=[-1 0 ;0 -1];
eq1=det(lanI_r-(A+B*K*C))*det((-1-f1)-[0 5*s1]*inv((-1*eye(2)-
(A+B*K*C)))*[0.2*h1 0]');

lanI_c=[1 0;0 1]*(-1+2*i);


eq2=det(lanI_c-(A+B*K*C))*det(((-1+2*i)-f1)-[0 5*s1]*inv(((-
1+2*i)*eye(2)-(A+B*K*C)))*[0.2*h1 0]');

lanI_c2=[1 0;0 1]*(-1-2*i);


eq3=det(lanI_c2-(A+B*K*C))*det(((-1-2*i)-f1)-[0 5*s1]*inv(((-1-
2*i)*eye(2)-(A+B*K*C)))*[0.2*h1 0]');

sol=solve([eq1 eq3])

Sacamos los parámetros del control:

>> sol.f1

ans =

1/4

>> sol.k2

ans =

-6
Implementamos en simulink:

Y las salidas:
Hemos tomado los datos:
k1=-3;
s1=2;
h1=7;

En simulink:
Y todos los Scopes:
En Simulink:
Las salidas:

>> P=[-1+2i -1-2i]


P=
-1.0000 + 2.0000i -1.0000 - 2.0000i
>> KCENT=place(A,B,P)
KCENT =
5 10
-2 -2
Y ahora en Simulink:

Y las salidas

Bastante similares a las del control descentralizado.

Potrebbero piacerti anche