Está en la página 1de 19

Pr

actica 1: Introducci
on al uso de matlab y simulink para
Control Autom
atico
o

Control Automatico, 2 GIA


Esta practica permitira que el alumno se familiarice con las herramientas disponibles en matlab
para el Control Automatico, entre las que estan el denominado Control Toolbox y el simulink.
Al mismo tiempo, la practica servira para que el alumno realice algunos ensayos relacionados
con funciones de transferencia y respuestas temporales.
Este enunciado incluye cierta cantidad de trabajo previo, que el alumno debera llevar a cabo
con anterioridad a la sesion de la practica en el Centro de Calculo. Dicho estudio previo comprende la lectura detallada de las secciones 1 y 2, para la familiarizacion con los comandos de
matlab y herramientas de simulink que se usaran, as como la realizacion de los subapartados
denominados Trabajo Previo que pueden encontrarse en las demas secciones.

Introducci
on al Control Toolbox de matlab

En esta seccion, se asumira que el alumno esta familiarizado con el uso del matlab en general,
para centrar la descripcion en el juego de herramientas de que dispone matlab para tareas
relacionadas especcamente con el Control Automatico. Dichas herramientas estan incluidas
en un complemento de matlab, denominado Control Toolbox.

1.1

Definici
on de funciones de transferencia

La primera tarea que se puede plantear es la de denir una funcion de transferencia en matlab.
Para ello, en primer lugar, ha de recordarse como se pueden denir polinomios. Imaginemos que
queremos denir la funcion de transferencia:
G(s) =

2.5 s + 1
+ 3s + 2

s2

Para ello, podemos denir los polinomios numerador y denominador, almacenandolos en sendas
variables a las que denominaremos, respectivamente, N y D:

N = [2.5,1];
D = [1,3,2];

Como puede verse, la forma de denir un polinomio es crear un vector cuyos elementos son
los coecientes de dicho polinomio, siempre en orden decreciente de potencias de la variable
independiente. Como veremos, a partir de este momento, podemos trabajar con muchas de las
funciones del Control Toolbox, pasandoles como funcion de transferencia este par de polinomios.

Hay que tener ciertas precauciones, cuando alguno de los coecientes sea nulo. Por ejemplo,
supongamos que la funcion de transferencia fuera la siguiente:
3
+ 2s
Una forma incorrecta de introducir el polinomio denominador sera:
G(s) =

s2

N = 3;
D = [1,2];
Sera incorrecta puesto que con esto, en realidad, se estara deniendo:
G(s) =

3
s+2

En su lugar, la forma correcta sera:


N = 3;
D = [1,2,0];
En lugar de trabajar con un par de polinomios que denen el numerador y denominador de la
funcion de transferencia, pueden unicarse estos dos elementos en un objeto funcion de transferencia, mediante el comando tf():
N = [2.5,1];
D = [1,3,2];
G = tf (N,D);
Si preguntamos a continuacion por el valor de la variable G, comprobaremos que es un objeto
mas complejo que un simple par de polinomios:
>> G
Transfer function:
2.5 s + 1
------------s^2 + 3 s + 2
Si queremos saber si la funcion de transferencia corresponde con un sistema estable, bastara
con calcular las races del denominador:
roots (D)
Esta funcion devuelve, en general, un vector conteniendo los polos de la funcion de transferencia.
De forma analoga, los ceros de la funcion de transferencia vendran dados por las races del
numerador.
Si se esta trabajando con objetos funciones de transferencia, existe una forma directa de obtener
sus polos y ceros, usando los siguientes comandos:
2

polos = pole (G);


ceros = tzero (G);

1.2

Simulaci
on de respuesta temporal

