You are on page 1of 41

FIEE 1

______________________________________________________________________
____________________________________________________________________________________

Facultad de Ingeniera Elctrica y Electrnica
(FIEE)






SEPARATA N 1 DE CONTROL I
(EE-615)




Autor: Ing. Daniel Carbonel Olazbal




Laboratorios que contiene:

- N1: MODELOS MATEMTICOS DE SISTEMAS LINEALES
- N2: RESPUESTA DE SISTEMAS LINEALES EN TIEMPO CONTINUO
- N3: GRFICOS EN 2D y en 3D
- N4: SEALES DE PRUEBA Y SISTEMAS DE SEGUNDO ORDEN
- N5: RESPUESTA TEMPORAL EN SISTEMAS DE SEGUNDO ORDEN
- N6: ANALISIS DE LA RESPUESTA TEMPORAL PARA UN SISTEMA
DE SEGUNDO ORDEN
- N7: ANALISIS DE SISTEMAS DE TERCER ORDEN CON SIMULINK
- N8: ERROR EN ESTADO ESTABLE (e
ss
), EMPLEANDO SIMULINK



2008
FIEE 2
______________________________________________________________________
____________________________________________________________________________________
LABORATORIO N 1

MODELOS MATEMTICOS DE SISTEMAS LINEALES

Objetivos: - Conocer los comandos que sern de utilidad para el anlisis de
ecuaciones caractersticas de plantas industriales.
- Aplicar transformaciones de espacio de estado a espacio de Laplace.


ECUACIN CARACTERSTICA

Las races de la ecuacin caracterstica son los mismos valores propios de la Matriz A.
La ecuacin caracterstica (polinomial) de la matriz A se calcula con:

p=poly(A)

Adems las races de la ecuacin caracterstica p=0 se pueden obtener introduciendo la
orden:
r=roots(p)

Finalmente con las races de la ecuacin caracterstica se puede recuperar el polinomio
original con la orden:
q=poly(r)



Ejemplo #1: Sea la matriz
|
|
|

\
|

=
6 11 6
1 0 0
0 1 0
A
La orden poly(A), producir:

A=[0 1 0; 0 0 1;-6 -11 -6];
p=poly(A)

p=
1.0000 6.0000 11.0000 6.0000


que es la representacin del matlab del polinomio:

s
3
+ 6s
2
+ 11s + 6 = 0

Adems, las races de la ecuacin caracterstica (polinomial) son:

r=roots(p)

r=
-3.0000
-2.0000
-1.0000

y con las races de la ecuacin caracterstica, recuperamos el polinomio:

FIEE 3
______________________________________________________________________
____________________________________________________________________________________
q=poly(r)

q=
1.0000 6.0000 11.0000 6.0000



TRANSFORMACIN DE FT A SS Y DE SS A FT

Mediante el matlab, tambin es posible transformar un modelo matemtico de un sistema
lineal en otro modelo.

1.- De Funcin de Transferencia (tf) a Espacio de Estado (ss)

Se denota como: tf2ss
La orden: [A,B,C,D] = tf2ss(num,den)

Convierte el sistema de Funcin de Transferencia, representado por:


