Ejemplo 2: Uso de la herramienta rltool para el análisis de un sistema definido en tiempo discreto.


MatLab nos ofrece la posibilidad de representar el lugar de las raíces del sistema que consideremos en función de un controlador proporcional. Para ello, escribimos en la pantalla el comando ''rltool''. Nos aparece una ventana en la que podemos ver el plano complejo. Si queremos cargar nuestro sistema, pinchamos en: File — Import.


Ej2-1.PNG
Particularizamos la planta y el sensor para nuestro caso:
>>sys = zpk([],[-2 -5],10)
>>sys1 = c2d(sys,0.1);
>>sys = tf(1);
>>sys2 = c2d(sys,0.1);

Ej2-2.PNG
Apareciendo en pantalla el lugar de las raíces de nuestro sistema:
Ej2-3.PNG

Para ver mejor las características del lugar de las raíces en las cercanías del origen, hacemos un zoom en el entorno del origen pinchando en ''Mouse zoom'' y seleccionamos la región que queramos aumentar:
Ej2-4.PNG

Antes de empezar a compensar añadiendo polos y/o ceros, es necesario determinar las características que tiene nuestro sistema y ver hasta donde puede llegar modificando simplemente la ganancia del controlador proporcional. Vamos a emplear el lugar de las raíces para calcular las posibilidades del controlador proporcional. Como sabemos, la respuesta del sistema depende de su construcción (ceros, polos, ganancia...) . Cuando se trata de sistemas sencillos, los parámetros que definen su respuesta ante una entrada escalón tienen fácil solución, de forma que se puede establecer una región restrictiva en el plano complejo en la que los polos de bucle cerrado de nuestro sistema deberían estar para que el sistema cumpla con unos determinados requisitos. Así, en función de la intersección de las ramas del lugar de las raíces del sistema con las restricciones se podrá dilucidar si el controlador proporcional es válido para cumplir las especificaciones de respuesta transitoria. Para ello, las ramas deberán tener al menos un punto dentro de la zona válida. Matlab nos ofrece dicha posibilidad, aunque no en todos los casos posibles. Veamos como se definen las especificaciones y sus correspondientes restricciones en el plano complejo.
Para representar la restricción de la sobreoscilación en Matlab, pinchamos en: Edit — Root Locus — Design Constraints — New

Ej2-5.PNG

Eligiremos la restricción de Percent Overshoot y especificaremos que debe ser menor del 20 %.
Ej2-6.PNG

Ej2-7.PNG
Cuando la restricción es el tiempo de establecimiento, pinchamos en: Edit — Root Locus — Design Constraints — New, elegimos la opción de Setting time y le damos el valor impuesto por las especificaciones, que en este caso será de 4 segundos
Ej2-8.PNG
Ej2-9.PNG

En la figura se puede ver tanto el lugar de las raíces del sistema como las franjas que establecen en el plano complejo las zonas en las que en un sistema deberían estar, aproximadamente, los polos complejos conjugados para que el sistema cumpliera con las especificaciones de respuesta transitoria dadas. Como bien sabemos, el controlador proporcional no añade ni polos ni ceros nuevos al sistema, así que no modifica la forma del lugar de las raíces ni tampoco mejora el error en régimen permanente. Su efecto se reduce a aumentar o disminuir la ganancia, que a efectos del lugar de las raíces, consiste en desplazar los polos complejos conjugados, representados por los cursores cuadrados rosas, a lo largo de las ramas. Así pues, como el controlador proporcional no varía la posición de las ramas en el plano complejo, para que el sistema sea compensable mediante un controlador proporcional debe existir al menos una parte de las ramas en la zona válida, ya que si no fuera así, nunca con un controlador proporcional podríamos situar los polos complejos conjugados en dicha zona. Si nos atenemos a la figura, observamos como afortunadamente una parte de las ramas están situadas dentro de la zona válida, de forma que sí es posible la compensación utilizando un controlador proporcional. En efecto, vemos que incluso sin utilizar el controlador proporcional el sistema debe cumplir, en principio, las especificaciones de la respuesta transitoria, ya que los cursores ya están dentro de la zona admisible. Para comprobarlo, representaremos la respuesta del sistema a la entrada escalón unitario. Pinchamos en: Analysis — Response To Step Command. Nos aparecen en pantalla dos curvas, una de color azul y otra de color verde. Solo nos interesa la azul, así que hacemos: Botón derecho ratón —Systems — Closed Loop: r to u (green). Si pinchamos en la pantalla con el botón derecho nos sale una ventana con varias posibilidades. Nos fijamos en la opción Characteristics. Vemos los parámetros de respuesta de pico, tiempo de establecimiento, tiempo de subida y valor de estabilización. En nuestro caso, solo nos interesa la sobreoscilación y el tiempo de establecimiento: Botón derecho — Characteristics — Peak Response, Setting time. Matlab dibuja dos puntos sobre la gráfica correspondientes al primer máximo de la salida y al primer punto que entra dentro de la franja de estabilización. Las características de los puntos se obtienen situando el cursor del ratón sobre el punto.
Ej2-10.PNG

Ej2-11.PNG

Como se puede ver en el cuadro de la figura, tanto la sobreoscilación como el tiempo de establecimiento cumplen sobradamente las especificaciones (aun sin utilizar ningún tipo de controlador), por lo que si se puede afirmar con seguridad que con un controlador proporcional se pueden satisfacer las especificaciones transitorias. Si pidieran, por ejemplo, mejorar el error en régimen permanente, tendríamos que aumentar el tipo del sistema, pero esto ya no se puede hacer con el controlador proporcional.
A modo de ejemplo, veremos como se introduce un controlador Pi en nuestro sistema. Tenderemos que añadir un cero y un polo al sistema. En Matlab, para añadir polos y ceros pinchamos en: Compensators — Edit — C. Nos aparece en pantalla una ventana tal que:

Ej2-12.PNG

En la figura aparece tanto la ganancia, en inglés gain, como dos recuadros en los que poder añadir ceros y polos, reales o complejos, mediante los botones ''Add Real Zero''... Particularizamos al controlador Pi y colocamos un polo en z=1 y un cero, por ejemplo, en z= 0.8.

Ej2-13.PNG
El nuevo lugar de las raíces es:

Ej2-14.PNG

Podemos ver en la figura como los polos de bucle cerrado están fuera de la zona que en un principio cumple las especificaciones, así que es de esperar que ahora nuestro sistema no cumpla las especificaciones. Para comprobarlo, volvemos a ver la respuesta a entrada escalón:
Ej2-15.PNG

Sin embargo, aunque los polos estén fuera de la zona válida, vemos como el lugar de las raíces sí que pasa por ella. Así pues, movemos los polos hacia dicha zona pinchando en el cursor rosa y arrastrándolo y comprobamos nuestra hipótesis viendo la respuesta del sistema a la entrada escalón:
Ej2-16.PNG

Ej2-17.PNG
En efecto, moviendo los polos (modificando la ganancia del controlador), hemos conseguido alcanzar las especificaciones.


Principal