La funcion step() simula la respuesta ante escalon unitario de una funcion de transferencia. Por
defecto, la escala temporal se elige automaticamente y se asume que el escalon se produce en el
instante cero.
step (N, D);
La llamada a esta funcion lleva asociada la representacion en una ventana graca de la salida
resultante.
Alternativamente, podemos pasar como parametro un objeto funcion de transferencia:
step (G); grid;
En este caso, al igual que podra haberse hecho en el caso anterior, se ha a
nadido el comando
grid, que permite visualizar una rejilla sobre el fondo de la graca.
Si queremos simular la respuesta para una escala temporal dada por nosotros mismos:
t = [0:0.001:10];
step (G, t);
El primer comando genera un vector columna (el operador de trasposici
on, que transforma lo
que inicialmente sera un vector la en un vector columna, es la comilla simple que aparece a la
derecha del vector denido entre corchetes), conteniendo una secuencia de valores comenzando
en 0 y terminando en 10, con un paso o incremento de 0.001. Esta variable t contendra nuestro
vector de instantes de tiempo a emplear en la simulacion. Para ello, en la llamada a la funcion
step() se le pasa este vector tiempo como u
ltimo parametro.
Si se desea representar dos respuestas escalon en la misma graca, con nes comparativos, puede
hacerse del siguiente modo:
G1 = tf (N,D);
G2 = tf (3,[1,2,1]);
t = [0:0.001:10];
y1 = step (G1, t);
y2 = step (G2, t);
figure(1); plot(t,y1,t,y2); grid;
Como se ve, la funcion step() puede devolver un vector conteniendo los valores que resulten
para la se
nal de salida en cada instante de la simulacion. En este caso, dicha funcion no realiza
3

representacion graca alguna. El comando plot(), por su parte, permite realizar representaciones
gracas de dos dimensiones. En este caso particular, se estan representando dos se
nales, las
contenidas en los vectores y1 e y2, frente a la misma escala temporal.
Existen otras funciones para simular la respuesta ante se
nales de entrada. Por ejemplo, la funcion
impulse(), simula la respuesta ante impulso unitario a la entrada. La funcion lsim() permite
la simulacion de la respuesta ante cualquier se
nal de entrada que deseemos. Por ejemplo, si
queremos simular la respuesta ante una rampa de pendiente 3 a la entrada, podramos escribir:

t = [0:0.001:10];
rampa = 3*t;
lsim (G, rampa, t);
Tanto la funcion impulse() como la funcion lsim() tienen caractersticas similares a la funcion
step(), en cuanto a que realizan la representacion de forma automatica, a menos que en la
llamada se almacene el valor devuelto por la funcion en alguna variable.

1.3

Algebra
de bloques

Existen funciones para realizar operaciones de algebra de bloques con funciones de transferencia.
A continuacion, se mostraran algunos ejemplos.
La operacion mas elemental consiste en obtener una u
nica funcion de transferencia equivalente
a otras dos que esten dispuestas en serie. Imaginemos denidos los polinomios numerador y
denominador de dos funciones de transferencia, N 1, D1, N 2 y D2. Dado que el resultado de la
operacion mencionada sera el producto de ambas funciones de transferencia, podemos realizar el
producto de los polinomios numerador por un lado y, por otro, el de los polinomios denominador.
La funcion que nos permite realizar producto de polinomios es conv():

N1
D1
N2
D2

=
=
=
=

[2.5,1];
[1,3,2];
3;
[1,2,1];

N
D

= conv (N1, N2);


= conv (D1, D2);

Tras estas operaciones, la funcion de transferencia dada por el par de polinomios N , D, sera la
resultante.
Otra forma de realizar la misma operacion, en un solo paso, es emplear la funcion series(),
que, a diferencia de la funcion conv(), s es especca del Control Toolbox y, por tanto, puede
interpretar pares de polinomios como una funcion de transferencia:

[N,D] = series (N1,D1, N2,D2);


4

Si se recurre a los objetos funcion de transferencia, todo resulta mucho mas intuitivo:

G1 = tf (N1,D1);
G2 = tf (N2,D2);
G = G1*G2;
Como se ve, directamente se puede realizar el producto de dos objetos funcion de transferencia.
Esto no impide que la funcion series() pueda seguir siendo usada con este tipo de objetos:

= series (G1, G2);

De forma analoga a la puesta en serie de dos funciones de transferencia, se puede obtener el


equivalente de una conguracion en paralelo. A continuacion, se muestran las tres formas de
obtener el mismo resultado:

[N,D] = parallel (N1,D1, N2,D2);


G = parallel (G1, G2);
G = G1+G2;
Si, dado un esquema realimentado, queremos obtener la funcion de transferencia equivalente al
conjunto, podemos usar la funcion cloop():

[Nbc,Dbc] = cloop (N,D,-1);


donde el u
ltimo parametro indica que se trata de realimentacion negativa (1 sera realimentaci
on
positiva). Si hacemos uso de objetos funcion de transferencia, tenemos que recurrir a la funcion
feedback():