D B
A) (sI
C
den
num
U(s)
Y(s)
1
+
= =



a la representacin en Espacio de Estado:
Bu Ax
x
.
+ =
Du Cx y + =

2.- De Espacio de Estado (ss) a Funcin de Transferencia (tf)

Se denota como: ss2tf
Si el sistema tiene una entrada y una salida, la orden:

[num,den] = ss2tf(A,B,C,D,iu)

Convierte el sistema en Espacio de Estado, representado por:
Bu Ax
x
.
+ =
Du Cx y + =

a la Funcin de Transferencia:

D B
A) (sI
C
den
num
(s) U
Y(s)
1
1
+
= =



Ntese que el escalar iu, es un ndice dentro de las entradas del sistema y
especifica que entrada se va a emplear para la respuesta.


FIEE 4
______________________________________________________________________
____________________________________________________________________________________
Ejemplo#2:

Considerando el sistema siguiente, que tiene dos entradas:

|
|

\
|
|
|

\
|
+
|
|

\
|
|
|

\
|

=
|
|

\
|
2
1
2
1
2
1
u
u
1 0
0 1
x
x
3 2
1 0
x
x
&
&
( )
|
|

\
|
=
2
1
x
x
0 1 y


Se pueden obtener las dos funciones de transferencia del sistema presentado,
una relaciona la salida y con la entrada u
1
y la otra relaciona la salida y con la
entrada u
2
. No olvidar que estamos empleando el principio de superposicin, es
decir si se considera la entrada u
1
, se supone que la entrada u
2
es cero y
viceversa.

A=[0 1 ;2 3];
B=[1 0;0 1];
C=[1 0];
D=[0 0];

[num,den]=ss2tf(A,B,C,D,1)
num=
0 1 3
den=
1 3 2

[num,den]=ss2tf(A,B,C,D,2)
num=
0 0 1

den=
1 3 2

Por lo tanto, por la salida del matlab estamos obteniendo:


2 3s
s
3 s
(s) U
Y(s)
2
1 + +
+
=
2 3s
s
(s) U
Y(s)
2
2 + +
=
1




VALORES PROPIOS Y VECTORES PROPIOS
Debe tenerse en consideracin la siguiente regla;
Si A es real y simtrica, los valores propios sern reales, pero si A no es simtrica,
entonces los valores propios suelen ser nmeros complejos.
VALORES Y VECTORES PROPIOS REALES

Si A es una matriz de nxn, entonces los n nmeros satisfacen a:
Ax = x

FIEE 5
______________________________________________________________________
____________________________________________________________________________________
sern los valores propios de A. Estos mismos pueden ser encontrados con la orden:

eig(A)

la cual devuelve los valores propios en un vector columna.


Ejemplo #1: sea la matriz
|
|

\
|
=
3 4
2 1
A
A=[1 2;4 3];
eig(A)

ans=
-1
5

Es decir:
1
= -1

2
= 5

Ahora para obtener la matriz de Vectores propios (E) y la matriz diagonal obtenida de
aplicar la matriz E para diagonalizar a A, se puede aplicar la orden: [E,D]=eig(A)
asi:

Ejemplo #2: Dada la matriz A anterior

[E,D]=eig(A)

E =
-0.7071 -0.4472
0.7071 -0.8944

D =
-1 0
0 5


Ejemplo #3:
F=[0 1 0;0 0 1;-6 -11 -6]
[E,D]=eig(F)
E=
-0.5774 0.2182 -0.1048
0.5774 -0.4364 0.3145
-0.5774 0.8729 -0.9435

D=
-1.0000 0 0
0 -2.0000 0
0 0 -3.0000

Ntese que los vectores propios son normalizados o escalados (mdulo o norma igual a 1).

FIEE 6
______________________________________________________________________
____________________________________________________________________________________
Si los valores propios de una matriz son distintos, es decir los vectores propios son
linealmente independientes, entonces la matriz E diagonalizar a la matriz A.
Sin embargo si una matriz tiene valores propios repetidos es no diagonalizable o tambin
llamada defectiva.

Para estos casos, se emplear la matriz de Jordan de la siguiente manera:

Ejemplo #4:
A =[6 12 19;-9 -20 33;4 9 15];
[V,D] = eig(A)

V =
-0.4741 -0.4082 -0.4082
0.8127 0.8165 0.8165
-0.3386 -0.4082 -0.4082

D =
-1.0000 0 0
0 1.0000 0
0 0 1.0000


Como se aprecia existe un doble valor propio en =1, como puede apreciarse la segunda
y tercera columna de la supuesta matriz E son iguales, por lo que no existe
independencia lineal entre los vectores propios obtenidos. NOTESE QUE A PESAR DE
QUE LA MATRIZ ES SINGULAR, LA SOLUCION SATISFACE LA ECUACIN x=Ax.
Pero al aplicar esta matriz E para diagonalizar la matriz A obtenemos:


Ejemplo #5:
A=[6 12 19;-9 -20 -33;4 9 15];
E=[-0.4741 -0.4082 -0.4082;0.8127 0.8165 0.8165; -0.3386 -0.4082 -0.4082]
R=inv(E)*A*E

Warning: Matrix is singular to working precision.
R =
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN

Como apreciamos no es posible diagonalizar la matriz A, Nos indica error!!.
Entonces aplicando la matriz de Jordan, como sigue:


Ejemplo #6:
A=[6 12 19;-9 -20 -33;4 9 15];
[X,J]=Jordan(A)

X=
-1.7500 1.5000 2.7500
3.0000 -3.0000 -3.0000
-1.2500 1.5000 1.2500

FIEE 7
______________________________________________________________________
____________________________________________________________________________________
J =
-1 0 0
0 1 1
0 0 1

% Podemos comprobar la obtencin de la matriz cannica de Jordan asi:
% K=J
-1
A J

Ejemplo #7:
J=[-1.75 1.5 2.75;3 -3 -3;-1.25 1.5 1.25];
K=inv(J)*A*J

K =
-1.0000 0.0000 0.0000
0.0000 1.0000 1.0000
-0.0000 0.0000 1.0000


VALORES Y VECTORES PROPIOS COMPLEJOS

Ejemplo #8:
A =[0 -6 -1;6 2 -16;-5 20 -10];
lambda = eig(A)

lambda =
-3.0710
-2.4645+17.6008i
-2.4645-17.6008i

Que como apreciamos, los valores propios son complejos conjugados (2) y real (1).

La parte real de cada valor propios complejo conjugado es negativo, por lo que e
t
se
aproxima a cero a medida que t se incrementa.
Respecto a la solucin de la ecuacin diferencial, la parte imaginaria al ser diferente de
cero ( ), contribuye a la componente oscilatoria de sen t,.

As para obtener los valores propios y los vectores propios, podemos emplear:


Ejemplo #9:
[V,D] = eig(A)

V =
-0.8326 0.2003 - 0.1394i 0.2003 + 0.1394i
-0.3553 -0.2110 - 0.6447i -0.2110 + 0.6447i
-0.4248 -0.6930 -0.6930

D =
-3.0710 0 0
0 -2.4645+17.6008i 0
0 0 -2.4645-17.6008i
FIEE 8
______________________________________________________________________
____________________________________________________________________________________
LABORATORIO N 2

RESPUESTA DE SISTEMAS LINEALES EN TIEMPO CONTINUO


Objetivos: - Familiarizarnos en el trabajo con Simulink, en la aplicacin de
sistemas lineales en espacio de estados.
- Aplicar los comandos MatLab Function en sistemas de tiempo
continuo.

En la presente experiencia elaboraremos con el apoyo del SIMULINK, el sistema
siguiente, ADEMS SE DEJAR COMO TAREA AL ALUMNO, LA DETERMINACIN
DE LAS RESPUESTAS DE SALIDA y obtener las conclusiones respectivas.

Ejemplo #1: Supongamos que un sistema y(t) = N [u(t) , x(t
o
)], tiene las
siguientes ecuaciones:


