12
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE INGENIERÍA MECÁNICA INGENIERIA DE CONTROL MT-221 2015-1 Laboratorio 2 Introducción al Matlab (parte 2) Objetivo. El alumno se familiariza en el entorno Matlab usando comandos comunes para Ingeniería de Control. Versión utilizada. 2009a / 2010a En este segundo laboratorio vamos a realizar ejercicios sobre comandos más básicos asociados con operaciones comunes en ingeniería de control. No olvide que: [ ] Utilizado para formar vectores y matrices ( ) Precedencia de expresión matemática , Separa elementos y argumentos de función ; Final de filas. También suprime el resultado de un comando u operación : Generación de vectores. j : k significa [ j j+1 … k] A(: , j) significa j-ésima columna de A A(i , :) significa i-ésima fila de A ¡ Ejecución de orden del sistema operativo % Comentarios para explicar pasos de un algoritmo Procedimiento Ejecute el programa Matlab, la versión que disponga Por ejemplo: Matlab 2009a 1

Lab 2 Comandos de Matlab en Ingeniería de Control

Embed Size (px)

DESCRIPTION

good

Citation preview

UNIVERSIDAD NACIONAL DE INGENIERA

FACULTAD DE INGENIERA MECNICA

INGENIERIA DE CONTROL MT-221 2015-1

Laboratorio 2

Introduccin al Matlab (parte 2)

Objetivo. El alumno se familiariza en el entorno Matlab usando comandos comunes para Ingeniera de Control.

Versin utilizada. 2009a / 2010a

En este segundo laboratorio vamos a realizar ejercicios sobre comandos ms bsicos asociados con operaciones comunes en ingeniera de control.

No olvide que:

[ ]Utilizado para formar vectores y matrices

( )Precedencia de expresin matemtica

,Separa elementos y argumentos de funcin

;Final de filas. Tambin suprime el resultado de un comando u operacin

:Generacin de vectores. j : k significa [ j j+1 k]

A(: , j)significa j-sima columna de AA(i , :) significa i-sima fila de A

Ejecucin de orden del sistema operativo

%Comentarios para explicar pasos de un algoritmo

Procedimiento

Ejecute el programa Matlab, la versin que disponga

Por ejemplo: Matlab 2009a

En el smbolo de comandos del Matlab realice los siguientes ejercicios:

Ejercicios asociados con la ecuacin caracterstica

1. Sea la matriz A = [0 1 0; 0 0 1; -6 -11 -6];

Se va a determinar las races de la ecuacin caracterstica que coinciden con los de los valores propios de A. para ello para poder determinar esta ecuacin usaremos el comando poly:

p = poly(A);

Escriba la respuesta p = 1.0000 6.0000 11.0000 6.0000

2. Luego para determinar las races de la ecuacin caracterstica se ejecuta el comando roots(p):

r = roots(p)

Escriba el resultado de r r = -3.0000

-2.0000

-1.0000

3. Si r representa a las races de un polinomio, luego, construya el polinomio q(s) a partir de las races r.

(s+3)(s+2)(s+1) = s3+6s2+11s+6

4. El polinomio que usted ha escrito en el paso anterior, comprelo usando nuevamente el comando poly(r), donde r representa las races de la ecuacin caracterstica

q = poly(r) = [1.0000 6.0000 11.0000 6.0000]

Existe algn cambio entre el resultado de poly(A) y poly(r)? Explique adecuadamente.

No. El comando poly() en una matriz, me genera la ecuacin caracterstica, asi mismo para las races, me vuelve a generar la misma ecuacin caracterstica.

Operaciones con polinomios

Sea a(s) = s2 20.6 y b(s) = s2 + 19.6s + 151.2

5. Para multiplicar dos polinomios, se usa el comando conv(a,b). Cabe resaltar que el producto de polinomios es la convolucin de los coeficientes que tienen cada polinomio.

Para obtener la convolucin o multiplicacin se hace de esta manera

a = [1 0 -20.6];

