Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Linealizcion PDF
Linealizcion PDF
Antonio Flores T.
Computers are incredibly fast, accurate, and stupid; humans are incredibly
slow, inaccurate and brilliant; together they are powerful beyond imagination. Albert Einstein.
Introducci
on
Modelo
Lineal
Diseno del
Controlador
Prueba del
Controlador
empezamos derivando el modelo (muy probablemente) no lineal del proceso que deseamos controlar. A continuacion lo transformamos en un modelo lineal (el procedimiento de transformacion sera explicado en esta parte). Posteriormente dise
namos
el sistema de control para el modelo linealizado. Finalmente el sistema de control se
prueba ya sea empleando el modelo lineal, o bien, el modelo no lineal original.
En esta parte mostramos la manera mediante la cual una funcion no lineal f (x, u)
puede ser representada aproximadamente por una funcion lineal alrededor de un cierto
punto xs (normalmente un estado estacionario del proceso).
Qu
e es una funci
on lineal ?
Supongamos que una cierta variable y depende de alguna otra variable x a traves de
alguna funcion f () de manera tal que
y = f (x)
(2.1)
(2.2)
(2.3)
(2.4)
(2.5)
o bien
y=
n
X
m i xi
(2.6)
i=1
donde
f (x) =
n
X
m i xi
(2.7)
i=1
Definici
on 1 : Funci
on Lineal. La funcion f (x) es lineal cuando esta dada exactamente por la ecuaci
on 2.7.
Notese que la u
nica diferencia entre las ecuaciones 2.3 y 2.7 es que en la ecuacion
2.3 f () depende de una variable x, mientras que en la ecuacion 2.7 f () depende de n
variables x1 , . . . , xn .
Qu
e es una funci
on no lineal ?
Definici
on 2 : Funci
on No Lineal. Cualquier funcion f (x) que no pueda representarse en terminos de la ecuaci
on 2.7 se dice que es no-lineal.
Los siguientes ecuaciones representan relaciones no lineales
y = 5 + ln(x)
y = 3e2 + 6
y = x1 x2 + x3
x1
y =
x3 + cos(x4 )
x2
(3.8)
(3.9)
(3.10)
(3.11)
P o = eA T +C
(3.12)
que representa la presion de vapor P o de compuestos puros como funcion de la temperatura T . En la grafica 1 se muestra le curva de presion de vapor para el agua, de
esta grafica es facil observar que la relacion entre P o y T es no lineal.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
10
20
30
40
50
60
Temperatura (C)
70
80
90
100
Figura 1:
Presion de vapor del agua como funcion de la temperatura;
A =18.3036,B=3816.44,C=-46.13. T esta en o K y P o en mmHg.
Significado de la linealizaci
on
Linealizar una funcion no lineal f (x, u) significa reemplazarla por otra funcion lineal
f(x, u). Si las dos funciones representan basicamente el mismo proceso, para que sirve
representar una funcion no lineal por otra lineal ?
3
funcion lineal
f(x,u)
funcion no lineal
0
1
0
1
0
1
s s
f(x ,u )
region donde la
linealizacion es valida
s
x
la linea continua representa la funcion no lineal f (x, u). El crculo negro es el punto
(xs , us ) alrededor del cual se realiza la linealizacion de la funcion no lineal. Como se
observa, la aproximacion (o linealizacion) solo es valida en el interior de una region,
denotada por el crculo externo. En terminos generales no podemos decir de que
tama
no es la region donde es valida la linealizacion; todo lo que podemos decir es que
es peque
na. La linea discontinua representa la funcion linealizada.
Es com
un referirnos al proceso de linealizacion como un proceso local. Lo que esto
significa es que la linealizacion solo es valida en un punto (alrededor del cual se realizo
la linealizacion) y no en todo en el intervalo de definicion de la funcion f (x, u).
5
5.1
Procedimiento de linealizaci
on
Caso univariable
Supongamos que tenemos un sistema dinamico no lineal el cual consiste de una variable
de entrada (u) y de un variable de salida (x) representado por la siguiente ecuacion,
dx
= f (x, u)
(5.13)
dt
y que deseamos aproximar la conducta de este sistema no lineal por la de un sistema
lineal alrededor de un punto xs el cual es un estado estacionario del sistema representado por la ecuacion anterior. Expandiendo el lado derecho de la ecuacion 5.13 (el cual
contiene el termino no lineal) en series de Taylor hasta la primera derivada,
f
f (x, u) f (x , u ) +
x
s
f
(x x ) +
u
xs ,us
(u us ) + T.O.S.
xs ,us
(5.14)
donde T.O.S. representa los terminos de orden superior en la expansion de Taylor. Dado
que la expansion se realiza alrededor del estado estacionario (xs , us ) esto significa que
la ecuacion 5.13 se puede reescribir como,
dxs
= f (xs , us ) = 0
dt
(5.15)
f
x
f
x +
u
xs ,us
(5.19)
xs ,us
a =
b =
f
x
f
u
(5.20)
!
xs ,us
(5.21)
xs ,us
(5.22)
5.2
Caso multivariable
(5.23)
(5.24)
(5.25)
tenemos,
f1
f1
f1 (ps ) +
x1
+... +
.
.
.
fn
(x1
(xn
xsn )
ps
f1
+
u1
(u1 us1 )
ps
(5.26)
ps
fn
fn (ps ) +
x1
+... +
f1
+ ... +
xn
ps
f1
um
xs1 )
(x1
fn
um
xs1 )
ps
fn
+ ... +
xn
(xn
ps
xsn )
fn
+
u1
(u1 us1 )
ps
(5.27)
ps
(5.28)
(5.29)
sustituyendo en la ecuacion anterior todas las funciones fi que se expandieron anteriormente en series de Taylor (despreciando los terminos de orden superior):
d
x1
=
dt
f1
x1
f1
x1 + ... +
xn
ps
f1
xn +
u1
ps
6
f1
u1 + ... +
um
ps
um(5.30)
ps
.
.
.
d
xn
=
dt
fn
x1
fn
x1 + ... +
xn
ps
fn
xn +
u1
ps
fn
u1 + ... +
um
ps
um(5.31)
ps
donde debe recordarse ya que la expansion se realizo alrededor del estado estacionario
ps entonces,
f (ps ) = 0
(5.32)
(5.33)
donde,
dx
1
dt
.
d
x
=
.
dt
, x
=
d
xn
dt
f1
x1 ps
.
A=
.
f
n
x1 ps
f1
u1 ps
.
B=
.
f
n
u1 ps
x1
.
.
.
xn
, u
=
. . .
.
.
.
.
.
.
.
.
.
.
.
.
f1
xn ps
.
.
.
.
. .
fn
. x
n
. . .
.
.
.
.
u1
.
.
.
um
(5.34)
ps
f1
um ps
.
.
.
.
. .
fn
. u
m
(5.35)
ps
(5.36)
f (CA , Q) =
f (CA , Q)
f (CAs , Qs )
f
+
CA
(CA
f
+
Q
CAs )
s ,Qs
CA
(Q Qs ) + T.O.S.
s ,Qs
CA
dado que,
f (CAs , Qs ) = 0
la funcion linealizada se reescribe como (despreciando los terminos de orden superior),
f (CA , Q) =
f
CA
f
CA +
Q
C s ,Qs
Q
s ,Qs
CA
f
CA
f
CA +
Q
C s ,Qs
A
Q
s ,Qs
CA
f
CA
CA +
s ,Qs
CA
f
Q
Q
s ,Qs
CA
f
CA
f
Q
=
s ,Qs
CA
=
s ,Qs
CA
Qs
2kCAs
V
CAo CAs
V
CAo CAs
dCA
Qs
=
+ 2kCAs CA +
Q
dt
V
V
8
f1
f1 (p) f1 (p ) +
CA
f1
CAo
(CA
ps
ps
f2
f2 (p) f2 (p ) +
CA
f2
CAo
f1
+
CB
f1
CBo
(CA
CAs )
ps
s
(CAo CAo
)+
ps
(CB
f1
+
Q
CBs )
ps
(Q Qs )
ps
s
(CBo CBo
) + T.O.S.
ps
f2
+
CB
f2
CBo
s
(CAo CAo
)+
CAs )
(CB
f2
+
Q
CBs )
ps
(Q Qs )
ps
s
(CBo CBo
) + T.O.S.
ps
ya que,
f1 (ps ) = 0
f2 (ps ) = 0
las funciones linealizadas se escriben como (despreciando terminos de orden superior),
f1 (p) =
f2 (p) =
f1
CA
f2
CA
CA +
!
ps
CA +
ps
f1
CB
f2
CB
f1
CB +
Q
ps
f2
CB +
Q
ps
9
+
Q
!
ps
+
Q
ps
f1
CAo
f2
CAo
CAo +
ps
CAo +
ps
f1
CBo
f2
CBo
CBo
ps
CBo
ps
sustituyendo estas ecuaciones en los lados derechos de las ecuaciones 5.37 y 5.38,
dCA
=
dt
dCB
dt
f1
CA
f2
CA
f1
CA +
CB
ps
f2
CA +
CB
ps
f1
CB +
Q
ps
f2
CB +
Q
ps
+ f1
Q
CAo
ps
+ f2
Q
CAo
ps
f1
CAo +
CBo
ps
f2
CAo +
CBo
ps
CBo
!
ps
CBo
ps
f1
f1
f1
dCA
f1
+ f1
=
CA +
CB +
Q
CAo +
CBo
dt
CA ps
CB ps
Q ps
CAo ps
CBo ps
!
dCB
f2
f
f
f
f
2
2
2
2
+
=
CA +
CB +
Q
CAo +
CBo
dt
CA ps
CB ps
Q ps
CAo ps
CBo ps
o en notacion matricial,
"
A
dC
dt
B
dC
dt
f1
CA ps
f2
CA ps
f1
CB ps
f2
CB ps
"
CA
CB
f1
Q ps
f2
Q ps
f1
CAo ps
f2
CAo ps
f1
CBo ps
f2
CBo ps
CAo
CBo
A
dC
dt
B
dC
dt
"
s
( QV
+ 2k1 CAs )
2k1 CAs
s
( QV
0
+ k2 )
#"
CA
CB
" C C s
Ao
A
V s
CBo CB
V
Qs
V
0
Qs
V
CAo
CBo
"
"
A
dC
dt
B
dC
dt
#
#
CA
x
=
CB
Q
Ao
u
=
C
CBo
10
"
A =
B =
( QV + 2k1 CAs )
0
s
2k1 CAs
( QV + k2 )
" C C s
Ao
A
V s
CBo CB
V
Qs
V
Qs
V
En el ejemplo anterior hemos analizado como obtener la respuesta del reactor isotermico,
en terminos de ciertas variables de entrada, cuando dicha respuesta esta representada
por los estados (CA , CB ) del reactor. Sin embargo, si se deseara analizar la respuesta
del reactor en terminos del grado de conversion XA definido como,
XA =
CAo CA
CAo
(5.39)
esta no podra obtenerse directamente ya que XA , tal como ha sido formulado el modelo
matematico del reactor, no es un estado del sistema. Sin embargo, XA es funcion de
un estado (CA ) del sistema.
En casos como el anterior, la variable de salida es alguna combinacion de los estados y
de las variables de entrada,
y = g(x, u)
(5.40)
donde y es el vector de variables de salida. Dado que, en general, la funcion g(x, u)
puede ser de naturaleza no lineal debemos tambien linealizar la ecuacion 5.40. Entonces
linealizando alrededor de un estado estacionario denotado por ps = (xs , us ) tenemos,
g1
g1
g1 (p ) +
x1
+... +
.
.
.
gn
g1
um
(x1
ps
gn
gn (p ) +
x1
gn
um
(xn
xsn )
ps
g1
+
u1
(u1 us1 )
ps
(5.41)
ps
+... +
g1
+ ... +
xn
xs1 )
(x1
ps
xs1 )
gn
+ ... +
xn
(xn
ps
xsn )
gn
+
u1
(u1 us1 )
ps
(5.42)
ps
(5.43)
g1
gn
g1
g1
g1
g1
= y1s +
x1 + ... +
xn +
u1 + ... +
um
x1 ps
xn ps
u1 ps
um ps
.
.
.
!
!
!
!
g
g
g
g
n
n
n
n
= yns +
x1 + ... +
xn +
u1 + ... +
um
x1 ps
xn ps
u1 ps
um ps
sustituyendo estas ecuaciones en el lado derecho de la ecuacion 5.40 resulta (en notacion
matricial):
y
= C
x + D
u
(5.44)
donde,
y
=
y1
.
.
.
yn
, x
=
g1
x1 ps
.
C=
.
g
n
x1 ps
g1
u1 ps
.
D=
.
g
n
u1 ps
x1
.
.
.
xn
, u
=
. . .
.
.
.
.
.
.
.
.
.
.
.
.
g1
xn ps
.
.
.
.
. .
gn
. x
n
. . .
.
.
.
.
u1
.
.
.
um
(5.45)
ps
g1
um ps
.
.
.
.
. .
gn
. u
m
(5.46)
ps
(5.47)
(5.48)
entonces ya que,
"
y1
y2
g1
CA
g2
CA
"
# g1 g1
A
C
Q CAo
+ g
g2
g1
CB
g2
CB
CB
CAo
CAo
g1
CBo
g2
CBo
CBo
y1
y2
"
1 0
0 1
#"
CA
CB
"
0 0 0
0 0 0
CAo
CBo
y1
y2
"
1 0
0 1
#"
CA
CB
CA , CB , XA
ademas de las ecuaciones 5.47 y 5.48 debemos emplear la definicion de grado de
conversion,
g3 (x, u) =
CAo CA
CAo
(5.49)
entonces,
y1
y3
g1
CA
g2
CA
g3
CA
g1
CB
g2
CB
g3
CB
"
CA
CB
g1
Q
g2
Q
g3
Q
g1
CAo
g2
CAo
g3
CAo
g1
CBo
g2
CBo
g3
CBo
CAo
0
1
0 " #
y1
0
1
+ 0
y2 =
CB
1
0
0
y3
s
CAo
13
0
0
s
CA
s
(CAo )2
0
Q
0
CAo
0
CBo
CBo
Respuesta din
amica de sistemas lineales
Existen 2 funciones en MATLAB que permiten obtener la respuesta dinamica de sistemas lineales continuos: las funciones step y lsim. A continuacion describiremos el
funcionamiento basico de estas rutinas e ilustraremos su uso con un ejemplo. Ambas
rutinas suponen que el sistema lineal esta representado en terminos de la notacion de
espacio de estado:
d
x
= A
x + B
u
dt
y
= C
x + D
u
step
Esta funcion produce la respuesta dinamica de un sistema lineal cuando se aplica
un cambio de tipo escalon en alguna de las entradas al sistema. Por default la
funcion step cambia la magnitud de la variable de entrada de 0 a 1. La funcion
puede invocarse de 4 modos diferentes.
step(A,B,C,D,IU)
step(A,B,C,D,IU,T)
[Y,X,T] = step(A,B,C,D,IU)
[Y,X] = step(A,B,C,D,IU)
IU es el n
umero de la variable de entrada a la que se aplica el cambio escalon. T
es el tiempo durante el cual se desea observar la respuesta dinamica, X son los estados, Y es la respuesta del sistema. Empleando la funcion step en cualquiera de
los 2 primeros modos MATLAB muestra en forma grafica la respuesta dinamica
del sistema. En el primer modo MATLAB determina de manera automatica
la escala de tiempo (la respuesta se muestra hasta que la dinamica del sistema
muere). Si se desea se puede suministrar el intervalo de tiempo para la simulacion del sistema a traves de la variable T. Si se usan los u
ltimos 2 modos
de operacion MATLAB no produce la respuesta del sistema en forma grafica,
los resultados quedan almacenados en las variables que estan del lado izquierdo
del signo de igualdad. La variable T puede generarse mediante alguna de las
siguientes instrucciones:
T = linspace(x1,x2)
T = linspace(x1,x2,N)
la funcion linspace produce un vector cuyos valores estan igualmente espaciados.
x1 , x2 representan valores inferiores y superiores de T, respectivamente. En el
primer modo de operacion se emplean, por default, 100 valores entre x1 , x2 . En
el segundo modo se emplean N puntos entre dichas cotas.
lsim
La funcion lsim puede emplearse como alternativa a la funcion step cuando se
desean realizar cambios diferentes de la unidad en la variable manipulada. La
sintaxis de la funcion es como sigue:
14
Y = lsim(A,B,C,D,U,T)
donde U representa una matriz que tiene por filas los valores de la variable manipulada para cada tiempo T dado y tantas columnas como variables manipuladas
existan. Es decir, en la primera columna de U se deben definir los valores de
la primera variable manipulada, en la segunda columna de U los valores de la
segunda variable manipulada y asi sucesivamente para el resto de las variables
manipuladas. Debe recalcarse que cuando se usa esta funcion para obtener la
respuesta dinamica de sistemas lineales, la idea es obtener dicha respuesta realizando un cambio a la vez. Es decir, si tenemos, por ejemplo, dos variables
manipuladas primero se calcula la respuesta con respecto a solo una de ellas,
la segunda entrada no se modificara. De manera semejante, cuando de desea
obtener la respuesta con respecto a la segunda entrada, el valor de la primera
variable de entrada no se debe modificar.
Ejemplo 4 Considere nuevamente el modelo dinamico del reactor tanque agitado descrito en el ejemplo 2. Empleando los siguientes datos de dise
no obtener la respuesta
dinamica del modelo linealizado alrededor del estado estacionario nominal del sistema.
Q
CAo
CBo
V
k1
k2
100
200
0
1000
0.01
0.5
lts/min
mol/lt
mol/lt
lts
lts/min-mol
1/min
A
dC
dt
B
dC
dt
"
y1
y2
"
=
#
"
0.9
0
0.8 0.6
1 0
0 1
#"
CA
CB
#"
CA
CB
"
0.16
0.1 0
0.0267 0 0.1
CAo
CBo
|{z}
= .
.
1
16
CAo
|{z}
0
0
0
.
.
.
0
0
0
CBo
|{z}
0.2
Ca
Concentracion (mol/lt)
0.15
0.1
Cb
0.05
0.05
0
5
6
Tiempo (mins)
10
5
6
Tiempo (mins)
10
5
6
Tiempo (mins)
10
(a)
0.14
Cb
Ca
Concentracion (mol/lt)
0.12
0.1
0.08
0.06
0.04
0.02
0
0
(b)
0.18
0.16
Cb
Concentracion (mol/lt)
0.14
0.12
0.1
0.08
0.06
0.04
0.02
Ca
0
0
(c)
Figura 2: Respuesta dinamica del sistema a cambios escalon en (a) Flujo volumetrico
alimentado (Q), (b) Concentracion alimentada del reactivo A (CAo ) y (c) Concentracion
alimentada del reactivo B (CBo ).
similarmente, si ahora deseareamos obtener la respuesta dinamica del sistema realizando un cambio unitario en la concentracion alimentada del reactivo A (CAo ) tendriamos primero que fijar todos los elementos de la primera columna en cero y cambiar
todos los elementos de la segunda columna (excepto el primero) en la magnitud de17
|{z}
=
.
.
CAo
|{z}
0
1
1
.
.
.
1
1
1
CBo
|{z}
De acuerdo con lo dicho anteriormente, los siguientes comandos Matlab producen las
mismas respuestas dinamicas mostradas en la Figura 2.
t = linspace(0,10);
u=zeros(length(t),3);
u(:,1) = 1;
u(1,1) = 0;
y = lsim(a,b,c,d,u,t);
figure(1), plot(t,y)
u=zeros(length(t),3);
u(:,2) = 1;
u(2,1) = 0;
y = lsim(a,b,c,d,u,t);
figure(2), plot(t,y)
u=zeros(length(t),3);
u(:,3) = 1;
u(3,1) = 0;
y = lsim(a,b,c,d,u,t);
figure(3), plot(t,y)
Matlab/Simulink
There is another way to run Simulink dynamic simulations from the Matlab
workspace area and to get the results of the dynamic simulations for the purpose
at hand. The simplest way of doing so it is to write a Matlab script file to drive
the simulation and plot the results coming out from the dynamic simulation as
shown in the next example. In this example we simply carried out three dynamic
simulations under variations of each one of the system inputs by setting the initial
and final values of these variables and plot the dynamic simulation results.
18
a
b
c
d
=
=
=
=
q_initial
= 0; q_final
= 0;
cao_initial = 0; cao_final
= 0;
cbo_initial = 0; cbo_final
= 0;
%
% Response assuming Q is the manipulated variable
%
q_final
= 10;
tspan = linspace(0,20);
[t,x,ca,cb] =sim(slexample,tspan);
figure(1)
plot(t,[ca,cb]);
legend(C_a,C_b,0);
grid, xlabel(Time), ylabel(Concentration)
title(Q is the manipulated var.);
q_final = 0;
%
% Response assuming Cao is the manipulated variable
%
cao_final
= 1;
tspan = linspace(0,20);
[t,x,ca,cb] =sim(slexample,tspan);
figure(2)
plot(t,[ca,cb]);
legend(C_a,C_b,0);
grid, xlabel(Time), ylabel(Concentration)
title(Cao is the manipulated var.);
cao_final
= 0;
%
% Response assuming Cbo is the manipulated variable
%
cbo_final
= 1;
tspan = linspace(0,20);
[t,x,ca,cb] =sim(slexample,tspan);
figure(3)
plot(t,[ca,cb]);
legend(C_a,C_b,0);
grid, xlabel(Time), ylabel(Concentration)
title(Cbo is the manipulated var.);
19
Q
x = Ax+Bu
y = Cx+Du
Cao
State Space
Cbo
Figura 3:
20
1
Ca
2
Cb
Concentration
1.5
0.5
0
Ca
Cb
0.5
10
Time
12
14
16
18
20
(a)
0.14
0.12
Concentration
0.1
0.08
0.06
0.04
0.02
Ca
C
10
Time
12
14
16
18
20
(b)
0.16
0.14
Concentration
0.12
0.1
Ca
Cb
0.08
0.06
0.04
0.02
10
Time
(c)
Figura 4:
21
12
14
16
18
20