o o o t t x t x t u D t x C t y
t u B t x A t x
= + =
+ =
, ) ( ), ( ) ( ) (
) ( ) ( ) (
.



Donde: [ ] ] 0 [ , 0 1 ,
1
0
,
0 1
1 0
= =

= D C B A

Este sistema se puede representar como sigue:





Que al implementar con simulink, su esquema ser el siguiente:
D

dt B C
A
x(t) x(t)
.
u(t)
y(t)
+

+
+
+
FIEE 9
______________________________________________________________________
____________________________________________________________________________________


Los bloques se obtienen de la siguiente manera:



Una vez arrastrados los elementos que sern parte del diagrama de bloques, se les
debe comenzar a definir, as como a involucrar las condiciones iniciales.
Para ello se considerarn los siguientes valores:

u
1
(t) = sin(t) x
01
(0) = [1 0]
t

u
2
(t) = cos(t) x
02
(0) = [0 1]
t

u
3
(t) = 2 sin(t) + 3 cos(t) x
03
(0) = [2 3]
t


Para nuestra demostracin implementaremos primeramente el u
3
(t) y x
03
(0), en el
esquema anterior, para ello:
- En el bloque MATLAB FUNCTION, definimos la funcin:
2*sin(u) + 3*cos(u)
Sinks
Sources
User-defined
Function
Math operations Continuous
Run
FIEE 10
______________________________________________________________________
____________________________________________________________________________________

- Definimos la matrices A, B, C y D, segn lo indicado al inicio.

- Definimos las condiciones iniciales haciendo doble clic en el bloque
INTEGRATOR, estas condiciones iniciales son de acuerdo a x
03
(0) = [2;3]

- Una vez logrado todo ello, se inicia la simulacin presionando RUN.

- Observar la respuesta temporal, si se debe realizar ajustes para observar
mejor dicha respuesta temporal (en el SCOPE), presione AUTOSCALE, que
se representa con la figura del LARGAVISTA.

Ahora implementaremos el esquema siguiente que trata en forma separada u
1
(t), u
2
(t)
y u
3
(t), mismos que sern visualizados en un mismo SCOPE, para ello se deber
emplear un Multiplexor.

- Implementar el siguiente esquema (de manera similar al anterior), para no
dibujar nuevamente todo, simplemente se selecciona todo y se copia dos
veces.
- El MULTIPLEXOR se encuentra en el conjunto SIGNAL ROUTING,
simplemente arrastrarlo hasta nuestro esquema y se insertar.



- En el Bloque N1, se implementar: u
1
(t) = sin(t) x
01
(0) = [1 0]
t
- En el Bloque N2, se implementar: u
2
(t) = cos(t) x
02
(0) = [0 1]
t
- En el Bloque N3, se implementar: u
3
(t) = 2sin(t)+3cos(t) x
03
(0) = [2 3]
t
- El procedimiento para definir las condiciones iniciales, es el mismo usado
anteriormente, as una vez definido todo, iniciar la simulacin presionando
RUN.

Bloque
N 1
Bloque
N 2
Bloque
N 3
FIEE 11
______________________________________________________________________
____________________________________________________________________________________
LABORATORIO N 3

GRFICOS EN 2D

Objetivos: - Familiarizar al estudiantes en los comandos relacionados a la
obtencin de respuestas grficas en dos y tres dimensiones.


Un procedimiento cotidiano en la aplicacin del MatLab es la presentacin de grficos,
por ello realizaremos una serie de experiencias para familiarizarnos con los comandos
aplicados para tal fin en 2D.

Entre los comandos para grficos en dos dimensiones, podemos mencionar:

A) Comando PLOT (plot(x,y)), Es la ms empleada y cuya sintaxis bsica se
indica en parntesis, es decir grafica el vector x versus el vector y, que
como pares ordenados tienen la forma (x(i) , y(i)) son unidos mediante
segmentos. La grfica presentada mostrar una forma suave, si existe
un nmero adecuado de puntos en su trazo

Ejemplo # 1: grafiquemos la onda seno

t = 0 : pi/100 : 2*pi; % definimos t desde 0 a 2
y = sin(t);
plot(t,y);
grid;
title('onda seno y = sin( t )'); % comando para poner ttulo al grfico
xlabel('( t )'); % etiqueta en eje X
ylabel('sin( t )'); % etiqueta en eje Y

que nos devuelve la siguiente grfica:

FIEE 12
______________________________________________________________________
____________________________________________________________________________________
B) Comando plot(x,y,S), el comando PLOT acepta una serie de
argumentos adicionales y opcionales sobre los puntos (x(i) , y(i)), asi como
el tipo de marcas, color de ellas, cmo se unen estos puntos. La
sintaxis es similar al visto en A), pero se aade una cadena de opciones
simbolizado con S.
1 COLUMNA 2 COLUMNA 3 COLUMNA


La primera columna especifica el color a emplear, la segunda la marca
sobre cada punto y la tercera columna el patrn que siguen las lneas
utilizadas para unir los puntos.


Ejemplo # 2: grafiquemos un coseno amortiguado con cinco (5)
presentaciones diferentes.

t = linspace(0,4,100); % genera 100 puntos entre 0 y 4
y = exp(-t).*cos(2*pi*t) ;
figure(1); plot(t,y, '.') % marca puntos
figure(2); plot(t,y, 'r-') % marca una lnea (-) roja (r)
figure(3); plot(t,y, 'ms--') % marca un cuadrado (s) magenta (m)
figure(4); plot(t,y, 'gh') % marca hexgonos (h) verdes (g)
figure(5); plot(t,y, 'kv :') % marca tringulos (hacia abajo) negras (k)


FIEE 13
______________________________________________________________________
____________________________________________________________________________________
El comando figure abre una ventana grfica asignndole un nmero. Si
la ventana ya esta abierta, la coloca como la ventana de salida por
defecto. En general figure permite manejar varios dibujos (ventanas) en
forma simultnea.
C) Comando plot(x,y,S,x1,y1,S1,x2,y2,S2,..,xn,yn,Sn), Si nuestro
deseo, hubiese sido el presentar varios grficos en la misma ventana, el
procedimiento es el siguiente:


Ejemplo # 3: grafiquemos cuatro curvas diferentes en la misma ventana

t = 0 : pi/40 : 6*pi; % definimos t desde 0 a 2
y = sin(t);
z = cos(t);
w = exp(-t*0.1);
v = y.*z;
plot(t,y,'r.',t,z,'b-',t,w,'g*',t,v,'k+'), grid

% la grfico del seno se presentar con puntos rojos, el coseno con un trazo
% azul, el exponencial con asteriscos verdes y el producto puntual de seno
% y coseno con signos + negros.



Un efecto similar al anterior, es decir varias grficas en una misma
ventana, se tendra si empleamos el comando hold on, que crea el
efecto de mantener (superponer) las graficas y no borrarlas.

FIEE 14
______________________________________________________________________
____________________________________________________________________________________
Ejemplo # 4: grafiquemos cuatro curvas diferentes en la misma ventana
(con el comando hold on)