Gbc = feedback (G,1,-1);


El segundo parametro de esta funcion indica la funcion de transferencia que se asume en la
cadena de realimentacion (en este caso, se trata de realimentacion unitaria), mientras que el
u
ltimo parametro indica que se trata de realimentacion negativa.

Introducci
on al simulink

simulink es un complemento de matlab que permite realizar simulacion dinamica de sistemas


por medio de una interfaz graca muy comoda de usar. En esta seccion se daran unos breves
comentarios introductorios al simulink. En todo caso, es recomendable acudir a un manual
de referencia mas completo, como el que puede encontrarse en el entorno de Ense
nanza Virtual
(apartado Contenido del Curso / Tutoriales / Tutorial de Simulink).
Para arrancar el simulink, basta teclear simulink en la ventana de comandos de matlab. Con
ello, se abrira la llamada biblioteca de bloques de simulink, de la que podremos tomar todos los
elementos que necesitemos para nuestras simulaciones. La gura 1 muestra el aspecto de esta
ventana.

Figure 1: Ventana mostrando la biblioteca de bloques de simulink


.
Para comenzar a usar simulink es preciso abrir un nuevo diagrama. Para ello, se puede pulsar
sobre el icono de la hoja en blanco que aparece en la ventana de herramientas mostrada, o
bien a traves del men
u FileNewModel. Con ello, aparecera una nueva ventana en la que
se confeccionara el modelo del sistema dinamico que se quiere simular. Esta ventana recibe el
nombre de ventana del modelo o ventana del diagrama del modelo.
Para construir un diagrama se arrastraran elementos desde la ventana de herramientas hasta
la ventana del modelo. Los elementos se uniran luego con echas, dando lugar a un diagrama
de bloques. Cada echa representa una se
nal diferente de la cual podremos obtener, al realizar
una simulacion, su valor a lo largo del tiempo. El aspecto de los bloques en la pantalla puede
diferir de unas versiones a otras de matlab, por lo que debera poner atencion a los nombres
descriptivos que aparecen debajo de cada bloque.
6

2.1

Integradores

Los integradores nos permiten modelar sistemas dinamicos lineales y no lineales descritos mediante un modelo en ecuaciones diferenciales. El hecho de que los sistemas sean representados mediante ecuaciones diferenciales implica que sera necesario integrar dichas ecuaciones para poder
simular cual sera la evolucion temporal del sistema. simulink ofrece una herramienta de integracion numerica que incluye varios metodos de integracion. Esto permite integrar se
nales
temporales, independientemente de que el sistema sea lineal o no.
Para integrar directamente se
nales temporales, simulink incluye un bloque llamado integrador
(Integrator), el cual puede obtenerse de la biblioteca de elementos de tiempo continuo (Continuous). Este
componente proporciona una salida y igual a la integracion temporal de su entrada

u (y(t) = 0t u( )d ).
En la gura 2, se propone un peque
no modelo para ilustrar como funciona el bloque integrador.
Se introduce a su entrada un escalon y se observa que la salida del integrador sera una rampa.

1
s
Step

Mux

Integrator

Scope

Figure 2: Diagrama de bloques simulando el comportamiento de un integrador ante entrada en


escalon.
La se
nal de entrada del integrador proviene en este ejemplo de un bloque escalon (Step) sacado
de la biblioteca de fuentes (Sources). La salida del bloque integrador se re
une con la entrada en
el bloque multiplexor (Mux, del apartado Signal Routing de la biblioteca), para que ambas sean
mostradas en la graca dibujada con el bloque visor (Scope, del apartado Sinks). En la gura
3, puede verse el resultado de la simulacion visto a traves del visor.

Figure 3: Respuesta resultante de la simulacion del diagrama previo.

2.2

Funciones de transferencia

Para utilizar funciones de transferencia dentro de simulink, basta con incluir un bloque Transfer
Function del apartado de tiempo continuo (Continuous) de la biblioteca, tal y como se presenta
en la gura 4.

s+2
s2 +s+3
Step

Transfer Fcn

Mux

Scope

Figure 4: Ilustracion del uso del bloque funcion de transferencia.


En este caso, la funcion de transferencia elegida ha sido:
G(s) =

s+2
s2 + s + 3

