Lab 2 Comandos de Matlab en Ingeniería de Control.docx
Click here to load reader
-
Upload
jesus-ernesto-peralta-huasasquiche -
Category
Documents
-
view
7 -
download
3
Transcript of Lab 2 Comandos de Matlab en Ingeniería de Control.docx
UNIVERSIDAD NACIONAL DE INGENIERÍAFACULTAD 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 AA(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
En el símbolo de comandos del Matlab realice los siguientes ejercicios:
Ejercicios asociados con la ecuación característica
1. Sea la matriz A = [0 1 0; 0 0 1; -6 -11 -6];
1
Se va a determinar las raíces de la ecuación característica que coinciden con los de los valores propios de A. para ello para poder determinar esta ecuación usaremos el comando poly:
p = poly(A);
Escriba la respuesta p = 1.0000 6.0000 11.0000 6.0000
2. Luego para determinar las raíces de la ecuación característica 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 raíces de un polinomio, luego, construya el polinomio q(s) a partir de las raíces r.
(s+3)(s+2)(s+1) = s 3 +6s 2 +11s+6
4. El polinomio que usted ha escrito en el paso anterior, compárelo usando nuevamente el comando poly(r), donde r representa las raíces de la ecuación característica
q = poly(r) = [1.0000 6.0000 11.0000 6.0000]
¿Existe algún cambio entre el resultado de poly(A) y poly(r)? Explique adecuadamente.
No. El comando poly() en una matriz, me genera la ecuación característica, asi mismo para las raíces, me vuelve a generar la misma ecuación característica.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 convolución de los coeficientes que tienen cada polinomio.
Para obtener la convolución o multiplicación 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)
2
6. Para dividir (deconvolución) entre polinomios use la función 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.2000r = 0 0 0 0 0
¿Cuál 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 función en un valor específico, 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, evalúe p en s = 2ans = 35Matrices de utilidadEn Matlab existe una lista de matrices muy útiles para la programación
ones(n) matriz de unos de orden n x nones (m,n) matriz de unos de orden m x nones(A) se escribe unos del mismo tamaño de la matriz Azeros(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 mención
ones(3) = 1 1 1 1 1 1 1 1 1
ones(2,3)= 1 1 1 1 1 1
3
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 después de haber aplicado los siguientes comandos y dando una breve explicación del caso :
a) eye(5)b) ¿Cuál 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 1b)
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 sucesión aritmética ascendente de razón 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
4
Representación gráfica de curvas
10. Se presentan tres códigos 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 líneas punteadas(horizontales y verticales)title(‘Gráficas del seno y coseno’) % Es el título 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 gráficastext(0.8,-0.3,’cos(t)’) %Sirve para personalizar las a las gráficas
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 líneas discontinuas(vertical y horizontal)title(‘Gráficas del seno y coseno’) %titulo de la graficaxlabel(‘Seg’) %nombre del eje horizontalylabel(‘y=sen(t); z=cos(t)’) %nombre del eje vertical
5
c) x = 0:0.1:3; %dominio de las funcionesy = x.^2; plot(x,y) %muestra la graficagrid %muestra las líneas discontinuas (H y V)title(‘Gráfica de y = x^2’) %titulo de la graficaxlabel(‘x’) %nombre del eje horizontalylabel(‘y’) %nombre del eje vertical.
6
11. Qué modificaciones haría a la codificación del programa 10.c para lograr la curva de la figura siguiente, sabiendo que la función y ha cambiado a y = x3 -20x.
x = -6:0.1:6; %cambiamos el dominioy = x.^3-20.*x; %cambiamos la funcionplot(x,y) gridtitle('Gráfica de y = x^3-20x') %cambiamos el nombre del tituloxlabel('x')ylabel('y')
Observe que hay una serie de errores entre la codificación y la información que muestra la gráfica.
-6 -4 -2 0 2 4 6-100
-80
-60
-40
-20
0
20
40
60
80
100‘Gráfica de y = x2
x
y
Modelos matemáticos de sistemas lineales
Matlab tiene varios comandos muy útiles para transformar un modelo matemático de un sistema lineal en otro modelo:
a) Función de transferencia a espacio de estado
[A,B,C,D] = tf2ss(num,den)espacio función de estado transferencia
Y (s)U (s)
=numden
=C ( sI−A )−1B+D
7
Según la información de A, B, C y D, la representación de espacios de estado es:
x=Ax+Buy=Cx+Du
b) Espacio de estado a función 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 más de una entrada (iu=1,2,3…) y una salida
c) Descomposición en fracciones parciales de la función de transferencia
Sea la función de transferencia:
B(s)A (s)
=numden
=b (1 ) sn+b (2 ) sn−1+…+b(n)a (1 ) sn+a (2 ) sn−1+…+a (n)
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 descomposición de fracciones parciales se hace usando el comando:
[r,p,k] = residue(num,den). Según esto:
B(s)A (s)
=r (1)s−p(1)
+r (2)s−p(2)
+ … r (n )s−p (n )
+k (s)
12. Sea el siguiente sistema con entradas u1 y u2
[ x1˙x2]=[ 0 1−2 −3][ x1x2]+[1 0
0 1] [u1u2] y= [1 0 ] [ x1x2]+ [0 0 ][u1u2]
8
Se quiere determinar la descomposición en fracciones parciales, según las entradas u1 y u2. Para ello use esta información:
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 parámetro 1 corresponde la función de transferencia respecto a la entrada u1 y el parámetro 2 corresponde la función de transferencia respecto a la entrada u2.
Según el resultado de aplicar este comando, luego exprese:
Y (s)U 1(s )
= s+3s2+3 s+2
Y (s)U 2(s )
= 1s2+3 s+2
13. Considere la siguiente función de transferencia
B(s)A (s)
=numden
=2 s3+5 s2+3 s+6
s3+6 s2+11 s+6
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 descomposición de fracciones parciales resulta
B(s)A (s)
=2 s3+5 s2+3 s+6
s3+6 s2+11s+6= −6s+3
+ −4s+2
+ 3s+1
+2
14. Si aplica el comando [num,den] = residue(r,p,k), ¿qué resulta?
Justifique su respuesta
9
Referencias: Ingeniería de Control, K. Ogata
Preparado por Ing. Gustavo Mesones Málaga, MSc.Este laboratorio se entregará hasta el sábado 11 de abril de 2015 en horas de clase
10