t = 0 : pi/100 : 6*pi; % definimos t desde 0 a 2
y = sin(t);
z = cos(t);
w = exp(-t*0.1);
v = y.*z;
hold on; % superponer las grficas siguientes
plot(t,y,'r.');
plot(t,z,'b-') ;
plot(t,w,'g*') ;
plot(t,v,'k+'), grid % presentadas con grillas rectangulares





Para desactivar la superposicin, se emplea el comando hold off , de
forma que una nueva grfica dibujo borrar los anteriores.


D) Comando SUBPLOT (subplot(m,n,i)), Una ventana grfica se puede
dividir en m particiones horizontales y n verticales, con el objetivo de
representar mltiples grficas en ella. Cada una de estas
subventanas tiene sus propios ejes, aunque otras propiedades son
comunes a todas las grficas. La sintaxis bsica de este comando se
indica entre parntesis, donde m y n indican el nmero de subdivisiones
en filas y columnas, respectivamente, i es la subdivisin que se convierte
en activa indicando la posicin de la grfica. Las subdivisiones se
enumeran en forma consecutiva empezando en la primera fila


FIEE 15
______________________________________________________________________
____________________________________________________________________________________
Ejemplo # 5: grafiquemos en cuatro ventanas diferentes

t = 0 : pi/100 : 6*pi; % definimos t desde 0 a 2
y = sin(t);
z = cos(t);
w = exp(-t*0.1);
v = y.*z;
subplot(2,2,1), plot(t,y);
subplot(2,2,2), plot(t,z);
subplot(2,2,3), plot(t,w);
subplot(2,2,4), plot(t,v);



Un programa un poco ms elaborado que aplica subplot y que aade
caractersticas que se quieren resaltar como: ancho del trazo (linewidth) y
tamao de la letra (fontsize). Se aplica a continuacin:


Ejemplo # 6: grafiquemos en cuatro ventanas diferentes

t = 0 : pi/100 : 6*pi; % definimos t desde 0 a 2
y = sin(t);
z = cos(t);
w = exp(-t*0.1);
v = y.*z;
subplot(221), plot(t,y, 'linewidth',4); title('sin( t )', 'fontsize',8); grid
subplot(222), plot(t,z, 'linewidth',3); title('cos( t )', 'fontsize',10); grid
subplot(223), plot(t,w, 'linewidth',2); title('exp( -t*0.1 )', 'fontsize',12); grid
subplot(224), plot(t,v, 'linewidth',1); title('0.5 sin( 2t )', 'fontsize',14); grid

FIEE 16
______________________________________________________________________
____________________________________________________________________________________


Donde debe notarse:
- Que el contenido del comando subplot, ya no esta separado con parntesis, lo
que indica que no es necesario. subplot(1,2,3) = subplot(123)
- Que se ha jugado con diferentes anchos de lnea y tamao de letra, con el
nico propsito de visualizar las diferencias de tamao.
Se ha agregado grilla rectangular a cada grfico para una mejor presentacin.


Tarea para desarrollar por el estudiante:
Si se tienen tres grficos que por alguna razn deben presentarse por
separado, cules seran los comando para presentarlos en forma
vertical?, referirse a las funciones y = sen(t), z = cos(t), adems de w =
sen(t).cos(t)
FIEE 17
______________________________________________________________________
____________________________________________________________________________________
GRFICOS EN 3D
Al igual que en el caso de grficos en 2D, incluiremos aqu algunas instrucciones
comandos relativos al trazado de curvas superficies en 3D, no sin antes indicar que
una gran posibilidad que brinda el MatLab en los grficos en 3D, es la manipulacin en la
rotacin de los objetos graficados, ello permite una mejor visualizacin desde algn
punto de observacin deseado.

Entre los comandos para grficos en tres dimensiones, podemos mencionar:
A) Comando PLOT3 (plot3(x,y,z,S)), Es la ms empleada y cuya sintaxis
bsica se indica en parntesis, recordando que el S indica la posibilidad
de manipular algunas caractersticas, igual como la manejadas en 2D.
Ejemplo #1: demos una aplicacin

t = linspace(0,4,100); % genera 100 puntos entre 0 y 4
x = exp(-t) ;
y = cos(2*pi*t) ;
plot3(x,y,t, 'r-', 'linewidth',2) % marca una lnea roja de ancho 2
title('aplicacin del comando plot3', 'fontsize',14)
xlabel('exp( -t )', 'fontsize',14)
ylabel('cos( 2*pi*t )', 'fontsize',14)
zlabel(' t ', 'fontsize',14)
grid





Presionando el icono de ROTACION, se podr girar rotar la figura como desee.

ROTACION
FIEE 18
______________________________________________________________________
____________________________________________________________________________________
B) Comando SURF (surf(x,y,z)), dibuja superficies en el espacio y su
sintaxis bsica se indica entre parntesis, donde x e y especifican una
malla en el plano y z la altura correspondiente. El color que se da a
cada punto es por defecto, igual que a la altura.
Para construir la malla, aplicaremos el comando de MatLab meshgrid,
as, si x e y son dos vectores, este comando devuelve dos vectores que
contienen la informacin de la malla.

Ejemplo #2: aplicacin del meshgrid, en z = x
2
y
2


x = linspace(-4,4,40);
y = linspace(-4,4,40);
[X,Y] = meshgrid(x,y); % crea la malla en xy
Z = X.^2 - Y.^2;
surf(X,Y,Z)




C) Comando SURFL (surfl(x,y,z)), dibuja superficies en el espacio y su
sintaxis bsica se indica entre parntesis, donde x e y especifican una
malla en el plano y z la altura correspondiente. Su diferencia con surf,
es que en surfl , la l involucra iluminacin:

Ejemplo #3: aplicacin del meshgrid, en z = x
2
y
2


x = linspace(-4,4,40);
y = linspace(-4,4,40);
[X,Y] = meshgrid(x,y); % crea la malla en xy
Z = X.^2 - Y.^2;
surfl(X,Y,Z)
FIEE 19
______________________________________________________________________
____________________________________________________________________________________


En 3D, tenemos adems (ya para la investigacin de parte del alumno):

FIEE 20
______________________________________________________________________
____________________________________________________________________________________

LABORATORIO N 4