Para lograr que dicho bloque se corresponda con la funcion de transferencia dada, basta con modicar los parametros del mismo, pulsando dos veces sobre el bloque. En el cuadro de dialogo que
aparece, se introducen los polinomios numerador y denominador, siguiendo la sintaxis habitual
de matlab, como se muestra en la gura 5.

Figure 5: Parametros del bloque funcion de transferencia.


El resultado de la simulacion del diagrama anterior puede visualizarse a traves del visor (gura
6).

2.3

Realimentaci
on y ganancias

En la gura 7, se muestra un nuevo diagrama de bloques, en el que aparecen diversos elementos


nuevos, tales como un restador y una ganancia. Con ello, conseguimos implementar un diagrama
realimentado, a partir de la funcion de transferencia dada con anterioridad.

Figure 6: Respuesta resultante de la simulacion del diagrama previo.

Sum
K
Step

Gain

s+2
s2 +s+3

Scope

Transfer Function

Figure 7: Funcion de transferencia con ganancia en serie y realimentada.


Un sumador o restador se implementa mediante un bloque Add o Sum del apartado de Math
Operations de la biblioteca. Por su parte, una ganancia se implementa mediante el bloque de
forma triangular que aparece en el diagrama, obtenido a partir de un bloque Gain del apartado
Math Operations. Fjese que el valor introducido como ganancia no es una constante, sino una
variable de nombre K.
Para que la simulacion del modelo pueda llevarse a cabo, sera necesario que previamente se haya
denido dicha variable desde matlab. Esto ilustra las posibilidades de interaccion entre matlab
y simulink: variables denidas en el espacio de trabajo de matlab pueden ser usadas desde
simulink, as como variables que tomen valores como resultado de la simulacion de un diagrama
de simulink estaran disponibles para su uso desde la ventana de comandos de matlab, como
se vera a continuacion.

2.4

Fuentes y sumideros

En la biblioteca de bloques de simulink existe un apartado que ya se ha citado anteriormente, se


trata de las fuentes (Sources). Los elementos de este apartado son, esencialmente, generadores
de se
nales; entre ellos tenemos se
nal de valor constante (Constant), se
nal escalon (Step), se
nal
rampa (Ramp), se
nales senoidales (Sine Wave) y muchas otras. Tambien existe un elemento,
denominado Clock, que proporciona un vector con los instantes de simulacion.
En el otro extremo, tenemos elementos que son sumideros de se
nales, es decir, que solo reciben
se
nales, sin producir ninguna salida. Estos elementos se encuentran en el apartado Sinks. Entre
estos elementos, encontramos los visores, como el Scope ya empleado. Otro elemento interesante

de este grupo es el denominado To Workspace. Se trata de un bloque que almacena, en una


variable cuyo nombre debemos especicar, un vector conteniendo los valores que va tomando la
se
nal que se recibe como entrada del bloque, para cada instante de simulacion.
La gura 8 muestra un nuevo diagrama de bloques, similar al de la gura 7, en el que se ha
reemplazado el visor por un bloque To Workspace, al que se le ha asociado el nombre de variable
y. Asimismo, se ha eliminado el multiplexor y la se
nal de entrada, producida por el escalon,
se almacena en otra variable, denominada r. Se ha incluido, ademas, un elemento reloj, cuya
salida se almacena en otra variable, a la que se la denomina tSim.
tSim
Clock

To Workspace2

r
To Workspace1
Sum
s+2

K
Step

Gain

s2 +s+3
Transfer Function

y
To Workspace

Figure 8: Diagrama de bloques para ilustrar el uso de los bloques Clock y To Workspace.
En principio, se recomienda congurar los parametros de los elementos To Workspace tal y como
se muestra en la gura 9, en particular con el formato de almacenamiento de tipo Array. La
justicacion esta en la simplicidad que eso aporta, a posteriori, para la manipulacion de estas
variables desde matlab.

Figure 9: Cuadro de dialogo para establecer los parametros de un bloque To Workspace.


Una vez realizada la simulacion, dispondremos de las variables tSim, r e y, con las que podremos
realizar una representacion graca a voluntad, usando el comando plot() ya conocido:
figure(1); plot (tSim,r, tSim,y); grid;

10

Trabajo a desarrollar en relaci


on con el Control Toolbox de
matlab

En esta parte de la practica, se parte directamente de una funcion de transferencia dada por la
expresion siguiente:
K (s + c)
(s + p) (s2 + 2 wn s + wn2 )

