Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ap02 08 09
Ap02 08 09
2.1
2.2 SIMULINK
Adems del entorno de comandos, MATLAB se puede suplementar con una interfaz grfica de usuario basada en ventanas, conocida como Simulink, en la cual se puede describir grficamente un sistema dibujando diagramas de bloques. Esto es especialmente conveniente para la simulacin de sistemas dinmicos. Dibujar un diagrama de bloques requiere la utilizacin de un ratn con operaciones de pulsar, arrastrar y dibujar. Para comenzar hay que abrir la biblioteca de bloques de Simulink. Escriba simulink (en la ventana de comandos de MATLAB) o seleccione con el ratn, en la parte superior de la ventana de comandos, el icono . La biblioteca contiene todos los
bloques de construccin utilizados normalmente para dibujar diagramas de bloques. Estos bloques estn organizados en grupos (o sublibreras) de acuerdo con su comportamiento. Una doble pulsacin sobre el nombre de una sublibrera abrir una nueva ventana que muestra el contenido del grupo. Por ejemplo, dentro de la Linear Library o dentro de la librera Simulink/Continous pueden encontarse los bloques de funcin de transferencia, integrador, modelo de estado etc... Un diagrama de bloques se dibuja copiando bloques de la librera. El diagrama de bloques se construye con los pasos siguientes: Crear una ventana de trabajo seleccionando New del men File de cualquier ventana de librera. Copiar un bloque de la Linear Library en la ventana de trabajo arrastrndolo hasta la ventana de trabajo y movindolo a una posicin deseada. Hacer una doble pulsacin sobre el bloque y configurar el elemento rellenando los distintos campos. Dos bloques cualesquiera se pueden conectar dibujando una lnea o algunos segmentos de lneas conectados desde el puerto de salida de un bloque (con > apuntando hacia fuera del bloque) al puerto de entrada del otro bloque (con >apuntando hacia el bloque). Se puede aadir una lnea de bifurcacin inicindola cerca de la salida de un bloque o pulsando la tecla control cuando comienza la bifurcacin.
Escuela Politcnica Superior de la Rbida Sistemas Electrnicos y Automticos
2.2
Las operaciones pueden variar ligeramente en plataformas diferentes y el lector debera consultar el manual de usuario de Simulink.
Para crear en Matlab un modelo de estado de utiliza el comando ss: sistema = ss(A, B, C, D) Cuando se crea un modelo, hay que tener especial cuidado al introducir las matrices A,B,C y D teniendo en cuenta que las filas de la matrices deben estar separadas por ; El comando anterior crea un objeto con el nombre sistema sobre el que se puede obtener la respuesta temporal de la variable de salida del modelo a diferentes tipos de entrada: step (sistema): respuesta al escaln con condiciones iniciales nulas. impulse(sistema): respuesta a la seal impulso. Si se desea simular el comportamiento del sistema para una entrada arbitraria y condiciones iniciales no nulas se utilizar el comando: lsim(sistema,u,t,x0) Donde el vector t consiste en instantes de tiempo regularmente espaciados, x0 es una matriz de valores iniciales, con tantas filas como variables de estado haya, u es una matriz con tantas columnas como entradas tenga el modelo, de forma que cada fila especifica el valor de las entradas en un instante de tiempo, es decir, la isima fila especifica el valor de la entrada en el tiempo t(i).
Escuela Politcnica Superior de la Rbida Sistemas Electrnicos y Automticos
2.3
Alternativamente, un modelo de estado se puede describir tambin mediante diagramas de bloques de Simulink, ver la figura 2.3. El modelo de estado se puede especificar escogiendo el bloque State-Space, haciendo una doble pulsacin sobre l y a continuacin introduciendo las correspondientes matrices A, B, C y D; la condicin inicial del vector de estado de cada bloque se puede fijar tambin desde ese mismo interfaz grfico, ver la figura 2.4
figura 2.1
figura 2.2
En esta figura se muestra un ejemplo donde se ha definido un modelo de estado en el que las matrices tomam los valores: A=1, B=1; C=1 y D=1; Por tanto, se est representando un modelo con una sola variable de estado una variable de entrada y una salida.
Escuela Politcnica Superior de la Rbida Sistemas Electrnicos y Automticos
2.4
Los parmetros a configurar en este bloque son los siguientes: Coeficientes del 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.3
figura 2.3
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
2.5
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]; %Vector fila para definir coeficientes del denominador 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:
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, introducida al principio de esta pgina, a la nueva forma: % Matriz de ceros %Matriz de polos %Valor de la constante
5( s + 4) ( s + 2 4 j )( s + 2 + 4 j )
%Vector fila para definir coeficientes del numerador %Vector fila para definir coeficientes del denominador
Sistemas Electrnicos y Automticos
2.6
[z, p, k] = tf2zp(n,d) %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. Para el estudio de la respuesta temporal de los sistemas definidos mediante funciones de transferencia, MATLAB utiliza los comandos: step, impulse. Adicionalmente, MATLAB incorpora una serie de funciones que permiten el anlisis de sistemas modelados mediante funciones de transferencia:
Escuela Politcnica Superior de la Rbida Sistemas Electrnicos y Automticos
2.7
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) dibuja la evolucin de entre 0 e infinito. los polos del sistema, para
cualquiera de las dos estructuras que se muestran en la figura 2.4, cuando k vara
figura 2.4
El comando rlocfind(sys) permite obtener el valor que hay que darle a la ganancia k para que el sistema tenga unos determinados polos. Esto se consigue pinchando con el ratn sobre la figura obtenida con el comando rlocus(sis).
2.8
2.6 SOLUCIN a) En este apartado se consideran como salidas: la evolucin de las coordenadas
espaciales x e y ; y las velocidades vx y vy. Por tanto el modelo de estado es el siguiente:
1 2 = 3 4 1 2 0 0 .1 0 0 + 0 0 0 1 3 0 0 0 0.1 4 0 1 0 0 0 1 ( g ) 0 0
y v y = x v x
1 0 0 0
0 1 0 0
0 0 1 0
0 1 0 2 + 0 3 1 4
0 0 ( g ) 0 0
Las condiciones iniciales son [0;20*sin(30*pi/180) 0; 20*cos(30*pi/180)], la grfica que muestra la evolucin el en plano X-Y se muestra en la figura 2.7
2.9
-1
10
15
20
25
30
35
2.10
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) 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.9 Solucin
Ecuacin del movimiento de la masa
k ( x1 x 0 )
Para la salida y1:
dx1 d 2 x1 =m dt dt
2.11
Funcion de transferencia:
x1 ( s ) y1 ( s ) k = = 2 x0 ( s ) x0 ( s ) ms + s + k
dy 2 dx0 d 2 y 2 d 2 x0 k ( y2 ) ( + ) = m( + ) dt dt dt dt
sx0 (S) m s2 x0 (s)= m s2 y2 (s) + k y2 (s) + s y2 (s)
y 2 (s) s ms 2 = x 0 ( s ) ms 2 + s + k
a) 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:
figura 2.8
2.12
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.9
b)
En la figura 2.9-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.9-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.10. En la figura 2.10-a), la lnea amarilla (ms clara) representa el desplazamiento instantneo del extremo libre 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.10-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.
2.13
a)
figura 2.10
b)
c) >>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
1 y 2 (s) 1 ms + s = = 2 1 x 0 ( s ) ms + s + k 1+ k 2 ms + s
2
2.14
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 polos 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. Las races que hacen que el sistema responda de forma crticamente amortiguada son dos races mltiples que delimitan la frontera entra races reales y races con parte imaginaria distinta de cero.
2.15
2.10
EJERCICIO PROPUESTO N 2
1) Realice los apartados a) y b) de la prctica anterior programando un script en Matlab. 2) Utilizando el lugar de las races obtenido en el apartado c) de la prctica anterior, y aplicando el comando rlocfind, determine el valor de k que hace que el sistema presente los polos en: [-0.5+0.4 j; -0.5-0.4j]; [-0.5+0.8 j; -0.5-0.8j]; [-0.3; -0.7].