SEALES DE PRUEBA Y SISTEMAS DE SEGUNDO ORDEN

Objetivos: - Aplicar el MatLab en la generacin de seales de prueba y aplicar
los comandos que se usan para tal fin.
- Emplear las seales de prueba en aplicaiones de sistemas de
segundo orden.

SEALES DE PRUEBA

Ejemplo #1: Impulso Unitario

% Primero definimos el sistema
clf %Borrado de posibles grficos
a=1;
b=2;
s=zpk('s');
sys=1/((s+a)*(s+b));
figure(1)
impulse(sys) %Sintaxis bsica para respuesta impulsional
% Ahora variaremos el tiempo hasta 12 seg.
t=0:0.1:12;
figure(2) % lo representamos en otro grafico
impulse(sys,t) %Sintaxis de la funcin impulso definiendo el tiempo
% Ahora realizaremos una comparacin entre la funcin impulse
% y la respuesta temporal
y=impulse(sys,t); %Guardamos la salida en el vector y
figure(3)
plot(t,y,'g:') %Representamos la respuesta con el comando plot
f=(exp(-a*t)-exp(-b*t))/(b-a); %Respuesta temporal
hold on
plot(t,f,'r-.')
xlabel('Tiempo en segundos');
ylabel('Respuesta impulsional');
title('Respuesta impulsional y funcion temporal');

Ejemplo #2: Escaln Unitario

% Definicin de los dos sistemas con que trabajaremos:
sys1=tf([1],[1 0.5 1]);
sys2=tf([1],[1 0.5 4]);
% Representacin de la respuesta:
t=0:0.01:30; %Respuesta hasta los 30 s.
step(sys1,'r', sys2,'g',t); %Representacion en la misma grafica
% Aplicaremos rejilla y pondremos un titulo con text:
grid
text(5, 1.4,'Respuesta de dos sistemas','FontSize',13);
% Representacin de la entrada
t0 = -2.0:0.01:-0.01; % definicin u(t)=0, -2 t -.01
u0 = zeros(size(t0));
t1 = 0:0.01:30; % definicin u(t)=1, 0 t 25
FIEE 21
______________________________________________________________________
____________________________________________________________________________________
u1 = ones(size(t1));
t = [t0 t1]; % creamos t and u(t)
u = [u0 u1];
hold on
plot(t,u);
legend('Sistema 1','Sistema 2','Escalon unitario');


Ejemplo #3: Rampa Unitaria

% La respuesta a una entrada unitaria en rampa se obtiene como la respuesta
% a un salto unitario de G(s)/s
% Primero introducimos el numerador y denominador de G(s)/s
num=[1];
den=[1 1 1 0];
% Creamos el sistema
sys=tf(num,den);
% Especificamos el tiempo de calculo en 7 s.
t=0:0.1:7;
% Guardamos la respuesta en un vector c
c=step(sys,t)
% Al representar la respuesta a una rampa, aadimos la entrada de referencia
% La entrada de referencia es t. El comando plot es:
plot(t,c,'ro',t,t,'g-');
% Introducimos la rejilla y las etiquetas:
grid
title('Respuesta ante una rampa unitaria del sistema G(s)=1/(s^2+s+1)');
xlabel('t seg');ylabel('Amplitud');


Ejemplo #4: Sistema de segundo orden:

2
n
2
n
s
2

2
n
R(s)
Y(s)
F.T.
+ +
= =
En este ejemplo, trabajaremos con un n constante e igual a 1 (uno) y variaremos el
valor del Factor de Amortiguamiento (), con valores de 0.0, 0.5, 1.0 y 2.0.
La seal de prueba a utilizar ser un escaln unitario.

%En este ejemplo variaremos el parmetro zeta () en un sistema de Segundo Orden
clear all;
% Declaracin de los parmetros:
wn=1; % la frecuencia ser fija
zeta=[0 0.5 1 2]; % Variaremos zeta
t=0:15/200:(15-15/200);
% Por cada parmetro zeta almacenaremos la respuesta
% del sistema en una matriz y:
for n=1:length(zeta)
num=wn^2;
den=[1 2*zeta(n)*wn wn^2];
W=tf(num,den);
y(:,n)=step(W,t);
end;
% Representacin en 2D de la respuesta
FIEE 22
______________________________________________________________________
____________________________________________________________________________________
figure(1)
plot(t,y);xlabel('tiempo');ylabel('y(t)');
title('Respuesta de un sistema de segundo orden variando \zeta');
legend('\zeta=0 (sin amortiguamiento)',...
'\zeta=0.5 (Subamortiguado)',...
'\zeta=1 (Criticamente Amortiguado)','\zeta=2 (Sobreamortiguado)');
grid;





LABORATORIO N 5

RESPUESTA TEMPORAL EN SISTEMAS DE SEGUNDO ORDEN

La representacin genrica de un sistema de segundo orden, tiene el siguiente diagrama
de bloques y Funcin de transferencia:




n
2
n
2
n
2
w
s w 2
s
w
R(s)
Y(s)
+ +
=


Donde: es el factor de amortiguamiento
wn es la frecuencia natural no amortiguada

Para obtener la ubicacin de los polos del sistema, analizamos la ecuacin
caracterstica, es decir:
s
2
+ 2wn s + wn
2
= 0

las races de esta ecuacin son: s
1,2
= wn j wn 1
2


de aqu se pueden distinguir cuatro casos, respecto a la ubicacin de los polos y ele
sistema ser probado con una entrada en escaln unitario:


Caso I) Si: = 0 s
1,2
= j wn



Que como se observa se obtienen polos imaginarios puros, en este caso
la respuesta temporal es oscilatoria y de amplitud constante.


)
w
2 s ( s
w
n
n
2
+
Y(s) R(s) +

-
FIEE 23
______________________________________________________________________
____________________________________________________________________________________
% prueba en MatLab con una entrada en escaln unitario:
clear all;
% Declaracin de los parmetros:
t = [0:0.2:20];
wn = 1; % la frecuencia ser fija, sin perder generalidad
e = 0;
num = [wn^2];
den = [1 2*e*wn wn^2];
y = step (num,den,t);
plot(t,y);
title('Sistemas de segundo orden (\zeta = 0): Respuesta temporal a un escaln unitario');
xlabel('t (seg)');
ylabel('y(t)');
grid;




Caso II) Si: = 1 s
1,2
= wn


