En el capitulo anterior vimos como llegar a una función de transferencia a partir de una ecuación diferencial genérica. Sin embargo no mencionamos que ocurre cuando los sistemas no son lineales.
Lo que ocurre es que no podemos aplicar las técnicas de control lineal sobre sistemas no lineales.
Hay varias alternativas:
1-Linealizar el sistema y trabajar con él como un sistema lineal. Es la mas habitual y la que aprenderemos en este capitulo.
2-Construir controladores no lineales, técnicas de realimentación de estados. Se requiere un gran conocimiento del sistema y de técnicas control.
No siempre la opción mas compleja es la que da mejores resultados, a veces una buena linearización es mejor si vamos a utilizar el sistema en unos mismos puntos de operación, como ocurre en la industria.
Un punto de operación, es un estado en el que el sistema esta en equilibrio. Es por ejemplo un estanque con una cierta cantidad de agua.
la idea de la linealización es la siguiente:
En la zona cercana a X el comportamiento lineal y no lineal son el mismo. Conforme nos alejamos del P.O el error aumenta considerablemente como veremos mas adelante.
Linealización completa de un sistema. PASOS:
1-Ecuación no lineal.
2-Ecuación de equilibrio (anulamos las derivadas).
3-Puntos de equilibrio.
4-Variables incrementales y Taylor en torno al punto de equilibrio.
Explicare la parte de taylor y su planteamiento en la parte para dummies.
Linealización completa de un sistema. EJEMPLO:
El sistema que vamos a tratar es clásico en control. Se trata de un deposito de agua con dos grifos uno de perturbaciones y otro que aporta el caudal, y uno de salida abajo. El esquema seria el siguiente:
Las ecuaciones que describen el sistema serian:
Y con esto tendríamos linealizado el sistema en torno al punto de operación. Es una herramienta muy utilizada en ingeniería. Si queremos que sea valido para todo un rango de operación bastaría con ir cambiando el punto de operación y los parámetros del sistema según donde nos encontremos.
--------------------------------------------------------------------------------------------------------------------------
Para Dummies
Lo que hacemos en este capítulo es linealizar un sistema no lineal. Lo hacemos para poder controlarlo y trabajar con el sistema como si "fuera lineal". Para ello necesitamos saber un poco de matemáticas nivel medio como que es el desarrollo serie de Taylor y como obtener una función de transferencia de un sistema diferencial (capitulo 2).
Pasos para linealizar un sistema:
1-Platear ecuación no lineal.
2-Ecuación de equilibrio (anulamos las derivadas).
3-Puntos de equilibrio.
4-Variables incrementales y Taylor en torno al punto de equilibrio.
Si no sabemos plantear la ecuación no lineal del sistema podemos buscar información sobre el propio sistema o aproximar el sistema sin conocer nada de él como aprenderemos mas adelante.
--------------------------------------------------------------------------------------------------------------------------
Matlab & Simulink
Este apartado requiere un poco de conocimiento sobre matlab y simulink. Pueden dejar comentarios si no entienden alguna parte.
Lo que haremos para probar el sistema previamente calculado será lo siguiente:
1-Definir los parámetros del sistema, de los puntos de operación y el sistema lineal
2-Crear la función no lineal del sistema.
3-Poner el sistema lineal y no lineal en simulink
4-Analizar resultados y calcular errores
Programa principal: incluye los errores.
%tema 3 linearization
global A K
r=3;
A=2*pi*r;
g=9.81;
K=sqrt(2*g);
Heq=3;
Qeq=K*sqrt(Heq);
%%
%flin
num=1/A;
B=K/(2*sqrt(Heq));
den=[1 B/A];
G=tf(num,den);
%%
%Simulacion
alpha=0.05;
sim('Nlin_Lin.slx');
save('datos_simu.mat','xlin','xnlin');
%%
%errores
M=61;
a=1;
for alpha=0.05:0.1:0.95
sim('Nlin_Lin.slx');
v=[xlin.Data(M) xlin.Data(M-1) xlin.Data(M-3) xlin.Data(M-4)];
Mlin=median(v);
v2=[xnlin.Data(M) xnlin.Data(M-1) xnlin.Data(M-3) xnlin.Data(M-4)];
Mnlin=median(v2);
error=abs((Mlin-Mnlin));
verror(a)=error;
a=a+1;
end
va=0.05:0.1:0.95;
save('errores.mat','va','verror');
Funcion no lineal
function xdot=nlin(x)
global A K
H=x(1);Qe=x(2);
xdot(1)=-(K/A)*sqrt(H)+Qe/A;
return;
Esquema Simulink:
Resultados:
Respuesta ante escalón del 5% de Qeq. alpha=(0.05)
Errores:
Como vemos a medida que nos alejamos del punto de equilibrio el error es mayor.
----------
Por ultimo os dejo el archivo en Mega con todos los scripts y plots: Deposito.m
Para los que queráis ampliar en sistemas no lineales os dejo el siguiente enlace: Control no lineal