G1 (s) =

(1)

Se trata de una funcion de transferencia que sera estable, con un polo real, que resultara ser
el elemento mas dominante respecto a los demas, un cero que sera de fase mnima1 y un par
de polos complejos conjugados, que seran menos dominantes que los demas elementos (si bien,
ninguno de los factores citados sera totalmente despreciable frente a los demas).
Cada alumno elegira los valores numericos de los parametros, a partir de las siguientes relaciones:

K =

135 + 15 D8
90

p =

45 + 7 D7
90

c =

207 + 12 D6
90

45 + 2 D5
90

wn = 6 p

Siendo D8 el dgito menos signicativo del DNI, D7 el anterior y as sucesivamente. Por ejemplo,
para el DNI n
umero: 53568447, se tendra D8 = 7, D7 = 4, D6 = 4, D5 = 8, con lo que
resultaran los siguientes valores de los parametros:
K = 2.66667

3.1
3.1.1

p = 0.81111,

c = 2.83333,

= 0.67778,

wn = 4.86667

Aproximaci
on por modelo de primer orden
Trabajo previo

En primer lugar, se desea obtener una funcion de transferencia de orden reducido, que aproxime
el comportamiento del sistema de partida.
1

Un cero de fase mnima es aquel que se encuentra en el semiplano izquierdo del plano complejo; dicho de otra
forma, aquel cuya parte real es negativa.

11

Si se simula la respuesta ante escalon del sistema dado, puede comprobarse que se puede identicar facilmente una u
nica constante de tiempo dominante y aproximar al sistema por un modelo
de primer orden, de la forma:

G1 (s)

K
1 + s

(2)

A partir de la representacion graca de la respuesta ante escalon del sistema, pueden estimarse
los dos parametros requeridos en (2). Como es sabido, para un sistema que sea verdaderamente
de primer orden, la identicacion de la constante de tiempo puede realizarse con exactitud de
varias formas: una de ellas se basa en que: y(
) = y(0) + 0.63 (y() y(0)). Otra forma se
basa en que el 95% del valor nal se alcanza una vez transcurrido un tiempo equivalente a tres
veces la constante de tiempo de dicho sistema: y(3 ) = y(0) + 0.95 (y() y(0)). De acuerdo
con lo anterior, se denen: t63% = y te95% = 3 .
Trabajo en el Centro de C
alculo
Simule la respuesta ante escalon del sistema original (1). A la vista de esa respuesta,
identique empricamente los parametros de la funcion de transferencia aproximada (2):
[p1], y constante de tiempo [p2](estimada a partir de la regla
ganancia estatica K
t63% = ).
Compare la respuesta ante escalon unitario del sistema original y del reducido. Para
realizar esta comparacion de forma graca, puede recurrirse a los comandos de matlab
vistos anteriormente. Mida el valor de la respuesta del sistema original (1), transcurrido
un intervalo de tiempo en segundos igual al doble de la constante de tiempo despues de
producirse el escalon de entrada, y(2 ) [p3], y analogamente para el sistema aproximado
(2) en ese mismo instante, yaprox (2 ) [p4].
Nota: Si esta utilizando el comando step() sugerido anteriormente, tenga en cuenta que
puede conseguirse un paso de simulacion tan peque
no como se quiera, proporcionando a
dicha funcion un vector tiempo con el paso o incremento correspondiente.
Habida cuenta de que, dependiendo del modelo concreto, puede obtenerse una mejor
aproximacion estimando la constante de tiempo mediante la regla te95% = 3 , se pide
realizar esta estimacion alternativa de la constante de tiempo, a la que se llamara 2 [p5].
Con objeto de poder hacer la comparacion con el nuevo modelo aproximado resultante del
punto anterior, indique el valor de la respuesta del sistema original (1), transcurrido un
intervalo igual a la nueva constante de tiempo, despues de producirse el escalon de entrada,
y(
2 ) [p6]. Analogamente para el nuevo sistema aproximado yaprox2 (
2 ) [p7].

3.2

Aproximaci
on por modelo de segundo orden

En este apartado, se trabajara con una funcion de transferencia similar a la dada en (1), con
la diferencia de que los polos complejos conjugados se haran mas signicativos. Para ello, se
modica el valor original de los parametros y wn :

12

G2 (s) =

3.2.1