En este caso los polos obtenidos son reales e iguales, a este tipo de
sistema se le denomina crticamente amortiguado y la respuesta temporal
no es oscilatoria.


% prueba en MatLab con una entrada en escaln unitario:
clear all;
% Declaracin de los parmetros:
t = [0:0.2:20];
wn = 1; %la frecuencia ser fija, sin perder generalidad
e = 1;
FIEE 24
______________________________________________________________________
____________________________________________________________________________________
num = [wn^2];
den = [1 2*e*wn wn^2];
y = step (num,den,t);
plot(t,y);
title('Sistemas de segundo orden (\zeta = 1): Respuesta temporal a un escaln unitario');
xlabel('t (seg)');
ylabel('y(t)');
grid;




Caso III) > 1 s
1,2
= wn wn 1
2


Aqu se obtienen polos reales y diferentes, a este tipo de sistema se le
denomina sobre amortiguado y la respuesta temporal tampoco es
oscilatoria.


% prueba en MatLab con una entrada en escaln unitario:
clear all;
% Declaracin de los parmetros:
t = [0:0.2:20];
wn = 1; % la frecuencia ser fija, sin perder generalidad
e = 2;
num = [wn^2];
den = [1 2*e*wn wn^2];
y = step (num,den,t);
plot(t,y);
title('Sistemas de segundo orden (\zeta = 2): Respuesta temporal a un escaln unitario');
xlabel('t (seg)');
ylabel('y(t)');
grid;
FIEE 25
______________________________________________________________________
____________________________________________________________________________________




Caso IV) 0 < < 1 s
1,2
= wn j wn 1
2



En este caso, los polos obtenidos son complejos conjugados y al sistema
se el denomina sub amortiguado

% prueba en MatLab con una entrada en escaln unitario:
clear all;
% Declaracin de los parmetros:
t = [0:0.2:20];
wn = 1; %la frecuencia ser fija, sin perder generalidad
e = 1/2;
num = [wn^2];
den = [1 2*e*wn wn^2];
y = step (num,den,t);
plot(t,y);
title('Sistemas de segundo orden (\zeta = 1/2): Resp. temporal a un escaln unitario');
xlabel('t (seg)');
ylabel('y(t)');
grid;

FIEE 26
______________________________________________________________________
____________________________________________________________________________________


Pero podemos representar en un solo grfico, las diferentes respuestas para el caso
subamortiguado, cuando el factor de amortiguamiento vara en = 0; 1/2; 1y 2

% En el siguiente ejemplo variaremos en los valores 0, 0.5, 1 y 2:
clear all;
% Declaracin de los parmetros:
wn=1; %la frecuencia ser fija, sin perder generalidad
e=[0 0.5 1 2]; % Variamos
t=0:15/200:(15-15/200);
% Por cada parmetro e almacenaremos la respuesta
% del sistema en una matriz y:
for n=1:length(e)
num=wn^2;
den=[1 2*e(n)*wn wn^2];
y(:,n)=step(num,den,t);
end;
% Representacin en 2D de la respuesta
figure(1)
plot(t,y);
xlabel('t (seg)');
ylabel('y(t)');
title('Respuesta de un sistema de segundo orden variando \zeta');
legend('\zeta=0 (sin amortiguamiento)',...
'\zeta=0.5 (Subamortiguado)',...
'\zeta=1 (Criticamente Amortiguado)','\zeta=2 (Sobreamortiguado)');
grid;
FIEE 27
______________________________________________________________________
____________________________________________________________________________________


Finalmente, realizaremos un grfico, cuando el factor de amortiguamiento vara entre
valores de 0.1 a 0.9, en pasos de 0.1:

% En el siguiente ejemplo variaremos en los valores 0, 0.2, 0.4, 0.6, 0.8 y 1
clear all;
% Declaracin de los parmetros:
wn=1; %la frecuencia ser fija, sin perder generalidad
e=[0:0.2:1]; % Variamos
t=0:15/200:(15-15/200);
% Por cada parmetro e almacenaremos la respuesta
% del sistema en una matriz y:
for n=1:length(e)
num=wn^2;
den=[1 2*e(n)*wn wn^2];
y(:,n)=step(num,den,t);
end;
% Representacin en 2D de la respuesta
figure(1)
plot(t,y);
xlabel('t (seg)');
ylabel('y(t)');
title('Respuesta de un sistema de segundo orden variando \zeta');
grid;

FIEE 28
______________________________________________________________________
____________________________________________________________________________________



Envolventes de la respuesta temporal

Para finalizar este anlisis de los sistemas de segundo orden, involucraremos a las
envolventes de la respuesta temporal, es decir a las referidas por la atenuacin.
Por lo visto en clases, a partir de la Funcin de transferencia, se determin la respuesta
temporal para un sistema de segundo orden subamortiguado:


+
|

\
|

1
arctan t 1 w sen
1
e
1 y(t)
2
2
n
2
t w n
(t 0)

Donde: wd = wn 1
2
(wd, es la frecuencia natural
amortiguada)
= wn (, es la atenuacin)

Adems las envolventes de la respuesta temporal, estn dadas por:

y
1
e
1
2
t w n

1
e
1
2
t w n

+



FIEE 29
______________________________________________________________________
____________________________________________________________________________________
% Grfico que agrega a la respuesta temporal, las envolventes de atenuacin
clear all
% Declaracin de los parmetros:
t = [0:0.2:20];
wn=1;
e = 0; % se agregar =0, slo para notar la diferencia entre wn y wd
num=wn^2;
den=[1 2*e*wn wn^2];
y1=step(num,den,t);
e = 0.2; % se probar para = 0.2
num=wn^2;
den=[1 2*e*wn wn^2];
y2=step(num,den,t);
% envolventes referidas al = 0.2
env1 = 1 + ((exp(-e*wn*t)/(sqrt(1-e^2))));
env2 = 1 - ((exp(-e*wn*t)/(sqrt(1-e^2))));
plot(t,y1,t,y2,t,env1,t,env2);
title('Resp. temporal y envolventes referidas a la atenuacin')
xlabel('t (seg) ') ;
ylabel('y(t)') ;
grid ;


