Está en la página 1de 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 (ess), 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)

0 1 0

Ejemplo #1: Sea la matriz A= 0 0 1
6 11 6

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:

s3 + 6s2 + 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:

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

a la representacin en Espacio de Estado:


.
x = Ax + Bu

y = Cx + Du

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:


.
x = Ax + Bu

y = Cx + Du

a la Funcin de Transferencia:

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

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:

x& 1 0 1 x1 1 0 u1 x1
= + y = ( 1 0 )
x& 2 2 3 x2 0 1 u2 x2

Se pueden obtener las dos funciones de transferencia del sistema presentado,


una relaciona la salida y con la entrada u1 y la otra relaciona la salida y con la
entrada u2. No olvidar que estamos empleando el principio de superposicin, es
decir si se considera la entrada u1, se supone que la entrada u2 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:

Y(s) s+3 Y(s) 1


= =
U1(s) s 2 + 3s + 2 U2(s) s 2 + 3s + 2

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.

1 2
Ejemplo #1: sea la matriz A =
4 3
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:


-1
% K=J 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 et 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(to)], tiene las
siguientes ecuaciones:

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

0 1 0
Donde: A= , B = , C = [1 0] , D = [0]
1 0 1

Este sistema se puede representar como sigue:

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

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


FIEE 9
______________________________________________________________________

Los bloques se obtienen de la siguiente manera:

Run
Math operations Continuous

Sources
User-defined
Function Sinks

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:

u1(t) = sin(t) x01(0) = [1 0]t


u2(t) = cos(t) x02(0) = [0 1]t
u3(t) = 2 sin(t) + 3 cos(t) x03(0) = [2 3]t

Para nuestra demostracin implementaremos primeramente el u3(t) y x03(0), en el


esquema anterior, para ello:
- En el bloque MATLAB FUNCTION, definimos la funcin:
2*sin(u) + 3*cos(u)
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 x03(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 u1(t), u2(t)
y u3(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.

Bloque
N 1

Bloque
N 2

Bloque
N 3

- En el Bloque N1, se implementar: u1(t) = sin(t) x01(0) = [1 0]t


- En el Bloque N2, se implementar: u2(t) = cos(t) x02(0) = [0 1]t
- En el Bloque N3, se implementar: u3(t) = 2sin(t)+3cos(t) x03(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.
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

ROTACION

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


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 = x2 y2

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 = x2 y2

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:

Y(s) n2
F.T. = =
R(s) s 2 + 2 + 2
n n
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:

R(s)+ wn
2 Y(s)
s ( s + 2 wn )
-

Y(s) wn 2
=
R(s) s 2 + 2 wn s + wn 2

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:
s2 + 2wn s + wn2 = 0

las races de esta ecuacin son: s1,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 s1,2 = j wn

Que como se observa se obtienen polos imaginarios puros, en este caso


la respuesta temporal es oscilatoria y de amplitud constante.
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 s1,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 s1,2 = wn wn 2 1

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 s1,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:


e wn t 1 2
y(t) = 1 sen wn 1 2 t + arctan (t 0)

1 2

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:

e wn t e wn t
1 y 1+
1 2 1 2
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, (tr ): 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 tr se obtiene haciendo c(tr) = 1,entonces


c(tr ) = 1 = 1 e wn tr cos wd tr + senwd tr
1 2

Luego:


0 = e wnt cos wd tr + senwd tr
1 2

como e wnt 0 entonces:


0 = cos wd tr + senwd tr
1 2

FIEE 31
______________________________________________________________________

senwd tr 1 2 wn wd
tgwd tr = = =
cos wd tr wn
1 w
entonces tr: tr = arctan d =
wd wd
n
Donde se muestra en la figura: cos( ) = = = arccos ( )
n

n 1 2


-n

2.-Tiempo de pico, (tp): 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:

dc(t ) w t
w t wd
= wn e n p cos wd t p + senwd t p + e n p wd senwd t p + cos wd t p = 0
dt t p 1 2 1 2

dc(t ) w t
w
=e np n
senwd t p = 0
dt t p 1 2

wn t
como e y _ wn 0
n
senwd t p = 0 wd t p = n t p =
wd
Como el tiempo pico corresponde al primer pico de sobreimpulso (n=1), por lo tanto:

n
tp =
wd

3.-Sobreimpulso mximo (porcentual), Mp: 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:
c(t p ) c()
Sobrempulsoporcentual max imo = x100%
c ( )
FIEE 32
______________________________________________________________________
El sobreimpulso mximo corresponde al tiempo pico (tp),luego evaluando Mp(tp)

wnt p
w t

M p = c(t p ) 1 = 1 e cos wd t p + senwd t p 1 = e n p cos wd t p + senwd t p
1 2 1 2


como _ t p = , reemplazando :
wd
wn

wn w
M p = e wd
cos + sen = e d

1 2

Por lo tanto el Mp ser:



wn
wd wd
Mp = e =e


wd
M p (%) = e 100

4.-Tiempo de establecimiento, (ts): 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.
e wnt
Las curvas 1 son las curvas envolventes de la respuesta transitoria a una
1 2
entrada escaln unitario. La curva de respuesta se mantiene dentro del par de curvas
1
envolventes, la constante de tiempo de estas curvas envolventes es .
wn
La velocidad de propagacin de la respuesta transitoria depende del valor de la
1
constante de tiempo . Para un valor dado, el tiempo de establecimiento ts es una
wn
funcin de la relacin de amortiguamiento .

El tiempo de establecimiento correspondiente a una banda de tolerancia del 2% o 5%


1
se puede medir en terminos de la constante de tiempo T= .
wn
Para el criterio del 2%, tenemos:

e wnts = 2% e wn ts = 0.02 wn t s = ln(0.02)

3.912 4
ts (2%) =
wn wn

Similarmente para el criterio del 5%, tenemos:

e wnts = 5% e wnts = 0.05 wn ts = ln(0.05)

2.9957 3
ts (5%) =
wn wn
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.
1 3
Asumamos que los polos complejos conjugados son: s1,2 = j
2 2

jw

s1

-1
-p

s2

Construyamos el sistema en Simulink, asi:


1.- Ingresemos a Simulink
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
______________________________________________________________________

Y (s) wn2 25
= 2 2
= 2
R( s ) s + 2 wn s + wn s + 4s + 25

Donde la respuesta a un escaln unitario es:

Veamos como afecta un tercer polo:

Y (s) wn2 p 25 p
= 2 2
= 2
R( s ) ( s + 2 wn s + wn )( s + p) ( s + 4s + 25)( 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 (ess), 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:

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

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

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

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:

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

1.- Prueba con escaln unitario

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


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.

También podría gustarte