(s +

p) (s2

K (s + c)
;
+ 2 2 wn2 s + wn2 2 )

2 = 0.2 ;

wn2 = wn /6 = p

(3)

Trabajo previo

Se desea obtener una funcion de transferencia de segundo orden, que aproxime el comportamiento
del sistema de partida dado.
Simulando la respuesta ante escalon del sistema dado, puede comprobarse que, efectivamente,
dicha respuesta se puede aproximar mediante una funcion de transferencia de segundo orden
subamortiguada, de la forma:

G2 (s)

w
K
n2
s2 + 2 w
n s + w
n2

(4)

A partir de la representacion graca de la respuesta ante escalon de un sistema de este tipo,


pueden estimarse los parametros requeridos en (4). Para el trabajo a realizar a continuaci
on,
se sugiere usar las medidas de ganancia estatica, sobreoscilacion (que, expresada en tanto por
y tiempo de pico (tp ), para deducir los tres parametros: K,
y w
uno, sera referida como SO)
n .
La relacion entre las citadas medidas y los parametros de la funcion de transferencia, como es
sabido, son las siguientes:

= e 12
SO

tp =
w
n 1 2

3.2.2

(5)

Trabajo en el Centro de C
alculo

Simule la respuesta ante escalon del sistema original (3). A la vista de esa respuesta,
identique empricamente los parametros de la funcion de transferencia aproximada (4):
[p8], coeciente de amortiguamiento [p9], y frecuencia natural no
ganancia estatica K
amortiguada w
n [p10].
Nota: Tal y como se ha dicho anteriormente, debe emplearse la expresion (5) para la
estimacion de w
n .
Compare la respuesta ante escalon unitario del sistema original y del reducido. Mida el
valor de la respuesta del sistema original (3), transcurrido un intervalo igual al tiempo de
subida, despues de producirse el escalon de entrada, y(ts ) [p11]. Analogamente para el
sistema aproximado (4) en ese mismo instante, yaprox (ts ) [p12].
Nota: Emplee la siguiente expresion para obtener el valor del tiempo de subida en el que
tomar las medidas:

arccos()

ts =
w
n 1 2

13

Trabajo a desarrollar en relaci


on con simulink

En esta seccion, el alumno debera emplear simulink para simular el comportamiento de un


sistema lineal que modela a un motor de corriente continua (caso simplicado). Tomando como
entrada la tension aplicada sobre el motor, u [V], y como salida la orientacion del eje de la
carga, [rad] (o, en su caso, la velocidad de giro del mismo, [rad/s]), la ecuacion diferencial
del modelo es la siguiente:
Km u = I + b
(6)
Los parametros del modelo se obtienen a partir del DNI de cada alumno, seg
un las siguientes
expresiones:
Km =

18 + 8 D8
90

[N m/V ]

I =

225 + 15 D7
90

b =

45 + 15 D6
9

Kg m2

]
]

Kg m2 /s

Donde D6 , D7 y D8 son las tres u


ltimas cifras del DNI. Por ejemplo, para el DNI n
umero:
53568447, se tendra D8 = 7, D7 = 4, D6 = 4, con lo que resultaran los siguientes valores
de los parametros: Km = 0.82222, I = 3.16667 y b = 11.66667 2 .

4.1
4.1.1

Modelado del motor


Trabajo previo

El diagrama de bloques de la ecuacion diferencial (6) puede implementarse facilmente, despe El resultado puede apreciarse en la gura 10.
jando la derivada segunda de la salida, .

acelAng

u
Km

1/I

1
s

velAng

1
s

ang
Scope

Figure 10: Diagrama de bloques que implementa el modelo del motor.


Dado que este sistema es lineal, suponiendo condiciones iniciales nulas, puede obtenerse su
funcion de transferencia de forma inmediata, resultando Gv (s) para la salida en velocidad y
2

A diferencia de lo que ocurre con los dem


as par
ametros, el denominador de la expresi
on que define el par
ametro
b es 9, en lugar de 90.

14

Gp (s) para la salida en posicion:


Gv (s) =

K
;
1+s

Gp (s) =

1
K
Gv (s) =
s
s (1 + s)

(7)

Pueden calcularse de forma directa los parametros K y de las expresiones anteriores, a partir
de los parametros del modelo (6). Una vez hecho esto, una forma equivalente de modelar el
motor, a traves de su funcion de transferencia, sera mediante un u
nico bloque de simulink,
como se muestra en la gura 11.