FIEE 30
______________________________________________________________________
____________________________________________________________________________________
LABORATORIO N 6

ANALISIS DE LA RESPUESTA TEMPORAL PARA UN
SISTEMA DE SEGUNDO ORDEN


Sea la respuesta temporal siguiente:



1.-Tiempo de crecimiento, (t
r
): Es el tiempo requerido para que la respuesta
aumente del 10 al 90%, del 5% al 95%,o del 0% al 100% de su valor final. Para sistemas
de su segundo orden subamortiguados se utiliza normalmente el tiempo crecimiento de
0% a 100%. Para sistemas sobreamortiguados se acostumbra usar el tiempo de
crecimiento de 10% a 90%.
El tiempo de crecimiento t
r
se obtiene haciendo c(t
r
) = 1,entonces
2
( ) 1 1 cos
1
n r
w t
r d r d r
c t e w t senw t

| |
| = = +
|

\

Luego:
2
0 cos
1
n
w t
d r d r
e w t senw t

| |
| = +
|

\

como 0
n
w t
e

entonces:
2
0 cos
1
d r d r
w t senw t

| |
| = +
|

\

FIEE 31
______________________________________________________________________
____________________________________________________________________________________
2
1
cos
d r n d
d r
d r n
senw t w w
tgw t
w t w


| |
= = =
|
\

entonces t
r
:
d
d
d
r
w
w
w
t

=
|

\
|
= arctan
1

Donde se muestra en la figura: ) ( arccos ) cos(

= = =
n
n


2.-Tiempo de pico, (t
p
): Es el requerido para que la respuesta alcance el primer pico
de sobreimpulso. Para hallar el tiempo derivamos c(t) e igualamos a cero para obtener
un mximo, luego:
2 2
2
( )
cos cos 0
1 1
( )
0
1
n p n p
p
n p
p
w t w t
d
n d p d p d d p d p
t
w t
n
d p
t
w dc t
w e w t senw t e w senw t w t
dt
w dc t
e senw t
dt

| | | |
| | = + + + =
| |

\ \
| |
| = =
|

\

como _ 0
n
w t
n
e y w


0
d p d p p
d
n
senw t w t n t
w

= = =
Como el tiempo pico corresponde al primer pico de sobreimpulso (n=1), por lo tanto:

p
d
n
t
w

=

3.-Sobreimpulso mximo (porcentual), M
p
: Es el valor pico mximo de al curva de
respuesta medido desde la unidad. Si el valor final estabilizado de la respuesta difiere de
la unidad, se suele utilizar el sobreimpulso porcentual porcentual mximo. Esta definido
por:
( ) ( )
max 100%
( )
p
c t c
Sobrempulsoporcentual imo x
c

=


-
n
2
1
n


FIEE 32
______________________________________________________________________
____________________________________________________________________________________
El sobreimpulso mximo corresponde al tiempo pico (t
p
),luego evaluando M
p
(t
p
)
2 2
2
( ) 1 1 cos 1 cos
1 1
_ , :
cos
1
n p n p
n n
d d
w t w t
p p d p d p d p d p
p
d
w w
w w
p
M c t e w t senw t e w t senw t
como t reemplazando
w
M e sen e






| | | |
| | = = + = +
| |

\ \
=
| |
| = + =
|

\

Por lo tanto el M
p
ser:
(%) 100
n
d d
d
w
w w
p
w
p
M e e
M e

= =
=


4.-Tiempo de establecimiento, (t
s
): Es el que la curva de respuesta requiere
alcanzar y mantenerse en un rango alrededor del valor final con una magnitud especifica
por el porcentaje absoluto del valor final (habitualmente 2% o 5%). El tiempo de
establecimiento esta relacionado con la constante tiempo mayor del sistema de control.
El criterio para fijar el porcentaje de error a utilizar depende de los objetivos de diseo del
sistema en cuestin.
Las curvas
2
1
1
n
w t
e

son las curvas envolventes de la respuesta transitoria a una


entrada escaln unitario. La curva de respuesta se mantiene dentro del par de curvas
envolventes, la constante de tiempo de estas curvas envolventes es
1
n
w
.
La velocidad de propagacin de la respuesta transitoria depende del valor de la
constante de tiempo
1
n
w
. Para un valor dado, el tiempo de establecimiento t
s
es una
funcin de la relacin de amortiguamiento .

El tiempo de establecimiento correspondiente a una banda de tolerancia del 2% o 5%
se puede medir en terminos de la constante de tiempo T=
1
n
w
.
Para el criterio del 2%, tenemos:

2% 0.02 ln(0.02)
n s n s
w t w t
n s
e e w t


= = =

3.912 4
(2%)
s
n n
t
w w
=

Similarmente para el criterio del 5%, tenemos:

5% 0.05 ln(0.05)
n s n s
w t w t
n s
e e w t


= = =

2.9957 3
(5%)
s
n n
t
w w
=
FIEE 33
______________________________________________________________________
____________________________________________________________________________________
LABORATORIO N 7

ANALISIS DE SISTEMAS DE TERCER ORDEN CON SIMULINK

Objetivos: - Confirmar el efecto de un tercer polo en un sistema de segundo
orden.
- Verificar el concepto de polos dominantes en la respuesta
temporal.


Analizaremos el efecto del tercer polo, en el caso de los sistemas de Tercer Orden
aplicando SIMULINK, es decir el procedimiento ser el siguiente:

- Ubicaremos dos polos complejos conjugados, mismos que fijaremos como
referencia.
- Agregaremos un tercer polo (real) y lo desplazaremos, para verificar como afecta
la respuesta temporal de acuerdo a su posicin con respecto a los polos
conjugados complejos.
Asumamos que los polos complejos conjugados son:
2
3
j
2
1
s
1,2
=




Construyamos el sistema en Simulink, asi:
1.- Ingresemos a Simulink


jw
-p
-
1

s
1
s
2
FIEE 34
______________________________________________________________________
____________________________________________________________________________________
2.- Una vez dentro de simulink, se nos presenta:



3.- Debemos abrir un nuevo modelo, que es la ventana donde elaboraremos nuestro
sistema a probar, es as que se nos presentar:


FIEE 35
______________________________________________________________________
____________________________________________________________________________________

4.- A partir de este momento, ya podemos implementar nuestro diagrama de
bloques, as que requerimos una seal de excitacin, que para nuestros caso
emplearemos un escaln unitario, mismo que se obtendr de la familia
SOURCES.



Es as que cogeremos al bloque escaln y lo arrastramos con ayuda del mouse
hasta insertarlo en nuestro diseo nuevo, y nos quedar as:



Luego agregaremos el bloque que representar al sistema de segundo orden,
que lo obtendremos de la familia CONTINUOUS, con el nombre de TF (Transfer
Function). Finalmente para la observacin de la respuesta temporal agregaremos
un SCOPE que se obtiene de la familia SINKS, quedando ya unidos as:

FIEE 36
______________________________________________________________________
____________________________________________________________________________________




5.- El siguiente paso ser cambiar de posicin el polo del bloque SIST. DE 1
ORDEN en una de tres ubicaciones independientemente, as:
a) s = - 5 Para que el comportamiento sea como un sistema de 2 orden
b) s = - 0.5 Para comprobar como se atena el sobrepico
c) s = - 0.05 Para que el comportamiento sea como un sistema de 1 orden

