Está en la página 1de 15

PRÁCTICA 2: MODELADO DE SISTEMAS 2.

PRÁCTICA 2: MODELADO DE SISTEMAS

2.1 INTRODUCCIÓN
Esta práctica está dedicada al modelado de sistemas. En primer lugar se describen las
técnicas de representación basadas en el modelo de estado y posteriormente se decribe la
representación mediante la función de transferencia.

2.2 SIMULINK
Además del entorno de comandos, MATLAB se puede suplementar con una interfaz
gráfica de usuario basada en ventanas, conocida como Simulink, en la cual se puede describir
gráficamente un sistema dibujando diagramas de bloques. Esto es especialmente conveniente
para la simulación de sistemas dinámicos.
Dibujar un diagrama de bloques requiere la utilización de un ratón 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 ratón, en la

parte superior de la ventana de comandos, el icono . La biblioteca contiene todos los


bloques de construcción utilizados normalmente para dibujar diagramas de bloques. Estos
bloques están organizados en grupos (o sublibrerías) de acuerdo con su comportamiento. Una
doble pulsación sobre el nombre de una sublibrería abrirá una nueva ventana que muestra el
contenido del grupo. Por ejemplo, dentro de la Linear Library o dentro de la librería
Simulink/Continous pueden encontarse los bloques de función de transferencia, integrador,
modelo de estado etc... Un diagrama de bloques se dibuja copiando bloques de la librería. El
diagrama de bloques se construye con los pasos siguientes:
· Crear una ventana de trabajo seleccionando New del menú File de cualquier ventana
de librería.
· Copiar un bloque de la Linear Library en la ventana de trabajo arrastrándolo hasta la
ventana de trabajo y moviéndolo a una posición deseada. Hacer una doble pulsación sobre el
bloque y configurar el elemento rellenando los distintos campos.
· Dos bloques cualesquiera se pueden conectar dibujando una línea o algunos segmentos
de líneas 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 añadir una línea de bifurcación iniciándola cerca de la salida de un bloque o
pulsando la tecla control cuando comienza la bifurcación.

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.2

Las operaciones pueden variar ligeramente en plataformas diferentes y el lector debería


consultar el manual de usuario de Simulink.

2.3 Gestión de los modelos de estados con Matlab y Simulink

Un modelo de estado lineal representado por las matrices A, B, C y D es un formato


común para introducir modelos en las órdenes de Matlab. Los algoritmos numéricos se
preparan de forma muy rápida y eficiente si el modelo se introduce en el formato modelo de
estado. Los sistemas modelados según esta estructura responden a la ecuación diferencial
matricial:
x&= A ⋅ x + B ⋅ u
y = C ⋅ x + D⋅u
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 escalón con condiciones iniciales nulas.


impulse(sistema): respuesta a la señal 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 iésima fila especifica el valor de la entrada en el
tiempo t(i).
Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos
PRÁCTICA 2: MODELADO DE SISTEMAS 2.3

Alternativamente, un modelo de estado se puede describir también 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 pulsación sobre él y a continuación
introduciendo las correspondientes matrices A, B, C y D; la condición inicial del vector de
estado de cada bloque se puede fijar también desde ese mismo interfaz gráfico, 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 Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.4

2.4 LA FUNCIÓN DE TRANSFERENCIA


La función de trasferencia se obtiene directamente de las ecuaciones diferenciales que
definen el sistema. Una vez obtenida, es posible trabajar sobre ella con el entorno que
proporcionan MATLAB y la herramientas Simulink.
Para trabajar con funciones de transferencia en Simulink simplemente es necesario
escoger el bloque correspondiente. Este módulo se encuentra en la librería Continuous y se
llama Transfer Fcn. La forma de este bloque una vez colocado en simulink es la siguiente:

Los parámetros a configurar en este bloque son los siguientes: Coeficientes del
numerador y Coeficientes del denominador. Ambos datos han de escribirse en forma
matricial, escribiéndose de mayor a menor grado de derecha a izquierda, ver figura 2.3

figura 2.3 Configuración de un bloque para una función de tranferencia

Con los parámetros mostrados anteriormente quedaría la función de transferencia


anterior. El numerador sería “1” y el denominador sería “s+1”.

Por otra parte, MATLAB también ofrece la posibilidad de realizar tareas de modelado y
manipulación de funciones de transferencia desde el interfaz de comandos. Para asociar un

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.5

sistema con una función de transferencia se utiliza la sentencia tf. Por ejemplo, el siguiente
código crea un sistema llamado sis, al que se le asocia la función de transferencia :
5s + 20
s + 4 s + 20 2

Los coeficientes del numerador se encuentran en la matriz n y los coeficientes del


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 función de transferencia por los polos y ceros
que lo componen. En este caso se utiliza la sentencia zpk. Por ejemplo, el siguiente código
asocia el sistema sis con la función de transferencia:

5( s + 4)
( s + 2)( s − 2)

z = [-4]; % Matriz de ceros