velAng

tau .s+1

1
s

ang
Scope

Figure 11: Modelado del motor mediante funcion de transferencia.


Desde el punto de vista practico, la u
nica diferencia entre el modelo representado en la gura
10 y el mostrado en la gura 11 es que, en el primero de ellos, se puede simular la evoluci
on
del sistema ante condiciones iniciales no nulas para velocidad y que existen se
nales intermedias
o el par de friccion, b .

directamente accesibles, como la aceleracion angular, ,

4.1.2

Trabajo en el Centro de C
alculo

Implemente el diagrama de bloques mostrado en la gura 10, pero haciendo que entre
tambien en el visor la velocidad angular 3 . Congure una condicion inicial no nula, (t =
0) = 0.2 [rad], para la salida en posicion, a traves de las propiedades del integrador
correspondiente. Mantenga, sin embargo, condicion inicial nula para la velocidad angular,
= 0) = 0 [rad/s].
(t
Nota: De cara al siguiente punto, tenga precaucion para no pasar por alto el instante en
el que se produce el escalon, dado que, por defecto, no es cero.
Simule la respuesta del sistema ante una entrada de tipo escalon: u(t) = 4V . Tome nota

de los valores (t) [p13] y (t)


[p14], 0.3 segundos despues de producirse dicho escalon.
Nota: En algunos casos, si se observa que las curvas de respuesta tienen pocos puntos,
signica que la simulacion puede requerir un paso de integracion maximo mas reducido.
Esto puede dar lugar a medidas imprecisas, a partir de las representaciones gracas de las
se
nales de interes. El parametro que controla este paso de integracion puede establecerse
en (MenuSimulationConfiguration ParametersMax. step size) del metodo numerico
de integracion de simulink (ver gura 12). Por defecto, el valor de este parametro suele
ser auto, pero puede modicarse este valor a voluntad, para forzar a que el n
umero de
puntos en los que se lleva a cabo la simulacion se incremente sustancialmente.
Si, como consecuencia de lo anterior, el n
umero de puntos a registrar durante una simulacion aumenta considerablemente, y la simulacion dura el tiempo suciente, puede ser
necesario tener en cuenta un detalle adicional, en relacion con los elementos Scope, en caso
3

A traves de las propiedades del multiplexor, puede configurar libremente el n


umero de entradas del mismo.

15

Figure 12: Opcion para cambiar el paso maximo de integracion de simulink.


de que estos se esten usando. Estos visores, poseen un buer para el registro de las variables
que se reciben como entrada, el cual puede verse desbordado. Esto llevara a la perdida del
registro de la primera parte del experimento. Por defecto, los bloques Scope solo mantienen
el registro de los u
ltimos 5000 puntos de una simulacion. Este problema puede solventarse
de forma inmediata, accediendo a las propiedades del Scope y desactivando, en la pesta
na
Data History, la limitacion del buer, tal y como se muestra en la gura 13.

Figure 13: Opcion para desactivar la limitacion del buer del Scope.
Proporcione los valores de los parametros de la funcion de transferencia Gv (s): K [p15],
[p16]. Estos parametros pueden obtenerse, bien de forma analtica, bien de forma
experimental, como se desee.

16

4.2
4.2.1

Motor en realimentaci
on
Trabajo previo

A partir de la funcion de transferencia del motor, resulta muy comodo establecer una conguracion en realimentacion, a
nadiendo una ganancia ajustable en la cadena directa, como se muestra en la gura 14. Como puede apreciarse, en este caso, se ha usado directamente la funcion
de transferencia de salida en posicion, siendo esta la se
nal que se realimenta.

u
Kc

ang

tau .s2 +s

Scope

Figure 14: Sistema motor realimentado con ganancia ajustable.


Debe tenerse en cuenta que la se
nal de tipo escalon es, en este caso, de naturaleza distinta a la
que tena en los diagramas en bucle abierto, guras 10 y 11. En los casos anteriores, al estar el
sistema en bucle abierto, el escalon se usaba para proporcionar directamente la se
nal de entrada
al sistema o actuaci
on, u(t). Sin embargo, en el esquema realimentado, la se
nal proporcionada
por el escalon sera una se
nal de referencia, r(t), que debe ser comparada con la salida y, por
tanto, debe ser una se
nal de la misma naturaleza que esta; es decir, se trata de una referencia
para el angulo de salida del motor. Por otro lado, como puede comprobarse, se ha a
nadido una
ganancia ajustable que, a partir del error observado en el angulo de salida respecto a la referencia
jada, e(t), proporciona una actuacion directamente proporcional a dicho error: u(t) = Kc e(t).
Si se realiza la reduccion del diagrama de bloques, para un valor generico de ganancia Kc , puede
comprobarse que la funcion de transferencia equivalente al conjunto es una de segundo orden, que
puede hacerse corresponder con la forma tpica de sistema de segundo orden subamortiguado:
Gbc =

4.2.2

Kbc wn2 bc
s2 + 2 bc wnbc s + wn2 bc

(8)

Trabajo en el Centro de C
alculo

Determine analticamente el valor de la ganancia Kc [p17], para que el sistema realimentado resulte estable y con un coeciente de amortiguamiento bc = 0.7, de acuerdo con la
expresion (8).
Implemente el diagrama de bloques mostrado en la gura 14 y verique el punto anterior (basta comprobar que la sobreoscilacion del sistema realimentado resultante debe ser
ligeramente inferior al 5%).
Para el valor de ganancia Kc jado, determine analticamente el tiempo de pico que tendra
la respuesta ante referencia en escalon, tpteorico [p18]. Determine este mismo valor experimentalmente, tpexperim [p19], a partir de una simulacion con el modelo de la gura
14.
17

Instrucciones para entregar las respuestas en Goodle

Las respuestas del modulo entregar


an en Goodle. La pagina web del servidor de docencia es:

http://bono.us.es/sdocencia

Para entregar el proyecto hay que darse de alta en Goodle siguiendo las instrucciones de la gua
que puede encontrarse en el entorno de Ense
nanza Virtual (apartado Contenido del Curso /
Tutoriales / Gua de Goodle GMS). La entrega de los resultados consiste en rellenar el formulario
de texto siguiendo las siguientes instrucciones:
Cada respuesta correspondiente a una cuestion de trabajo en el centro de calculo tiene
asignado un nombre. En el enunciado de la practica se indica con una etiqueta entre
corchetes cada respuesta que hay que entregar.
Ejemplo: A la primera respuesta (valor de la ganancia estatica identicada) le corresponde
el nombre p1 y a la u
ltima respuesta le corresponde el nombre p19.
Para cada respuesta hay que escribir una lnea con el siguiente formato:
nombre = valor;
Ejemplo: Para responder que el valor de la constante de tiempo de la funcion de transferencia (2) es 0.3 segundos, se escribira la siguiente lnea:
p2 = 0.3;
Observe que los decimales se separan utilizando el punto, no la coma.
En caso de que hubiera que dar una respuesta que correspondiera a un polinomio (por
ejemplo, el denominador de una funcion de transferencia), hay que utilizar el formato
explicado al principio para introducir polinomios en matlab en la Seccion 1.1. En caso
de que alguno de los polinomios fuera una constante, los corchetes deben obviarse. Por
ejemplo, para indicar:
7
Gbc(s) = 2
3s + 0.45
habra que escribir las siguientes lneas:
p14 = 7;
p15 = [3, 0, 0.45];
Goodle rechaza los envos con errores de sintaxis.
Es recomendable confeccionar la respuesta en un chero de texto plano antes de pasarla
al servidor, por ejemplo utilizando el bloc de notas de Windows.
Si desconoce alguno de los datos solicitados, evite dar respuestas que provoquen error de
sintaxis, como las siguientes:
18

p5 = ;
p6 =
En lugar de eso, introduzca en la respuesta alg
un valor, preferentemente un valor nulo:
p5 = 0;
p6 = 0;

Ejemplo de formulario relleno


(Los n
umeros siguientes son aleatorios)

p1 = 3;
p2 = 4.3;
p3 = 0.65;
p4 = 23.4;
p5 = 34;
p6 = -4;
p7 = 76.5;
p8 = 12;
p9 = 1;
p10 = 9;
p11 = 43;
p12 = 3.1;
p13 = 5.2;
p14 = 2.4;
p15 = 29.5;
p16 = 0.0005;
p17 = -92.4;
p18 = 2.84;
p19 = 4.17;

19

También podría gustarte