NOTAS FINALES:
- para variar la Funcin de Transferencia a cualquiera deseada, se debe
hacer doble clic en el bloque respectivo y aparecer la siguiente
ventana:


FIEE 37
______________________________________________________________________
____________________________________________________________________________________

- para variar los parmetros del escaln, hacer doble clic en l y
aparecer:



- si se desea variar la escala de tiempo, de la muestra en el SCOPE,
ingresar a la opcin SIMULATION y dentro en la opcin SIMULATION
PARAMETERS, que presentar la siguiente ventana:



Donde se puede ajustar el tiempo de inicio (start time) y de final (stop
time) de la simulacin.


Finalmente, entonces CMO AFECTA ESTE TERCER POLO EN LA RESPUESTA
TEMPORAL DEL SISTEMA? , apliquemos lo indicado anteriormente y de de acuerdo a
lo observado, pero aplicando MatLab:
Entonces tendremos la siguiente funcin de transferencia:

FIEE 38
______________________________________________________________________
____________________________________________________________________________________

2
2 2 2
( ) 25
( ) 2 4 25
n
n n
w Y s
R s s w s w s s
= =
+ + + +


Donde la respuesta a un escaln unitario es:





Veamos como afecta un tercer polo:

2
2 2 2
( ) 25
( ) ( 2 )( ) ( 4 25)( )
n
n n
w p Y s p
R s s w s w s p s s s p
= =
+ + + + + +



1er caso): 0.4*5 2 = = ,entonces p>2 (estamos usando atenuacin de 0.4)



FIEE 39
______________________________________________________________________
____________________________________________________________________________________
2do caso): p=2




3er caso): p<2


OBSERVACIONES:

- En el caso 1 se nota con la ayuda de Matlab, que a medida que el polo real se aleja
del eje jw, el sistemas comporta como uno de 2do orden. Dominando los polos
conjugados.
- En el caso 2, el sistema se comporta como uno de 3er orden, aqu no se puede
hablar de los polos dominantes ya que son muy prximos, el polo agregado
obviamente producen otros trminos de la respuesta en estado estable en la
solucin, el polo real introduce trminos exponenciales en la respuesta transitoria
- En el caso 3, con la ayuda del Matlab, a medida que el polo real se aleja mas de los
polos conjugados (se acerca al eje jw), el sistema se comporta como uno de 1er
orden ya que ahora el polo dominante es el polo real.

FIEE 40
______________________________________________________________________
____________________________________________________________________________________
LABORATORIO N 8

ERROR EN ESTADO ESTABLE (e
ss
), EMPLEANDO SIMULINK


Objetivos: - Confirmar mediante la aplicacin de simulink, la magnitud del
error en estado estable para diferentes tipos de sistemas y
diferentes seales de prueba.


Un parmetro importantsimo en la teora de control es el error en estado estable, quien
esta ntimamente ligado a la ubicacin de los polos, en el diagrama zero-polar.
En esta experiencia, haremos una serie de pruebas a sistemas tipo 0, tipo 1 y tipo 2, con
seales de prueba que sern especficamente escaln y rampa unitarias.
Las simulaciones las aplicaremos a la Funcin de Transferencia en Lazo Abierto
siguientes y empleando el SIMULINK:

- sistema tipo 0:
2) 1)(s (s
1.06
G(s)
+ +
=

- sistema tipo 1:
2) 1)(s (s s
1.06
G(s)
+ +
=

- sistema tipo 2:
2) 1)(s (s
s
1.06
G(s)
2
+ +
=


Procedimiento general:

- Ingresar al ambiente de SIMULINK y abrir una hoja nueva donde
implementaremos nuestro diagrama de bloques.
- Se implementar el siguiente diagrama de bloques:





1.- Prueba con escaln unitario

1.- Implementar el esquema siguiente con el sistema tipo 0:

G(s)
Y(s) R(s) +

-
FIEE 41
______________________________________________________________________
____________________________________________________________________________________


2.- Realizar la simulacin y medir el ess.
3.- Repetir los pasos 1 y 2 para los sistemas tipo 1 y tipo 2, experimentar la
variacin que se produce en error en estado estable.
4.- Los resultados eran fueron los esperados por Ud.?


2.- Prueba con rampa unitaria

1.- Implementar el esquema siguiente con el sistema tipo 0:




2.- Realizar la simulacin y medir el ess.
3.- Repetir los pasos 1 y 2 para los sistemas tipo 1 y tipo2, experimentar la
variacin que se produce en error en estado estable.
4.- Los resultados fueron los esperados por Ud.?, indique sus
observaciones y conclusiones.

You might also like