Professional Documents
Culture Documents
1.1
1.2
El resultado es una variable matricial t con una fila y 201 columnas. Si el tamao del paso se omite el valor por defecto es la unidad. No se requieren los parntesis para generar un vector fila; sin embargo, si los parntesis derechos van seguidos por apstrofe la matriz se transpone y el vector de tiempos de transforma en un vector columna. t = (0 : 0.02 : 4) Operaciones con matrices Las matriciales con filas mltiples se pueden especificar colocando un punto y coma, que indica el comienzo de una nueva fila o comenzando la nueva fila en la lnea siguiente. Una sentencia tal como a = [12 40 8 4; 10 2 16 36; 2 7 5 4]]
producir una matriz con tres filas y cuatro columnas. Los elementos de la matriz se identifican mediante el nmero de fila y columna; as, una sentencia que especifica: a(1,2)= 30 cambiar 40 por 30. Si se desea crear una matriz con los valores la primera fila, puede utilizarse la sentencia: g = a(1,:) Si por el contrario se desea que g contenga todas las filas y solo las tres primeras columnas la sentencia a utilizar es: g = a( : , 1:3) Las expresiones que contienen matrices deben, por supuesto, seguir las reglas del lgebra matricial. Si se obtiene un mensaje de error debido a matrices con dimensiones no acordes, el usuario puede comprobar rpidamente las dimensiones de una variable (tal como a) escribiendo size(a). La respuesta se presenta con el nmero de filas seguido por el nmero de columnas. Todos los elementos de una variable se pueden borrar utilizando la orden clear a, o se pueden borrar todas las variables escribiendo simplemente clear.
1.3
Las operaciones matriciales incluyen el smbolo de apstrofe para trasponer y los smbolos +, -, * y ^ para la suma, resta, multiplicacin y elevar a una potencia. La expresin inv(a) producir la inversa de la matriz a. Si dos matrices tienen las mismas dimensiones, puede ser til una operacin de arrays. La operacin de array designada ocurre solamente entre elementos con nmeros de filas y columnas idnticas, es dedcir operan elemento a elemento, creando as una nueva matriz de igual dimensin. Un smbolo de operacin de array se designa colocando un punto justamente antes del smbolo que se aplica a la operacin matricial. Por ejemplo: t = 0 : 0.05 : 6: y = (4*t).*(exp(-2*t)); Como los factores 4*t y exp(-2*t) se generan ambos como matrices columnas (121 por 1), la generacin de r con una nica sentencia requiere la aplicacin de una multiplicacin de arrays. El clculo tal como se describe crea otra matriz columna (121 por 1) con los valores deseados para los elementos. Ayuda en Lnea Se puede obtener una ayuda en lnea escribiendo help, seguido por el nombre de la funcin o del tema. Las instrucciones para aplicar ciertos procedimientos, tales como la construccin de lazos for, lazos while y condiciones if, else se pueden encontrar escribiendo help seguido de for, while o if, respectivamente.
12 22 32 42
13 23 33 43
14 # 24! ! 34 ! ! 44"
PRCTICA 1: Introduccin a Matlab c) Obtener los valores de la segunda fila. d) Obtener los valores de la segunda y la tercera columna. e) Obtener la diagonal de A. f) Obtener una matriz de 2x2 donde todos lo elementos sean 1. g) Obtener una matriz unidad de orden 2x2.
1.4
Prctica 2. Se trata de diferenciar el uso de funciones orientadas al elemento de las orientadas a operar con la matriz: a) Entrar la siguiente matriz:
&0 A = $ $ %6
# !
2! "
b) Encontrar la matriz transpuesta de A c) Encontrar los autovalores y autovectores de A d) Calcular la matriz columna resultante de multiplicar elemento a elemento B y C &1# B = $1! y C = [2 3 4] $! $ %1! " Prctica 3. Para cada una de las funciones indicadas, escriba un script que permita obtener su valor para cualquier valor de t. Realice una representacin de cada una de ellas para un amplio rango de valores de t. a) y(t)= 2 t
b) u(t)
1.5
Prctica 4.- El propsito del siguiente problema es practicar algunas capacidades grficas de MATLAB: a) Dibujar las siguientes funciones expresadas en coordenadas polares para 0 < < 2 i.- r = 3 (1-cos ) cardiode ii.- r = cos( 3 ) rosa de tres hojas b) Obtener el grfico tridimensional de la funcin z para el siguiente rango -5 < x <5, -5 < y <5
z= 1 1 .5 2 2 (x + 1) + ( y + 1) + 1 (x 1) + ( y 1)2 + 1
2
1.3 Soluciones
Prctica 1
a) >> A=[11 12 13 14;21 22 23 24;31 32 33 34;41 42 43 44] A= 11 21 31 41 b) >> 12 22 32 42 13 23 33 43 14 24 34 4
A(:,1)
ans = 11 21 31 41
1.6
1.7
Prctica 2
a) >> A=[0 pi; pi/6 pi/2] A= 0 3.1416
b) c) >> [M,L] = eig(A) M= -0.9748 -0.8082 0.2230 -0.5889 L= -0.7185 0 0 2.2893 % Autovectores (columnas de M) y autovalores (diagonal de L)
d) >>B.*C' ans = 2 3 4
1.8
Prctica 3
a) fichero recta.m:
function [salida]=recta(t) salida= t;
-4
-3
-2
-1
b) fichero escalon.m:
function [salida]=escalon(t) m=length(t); salida=zeros(1,m); for i =1:m; if t(i)<0 salida(i)=0; else salida(i)=1; end end
1.5
0.5
-0.5
-1 -5
-4
-3
-2
-1
1.9
c) En primer lugar hay que obtener la funcin u(t-2). Representando dicha funcin junto a y(t) queda claro que u(t-2) representa un escaln desfasado 2 unidades: u=escalon(t-2); plot(t,y,t,u,'r')
10 8 6 4 2 0 -2 -4 -6 -8 -10 -5
-4
-3
-2
-1
la funcin se obtiene multiplincando ambas funciones, es decir, multiplicando u e y elemento a elemento: f=y.*u; plot(t,f)
10
-5 -5
-4
-3
-2
-1
Prctica 4
a) i) >> THETA=0:0.1:2*pi >> RHO=3*(1-cos(THETA)) >> polar(THETA,RHO)
1.10
2.1
numerador y Coeficientes del denominador. Ambos datos han de escribirse en forma matricial, escribindose de mayor a menor grado de derecha a izquierda, ver figura 2.1
2.2
Con los parmetros mostrados anteriormente quedara la funcin de transferencia anterior. El numerador sera 1 y el denominador sera s+1. Por otra parte, MATLAB tambin ofrece la posibilidad de realizar tareas de modelado y manipulacin de funciones de transferencia desde el interfaz de comandos. Para asociar un sistema con una funcin de transferencia se utiliza la sentencia tf. Por ejemplo, el siguiente cdigo crea un sistema llamado sis, al que se le asocia la funcin de transferencia :
denominador se encuentran en la matriz d. n=[0 5 20]; %Vector fila para definir coeficientes del numerador d=[1 4 20]; sis = tf(n,d); En ocasiones, puede ser til especificar la funcin de transferencia por los polos y ceros que lo componen. En este caso se utiliza la sentencia zpk. Por ejemplo, el siguiente cdigo asocia el sistema sis con la funcin de transferencia: %Vector fila para definir coeficientes del denominador
5( s + 4) ( s + 2)( s 2)
z = [-4]; p = [-2 2]; k=5 sis=zpk(z,p,k) Aunque la conversin entre los dos formatos no es una tarea difcil con funciones de transferencia simples, el cambio puede llegar a ser tedioso con funciones de elevado orden y la consideracin de races complejas. Las rdenes de conversin en MATLAB son tf2zp (funcin de transferencia a ceros y polos) o zp2t(ceros y polos a funcin transferencia). Por ejemplo, el siguiente programa convierte la primera funcin de transferencia a la nueva forma: % Matriz de ceros %Matriz de polos %Valor de la ganancia
2.3
5( s + 4) ( s + 2 4 j )( s + 2 + 4 j )
n=[0 5 20]; d=[1 4 20]; [z, p, k] = tf2zp(n,d) %Vector fila para definir coeficientes del numerador %Vector fila para definir coeficientes del denominador %Convertir a formato polo-cero
Como resultado se obtiene la matriz z que contiene los ceros del sitema, y la matriz d que contiene los polos del sistema. Si lo que se desea es establecer los ceros y polos del sistema y obtener la funcin de transferencia como cociente de polinomios en s, puede utilizarse el siguiente cdigo: k = 5; z = -4; p = [-2+j*4 2-4*j]; [n, d] = zp2tf (z, p, k) %Definir el factor de ganancia %Especificar el cero %Vector columna para definir los polos %Convertir a una razn de polinomios
Observe que el apstrofo (que sigue al vector p) traspone el vector. Aunque la notacin utilizada para identificar los diferentes datos (n, d, p, etc) es arbitraria, la secuencia en la cual de introducen los datos en cada orden de conversin debe corresponder a un formato que es especfico de la funcin. El siguiente programa describe un modelo de estado, obtiene una funcin de transferencia equivalente y a continuacin lo convierte otra vez a un modelo de estado en forma cannica de control a = [0 1 0; -4 2 4; -1 0 0]; b = [0 4 1] ; c = [1/2 0 0]; d = 0; [aa,bb,cc,dd]=tf2ss(n,d) %Definir la matriz A %Definir la matriz B %Definir la matriz C %Definir la matriz D [n, d] = ss2tf (a, b, c, d) %Convertir el modelo de estado en F.T. %Convertir F.T. a modelo de estado
Observe que la conversin de una funcin de transferencia en un modelo de estado no proporciona una solucin nica y la orden tf2ss produce una solucin que es una variacin de la forma cannica de control, donde las variables de estado se relacionan en orden inverso.
2.4
Para el estudio de la respuesta temporal de los sistemas definidos mediante funciones de transferencia, MATLAB utiliza los mismos comandos que para el caso de los modelos de estado: step, impulse, initial. Adicionalmente, MATALAB incorpora una serie de funciones que permiten el anlisis de sistemas modelados mediante funciones de transferencia: El comando bode(sis) dibuja los diagramas de bode del sistema. El comando evalfr(sis, j*w ) Genera el valor de G(jw) en formato parte real y parte imaginaria. El comando pole(sis) devuelve los polos del sistema. El comand tzero(sis) devuelve los ceros del sistema El comando pzmap(sis) muestra en pantalla el diagrama de polos y ceros del sistema. El comando rlocus(sis) calcula los polos del sistema como el que se muestra en la figura, cuando k vara entre 0 e infinito.
SIS
figura 2.2
El comando rlocfind(sys) permite obtener el valor que hay que darle a la ganamcia k para que el sistema tenga unos determinados polos. Esto se consigue pinchando con el raton sobre la figura obtenida con el comando rlocus(sis).
2.5
Donde la longitud del muelle en reposo es d=2 m., K representa la constante de elasticidad del resorte, cuyo valor es 1 N/m, la constante de rozamiento viscoso, cuyo valor es 1 Kg/s y M la masa tiene un valor de 1 Kg. Consideramos como variable de entrada del sistema la posicin del extremo libre de resorte x0 (t), como salida y1 la posicin x1 de la masa M y como salida y2 la distancia entre el punto x1 el x0. Obtenga las funciones de transferencia Y1(s)/X0(s) e Y2(s)/X0(s), simule en SIMULINK las siguientes situaciones:
a) El punto se desplaza con una velocidad constante x0=1 m/s. b) El punto se desplaza instantneamente de x0=0 a x0=1. c) El punto x0 est sometido a una oscilacin continua de segn a la expresin x0(t)=sin(2t). d) De acuerdo con el apartado c) escriba un script que obtenga la amplitud y fase de la oscilacin de la variable y2 en estado estacionario. Compruebe que los datos obtenidos coinciden con los alcanzados en dicho apartado. e) Dibuje los polos y ceros de la funcin de transferencia Y1(s)/X0(s), analice mediante el lugar de las raices el efecto la constante k sobre los polos de dicha funcin de transferencia.
2.6
2.3 Solucin
Ecuacin del movimiento de la masa
x1 ( s ) y1 ( s ) k = = 2 x 0 ( s ) x0 ( s ) ms + s + k
k ( y2 ) (
dy 2 dx0 d 2 y 2 d 2 x0 + + ) = m( ) dt dt dt dt
y 2 (s) s ms 2 = x0 ( s ) ms 2 + s + k
La situacin en la que el punto x0 se mueve con una velocidad constante x0=1 se simula suponiendo que la entrada es una seal rampa de valor 1. Representando las las funciones de tranferencia en simulink queda el siguiente diagrama de bloques:
2.7
figura 2.3
Observe cmo la condicin inicial para la posicin de la masa y la longitud del muelle se ha modelado mediante la suma, a la salida de los bloques de las funciones de transferencia, de un valor constante e igual a 2. Con este diagrama obtenemos la siguiente grficas:
a)
figura 2.4
b)
En la figura 2.4-a), la lnea amarilla (ms clara) representa el desplazamiento del extremo libre del muelle (x0) cuya velocidad se mantiene constante, la lnea morada (ms oscura) representa el movimiento de la masa (x1). Puede observarse cmo, al principio, la masa comienza desplazndose mas lentamente que el extremo libre del muelle, hasta que la fuerza que ha ejercido el muelle sobre ella es suficientemente grande como para acelerarla y que alcance la velocidad de x0 . En la figura figura 2.4-b) se representa la evolucin de la salida y2. Se observa cmo la longitud del muelle aumenta hasta alcanzar un valor mximo. Finalmente, tras un pequeo tiempo transitorio la longitud del muelle se estabiliza, coincidiendo con el momento en que la masa alcanza la misma velocidad que el extremo libre del muelle. b) Para simular la situacin propuesta en este apartado se sustituye la seal rampa por una seal escaln, Las grficas obtenidas son las representadas en la figura 2.5. En la figura 2.5-a), la lnea amarilla (ms clara) representa el desplazamiento instantneo del extremo libre
Escuela Politcnica Superior de la Rbida Prcticas de Dinmica de Sistemas, Curso 2002 / 2003
2.8
del muelle, la lnea morada (ms oscura) representa el movimiento de la masa. Ntese cmo ste se desplaza ms lentamente hasta que se estabiliza su posicin tras una pequea oscilacin . Por otra parte, En la figura figura 2.5-b) se representa la evolucin de la salida y2; se ilustra claramente cmo la longitud del muelle disminuye bruscamente. Por ltimo, tras un pequeo tiempo transitorio el muelle alcanza su longitud inicial.
a)
figura 2.5
b)
c) En este apartado la seal de entrada est formada por una seal senoidal. Las grficas obtenidas son las siguientes:
a)
figura 2.6
b)
En la figura 2.6-a), la lnea amarilla (ms clara) representa la oscilacin del extremo libre del muelle, la lnea morada (ms oscura) representa el movimiento de la masa. Ntese cmo, en un principio, aparece un comportamiento transitorio y, ms tarde, el movimiento de la masa se asemeja al movimiento senoidal del punto x0 pero con un desfase y distinta amplitud. En la figura figura 2.6-b) se representa la evolucin de la salida y2; se comprueba cmo la longitud del muelle tambin est sometida a una evolucin senoidal.
2.9
d) Para obtener el valor de G(j) se utiliza el comando evalfr(sis, j*) . De esta forma es posible describir la oscilacin en estado estacionario segn la expresin: y(t)=| G(j) | * sin[w*t + arg(G(j)))] n=[-1 -1 0]; d=[1 1 1]; sis=tf(n,d); G=evalfr(sis,j*2) G= -1.23076923076923 - 0.15384615384615i ; t=0:0.1:20; y=2+abs(G)*sin(2*t+angle(G)); plot(t,y);
3.5
2.5
1.5
0.5
10
12
14
16
18
20
e) >>pzmap(sis)
Pole-zero map
1 0.8 0.6 0.4
Ceros
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
Real Axis
2.10
1 y 2 (s) 1 ms + s = = 2 1 x0 ( s ) ms + s + k 1+ k 2 ms + s
2
Para ver la influencia del parmetro k se utiliza la tcnica del lugar de las raices: n2=[1]; d2=[1 1 0]; sys2=tf(n2,d2); rlocus(sys2)
Puede observarse cmo la grfica tiene dos ramas que se corresponden con los dos plos del sistema. Cada una de las ramas comienza en el valor correspondiente a k = 0; ambas ramas representan la ubicacin de los polos conforme k varia desde 0 hasta tomar un valor infinito.
Escuela Politcnica Superior de la Rbida Prcticas de Dinmica de Sistemas, Curso 2002 / 2003
2.11
Las raices que hacen que el sistema responda de forma crticamente amortiguada son dos raices mltiples que delimitan la frontera entra raices reales y raices con parte imaginaria distinta de cero.
2.12
2) Dibuje una grfica con la respuesta en frecuencia del filtro representado en la figura. Obtenga la tensin de salida cuando la seal de entrada es de la forma vi(t)=2sin(5t)+4sin(100t).
3) La figura a) representa un modelo simplificado del sistema de traccin de un robot mvil, se pretende estudiar el movimiento del sistema cuando el robot se mueve sobre una superficie como la de la figura b) X(m)
15
5 a) b)
25
Y(m)
Dibuje un esquema de bloques y simlelo en Simulink. Los valores son: R= 0.75 m; I=0.14 Kgm2; M=0.5 Kg; =0.01 Kg/s; n1=10; n2=30; Ha de probar con distintos valores de entrada para comprobar cuando la rueda es capaz de subir la rampa