b = [1 19.6 151.2];

c = conv(a,b);

Escriba el polinomio resultante de esta manera:

( 1 )s4 + ( 19.6 )s3 + ( 130.6 )s2 + ( -403.8 )s + ( -3114.72)

6. Para dividir (deconvolucin) entre polinomios use la funcin deconv():

[q,r]= deconv(c,a), donde: q es el cociente y r es el residuo

Explique el significado de los coeficientes de q como de r cuando haya ejecutado el comando deconv()

deconv(c,a)= 1.0000 19.6000 151.2000 ; Solo se obtuvo el cociente, pero no se obtuvo el residuo

[q,r]= deconv(c,a)

q =

1.0000 19.6000 151.2000

r =

0 0 0 0 0

Cul es la diferencia de escribir el comando deconv(c,a) y [q,r]=deconv(c,a)?

Al ejecutar deconv(c,a), se obtuvo solo el cociente, sin embargo al ejecutar [q,r]=deconv(c,a), se obtuvo tanto el cociente como el residuo.

7. Si se quiere evaluar una funcin en un valor especfico, se aplica el siguiente comando:

Si p(s) = 3s2 + 2s + 1. Y si s = 5, luego:

p = [3 2 1];

polyval(p,5)

ans = 86 (verificar)

Luego, si p = s5 + s4 + 2s3 + s2 +1, evale p en s = 2

ans = 35

Matrices de utilidad

En Matlab existe una lista de matrices muy tiles para la programacin

ones(n)matriz de unos de orden n x n

ones (m,n)matriz de unos de orden m x n

ones(A)se escribe unos del mismo tamao de la matriz A

zeros(n)

zeros (m,n)

zeros(A)

diag([ones(1,n)])

Utilice el help de Matlab y explique y ponga ejemplos del uso de los comandos en mencin

ones(3) = 1 1 1

1 1 1

1 1 1

ones(2,3)= 1 1 1

1 1 1

A=[1 2 3;2 1 3]

Ones(size(A))= 1 1 1

1 1 1

zeros(4)= 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

zeros(size(A))= 0 0 0

0 0 0

8. Escriba la matriz despus de haber aplicado los siguientes comandos y dando una breve explicacin del caso :

a) eye(5)

b) Cul es la diferencia entre aplicar el comando x = [ones(1,5)] y diag([ones(1,5)])?

a) eye(5) = 1 0 0 0 0 Al ejectuar el comando se genera la matriz

0 1 0 0 0 identidad.

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

b)

x = [ones(1,5)] = 1 1 1 1 1 Es una matriz fila.

y= diag(ones(1,5))= 1 0 0 0 0 Es una matriz identidad.

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

9. Qu significa aplicar el comando diag(1:5), diag(0:4)?

diag(1:5)= 1 0 0 0 0 Son matrices, en donde la diagonal es una

0 2 0 0 0 sucesin aritmtica ascendente de razn

0 0 3 0 0 por defecto 1.

0 0 0 4 0

0 0 0 0 5

diag(0:4)= 0 0 0 0 0

0 1 0 0 0

0 0 2 0 0

0 0 0 3 0

0 0 0 0 4

Representacin grfica de curvas

10. Se presentan tres cdigos fuente en Matlab. Grafique los resultados de estos programas Explicando el resultado, usando comentarios simbolizados con % (comando comentario).

a) t = 0:0.05:10 %Es el domino de las funciones.y = sin(t);z = cos(t);plot(t,y,o,t,z,x) %Grafica las funcionesgrid %Son las lneas punteadas(horizontales y verticales)title(Grficas del seno y coseno) % Es el ttulo de la graficaxlabel(Seg) %Es el nombre que se le asigna eje horizontalylabel(y=sen(t); z=cos(t)) %Es el nombre que se le asigna al eje verticaltext(3,0.45,sen(t)) %Sirve para personalizar las a las grficastext(0.8,-0.3,cos(t)) %Sirve para personalizar las a las grficas