p = [-2 2]; %Matriz de polos
k=5 %Valor de la constante
sis=zpk(z,p,k)

Aunque la conversión entre los dos formatos no es una tarea difícil con funciones de
transferencia simples, el cambio puede llegar a ser tedioso con funciones de elevado orden y
la consideración de raíces complejas. Las órdenes de conversión en MATLAB son tf2zp
(función de transferencia a ceros y polos) o zp2t(ceros y polos a función transferencia). Por
ejemplo, el siguiente programa convierte la primera función de transferencia, introducida al
principio de esta página, a la nueva forma:
5( s + 4)
( s + 2 − 4 j )( s + 2 + 4 j )

n=[0 5 20]; %Vector fila para definir coeficientes del numerador


d=[1 4 20]; %Vector fila para definir coeficientes del denominador

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 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 función de
transferencia como cociente de polinomios en s, puede utilizarse el siguiente código:

k = 5; %Definir el factor de ganancia


z = -4; %Especificar el cero
p = [-2+j*4 –2-4*j]’; %Vector columna para definir los polos
[n, d] = zp2tf (z, p, k) %Convertir a una razón de polinomios

Observe que el apóstrofo (que sigue al vector p) traspone el vector. Aunque la notación
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 conversión debe corresponder a un formato que es
específico de la función.
El siguiente programa describe un modelo de estado, obtiene una función de
transferencia equivalente y a continuación lo convierte otra vez a un modelo de estado en
forma canónica de control

a = [0 1 0; -4 –2 4; -1 0 0]; %Definir la matriz A


b = [0 4 1]’ ; %Definir la matriz B
c = [1/2 0 0]; %Definir la matriz C
d = 0; %Definir la matriz D
[n, d] = ss2tf (a, b, c, d) %Convertir el modelo de estado en F.T.
[aa,bb,cc,dd]=tf2ss(n,d) %Convertir F.T. a modelo de estado

Observe que la conversión de una función de transferencia en un modelo de estado no


proporciona una solución única y la orden tf2ss produce una solución que es una variación de
la forma canónica 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 análisis de
sistemas modelados mediante funciones de transferencia:

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 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 evolución de los polos del sistema, para


cualquiera de las dos estructuras que se muestran en la figura 2.4, cuando k varía
entre 0 e infinito.

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 ratón sobre la figura obtenida con el comando rlocus(sis).

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.8

2.5 EJERCICIO RESUELTO Nº 1


Se pretende simular las distintas posibilidades de movimiento de una masa que se
mueve bajo la acción de la gravedad. Se considera que la masa tiene un valor de 1kg, la
constante de rozamiento viscoso del aire es de 0.1kg/s, y que la aceleración de caída en el
campo gravitatorio es de 9.8m/s2. La descripción del movimiento se realiza en un plano
determinado por un sistema de referencia cuyo eje X es paralelo al suelo, cuyo eje Y es
perpendicular al mismo y cuyo origen está situado al nivel del suelo.

a) Programe un script en Matlab para simular el movimiento de la masa considerando


que es lanzada desde el origen de coordenadas con una velocidad de 20m/s,
formando un ángulo con la horizontal de 30º.

2.6 SOLUCIÓN
a) En este apartado se consideran como salidas: la evolución de las coordenadas
espaciales x e y ; y las velocidades vx y vy. Por tanto el modelo de estado es el siguiente:

· 
α· 1 
0 1 α 1 
0 0 0
α 2  0 − 0 .1 0 0 α 2  1
· = ⋅ + (− g )
α 3  0 0 0 1 α 3  0
·   
0 0 0 − 0.1 α 4  0
α 4 

y 1 0 0 0 α 1  0
v  0 1 0 0 α 2  0
 y = ⋅ + (− g )
x 0 0 1 0 α 3  0
   
v x  0 0 0 1 α 4  0

Las condiciones iniciales son [0;20*sin(30*pi/180) 0; 20*cos(30*pi/180)], la gráfica


que muestra la evolución el en plano X-Y se muestra en la figura 2.7

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.9

-1
0 5 10 15 20 25 30 35

figura 2.7 Trayectoria en el plano X-Y

Finalmente se resuelve este último apartado mediante un script:

%introducción de las matrices


A=[0 1 0 0;0 -0.1 0 0; 0 0 0 1;0 0 0 -0.1];
B=[0;-1; 0; 0];
C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];
D=[0;0;0;0];
%generación del sistema
masa=ss(A,B,C,D);
%condiciones iniciales
x0=[0;20*sin(30*pi/180); 0; 20*cos(30*pi/180)];
%vector tiempo
t = 0:0.01:2;
%vector de entrada
u = 9.8*ones(size(t));
%integración del sistema
x=lsim(masa,u,t,x0);
%representación de la trayectoria en el plano X-Y
plot(x(:,3),x(:,1))

2.7 EJERCICIO PROPUESTO Nº 1