b) t = 0:025:10; %dominio de las funcionesy = sin(t);z = cos(t);plot(t,y,t,z), text(t,y,y), text(t,z,z) %muestra las graficasgrid % muestra las lneas discontinuas(vertical y horizontal)title(Grficas del seno y coseno) %titulo de la graficaxlabel(Seg) %nombre del eje horizontalylabel(y=sen(t); z=cos(t)) %nombre del eje vertical

c) x = 0:0.1:3; %dominio de las funcionesy = x.^2; plot(x,y) %muestra la graficagrid %muestra las lneas discontinuas (H y V)title(Grfica de y = x^2) %titulo de la graficaxlabel(x) %nombre del eje horizontalylabel(y) %nombre del eje vertical.

11. Qu modificaciones hara a la codificacin del programa 10.c para lograr la curva de la figura siguiente, sabiendo que la funcin y ha cambiado a y = x3 -20x.

x = -6:0.1:6; %cambiamos el dominio

y = x.^3-20.*x; %cambiamos la funcion

plot(x,y)

grid

title('Grfica de y = x^3-20x') %cambiamos el nombre del titulo

xlabel('x')

ylabel('y')

Observe que hay una serie de errores entre la codificacin y la informacin que muestra la grfica.

Modelos matemticos de sistemas lineales

Matlab tiene varios comandos muy tiles para transformar un modelo matemtico de un sistema lineal en otro modelo:

a) Funcin de transferencia a espacio de estado[A,B,C,D] = tf2ss(num,den)espacio funcin de

estado transferencia

Segn la informacin de A, B, C y D, la representacin de espacios de estado es:

b) Espacio de estado a funcin de transferencia[num,den] = ss2tf(A,B,C,D) cuando el sistema tiene una entrada y una salida[num,den] = ss2tf(A,B,C,D, iu) cuando el sistema tiene ms de una entrada (iu=1,2,3) y una salida

c) Descomposicin en fracciones parciales de la funcin de transferencia

Sea la funcin de transferencia:

num = [b(1) b(2) b(n)]den = [a(1) a(2) a(n)]

Donde a(1) es diferente de cero. Pero los otros coeficientes pueden ser ceros.

Luego la descomposicin de fracciones parciales se hace usando el comando:

[r,p,k] = residue(num,den). Segn esto:

+

12. Sea el siguiente sistema con entradas u1 y u2

Se quiere determinar la descomposicin en fracciones parciales, segn las entradas u1 y u2. Para ello use esta informacin:

A = [0 1; -2 -3];

B = [1 0; 0 1];

C = [1 0];

D = [0 0];

Se aplicar el comando [num,den] = ss2tf(A,B,C,D,1) y [num,den] = ss2tf(A,B,C,D,2)

Recordando que el parmetro 1 corresponde la funcin de transferencia respecto a la entrada u1 y el parmetro 2 corresponde la funcin de transferencia respecto a la entrada u2.

Segn el resultado de aplicar este comando, luego exprese:

13. Considere la siguiente funcin de transferencia

Donde num = [2 5 3 6] y den = [1 6 11 6]

Luego [r,p,k] = residue(num,den)

Demuestre que el resultado de la descomposicin de fracciones parciales resulta

r = p =

-6.0000 -3.0000

-4.0000 -2.0000

3.0000 -1.0000

k =

2

14. Si aplica el comando [num,den] = residue(r,p,k), qu resulta?

num =

2.0000 5.0000 3.0000 6.0000

den =

1.0000 6.0000 11.0000 6.0000

Justifique su respuesta

Nos resulta la funcin transferencia.

B(s) =

A(s)=

Referencias: Ingeniera de Control, K. Ogata

Preparado por Ing. Gustavo Mesones Mlaga, MSc.

Este laboratorio se entregar hasta el sbado 11 de abril de 2015 en horas de clase

10

-6-4-20246

-100

-80

-60

-40

-20

0

20

40

60

80

100

Grfica de y = x

2

x

y