1.- Simule el sistema del ejercicio anterior usando un script en Matlab para los siguientes
casos:
a) Altura inicial h, velocidad inicial v0, y ángulo inicial del movimiento ?=0.
b) Altura inicial h, velocidad inicial v0, y ángulo inicial del movimiento ?.
c) Altura inicial h, velocidad inicial v0, y ángulo inicial del movimiento ?=p/2.

2.- Modifique el modelo anterior para incluir el efecto de la fuerza del viento. Considere que
las componentes del viento son [-5 N , 20 N] cuando t >1.5 s; y [0,0] cuando t <1.5 s. Simule
el modelo en MATLAB para los siguientes valores de los parámetros: h=10 m, v0=10 m/s, y
?= p/4.
Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos
PRÁCTICA 2: MODELADO DE SISTEMAS 2.10

2.8 EJERCICIO RESUELTO Nº 2

Considerando el siguiente esquema:

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 posición del extremo libre de
resorte x0 (t), como salida y1 la posición 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 x’0=1 m/s.

b) El punto se desplaza instantáneamente de x0=0 a x0=1.

c) Dibuje los polos y ceros de la función de transferencia Y1(s)/X0(s), analice


mediante el lugar de las raices el efecto la constante k sobre los polos de dicha
función de transferencia.

2.9 Solución
Ecuación del movimiento de la masa
dx1 d 2 x1
− k ( x1 − x 0 ) − µ =m
dt dt
Para la salida y1:

k x0(s) = m s2x1(s) + µ s x1 (s) + k x1(s) à k x0 (s) = x1(s) [m s2 + µ s + k]


Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos
PRÁCTICA 2: MODELADO DE SISTEMAS 2.11

Funcion de transferencia:

x1 ( s ) y1 ( s ) k
= =
x0 ( s ) x0 ( s ) ms + µs + k
2

Para el caso de la salida y2:

y2 = x1 – x0 à x1 = y2 +x0

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) à

à x0 (s) [- µ s – m s2] = m s2 y2 (s) + k y2(s) + µ S y2 (s)

Función de transferencia:

y 2 (s) − µs − ms 2
=
x 0 ( s ) ms 2 + µs + k

a)
La situación en la que el punto x0 se mueve con una velocidad constante x’0=1 se
simula suponiendo que la entrada es una señal rampa de valor 1. Representando las las
funciones de tranferencia en simulink queda el siguiente diagrama de bloques:

figura 2.8

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.12

Observe cómo la condición inicial para la posición 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 gráficas:

a) b)

figura 2.9

En la figura 2.9-a), la línea amarilla (más clara) representa el desplazamiento del


extremo libre del muelle (x0) cuya velocidad se mantiene constante, la línea morada (más
oscura) representa el movimiento de la masa (x1). Puede observarse cómo, al principio, la
masa comienza desplazándose 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 evolución de la
salida y2. Se observa cómo la longitud del muelle aumenta hasta alcanzar un valor máximo.
Finalmente, tras un pequeño 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 situación propuesta en este apartado se sustituye la señal rampa por
una señal escalón, Las gráficas obtenidas son las representadas en la figura 2.10. En la figura
2.10-a), la línea amarilla (más clara) representa el desplazamiento instantáneo del extremo
libre del muelle, la línea morada (más oscura) representa el movimiento de la masa. Nótese
cómo éste se desplaza más lentamente hasta que se estabiliza su posición tras una pequeña
oscilación . Por otra parte, En la figura figura 2.10-b) se representa la evolución de la salida
y2; se ilustra claramente cómo la longitud del muelle disminuye bruscamente. Por último, tras
un pequeño tiempo transitorio el muelle alcanza su longitud inicial.

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.13

a) b)

figura 2.10

c) >>pzmap(sis)
Pole-zero map
1

0.8

0.6

0.4
Polos
0.2
Imag Axis

-0.2

-0.4 Ceros

-0.6

-0.8

-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Real Axis

La función de transferencia puede rescribirse de la forma:

1
y 2 (s) 1 ms + µs 2
= =
x 0 ( s ) ms + µs + k
2
1
1+ k
ms + µs
2

Lo cual responde a un sistema en bucle cerrado del tipo

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.14

Para ver la influencia del parámetro k se utiliza la técnica del lugar de las raices:
» n2=[1];
» d2=[1 1 0];
» sys2=tf(n2,d2);
» rlocus(sys2)

Puede observarse cómo la gráfica 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 ubicación de los polos conforme k varia desde 0 hasta tomar un valor
infinito. Las raíces que hacen que el sistema responda de forma críticamente amortiguada son
dos raíces múltiples que delimitan la frontera entra raíces reales y raíces con parte imaginaria
distinta de cero.

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos


PRÁCTICA 2: MODELADO DE SISTEMAS 2.15

2.10 EJERCICIO PROPUESTO Nº 2

1) Realice los apartados a) y b) de la práctica anterior programando un script en Matlab.


2) Utilizando el lugar de las raíces obtenido en el apartado c) de la práctica 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].

Escuela Politécnica Superior de la Rábida Sistemas Electrónicos y Automáticos

También podría gustarte