Está en la página 1de 135

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA

ESCUELA DE POSTGRADO

UNIDAD DE POSTGRADO DE LA

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS

TESIS:

“CONTROL AVANZADO APLICADO A LAS FUNCIONES DE UN MOTOR”

Presentada por: M. Sc. Pedro Bejar Muñoz

Para optar el grado de: Doctor en Ciencias


Ingeniería Mecatrónica

Asesor: Dr. Raúl Sulla Torres

AREQUIPA – PERÚ

2018
AGRADECIMIENTOS

Agradecer a Dios por las bendiciones que nos


brinda día a día, a mi hermano Wilar por su
apoyo y a mis hijos Kevin Andre y Edson Jaffet
que son el motor de mi vida.

Agradecer de manera especial a mi asesor Dr.


Raúl Sulla Torres, por la asesoría y por todo el
apoyo brindado.

ii
CONTENIDO

RESUMEN vi
ABSTRACT vii
CAPÍTULO I 1
1.1 Introducción 1
1.2 Planteamiento del problema 1
1.3 Condiciones del problema 2
1.4 Objetivo general 2
1.5 Requerimientos de diseño 2
CAPÍTULO II: FUNDAMENTACIÓN TEÓRICA 4
2.1 Introducción a los motores dc 4
2.2 Circuito equivalente del motor dc 5
2.3 Tipos de motores dc 7
2.3.1 Motor de corriente directa de excitación independiente 7
2.3.2 Motor de corriente directa en derivación 8
2.3.3 Motor de corriente directa de imán permanente 9
2.3.4 Motor de corriente directa en serie 9
2.3.5 Motor de corriente directa compuesta 11
2.3.6 Partes del motor de corriente directa 12
CAPÍTULO III: MODELAMIENTO Y ANÁLISIS DEL SISTEMA
DEL MOTOR CC 14
3.1 Modelado del sistema. 14
3.1.1 Configuración física. 14
3.1.2 Ecuaciones del sistema. 15
3.1.2.1 Función de transferencia. 16
3.1.2.2 Estado – espacio. 17
3.1.3 Requerimientos de diseño. 17
3.1.4 Representación de Matlab. 18
3.1.4.1 Función de transferencia. 18
3.1.4.2 Espacio de estados. 18
3.2 Análisis del sistema. 19
3.2.1 Respuesta de lazo abierto. 20
3.2.2 Respuesta de lazo cerrado. 23

iii
3.3 PID. 27
3.3.1 Control proporcional. 28
3.3.2 Control PI. 31
3.3.3 Control PID. 34
3.4 Diseño del controlador de locus de raíz. 37
3.4.1 Dibujando el locus raíz de bucle abierto. 39
3.4.2 Reducción del modelo. 41
3.4.3 Control integral. 44
3.4.4 Control PI. 45
3.4.5 Control PID. 46
3.4.6 Determinando ganancia usando el comando rlocfind. 49
3.5 Métodos de dominio de frecuencia para el diseño del
controlador. 53
3.5.1 Dibujando el diagrama de Bode del sistema no compensado. 54
3.5.2 Agregando un integrador. 55
3.5.3 Especificaciones de margen de ganancia y fase y diseño del
controlador. 57
3.6 Espacio de estados para el diseño del controlador. 69
3.6.1 Diseñando el controlador de realimentación de estado
completo. 71
3.6.2 Respuesta de perturbación. 74
3.6.3 Agregando acción integral. 75
3.7 Control Digital. 79
3.7.1 Creando un modelo de fecha de muestra de la planta. 80
3.7.2 Diseño de locus de raíz. 84
3.8 Modelado en Simulink. 95
3.8.1 Configuración física. 95
3.8.2 Construyendo el modelo con Simulink. 96
3.8.3 Construyendo el modelo con Simscape. 103
3.8.4 Construyendo el modelo a través de su representación LTI. 107
3.9 Diseño del controlador en Simulink. 109
3.9.1 Respuesta de bucle abierto. 110
3.9.2 Extracción de un modelo de muestra lineal en MATLAB. 113

iv
3.9.3 Implementando control digital en Simulink. 117
3.9.4 Conversión de un modelo de tiempo continuo a tiempo discreto
dentro de Simulink. 121
CONCLUSIONES 125
RECOMENDACIONES 126
BIBLIOGRAFÍA 127

v
RESUMEN

En la actualidad se utilizan con bastante frecuencia las máquinas


eléctricas en diferentes sistemas de control, para diferentes aplicaciones en la
industria, dentro de estas máquinas se encuentran los motores y en particular
los motores de corriente continua, motivo del trabajo de investigación y
generalmente el estudio de estas máquinas se enfocan al control de su arranque,
la variación de velocidad y la inversión de giro.

La finalidad del presente trabajo de investigación es analizar y simular un


sistema de control de la posición de un motor de corriente continua,
específicamente de un motor de corriente continua de excitación independiente,
para lo cual se han considerado algunos parámetros físicos, cuyos valores se
tomaron de un experimento de un motor real, realizado en el laboratorio de
control de Carnegie Mellon. Para la simulación se utilizó el software MATLAB
con sus herramientas, teniendo en consideración que las herramientas
computacionales permiten realizar simulaciones con un alto grado de
aproximación, por lo que se pueden realizar el estudio de los motores, sin la
necesidad de tenerlos físicamente como en el presente trabajo de investigación.

vi
ABSTRACT

Nowadays, electric machines are used quite often in different control


systems, for different applications in industry, within these machines are motors
and in particular DC motors, reason for the research work and generally the study
these machines focus on the control of their starting, the variation of speed and
the inversion of rotation.

The purpose of this research work is to analyze and simulate a control


system for the position of a DC motor, specifically an independent excitation DC
motor, for which some physical parameters have been considered, whose values
were taken of an experiment of a real engine, made in the control laboratory of
Carnegie Mellon. MATLAB software was used tools for simulation, considering
that the computational tools allow simulations with a high degree of
approximation, so you can make the study of engines without the need to
physically have them as in the present research work.

vii
CAPÍTULO I

1.1 Introducción

Los motores de corriente continua en la actualidad son muy utilizados en


los diferentes sistemas de control para diferentes aplicaciones, motivo por el cual
para este trabajo se ha considerado un motor CC específicamente el tipo de
motor de corriente directa de excitación independiente, cuya alimentación está
conformado por dos fuentes de voltaje DC independientes, de modo que uno de
ellos alimentará al devanado de campo o inductor y la otra fuente alimentará al
devanado del rotor o inducido. Se ha considerado este tipo de motor debido a
que ofrece un amplio rango de velocidad y pueden proporcionar un alto par Motor
con control sencillo y económico.

En este trabajo de investigación se exponen los modelos matemáticos


para el control del motor, para lo cual se hizo uso del software MATLAB, con sus
respectivas herramientas.

1.2 Planteamiento del problema

Las máquinas eléctricas en nuestro medio son muy utilizadas en


diferentes aplicaciones, en este caso particular; los motores de corriente
continua, dado que su control es relativamente sencillo y como resultado es
prioritario conocer su funcionamiento bajo ciertas condiciones de operación.

Para poder observar el funcionamiento y comportamiento de dichas


máquinas de manera precisa, en la actualidad se tienen a disposición diferentes
herramientas computacionales, los cuales nos permiten realizar simulaciones
con un alto grado de aproximación a los resultados reales, los que nos permiten
realizar el estudio de las máquinas eléctricas sin necesidad de tener físicamente,
el motor de corriente continua.
1.3 Condiciones del problema

El motor de CC es un actuador común en control sistemas. Provee


movimiento rotatorio directamente y, acoplado con ruedas dentadas o poleas y
cables, puede proveer movimiento transicional. El circuito eléctrico de la
armadura y el diagrama de cuerpo libre del rotor se muestran en la siguiente
figura:

1.4 Objetivo general

Analizar un sistema de control para el control de la posición de un motor


con matlab.

1.5 Requerimientos de diseño

Deseamos poder posicionar el motor con mucha precisión, por lo tanto, el


error de estado estacionario de la posición del motor debe ser cero cuando se le
da una posición ordenada. También deseamos que el error de estado
estacionario debido a una perturbación constante sea cero también. El otro
requisito de rendimiento es que el motor llegue a su posición final muy
rápidamente sin una perturbación excesiva. En este caso, queremos que el
sistema tenga un tiempo de establecimiento de 40 ms y un sobreimpulso inferior
al 16%.

2
Si simulamos la entrada de referencia mediante una entrada de paso
unitario, la salida de la posición del motor debe tener:

 Tiempo de establecimiento de menos de 40 milisegundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una entrada de


perturbación por pasos.

3
CAPÍTULO II

FUNDAMENTACIÓN TEÓRICA

2.1 Introducción a los motores dc

Los primeros sistemas de potencia en los Estados Unidos fueron sistemas


dc pero, hacia los años de 1890, los sistemas de potencia ac fueron primando
sobre los sistemas dc. A pesar de este hecho, los motores dc continuaron siendo
una fracción importante de la maquinaria comprada cada año hasta los años de
1960 (esa fracción declinó en los últimos 30 años). ¿Por qué fueron tan comunes
los motores dc si los sistemas de potencia dc en si fueron raros?

Hubo varias razones para la popularidad prolongada de los motores dc.


Una fue que los sistemas de potencia dc son comunes aun en automóviles,
camiones y aviones. Cuando un vehículo tienen un sistema de potencia dc, tiene
sentido considerar el uso de los motores dc. Los motores dc también se aplicaban
cuando se requerían amplias variaciones de velocidad. Antes de la amplia
difusión del uso de inversores rectificadores de potencia electrónicos, los motores
dc no fueron igualados en aplicaciones de control de velocidad. Aunque no se
tuviera fuente de potencia dc, los rectificadores de estados sólido y los circuitos
recortadores se utilizaron para crear la potencia necesaria; los motores dc se
utilizaron para proveer el control de velocidad deseado (hoy en día se prefieren
los motores de inducción con grupos de controladores de estado sólido para la
mayoría de las aplicaciones de control de velocidad. Sin embargo, hay todavía
aplicaciones donde se prefieren los motores dc).

Los motores dc se comparan frecuentemente por sus regulaciones de


velocidad. La regulación de velocidad (SR) de un motor se define como

= × 100% ………………………… 2.1

4
= × 100% ………………………… 2.2

Es una medida aproximada de la forma de la característica par-velocidad


de un motor; una regulación de velocidad positiva significa que la velocidad del
motor disminuye con el aumento de carga y una regulación negativa de velocidad
significa que la velocidad aumenta cuando aumenta la carga. La magnitud de la
regulación de velocidad dice, aproximadamente, qué tan empinada es la
pendiente de la curva par-velocidad.

2.2 Circuito equivalente del motor dc

En la figura 2.1 se muestra el circuito equivalente de un motor dc. En esta


figura, el circuito del inducido está representado por una fuente ideal de voltaje
EA y una resistencia RA. Esta representación es el equivalente Thevenin de la
estructura total del rotor, incluidas las bobinas del rotor, los interpolos y los
devanados de compensación, si los hay. La caída de voltaje en la escobilla está
representada por una pequeña batería Vesc opuesta en dirección al flujo de
corriente de la máquina. Las bobinas de campo que producen el flujo magnético
en el generador están representadas por la inductancia LF y la resistencia RF. La
resistencia separada Radj representa una resistencia exterior variable, utilizada
para controlar la cantidad de corriente en el circuito de campo.

Existen algunas variantes y simplificaciones de este circuito equivalente


básico. Con frecuencia, el voltaje de caída en la escobilla puede despreciarse o
incluirse aproximadamente en el valor de RA. A veces, la resistencia interna de
las bobinas de campo también se agrupa con la resistencia variable y a este total
se le llama RF (véase figura 2.2). Una tercera variante es aquella en la cual los
generadores tienen más de una bobina de campo, todo lo cual aparecerá en el
circuito equivalente.

El voltaje interno generado en esta máquina está dado por la ecuación

5
= ………………………………… 2.3

Y el par inducido desarrollado por la máquina está dado por

= ………………………………. 2.4

Estas dos ecuaciones, la correspondiente a la ley de voltaje de Kirchhoff


del circuito del inducido y la curva de magnetización de la máquina, son las
herramientas necesarias para analizar el comportamiento y funcionamiento de un
motor dc.

Figura 2.1 Circuito equivalente de un motor dc. (Tomado de S.J. Chapman, maquinas eléctricas,
3ra. Edición, pág. 549)

Figura 2 . 2 Circuito equivalente simplificado en que elimina la caída de voltaje en la


escobilla y se combina Radj con la resistencia de campo. (Tomado de S.J. Chapman, maquinas
eléctricas, 3ra. Edición, pág. 549)

6
2.3 Tipos de motores dc

Los motores dc son accionados por una fuente de potencia dc. A menos
que se especifique otra cosa, se supone que el voltaje de entrada es constante,
puesto que esta suposición simplifica el análisis de los motores y la comparación
entre los diferentes tipos de ellos.

Existen cinco tipos de motores dc de uso general:

₋ Motor de corriente directa de excitación independiente.

₋ Motor de corriente directa en derivación.

₋ Motor de corriente directa de imán permanente.

₋ Motor de corriente directa en serie.

₋ Motor de corriente directa compuesta.

En este proyecto de investigación solo se usará el motor de corriente


directa de excitación independiente para el control de velocidad.

2.3.1 Motor de corriente directa de excitación independiente

Son aquellos motores que obtienen la alimentación del rotor y del estator
de dos fuentes de tensión independientes. Con ello, el campo del estator es
constante al no depender de la carga del motor, y el par de fuerza prácticamente
constante. La variación de velocidad al aumentar la carga se deberá solo a
la disminución de la fuerza electromotriz por aumentar la caída de tensión en
el rotor.

7
Figura 2.3 Circuito equivalente de un motor de excitación independiente (Tomado de S.J.
Chapman, maquinas eléctricas, 3ra. Edición, pág. 551).

2.3.2 Motor de corriente directa en derivación

Los devanados de campo y armadura están conectados en paralelo y


alimentados por una fuente común. También se denominan máquinas shunt,
y en ellas un aumento de la tensión en el inducido hace aumentar la velocidad
de la máquina.

En este motor cuando se le aplica una carga de manera repentina al


eje, la pequeña corriente sin carga que circula por la maquina no es
suficiente para producir un par suficiente para soportar la carga y como
consecuencia el motor tiende a desacelerar. Lo cual provoca que la tensión
disminuya dando como resultado una corriente mayor y también un par más
alto. Cuando el par o momento de torsión es igual al par demandado por la carga,
la velocidad permanece constante.

Por consiguiente cuando la carga mecánica se incrementa, la corriente


en el inducido se incrementa y la velocidad disminuye. Si se supone que la
tensión del motor es constante, no hay casi diferencia del comportamiento entre
el motor de excitación independiente y el motor shunt, a menos que se
especifique lo contrario, siempre que se describe el comportamiento de un
motor en derivación, también incluye el motor de excitación independiente.

8
Figura 2.4 Circuito equivalente de un motor dc en derivación. (Tomado de S.J. Chapman,
maquinas eléctricas, 3ra. Edición, pág. 551).

2.3.3 Motor de corriente directa de imán permanente

Un motor dc de imán permanente es un motor dc cuyos polos están


hechos de imanes permanentes. En algunas aplicaciones, los motores dc de
imán permanente ofrecen muchos más beneficios que los motores dc en
derivación. Puesto que estos motores no requieren circuito de campo externo,
no tiene las pérdidas en el cobre del circuito de campo asociadas con los
motores dc en derivación. Debido a que no requiere devanado de campo, estos
motores pueden ser más pequeños que los correspondientes motores en
derivación.

Un motor dc de imán permanente es básicamente la misma máquina que


un motor dc en derivación, excepto que el flujo de un motor de imán permanente
es fijo. Por tanto, no es posible controlar la velocidad de un motor de imán
permanente variando la corriente o el flujo de campo. Los únicos métodos de
control de velocidad disponibles para un motor de imán permanente son los de
control de voltaje del inducido y control de la resistencia del inducido.

2.3.4 Motor de corriente directa en serie

Los devanados de campo y estator están conectados en serie y


alimentados por una misma fuente de tensión. En este tipo de motores existe la
independencia entre el par y la velocidad; son motores en los que, al aumentar

9
la corriente de excitación, se hace disminuir la velocidad, con un aumento del
par.

Figura 2.5 Motor de corriente directa en serie. (Tomado de Siemens, components in DC motor/
Electrical Training Courses: Power distribution, motor & control, Adaptado por el autor).

Los motores serie tiene como característica principal que desarrollan


un gran par de arranque, sin embargo su velocidad varía considerablemente
cuando se operan a plena carga y en vacío, llegando incluso a desbocarse si
se trabaja sin carga, provocando con ello la destrucción del mismo, de ahí que
se sugiere operarlo con carga conectada aunque esta sea ligera. Por lo tanto
este tipo de motor no se recomienda utilizar cuando se desea tener una velocidad
constante ante una variación en la carga.

En la siguiente figura se muestra el circuito equivalente para este tipo de


motor serie, en la cual se aprecia que si se aplica la ley de voltajes de Kirchhoff,
se obtiene:

Figura 2.6 Circuito equivalente de un motor dc con excitación serie. (Tomado de S.J.
Chapman, maquinas eléctricas, 3ra. Edición, pág. 563).

10
En la siguiente figura se presentan las características típicas del par-
velocidad y par corriente en un motor serie.

Figura 2.7 Curva característica del par-velocidad y par corriente de un motor serie.

2.3.5 Motor de corriente directa compuesta

Este motor tiene conectada la bobina de campo serie y el devanado de


campo shunt con excitación independiente. El devanado serie permite al motor
un buen par de arranque mientras el devanado en derivación le permite una
buena regulación de velocidad.

El devanando de campo serie se puede conectar de forma tal que el flujo


producido apoye al flujo producido por la bobina de campo shunt constituyendo
lo que se conoce como motor compuesto acumulativo. Cuando el devanado de
campo serie produce un flujo que se opone al flujo de la bobina campo shunt,
el motor se conoce como motor compuesto diferencial. También es conveniente
que este tipo de motor se puede conectar en derivación corta o derivación larga,
según donde se conecte la rama en derivación.

11
Figura 2.8 Circuito equivalente de los dos motores compuestos. a) con conexión de
derivación larga. b) con conexión de derivación corta. (Tomado de S. J. Chapman, maquinas
eléctrica, pág. 569).

2.3.6 Partes del motor de corriente directa

El motor de corriente directa está compuesto por dos piezas


fundamentales: Rotor y Estator. En estas piezas se distribuyen en otras partes
de la siguiente forma:

Rotor

Constituye la parte móvil del motor, proporcional el torque para mover a


la carga. Está formado por:

- Eje: Formado por barras de acero fresada. Imparte la rotación del


núcleo, devanado y al colector.

- Núcleo: Se localiza sobre el eje. Fabricado con capas laminadas de


acero, su función es proporcionar un trayecto magnético entre los
polos para que el flujo magnético del devanado circule. Las

12
laminaciones tienen por objeto reducir las corrientes parasitas en el
núcleo. El acero en el núcleo debe ser capaz de mantener bajas las
perdidas por histéresis. Este núcleo laminado contiene ranuras a lo
largo de su superficie para albergar al devanado de la armadura
(bobina).

- Devanado: Consta de bobinas aisladas entre si y entre el núcleo de


la armadura. Estas bobinas están alojadas entre las ranuras, y están
conectadas eléctricamente con el colector, el cual debido a su
movimiento rotatorio, proporciona un camino de conducción
conmutado.

- Colector: Denominado también conmutador, está constituido de


láminas de material conductor (delgas), separadas entre sí y del
centro del eje por un material aislante, para evitar cortocircuito con
dichos elementos. El colector se encuentra sobre uno de los
extremos del eje del rotor, de modo que gira con este y en contacto
con las escobillas. La función del colector es recoger la tensión
producida por el devanado del inducido, transmitiéndola al circuito por
medio de las escobillas (llamadas también cepillos).

13
CAPÍTULO III

MODELAMIENTO Y ANÁLISIS DEL SISTEMA DEL MOTOR CC

3.1. Modelado del sistema

Para realizar el modelamiento y análisis del sistema se utilizarán los


comando de MATLAB siguientes: tf , ss

Contenido:

 Configuración física

 Ecuaciones del sistema

 Requerimientos de diseño

 Representación de Matlab

3.1.1. Configuración física

Un actuador común en los sistemas de control es el motor de


CC. Proporciona directamente movimiento giratorio y, junto con ruedas o
tambores y cables, puede proporcionar movimiento de traslación. El circuito
equivalente eléctrico de la armadura y el diagrama de cuerpo libre del rotor se
muestran en la siguiente figura.

14
Para este trabajo, asumiremos los siguientes valores para los
parámetros físicos. Estos valores se obtuvieron mediante el experimento de un
motor real en el laboratorio de control de pregrado de Carnegie Mellon.

(J) momento de inercia del rotor 3.2284E-6 kg.m ^ 2

(b) Constante de fricción viscosa del motor 3.5077E-6 Nms

(Kb) fuerza electromotriz constante 0.0274 V / rad / seg

(Kt) par del motor constante 0.0274 Nm / Amp

(R) resistencia eléctrica 4 Ohm

(L) inductancia eléctrica 2.75E-6H

En este trabajo, suponemos que la entrada del sistema es la fuente de


tensión ( ) aplicada a la armadura del motor, mientras que la salida es la posición
del eje ( ℎ ). Se supone que el rotor y el eje son rígidos. Suponemos además
un modelo de fricción viscosa, es decir, el par de fricción es proporcional a la
velocidad angular del eje.

3.1.2. Ecuaciones del sistema

En general, el par generado por un motor de CC es proporcional a la


corriente de la armadura y a la intensidad del campo magnético. En este ejemplo,
supondremos que el campo magnético es constante y, por lo tanto, que el par
del motor es proporcional solo a la corriente del inducido por un factor
constante como se muestra en la ecuación siguiente. Esto se conoce como
motor controlado por la armadura.

= (3.1)

La fem inversa, es proporcional a la velocidad angular del eje por un


factor constante .

= ̇ (3.2)

15
En las unidades SI, las constantes de par motor y contrafuerte son
iguales, es decir = ; por lo tanto, usaremos para representar tanto la
constante de torque del motor como la constante de la frecuencia de retorno de
la fuerza.

De la figura anterior, podemos derivar las siguientes ecuaciones


gobernantes basadas en la segunda ley de Newton y la ley de voltaje de
Kirchhoff.

̈+ ̇= (3.3)

+ = − ̇ (3.4)

3.1.2.1. Función de transferencia

Aplicando la transformada de Laplace, las ecuaciones de modelado


anteriores se pueden expresar en términos de la variable s de Laplace.

( + ) ( )= ( ) (3.5)

( + ) ( ) = ( )− ( ) (3.6)

Llegamos a la siguiente función de transferencia de bucle abierto


eliminando ( ) entre las dos ecuaciones anteriores, donde la velocidad de
rotación se considera la salida y la tensión de la armadura se considera la
entrada.

̇( ) /
( )= =( (3.7)
( ) )( )

Sin embargo, durante este ejemplo veremos la posición como


salida. Podemos obtener la posición integrando la velocidad, por lo tanto, solo
tenemos que dividir la función de transferencia anterior por s.

( )
= (3.8)
( ) (( )( ) )

16
3.1.2.2. Estado – espacio

Las ecuaciones diferenciales de arriba también se pueden expresar en


forma de espacio de estado eligiendo la posición del motor, la velocidad del
motor y la corriente de armadura como variables de estado. De nuevo, el voltaje
de la armadura se trata como la entrada y la posición de rotación se elige como
la salida.

0 1 0 0
̇ = 0 − ̇ + 0 (3.9)
0 − −

= [1 0 0] ̇ (3.10)

3.1.3. Requerimientos de diseño

Desearemos poder posicionar el motor con mucha precisión, por lo tanto,


el error de estado estacionario de la posición del motor debe ser cero cuando se
le da una posición ordenada. También deseamos que el error de estado
estacionario debido a una perturbación constante sea cero también. El otro
requisito de rendimiento es que el motor llegue a su posición final muy
rápidamente sin exceso excesivo. En este caso, queremos que el sistema tenga
un tiempo de establecimiento de 40 ms y un sobreimpulso inferior al 16%.

Si simulamos la entrada de referencia mediante una entrada de paso


unitario, la salida de la posición del motor debe tener:

 Tiempo de establecimiento de menos de 40 milisegundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una


entrada de perturbación por pasos.

17
3.1.4. Representación de Matlab

3.1.4.1. Función de transferencia

Podemos representar la función de transferencia de bucle abierto del


motor en MATLAB definiendo los parámetros y la función de transferencia de la
siguiente manera. Ejecutando este código en la ventana de comandos produce
el resultado que se muestra a continuación.

3.1.4.2. Espacio de estados

También se puede representar el sistema usando las ecuaciones de


espacio de estado. Los siguientes comandos adicionales de MATLAB crean un
modelo de espacio de estado del motor y producen el resultado que se muestra
a continuación cuando se ejecuta en la ventana de comandos de MATLAB.

18
El modelo de espacio de estado anterior también se puede generar
convirtiendo su modelo de función de transferencia existente en una forma de
espacio de estado. Esto se logra nuevamente con el comando ss como se
muestra a continuación.

3.2. Análisis del sistema

Para realizar el análisis del sistema, se utilizarán los comandos de


Matlab siguientes: tf, step, isstable, pole, feedback, pzmap, damp.

19
Contenido:

 Respuesta de lazo abierto

 Respuesta de lazo cerrado

A partir del problema principal, las ecuaciones dinámicas en el dominio


de Laplace y la función de transferencia de bucle abierto del motor de CC son
las siguientes:

( + ) ( )= ( ) (3.11)

( + ) ( ) = ( )− ( ) (3.12)

( )
= (3.13)
( ) (( )( ) )

Para una referencia de paso de 1 radian, los criterios de diseño dados


son los siguientes:

 Tiempo de asentamiento inferior a 0.040 segundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una


entrada de perturbación por pasos.

3.2.1. Respuesta de lazo abierto

Primero se debe crear un nuevo archivo m e ingresar los siguientes


comandos.

20
Ahora veamos cómo funciona el sistema de lazo abierto no
compensado. Específicamente, usaremos el comando step de MATLAB para
analizar la respuesta de paso de lazo abierto. Se debe agregar los siguientes
comandos al final del archivo m y ejecutarlo en la ventana de comandos de
MATLAB y obtendremos el diagrama asociado que se muestra a continuación.

Step Response
7

5
Amplitude

0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
Time (seconds)

21
De la gráfica anterior, podemos ver que cuando se aplica 1 voltio al
sistema, la posición del motor crece sin límites. Esto obviamente está en
desacuerdo con los requisitos dados, en particular, que no haya un error de
estado estacionario. La respuesta de bucle abierto del sistema ni siquiera es
estable. La estabilidad de un sistema se puede verificar con el comando de
MATLAB isstable donde un valor devuelto de TRUE (1) indica que el sistema es
estable y un valor devuelto de FALSE (0) indica que el sistema no es estable.

La estabilidad del sistema también se puede determinar a partir de los


polos de la función de transferencia, donde los polos se pueden identificar
utilizando el comando pole de MATLAB, como se muestra a continuación.

Como lo indica esta función, uno de los polos de la función de


transferencia de bucle abierto está en el eje imaginario, mientras que los otros

22
dos polos están en la mitad izquierda del complejo. Un polo en el eje imaginario
indica que la respuesta libre del sistema no crecerá sin límites, sino que tampoco
decaerá a cero. Aunque la respuesta libre no crecerá sin límites, un sistema con
un polo en el eje imaginario puede crecer sin límites cuando se le da una entrada,
incluso cuando la entrada está limitada. Este hecho está de acuerdo con lo que
ya hemos visto. En este caso particular, el polo en el origen se comporta como
un integrador. Por lo tanto, cuando al sistema se le da un paso de entrada, su
salida continúa creciendo hasta el infinito de la misma manera que una integral
de una constante crecería hasta el infinito a medida que el límite superior de la
integral se hace más grande.

3.2.2. Respuesta de lazo cerrado

Consideremos ahora la respuesta de bucle cerrado del sistema donde el


esquema del sistema tiene la siguiente estructura.

La función de transferencia de bucle cerrado para lo anterior con el


controlador ( ) simplemente configurado igual a 1 se puede generar usando
la retroalimentación del comando MATLAB como se muestra a continuación.

23
La respuesta de paso de unidad correspondiente se puede generar
agregando el comando anterior y siguiente al archivo m.

Step Response
1.2
System: sys_cl
Settling time (seconds): 0.13
1 System: sys_cl
Peak amplitude: 1.07 System: sys_cl
Overshoot (%): 7.16 Final value: 1
0.8 At time (seconds): 0.089
Amplitude

0.6

0.4

0.2

0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
Time (seconds)

24
Al examinar la respuesta de paso de ciclo cerrado anterior, la adición de
retroalimentación estabilizó el sistema. De hecho, el error de estado estable
parece ser conducido a cero y el exceso es inferior al 16%, aunque no se cumple
el requisito de tiempo de establecimiento. El carácter de la respuesta de paso
resultante se indica nuevamente mediante la ubicación de los polos de la función
de transferencia del sistema, tal como lo hicieron las propiedades de estabilidad
del sistema. El comando de MATLAB pzmap representará los polos (y ceros) de
una función de transferencia determinada como se muestra a continuación.

Pole-Zero Map
40

30 System: sys_cl
Pole : -29.6 + 35.3i
Damping: 0.643
System: sys_cl
Imaginary Axis (seconds -1 )

20
Pole : -1.45e+06 Overshoot (%): 7.16
Damping: 1 Frequency (rad/s): 46.1
10 Overshoot (%): 0
Frequency (rad/s): 1.45e+06
0

-10
System: sys_cl
-20 Pole : -29.6 - 35.3i
Damping: 0.643
Overshoot (%): 7.16
-30 Frequency (rad/s): 46.1

-40
-15 -10 -5 0
-1 5
Real Axis (seconds ) 10

La gráfica anterior muestra que el sistema de circuito cerrado tiene un


polo real a -1.45e6 y un par de polos complejos a -29.6 + 35.3j y -29.6-35.3j como
lo indican las ubicaciones de las x azules. Las frecuencias naturales y de
amortiguación asociadas con estos polos se pueden determinar haciendo clic
con el botón derecho en los polos asociados en la gráfica resultante. Esta

25
información también se puede determinar utilizando el comando damp de
MATLAB como se muestra a continuación.

Como el polo real es mucho más rápido que los polos conjugados
complejos (su parte real es mucho más negativa), su efecto sobre la respuesta
dinámica del sistema será mínimo. Por lo tanto, la amortiguación ( = 0.643) y la
frecuencia natural ( = 46.1) de los polos conjugados complejos indicarán
principalmente la respuesta del sistema de circuito cerrado.

Agregar los siguientes comandos a su archivo m calculará el


sobreimpulso y el 2% del tiempo de asentamiento predicho por estos polos,
suponiendo que dominen, en otras palabras, que tenemos un sistema de
segundo orden subamortiguo canónico.

26
Los resultados anteriores coinciden estrechamente con el sobreimpulso
y el tiempo de asentamiento de la gráfica de respuesta al escalón por encima de
la cual se capturó explícitamente el efecto del tercer polo no dominante.

En el resto de las páginas de este ejemplo, se diseñarán diferentes


controladores para reducir el tiempo de asentamiento de la respuesta
escalonada de bucle cerrado para cumplir el requisito de 40 milisegundos dado
y al mismo tiempo cumplir los demás requisitos del sistema, incluido el error cero
de estado estacionario en la presencia de una perturbación escalonada.

3.3. PID

Los comandos de MATLAB utilizados en este apartado


son: tf , step , feedback

Contenido:

 Control proporcional

 Control PI

 Control PID

Desde el problema principal, la función de transferencia de bucle abierto


del motor de CC se proporciona de la siguiente manera.

( )
( )= = (3.14)
( ) (( )( ) )

La estructura del sistema de control tiene la forma que se muestra en la


figura a continuación.

27
Para una referencia de paso de 1 radian, los criterios de diseño son los
siguientes.

 Tiempo de asentamiento inferior a 0.040 segundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una


entrada de perturbación por pasos

Ahora diseñemos un controlador PID y añádalo al sistema. Primero se


crea un nuevo archivo m y escribir los siguientes comandos:

Recuerde que la función de transferencia para un controlador PID tiene


la siguiente forma:

( )= + + = (3.15)

3.3.1. Control proporcional

Primero intentemos usar un controlador proporcional con ganancia que


va del 1 al 21. Se puede construir una matriz de modelos LTI, cada uno con
una ganancia proporcional diferente, usando un bucle for. Las funciones de
transferencia de bucle cerrado se pueden generar utilizando el comando
de retroalimentación. Agregue el siguiente código al final de su archivo m y
ejecútelo en la ventana de comandos de MATLAB:

28
Ahora veamos cómo son las respuestas de paso. Agregue el siguiente
código al final de su archivo m y vuelva a ejecutarlo en la ventana de
comandos. Debe generar la gráfica que se muestra en la figura a continuación.
(radianes)
Posición,

29
Consideremos también la respuesta del sistema a una perturbación
escalonada. En este caso, asumiremos una referencia de cero y veremos cómo
el sistema responde a la perturbación por sí mismo. El comando
de retroalimentación todavía se puede emplear para generar la función de
transferencia de bucle cerrado donde todavía hay retroalimentación negativa, sin
embargo, ahora solo la función de transferencia de planta ( ) está en la ruta de
avance y el controlador ( ) se considera que está en la ruta de
retroalimentación. Consulte de nuevo el diagrama de bloques en la parte
superior de esta página para ver la estructura del sistema. Agregue lo siguiente
al final de su archivo m y ejecútelo en la ventana de comandos. Debe generar la
gráfica que se muestra en la figura a continuación:
(radianes)
Posición,

30
Los gráficos anteriores muestran que el sistema no tiene un error de
estado estable en respuesta a la referencia de paso en sí mismo,
independientemente de la elección de la ganancia proporcional . Esto se debe
al hecho de que la planta tiene un integrador, es decir, el sistema es del tipo 1.
Sin embargo, el sistema tiene un error significativo en el estado estacionario
cuando se agrega la perturbación. Específicamente, la respuesta debida a la
referencia y la perturbación aplicadas simultáneamente es igual a la suma de los
dos gráficos que se muestran arriba. Esto se desprende de la propiedad de
la superposición que se aplica a los sistemas lineales. Por lo tanto, para tener
un error de estado estacionario cero en presencia de una perturbación,
necesitamos que la respuesta de perturbación a descomposición sea
cero. Cuanto mayor es el valor de cuanto menor es el error de estado
estacionario debido a la perturbación, pero nunca llega a cero. Además, el
empleo de valores cada vez más grandes tiene el efecto adverso de aumentar
el exceso y el tiempo de asentamiento como se puede ver en el gráfico de
referencia del paso. Recuerde que agregar un término integral eliminará el error
de estado estacionario y un término derivado puede reducir el tiempo de
sobreimpulso y de establecimiento.

3.3.2. Control PI

Primero probemos con un controlador PI para eliminar el error de estado


estable debido a la perturbación. Estableceremos = 21 y probaremos
ganancias integrales que van de 100 a 500. Cambie su archivo m a lo
siguiente y ejecútelo en la ventana de comandos. Debe generar una figura como
la que se muestra a continuación:

31
Posición, \ theta (radianes)

Ahora veamos qué pasó con la respuesta de perturbación


escalonada. Cambie los siguientes comandos en su archivo m y vuelva a
ejecutar en la ventana de comandos. Debe generar un diagrama como el que se
muestra en la figura a continuación.

32
Posición, \ theta (radianes)

El control integral ha reducido el error de estado estacionario a cero,


incluso cuando hay una perturbación por pasos presente; ese era el objetivo para
agregar el término integral. Para la respuesta a la referencia de paso, todas las
respuestas son similares y la cantidad de oscilación aumenta ligeramente a
medida que aumenta . Sin embargo, la respuesta debida a la perturbación
cambia significativamente a medida que se cambia la ganancia
integral . Específicamente, cuanto mayor sea el valor de empleado, más
rápido se desintegrará el error a cero. Elegiremos = 500 porque el error debido
a la perturbación decae rápidamente a cero, a pesar de que la respuesta a la
referencia tiene un tiempo de establecimiento más largo y más

33
sobreimpulso. Intentaremos reducir el tiempo de asentamiento y el sobreimpulso
agregando un término derivado al controlador.

3.3.3. Control PID

Agregar un término derivado al controlador significa que ahora tenemos


los tres términos del controlador PID. Investigaremos ganancias derivadas
que van desde 0.05 a 0.25. Vuelva al archivo m y realice los siguientes
cambios. La ejecución del archivo m alterada generará un gráfico como el que
se muestra a continuación:

34
Posición, \ theta (radianes)

Veamos qué pasó con la respuesta de perturbación de paso, cambie los


siguientes comandos en su archivo m y vuelva a ejecutar en la línea de comando.

35
Posición, \ theta (radianes)

Parece que cuando = 0.15, podemos cumplir con nuestros requisitos


de diseño. Para determinar las características precisas de la respuesta al paso,
puede usar el menú contextual del gráfico de respuesta al paso, o puede usar el
comando stepinfo de MATLAB como se muestra a continuación.

36
De lo anterior, vemos que la respuesta a una referencia de paso tiene un
tiempo de establecimiento de aproximadamente 34 ms (<40 ms), un
sobreimpulso del 12% (<16%) y ningún error de estado estacionario. Además, la
respuesta de perturbación escalonada tampoco tiene un error de estado
estacionario. Entonces ahora sabemos que si usamos un controlador PID con

= 21, = 500 = 0.15,

Todos nuestros requisitos de diseño serán satisfechos.

3.4. Diseño del controlador de locus de raíz

Los comandos de MATLAB utilizados para el diseño de este controlador


son: tf, rlocus, sgrid, pole, minreal, feedback, step

Contenido:

 Dibujando el locus raíz de bucle abierto

 Reducción del modelo

 Control integral

 Control PI

 Control PID

 Determinando ganancia usando el comando rlocfind

Desde el problema principal, la función de transferencia de bucle abierto


del motor de CC se proporciona de la siguiente manera.

( )
( )= = (3.16)
( ) (( )( ) )

La estructura del sistema de control tiene la forma que se muestra en la


figura a continuación.

37
Con una referencia de paso de 1 radian, recordemos que los criterios de
diseño son los siguientes.

 Tiempo de asentamiento inferior a 0.040 segundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una


entrada de perturbación por pasos

Ahora diseñemos un controlador usando el método de locus raíz.

Cree un nuevo archivo m e ingrese los siguientes comandos.

38
3.4.1. Dibujando el locus raíz de bucle abierto

La idea principal del diseño de locus de raíz es predecir la respuesta de


bucle cerrado a partir del gráfico de locus de raíz que representa posibles
ubicaciones de polos de bucle cerrado y se extrae de la función de transferencia
de bucle abierto. Luego, agregando ceros y / o polos a través del controlador, el
lugar de la raíz puede modificarse para lograr la respuesta deseada de circuito
cerrado. Primero veamos el locus raíz para la planta. Agregue los siguientes
comandos al final de su archivo m y ejecútelo en la ventana de comandos de
MATLAB para generar un diagrama como el que se muestra a continuación.

10 6
Root Locus - P Control
5
0.5
4

-1

-2

-3

-4
0.5
-5
-6 -5 -4 -3 -2 -1 0 1 2 3
-1 6
Real Axis (seconds ) 10

39
Los comandos sgrid y sigrid son funciones que marcan las regiones del
plano complejo correspondientes a ciertos parámetros. sgrid es una función en
la Caja de herramientas del sistema de control; sin embargo, para usar sigrid ,
tendrá que descargarlo aquí . Las variables en el comando sgrid son la relación
de amortiguamiento ( = 0.5) y la frecuencia natural ( = 0). La variable en
el comando sigrid es el término. El y usado anteriormente corresponde a
un sobreimpulso del 16% y un tiempo de asentamiento de 0.040 segundos,
respectivamente, para un sistema canónico de segundo orden. Aunque nuestra
función de transferencia motora es de tercer orden, se explicará que estas
definiciones basadas en segundo orden funcionarán bien. No se da ningún
valor porque no tenemos ningún requisito sobre el tiempo de subida.

De la figura anterior, los dos polos de bucle abierto cerca del origen no
pueden distinguirse porque la escala de los ejes está configurada para mostrar
el tercer polo que está mucho más a la izquierda que los otros dos
polos. El comando de MATLAB pole se puede emplear para determinar los
valores exactos de los polos de bucle abierto.

El polo de bucle abierto situado muy lejos hacia la izquierda (más allá de
-1e6) no afecta la dinámica de lazo cerrado a menos que se utilicen ganancias
muy grandes. Estas grandes ganancias colocan dos de los polos de circuito
cerrado en el plano – s complejo de la mitad derecha donde el sistema se vuelve
inestable. Como no utilizaremos ganancias que harán que el sistema de circuito
cerrado sea inestable, podemos descuidar este polo realizando una reducción
del modelo.

40
3.4.2. Reducción del modelo

En general, la parte real de un polo indica qué tan rápido la porción


transitoria del modo correspondiente decae a cero (suponiendo una parte real
negativa). Por lo tanto, si tiene una función de transferencia que tiene uno (o
más) polos mucho más hacia la izquierda en el plano complejo (más negativo)
que los otros polos, su efecto sobre la respuesta dinámica quedará oculto por los
polos más lentos y dominantes. En el caso de nuestro ejemplo de posición del
motor, la respuesta transitoria de bucle cerrado para pequeñas ganancias no se
verá afectada en gran medida por el polo de bucle abierto en -1.45e6. La forma
correcta de descuidar este polo para mantener su contribución de estado
estacionario es mantener la ganancia de CC de la función de transferencia igual,
de la siguiente manera:

( )
( )= ≈ ( ) para ≪ (3.17)
/

Como se muestra arriba, los polos de la función de transferencia de bucle


abierto se pueden identificar utilizando el comando de MATLAB pole. Los dos
polos que dominan son difíciles de identificar desde arriba debido a la notación
científica, pero se pueden ver más claramente al reconocer que son el primer y
el tercer elemento del vector resultante que hemos denominado polos.

41
A continuación, nos gustaría construir la función de transferencia
reducida para descuidar el polo en -1.45e6 sin afectar el comportamiento de
estado estable del sistema. Esto se puede lograr con el comando
MATLAB minreal. Agregue los siguientes comandos a su archivo m y vuelva a
ejecutar.

42
Luego puede verificar que los otros polos no se hayan visto afectados
por el uso del comando pole como se muestra a continuación.

Ahora podemos dibujar el locus raíz del sistema reducido. Agregue los
siguientes comandos al final de su archivo m y ejecútelo en la ventana de
comandos.

Root Locus - P Control


200
0.5

150

100

50

-50

-100

-150

0.5
-200
-300 -250 -200 -150 -100 -50 0 50 100
-1
Real Axis (seconds )

43
Si examinó el lugar de la raíz original cerca del origen, se aproximaría
mucho al lugar geométrico de la función de transferencia reducida que se
muestra arriba. Podemos ver en esta nueva trama que los polos de bucle cerrado
nunca son lo suficientemente rápidos como para cumplir el requisito de tiempo
de establecimiento (es decir, nunca se mueven a la izquierda de la línea = 100
vertical). Además, recuerde que necesitamos un integrador en el controlador (no
solo en el sistema) para eliminar el error de estado estable debido a una
perturbación constante.

3.4.3. Control integral

Ahora, intentemos usar el control integral para eliminar el error de estado


estable debido a una perturbación constante. Modifique su archivo m de modo
que aparezca como el siguiente. Tenga en cuenta que esto agrega
un término 1/s a la ruta de acceso del sistema. Ejecute este archivo m y obtendrá
un diagrama como el que se muestra a continuación.

44
Root Locus - I Control
200
0.5

150

100

50

-50

-100

-150

0.5
-200
-300 -250 -200 -150 -100 -50 0 50 100
-1
Real Axis (seconds )

Desde este lugar de raíz podemos ver que el sistema de circuito cerrado
bajo control integral nunca es estable, por lo tanto, se debe emplear un
controlador diferente.

3.4.4. Control PI

Ahora, modifiquemos el controlador integral a un controlador PI. Usar PI


en lugar deI control agrega un cero al sistema de bucle abierto. Colocaremos
este cero en s = -20. El cero debe estar entre los polos de bucle abierto del
sistema en este caso para que el sistema de bucle cerrado sea estable. Cambie
las líneas que definen el controlador en su archivo m a lo siguiente. Vuelva a
ejecutar su archivo m y obtendrá un diagrama como el que se muestra a
continuación.

45
Root Locus - PI Control
200
0.5

150

100

50

-50

-100

-150

0.5
-200
-300 -250 -200 -150 -100 -50 0 50 100
-1
Real Axis (seconds )

Hemos logrado estabilizar el sistema y lograr un error de estado estable


cero a una perturbación constante, pero el sistema todavía no es lo
suficientemente rápido.

3.4.5. Control PID

Para tirar del locus raíz más hacia la izquierda, para hacerlo más rápido,
necesitamos colocar un segundo cero de lazo abierto, lo que da como resultado
un controlador PID. Después de un poco de experimentación, colocamos los dos

46
ceros PID en s = -60 y s = -70. Cambie las líneas que definen el controlador en
su archivo m a lo siguiente. Vuelva a ejecutar su archivo m y generará un
diagrama como el que se muestra a continuación:

Root Locus - PID Control


200
0.5

150

100

50

-50

-100

-150

0.5
-200
-300 -250 -200 -150 -100 -50 0 50 100
-1
Real Axis (seconds )

Ahora, podemos ver que dos de los polos de bucle cerrado se pueden
ubicar bien dentro del tiempo de establecimiento y de los requisitos de
sobreimpulso porcentual. El tercer polo de bucle cerrado se mueve desde el polo
de bucle abierto en s = -59.2 al cero de bucle abierto en s = -60. Este polo de
bucle cerrado casi se cancela con el cero (que permanece en la función de

47
transferencia de bucle cerrado) porque están muy juntos. Por lo tanto, podemos
descuidar su efecto. Reduzcamos nuevamente nuestro nuevo modelo
ejecutando la cancelación de polo cero utilizando el comando minreal. Pasamos
0.1 como un parámetro de tolerancia de la siguiente manera. El locus raíz para
este sistema reducido adicional con controlador se muestra a
continuación. Tenga en cuenta qué tan cerca se asemeja al lugar raíz sin la
cancelación de polo cero.

Root Locus - PID Control


200
0.5

150

100

50

-50

-100

-150

0.5
-200
-300 -250 -200 -150 -100 -50 0 50 100
-1
Real Axis (seconds )

Aunque se canceló el cero de bucle abierto, el otro cero de bucle abierto


permanece en la función de transferencia de bucle cerrado y no se puede

48
descuidar. El efecto de un cero adicional (si no hay cancelación) es, en general,
para acelerar la respuesta y agregar sobreimpulso. Por lo tanto, debemos ser
conservadores al elegir dónde en el lugar raíz queremos que estén los polos de
bucle cerrado.

3.4.6. Determinando ganancia usando el comando rlocfind

Si recordamos, necesitamos que el tiempo de establecimiento y el


sobreimpulso sean lo más pequeños posible, particularmente debido al efecto
del cero adicional. La amortiguación grande corresponde a los puntos en el lugar
de la raíz cerca del eje real. Una respuesta rápida corresponde a puntos en el
lugar de la raíz a la izquierda del eje imaginario. Para encontrar la ganancia
correspondiente a un punto en el lugar de la raíz, podemos usar
el comando rlocfind. Específicamente, ingrese el comando [k, poles] = rlocfind
(rsys_ol) en la ventana de comandos de MATLAB.

A continuación, vaya al gráfico y seleccione un punto en el lugar de la


raíz en el lado izquierdo del bucle, cerca del eje real, como se muestra a
continuación con las pequeñas marcas (+). Esto asegurará que la respuesta sea
casi tan rápida como sea posible con un sobreimpulso mínimo. Estas
ubicaciones de polos indican que la respuesta casi no tendría un sobreimpulso
si se tratara de un sistema canónico de segundo orden. Recuerde, sin embargo,
que la presencia del cero agregará un exceso.

49
Root Locus - PID Control
200
0.5

150

100

50

-50

-100

-150

0.5
-200
-300 -250 -200 -150 -100 -50 0 50 100
-1
Real Axis (seconds )

Después de hacer esto, debería ver el siguiente resultado en la ventana


de comandos de MATLAB.

50
Tenga en cuenta que los valores devueltos en la ventana de comandos
de MATLAB pueden no ser exactamente iguales, pero al menos deben tener el
mismo orden de magnitud. También puede obtener los diagramas de respuesta
de paso para la referencia y la perturbación con este controlador específico y la
ganancia de bucle ejecutando el siguiente código en la ventana de
comandos. Estos comandos deben producir los gráficos que se muestran a
continuación:

Response to a Step Reference with PID Control


1.5
System: sys_cl
Peak amplitude: 1.14
Overshoot (%): 14.2
At time (seconds): 0.015
System: sys_cl
Final value: 1
1
System: sys_cl
Settling time (seconds): 0.0396

0.5

0
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Time (seconds)

51
Response to a Step Disturbance with PID Control
0.06

0.05

0.04

0.03

0.02

0.01
System: dist_cl
Final value: 0
0
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Time (seconds)

De lo anterior, se puede ver que, en respuesta a una referencia de pasos,


el sistema tiene un sobreimpulso de aproximadamente 14%, un tiempo de
establecimiento de poco menos de 0.04 segundos y ningún error de estado
estacionario. Además, la respuesta a una perturbación escalonada alcanza un
valor de estado estacionario de cero. Por lo tanto, todos los requisitos de diseño
se han cumplido.

En este ejemplo, colocamos los ceros de nuestro compensador para


reformar el lugar de la raíz de manera que los polos de lazo cerrado se puedan
colocar en la región del plano complejo que alcanzaría nuestros requisitos de
diseño dados. En general, es útil comprender los principios de cómo se dibuja el

52
locus raíz, sin embargo, MATLAB puede ser muy útil para refinar el diseño y
verificar el rendimiento resultante.

3.5. Métodos de dominio de frecuencia para el diseño del controlador

Los comandos de MATLAB utilizados en este método


son: tf , controlSystemDesigner

Contenido:

 Dibujando el diagrama de Bode del sistema no compensado

 Agregar un integrador

 Especificaciones de margen de ganancia y fase y diseño del


controlador

Desde el problema principal, la función de transferencia de bucle abierto


del motor de CC se proporciona de la siguiente manera.

( )
( )= = (3.18)
( ) (( + )( + )+ )

La estructura del sistema de control tiene la forma que se muestra en la


figura a continuación:

53
Con una referencia de paso de 1 radian, los criterios de diseño son los
siguientes.

 Tiempo de asentamiento inferior a 0.040 segundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una


entrada de perturbación por pasos

Primero se debe crear un nuevo archivo m y escribir los siguientes


comandos.

3.5.1. Dibujando el diagrama de Bode del sistema no compensado

La idea principal del diseño basado en frecuencia es utilizar el diagrama


de Bode de la función de transferencia de bucle abierto para estimar la respuesta
de ciclo cerrado del sistema. Agregar un controlador al sistema cambia el
diagrama de Bode de bucle abierto, cambiando así la respuesta de bucle
cerrado. Primero dibujemos el diagrama de Bode para la función de transferencia
de bucle abierto original. A lo largo de esta sección, utilizaremos el Diseñador
de sistema de control interactivo para diseñar nuestro controlador. Esta
herramienta se puede abrir para la planta no compensada agregando el
comando controlSystemDesigner ('bode', P_motor) a su archivo m o yendo a
la pestaña APLICACIONES de la tira de herramientas MATLAB y haciendo clic
en el ícono de la aplicación bajo Control System Design and Analysis.

Una ventana titulada Control System Designer se abrirá inicialmente


teniendo el formulario que se muestra en la figura a continuación. En la ventana,
podrá ver tanto el diagrama de Bode de bucle abierto como la respuesta de paso
de ciclo cerrado de la función de transferencia pasada a través de
la función controlSystemDesigner. Si se omite la cadena 'bode' de la llamada a
la función, la ventana inicial predeterminada incluye el gráfico del locus raíz,
además del diagrama de Bode de bucle abierto y el gráfico de respuesta a paso
de bucle cerrado.

54
De las páginas anteriores sabemos que la retroalimentación de la planta
de ciclo abierto en unidad no satisface los requisitos del sistema dado. Por lo
tanto, agregaremos diferentes compensadores a nuestro sistema con el fin de
remodelar el diagrama de Bode de bucle abierto para proporcionar el rendimiento
deseado en circuito cerrado.

3.5.2. Agregando un integrador

Ahora agreguemos un compensador integrador puro a nuestro


sistema. La arquitectura del sistema de retroalimentación se puede modificar
dentro de la ventana del Diseñador del sistema de control. Para el formato
predeterminado, el compensador C se coloca en serie con la planta G en la ruta

55
de avance del diagrama de bloques. Esto corresponde a la arquitectura que
estamos asumiendo, como se muestra en el esquema en la parte superior de
esta página. Al colocar un compensador integral en esta posición, se logrará el
objetivo de un error de estado estacionario cero en presencia de una entrada de
perturbación escalonada.

La forma de nuestro controlador se modifica luego en la ventana Editor


de Compensadores que podemos abrir haciendo clic con el botón derecho en
el diagrama de Bode y luego seleccionando Compensador de
Edición. Específicamente, se agrega un integrador a nuestro controlador
haciendo clic con el botón derecho en la sección de Dinámica de la ventana y
seleccionando Añadir Polo / Zero> Integrador en el menú resultante. La figura
siguiente ilustra cómo debería ser la ventana del editor de Compensator.

El diagrama de Bode que ya está abierto debería cambiar como se


muestra a continuación para reflejar la adición del integrador.

56
3.5.3. Especificaciones de margen de ganancia y fase y diseño del
controlador

Recuerde que también deseamos un rebasamiento de menos del


16%. El sobreimpulso de una respuesta escalonada se correlaciona con el
margen de fase de un sistema. Aplicaremos la relación que el margen de fase
equivale aproximadamente a 100 veces la relación de amortiguación ( ) para
estimar el margen de fase deseado de nuestro sistema. Además, utilizaremos
nuestro requisito de tiempo de establecimiento de 0,040 segundos para estimar
la frecuencia de ancho de banda deseada ( ) de nuestro sistema de circuito
cerrado. Agregue el siguiente código a su archivo m para estimar el margen de
fase y el ancho de banda deseados. Tenga en cuenta que estas relaciones están

57
destinadas a un sistema canónico de segundo orden, que no tenemos, pero los
resultados servirán como un buen punto de partida para nuestro diseño.

Los resultados anteriores demuestran que deseamos tener al menos 50


grados de margen de fase en un intento de cumplir con el requisito de
sobreimpulso. Además, se desea un ancho de banda de bucle cerrado de 250
rad/s para alcanzar adicionalmente el requisito de tiempo de
establecimiento. Calcularemos el ancho de banda de bucle cerrado como el
punto en el diagrama de Bode de bucle abierto donde la magnitud se encuentra
entre -6 y -7.5 dB. Del diagrama de Bode vemos que debemos agregar
aproximadamente 110 grados de ganancia de fase y 80 dB a una frecuencia de
250 rad/seg para mover la frecuencia de cruce de ganancia a 250 rad/seg y
proporcionar 50 grados de margen de fase. El diagrama de magnitud también se
encontrará entre -6 y -7.5 dB a una frecuencia superior a 250 rad/seg.

Desde el diagrama de fase de Bode podemos ver que hay un polo cerca
de -60 como lo indica el aspa azul en el diagrama de Bode cerca de la frecuencia

58
de 60 rad/seg (así como también el cambio en los gráficos de magnitud y
fase). Por lo tanto, comenzaremos a modificar nuestro compensador agregando
un cero en s = -60 para aplanar la curva de fase. Se puede volver a agregar cero
real haciendo clic con el botón derecho en la sección Dinámica de la ventana
del Editor de Compensadores y seleccionando Real Zero. La ubicación del
cero se puede establecer escribiendo -60 en la celda Ubicación de la
parte Editar dinámica de la ventana seleccionada y presionando Entrar. Su
compensador ahora tiene la forma de un controlador PI y el diagrama de Bode
de bucle abierto compensado debe tener la forma modificada que se muestra a
continuación donde el rojo muestra la ubicación del nuevo cero. Para lograr los
límites en los ejes que se muestran a continuación, haga clic derecho en el
diagrama de Bode y seleccione Propiedades en el menú resultante.

59
Desde el diagrama de Bode podemos ver que necesitamos al menos 50
grados adicionales de fase si movemos nuestra frecuencia de cruce a 250
rad/seg. Agreguemos un compensador de plomo para agregar exactamente 50
grados de fase a esta frecuencia. Las siguientes ecuaciones proporcionan las
posiciones de polo y cero del compensador de cable.

El polo y el cero del compensador principal se pueden agregar a nuestro


sistema de la misma manera que el integrador y el cero real se agregaron
anteriormente. Alternativamente, podemos agregar un compensador de
derivación especificando la ubicación máxima de fase y frecuencia deseada
dentro de la ventana del Diseñador de sistemas de control. Esto también se
logra haciendo clic con el botón derecho en la sección de Dinámica de
la ventana del Editor del Compensador. Al seleccionar el compensador
de adelanto en la sección Dinámica de la ventana, se abren cuatro celdas
en Editar dinámica seleccionada porción de la ventana. Estas cuatro celdas le
permiten especificar la porción de plomo del compensador en términos de
ubicación de polo y cero, o en términos de la ubicación de fase y frecuencia. Si

60
ingresamos 50 en la celda de Fase Max Delta (grados) y 250 en la celda
de Frecuencia en y presionamos Enter, obtendremos un polo y una ubicación
cero que coincidan estrechamente (aunque no exactamente) con los calculados
anteriormente. El diagrama de Bode modificado debería tener una apariencia
similar a la que se muestra a continuación.

61
Este nuevo diagrama de Bode ahora muestra que el margen de fase es
aproximadamente correcto a 250 rad/seg, pero la ganancia es demasiado
pequeña en aproximadamente 55 dB si deseamos que el crossover de ganancia
se produzca a 250 rad/seg. Tenga en cuenta que cada polo y cero que hemos
agregado al compensador tiene la forma

+1 (3.19)

en lugar de ( s + z ) o ( s + p ). Esta forma predeterminada tiene una


ganancia de CC de 1. Por lo tanto, su diagrama de magnitud se desplazará hacia
arriba o hacia abajo en comparación con la figura que se muestra arriba si los
términos de su compensador tienen la forma ( s + z ) y ( s + p ). La conversión
de decibelios determina que una ganancia de 600 cambiará la magnitud trazada
aproximadamente 55 dBs. Este cambio en la ganancia se puede lograr
escribiendo 600 en la celda multiplicando el compensador en la parte superior

62
de la ventana del Editor de Compensadores y presionando Entrar. El
diagrama de Bode resultante se muestra a continuación. Como se indica en el
gráfico, el margen de fase es de 49.8 grados y la frecuencia de cruce de ganancia
es de 236 rad/seg, que están cerca de nuestros objetivos de 50 grados y 250
rad/seg.

Veamos ahora la respuesta al paso resultante del sistema de ciclo


cerrado moviéndonos a la pestaña IOTransfer_r2y: step. Si ha cerrado
accidentalmente esta pestaña, puede volver a abrirla desde la ventana
del Diseñador de sistemas de control haciendo clic en el menú Nuevo
trazado y seleccionando Nuevo paso. En respuesta, aparecerá una nueva
ventana titulada Nuevo paso para trazar. A partir de las respuestas a
Seleccione Terreno menú, a continuación, elija IOTransfer_r2y y haga clic en
el botón Plot. La respuesta de la salida y del sistema de bucle cerrado para una

63
referencia de paso r aparecerá en el Diseñador de sistemas de control
ventana. Consulte la figura siguiente para ver una ilustración de este proceso.

64
El diagrama de respuesta de paso resultante se muestra a continuación,
donde los detalles de la respuesta de pico y el tiempo de establecimiento se
agregan desde el menú contextual en Características.

De la figura anterior, se puede ver que el sobreimpulso es demasiado


grande y el tiempo de asentamiento es mejor de lo esperado. Esto es atribuible
al hecho de que nuestro sistema en realidad no tiene la forma de un sistema de
segundo orden canónico y porque no alcanzamos exactamente un margen de
fase de 50 grados y un ancho de banda de 250 rad/seg.

Para reducir el exceso, ajustaremos la parte del cable de nuestro


compensador para proporcionar más margen de fase. Específicamente, dentro
de la ventana Compensator Editor puede cambiar el valor de la Fase Max
Delta (deg). Al aumentar este valor, debería ver el aumento en el aumento del

65
diagrama de fase y el sobreimpulso en el diagrama de respuesta del paso. Este
cambio, por supuesto, también afectará a la frecuencia de cruce de
ganancia. Por lo tanto, necesitamos cambiar el valor de la ganancia del
compensador para desplazar la gráfica de magnitud de modo que la frecuencia
de cruce de ganancia aún esté cerca de 250 rad/seg. Esto se puede lograr
escribiendo manualmente en diferentes valores para la ganancia en el Editor del
Compensador ventana como lo hemos hecho anteriormente. Otra opción es
usar el diagrama de Bode ya que los gráficos en el Diseñador del sistema de
control permiten la sintonización gráfica. Específicamente, si coloca el cursor
sobre la gráfica de magnitud, se convertirá en una mano y podrá "agarrar" la
gráfica y moverla hacia arriba o hacia abajo. La ganancia en el compensador
cambiará automáticamente para reflejar el movimiento de la trama. Al final, la
elección de 70 grados de fase adicional a 250 rad/seg y una ganancia de 315
nos da un margen de fase de 70 grados y un sobreimpulso inferior al 16% como
se muestra a continuación.

66
A partir de la respuesta al paso anterior, vemos que, aunque el exceso
está bien, el tiempo de establecimiento es demasiado largo. Podemos acelerar
la respuesta del sistema probando un ancho de banda ligeramente superior. Esto
puede lograrse nuevamente desde la ventana del Editor de Compensadores
aumentando la frecuencia donde se ubica la fase de pico del compensador de
adelanto. A través de prueba y error, elegimos una Frecuencia de 350
rad/seg. Luego usamos la técnica de ajuste gráfico para "agarrar" la gráfica de
magnitud del diagrama de Bode para cambiar la frecuencia de cruce a una
ubicación que proporcione aproximadamente 70 grados de margen de fase. Una
ganancia de 670 parece funcionar bien.

A lo largo de la sintonía, el diagrama de Bode y el gráfico de respuesta


al paso cambiaron de acuerdo con los cambios que se hicieron en el

67
compensador. Tus parcelas finales deberían ser similares a las dos que se
muestran a continuación.

68
Ahora tenemos el rendimiento que deseamos. Tenemos menos del 16%
de sobreimpulso y un tiempo de estabilización de menos de 40
milisegundos. Además, la acción integral del compensador proporciona un error
de estado estable cero a una referencia de paso, incluso en presencia de una
entrada de perturbación escalonada.

3.6. Espacio de estados para el diseño del controlador

A partir del problema principal, las ecuaciones dinámicas en forma de


estado-espacio se dan a continuación.

69
0 1 0 0
̇ = 0 − ̇ + 0 (3.20)
0 − −

= [1 0 0] ̇ (3.21)

Lo anterior tiene la forma de un conjunto estándar de ecuaciones de


espacio de estado como se describe a continuación.

̇= + (3.22)

= (3.23)

Con una referencia de paso de 1 radian, los criterios de diseño son los
siguientes.

 Tiempo de asentamiento inferior a 0.040 segundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una


entrada de perturbación por pasos

Primero crear un nuevo archivo m y escribe los siguientes comandos.

70
3.6.1. Diseñando el controlador de realimentación de estado completo

Dado que todas las variables de estado en nuestro problema son muy
fáciles de medir (simplemente agregue un amperímetro para corriente, un
tacómetro para velocidad y un potenciómetro para posición), podemos diseñar
un controlador de realimentación de estado completo para el sistema sin
preocuparse por tener para agregar un observador. La ley de control para un
sistema de retroalimentación de estado completo tiene la forma = − . El
diagrama de bloques asociado se da a continuación:

Recuerde que el polinomio característico de este sistema de circuito


cerrado es el determinante de −( − ) dónde está la variable de
Laplace. Puesto que las matrices y son ambas matrices 3x3, no debe
haber 3 polos para el sistema. Este hecho se puede verificar con el orden
de comando de MATLAB. Si el sistema dado es controlable, entonces al diseñar
un controlador de retroalimentación de estado completo podemos mover estos
tres polos a cualquier lugar que nos gustaría. Si el sistema dado es controlable
o no se puede determinar al verificar el rango de la matriz de
controlabilidad [ … ]. El comando MATLAB ctrb construye la matriz de
controlabilidad dada y . Además, el rango de comando determina el rango de
una matriz dada, aunque puede ser numéricamente poco confiable. Por lo tanto,
usaremos el comando det para calcular el determinante de la matriz de
controlabilidad donde una matriz de rango completo tiene un determinante
distinto de cero. Los siguientes comandos ejecutados en la línea de comando
verificarán el orden del sistema y si es controlable o no.

71
De lo anterior, sabemos que nuestro sistema es controlable ya que el
determinante de la matriz de controlabilidad no es cero y, por lo tanto, podemos
colocar los polos de bucle cerrado del sistema en cualquier lugar del plano
s. Primero colocaremos los polos en -200, -100 + 100i y -100-100i. Ignorando el
efecto del primer polo (ya que es más rápido que los otros dos polos), los polos
dominantes corresponden a un sistema de segundo orden con = 0.5
correspondiente al 16% de sobreimpulso y = 100 que corresponde a un tiempo
de asentamiento de 0.040 segundos. Una vez que hemos determinado las
ubicaciones de los polos que deseamos, podemos usar los comandos de
MATLAB place o acker para determinar la matriz de ganancia del controlador,
para lograr estos polos. Utilizaremos el comando place ya que está
numéricamente mejor acondicionado que acker. Sin embargo, si quisiéramos
colocar un poste con una multiplicidad mayor que el rango de la matriz ,
entonces tendríamos que usar el comando acker. Agregue el siguiente código al
final de su archivo m.

72
Refiriéndonos nuevamente a las ecuaciones y esquemas en la parte
superior de la página, vemos que al emplear una ley de retroalimentación
de estado = − , las ecuaciones de espacio de estado se convierten en
las siguientes.

̇=( − ) + (3.24)

= (3.25)

Podemos generar la respuesta de ciclo cerrado a una referencia de paso


agregando las siguientes líneas al final de su archivo m. Ejecute su archivo m en
la ventana de comandos y debe generar un diagrama como el que se muestra a
continuación.

Step Response
800

700

600

500

400

300

200

100

0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05
Time (seconds)

73
Tenga en cuenta que nuestros requisitos dados no se cumplen,
específicamente, el error de estado estacionario es demasiado grande. Antes de
abordar esto, veamos primero la respuesta de perturbación del sistema.

3.6.2. Respuesta de perturbación

Para observar la respuesta de perturbación del sistema, debemos


proporcionar la entrada adecuada al sistema. En este caso, una perturbación es
físicamente un par de carga que actúa sobre la inercia del motor. Este par de
carga actúa como un término aditivo en la ecuación del segundo estado (que se
divide por , al igual que todos los demás términos en esta ecuación). Podemos
simular esto simplemente modificando nuestra matriz de entrada de bucle
cerrado, para tener una 1/ en la segunda fila suponiendo que nuestra entrada
actual es solo la perturbación.

Agregue las siguientes líneas a su archivo m y vuelva a ejecutar.

74
Amplitude

Tenga en cuenta que el error debido a la perturbación por pasos no es


cero. Por lo tanto, esto también tendrá que ser compensado.

3.6.3. Agregando acción integral

De ejemplos anteriores, sabemos que, si ponemos un integrador


adicional en serie con la planta, puede eliminar el error de estado estable debido
a una referencia de paso. Si el integrador viene antes de la inyección de la
perturbación, también cancelará una entrada de perturbación por pasos en
estado estable. Esto cambia nuestra estructura de control para que ahora se
asemeje al diagrama de bloques que se muestra en la siguiente figura.

75
Podemos modelar la adición de este integrador al aumentar nuestras
ecuaciones de estado con un estado adicional para la integral del error que
identificaremos con la variable . Esto agrega una ecuación de estado extra,
donde la derivada de este estado es simplemente el error, = − donde =
0. Esta ecuación se colocará en la parte inferior de nuestras matrices. La
referencia , por lo tanto, ahora aparece como una entrada adicional a nuestro
sistema. La salida del sistema sigue siendo la misma.

0 1 0 0 0
⎡ ⎤ ⎡0⎤ 0
̇ ⎢0 − 0⎥ ̇
=⎢ ⎥ +⎢ ⎥ + 0 (3.26)
⎢ ⎥ 0
⎢0 − − 0⎥
−1
⎣1 ⎣0⎦
0 0 0⎦

̇
= [1 0 0 0] (3.27)

Estas ecuaciones representan la dinámica del sistema antes de que se


cierre el ciclo. Nos referiremos a las matrices del sistema en esta ecuación que
se aumentan con el estado del integrador adicional como , , El vector
de la multiplicación de la entrada de referencia se denomina . Nos
referiremos al vector de estado del sistema aumentado como . Tenga en
cuenta que la referencia , no afecta los estados (excepto el estado integrador)
o la salida de la planta. Esto es esperado ya que no hay una ruta desde la
referencia a la entrada de la planta , sin implementar la matriz de ganancia de
retroalimentación de estado .

76
Para encontrar las ecuaciones de ciclo cerrado, tenemos que ver cómo
la entrada , afecta a la planta. En este caso, afecta el sistema exactamente de
la misma manera que en las ecuaciones sin aumentar, excepto ahora =
− − . También podemos reescribir esto en términos de nuestro estado
aumentado como =− dónde =[ ]. Sustituir esto en las
ecuaciones anteriores proporciona las siguientes ecuaciones de ciclo cerrado.

̇ =( − ) + (3.28)

= (3.29)

En lo anterior, la integral del error se retroalimentará y dará lugar a que


el error de estado estable se reduzca a cero. Ahora debemos rediseñar nuestro
controlador para tener en cuenta el vector de estado aumentado. Como
necesitamos colocar cada polo del sistema, colocaremos el polo asociado con el
estado del integrador adicional en -300, que será más rápido que los otros polos.

Agregue las siguientes líneas a su archivo m que reflejan las ecuaciones


de ciclo cerrado presentadas anteriormente. Tenga en cuenta que dado que la
matriz de transición de ciclo cerrado − depende de , se usará en
el comando de lugar en lugar de . Al ejecutar su archivo m, se generará el
diagrama que se muestra a continuación.

77
Step Response
1.2

0.8
Amplitude

0.6

0.4

0.2

0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05
Time (seconds)

Para observar la respuesta de perturbación, utilizamos un enfoque


similar al utilizado sin la acción integral.

78
Amplitude

Podemos ver que todas las especificaciones de diseño están cerca de


ser satisfechas por este controlador. El tiempo de asentamiento puede ser un
poco grande, pero al colocar los polos de lazo cerrado un poco más hacia la
izquierda en el plano s complejo, también se puede cumplir este requisito.

3.7. Control Digital

Los comandos de MATLAB utilizados en este método son: tf, c2d,


minreal, zpk, feedback, stairs, step

Contenido:

 Crear un modelo de fecha de muestra de la planta

 Diseño de locus de raíz

79
En este ejemplo, el controlador se diseñará aplicando un método Root
Locus. Se puede obtener un modelo de motor de CC de datos de muestra a partir
de la conversión de un modelo de motor de CC analógico, como
describiremos. La función de transferencia continua de bucle abierto para la
posición del motor de CC en el dominio de Laplace es la siguiente.

( )
( )= = (3.30)
( ) (( )( ) )

La estructura del sistema de control tiene la forma que se muestra en la


figura a continuación.

También desde la página principal, los requisitos de diseño para una


referencia de paso de 1 radianes son los siguientes.

 Tiempo de asentamiento inferior a 0.040 segundos

 Sobrepaso inferior al 16%

 Sin error de estado estacionario, incluso en presencia de una


entrada de perturbación por pasos.

3.7.1. Creando un modelo de fecha de muestra de la planta

El primer paso en el diseño de un sistema de control digital es generar


un modelo de datos muestreados de la planta. Por lo tanto, es necesario elegir

80
una frecuencia con la que se muestrea la planta de tiempo continuo. Al elegir un
período de muestreo, se desea que la frecuencia de muestreo sea rápida en
comparación con la dinámica del sistema para que la salida muestreada del
sistema capture el comportamiento completo del sistema, es decir, de modo que
no se produzca un comportamiento significativo entre muestras.

Vamos a crear un modelo de tiempo continuo de la planta. Cree un


nuevo archivo m y agregue el siguiente código MATLAB. Ejecutar el archivo m
dentro de la ventana de comandos de MATLAB generará el resultado que se
muestra a continuación.

El uso del comando zpk anterior transforma la función de transferencia


en una forma donde los ceros, los polos y la ganancia se pueden ver
explícitamente. Al examinar los polos de la planta (o su respuesta de frecuencia),
está claro que el polo en -1.45e06 contribuye muy poco a la respuesta de la
planta. La frecuencia de cruce de ganancia de la planta es de aproximadamente
5 Hz. Por lo tanto, elegir un período de muestreo de 0.001 segundos (frecuencia
de 1000 Hz) es significativamente más rápido que la dinámica de la planta. Este
período de muestreo también es rápido en comparación con la velocidad que se

81
logrará con el sistema de bucle cerrado resultante. Un tiempo de muestreo de
0.001 segundos es específicamente 1/100 de la constante de tiempo requerida
y 1/40 del tiempo de establecimiento requerido.

En este caso, convertiremos la función de transferencia dada del dominio


Laplace continuo al dominio z discreto. MATLAB se puede usar para lograr esta
conversión mediante el uso del comando c2d. El comando c2d requiere tres
argumentos: un modelo de sistema, el tiempo de muestreo (Ts) y el tipo de
circuito de retención. En este ejemplo, asumiremos un circuito de espera de
orden cero (zoh). Agregar los siguientes comandos a su archivo m y ejecútelos
en la ventana de comandos de MATLAB genera el modelo de datos muestreados
que se muestra a continuación:

De lo anterior, observe que hay un polo y cero muy cerca de z = 0 que


se cancela efectivamente. Esta cancelación en la función de transferencia se
puede lograr aplicando el comando minreal con una tolerancia de 0.001. La
cancelación de este polo y cero reducirá el orden de nuestra función de
transferencia y ayudará a evitar dificultades numéricas en MATLAB. Aplicando
el comando minreal, por lo tanto, produce la siguiente función de transferencia
de orden reducida. Tenga en cuenta la ausencia del polo y cero cerca de z = 0.

82
Ahora nos gustaría analizar la respuesta de bucle cerrado del sistema
sin ninguna compensación adicional. Primero, tenemos que cerrar el ciclo de la
función de transferencia usando el comando de feedback. Después de cerrar el
ciclo, inspeccionemos la respuesta de paso de bucle cerrado con la retención de
orden cero. Esto se puede lograr usando los comandos de step y stairs. Como
el comando de paso se alimenta con un modelo discreto, generará un vector de
muestras discretas en el tiempo de muestreo Ts asociado con el modelo. La
sintaxis a continuación especifica simular la respuesta al paso durante 0.5
segundos. El comando stairs dibuja estos puntos de datos discretos como un
paso de escalera, al igual que lo que sería producido por un circuito de espera
de orden cero. Agregue el siguiente código al final de su archivo m anterior y
vuelva a ejecutarlo. Debe generar un diagrama como el que se muestra a
continuación.

83
Position (radians)

3.7.2. Diseño de locus de raíz

Ahora emplearemos una metodología de diseño de locus raíz para


generar un controlador digital para nuestro sistema. La idea principal de un
enfoque de locus de raíz para el diseño es modificar la respuesta de ciclo cerrado
colocando los polos de circuito cerrado del sistema en las ubicaciones
deseadas. Agregar polos y ceros a la función de transferencia de bucle abierto
original a través del controlador nos permite remodelar el lugar de la raíz para
colocar los polos de lazo cerrado en las ubicaciones deseadas. Este enfoque
también se puede usar para modelos de tiempo discreto. Utilizaremos la interfaz
gráfica de usuario (GUI) de Control System Designer para diseñar nuestro
controlador. Agregando el comando controlSystemDesigner ('rlocus',
dP_motor) a su archivo m y ejecutándose en la línea de comando o yendo a
las aplicaciones la pestaña y haciendo clic en el icono de la aplicación
en Control System Design and Analysis abrirá el Diseñador de sistemas de
control.

84
Se abrirá una ventana inicialmente llamada Control System
Designer con el formulario que se muestra en la figura a continuación. Esta
ventana muestra el locus raíz, así como la respuesta al paso de la función de
transferencia d_Pmotor pasada a través de la función control
SystemDesigner. El locus raíz aparece inicialmente debido a la adición de la
cadena 'rlocus' a la llamada a la función. Si se omite la cadena 'rlocus', la
ventana inicial predeterminada incluye el diagrama de Bode de bucle abierto
además del gráfico del locus raíz y la respuesta al paso.

Recuerde de nuestros diseños anteriores de controlador que hemos


agregado un integrador a nuestro compensador para rechazar el efecto de una
perturbación constante en estado estacionario. Podemos agregar control integral
a través de la interfaz de Control System Designer en
la ventana Compensator Editor que se puede abrir haciendo clic con el botón

85
derecho en el gráfico del lugar raíz y luego seleccionando Edit
Compensator. Específicamente, se agrega un integrador a nuestro controlador
haciendo clic con el botón derecho en la sección de Dinámica de la ventana y
seleccionando Añadir Polo / Zero> Integrador en el menú resultante. La figura
siguiente ilustra cómo debería ser la ventana del editor de Compensator.

El control integral en el dominio de tiempo continuo es 1/s. El Diseñador


de sistemas de control utiliza una aproximación de diferencia directa para el
mapeo desde el plano s al plano z, como se describe por s = ( z -1)/Ts,
donde Ts es el tiempo de muestreo que se emplea. Por lo tanto, la adición del
integrador agregará un polo adicional en 1 en el gráfico del locus raíz. Vea a
continuación el trazado del locus de raíz resultante donde el rojo x denota la
ubicación del polo compensador en z = 1.

86
El formato predeterminado para los compensadores en el Diseñador del
sistema de control es la forma de Constante de tiempo. Para el resto de este
problema, diseñaremos el compensador en forma Cero / polo / ganancia. Este
cambio se puede realizar seleccionando Preferencias de la pestaña SISTEMA
DE CONTROL de la ventana del Diseñador de Sistema de Control. La
parametrización del compensador puede modificarse en la pestaña Opciones.

Por defecto, el diagrama del locus raíz incluye el círculo unitario que se
muestra en la figura anterior por la línea punteada. Recuerde que, para un
sistema de tiempo discreto, los polos de lazo cerrado ubicados dentro del círculo
unitario indican un sistema estable de circuito cerrado. De lo anterior, podemos
ver que después de agregar el polo extra en 1, el locus raíz tenía tres polos cerca
de 1. Esto ocasionó que el locus raíz se moviera hacia la derecha (fuera del
círculo unitario) lo que indica que la respuesta de ciclo cerrado ser más inestable.

87
Por lo tanto, agregaremos un cero cerca de 1, dentro del círculo unitario,
para cancelar uno de los polos y colocar el locus raíz. Específicamente
agregaremos un cero en z = 0.95. En general, debemos agregar al menos tantos
polos como ceros para que el controlador sea causal. Este cero se puede
agregar a nuestro compensador de la misma manera que el integrador se agregó
anteriormente. La única diferencia es que elegirá Real Zero en el menú
contextual y luego deberá especificar en la celda de Ubicación que el cero se
colocará en 0.95. El gráfico del locus raíz debería aparecer ahora como se
muestra a continuación.

La adición del integrador ha ayudado con el requerimiento de rechazos


de perturbaciones, sin embargo, el locus raíz anterior indica que el sistema de
bucle cerrado no puede ser robusto estable mediante un ajuste adicional de la
ganancia del bucle. Tampoco hemos abordado nuestros otros requisitos de

88
diseño. Para ayudarnos a este respecto, identifiquemos la región del plano
complejo donde deben ubicarse los polos de lazo cerrado.

Estas regiones se pueden agregar a nuestro lugar raíz


seleccionando Requisitos de diseño en el menú contextual. A continuación,
elija nuevo y establezca que el sobreimpulso sea inferior al 16%. Este proceso
puede repetirse para agregar el requisito de tiempo de establecimiento de menos
de 0.04 segundos. La figura resultante se muestra a continuación donde la región
no sombreada identifica dónde deben ubicarse los polos de bucle cerrado para
cumplir con nuestros requisitos transitorios dados. Estas regiones suponen un
sistema de segundo orden canónico, que no tenemos actualmente, pero las
regiones aún pueden ayudar a guiar nuestro diseño.

89
De la figura anterior, podemos ver que las dos ramas dominantes de
nuestro locus de raíz no pasan a través de la región requerida. Por lo tanto,
necesitamos agregar polos y/o ceros a nuestro compensador para doblar el lugar
de la raíz en la región deseada. Primero intentemos cancelar el cero a
aproximadamente -0.98 agregando un polo cercano. Esto se puede hacer de la
misma manera descrita anteriormente para el integrador y el cero real. Es
deseable cancelar este cero ya que agregará sobreimpulso a la respuesta de
paso. La adición de este poste dará como resultado que dos de las ramas del
lugar de la raíz se desvíen a la derecha y fuera del círculo unitario.

Intentaremos tirar de estas ramas colocando dos ceros adicionales cerca


de las ubicaciones de polo de bucle cerrado deseadas. Estos ceros se pueden
agregar a través de la ventana Compensator Editor como se hizo arriba. En
este caso, sin embargo, colocaremos los ceros usando un enfoque de ajuste
gráfico. Específicamente, seleccione un único o de la pestaña ROOT LOCUS
EDITOR en la parte superior de la ventana de Control System Designer. Luego
haga clic en el "puntero" resultante en el eje real para colocar el cero. Repita este
proceso para agregar un segundo cero. El efecto de mover estos dos ceros a
continuación se puede ver moviendo el puntero sobre el correspondiente o en el
lugar de la raíz y haciendo clic en él. Mientras mantiene presionado el botón del
mouse, puede mover el cero a lo largo del eje real para visualizar el efecto de
diferentes ubicaciones. A través de prueba y error, llegamos a una ubicación de
0.8 para los dos ceros. Para hacer que el controlador sea causal, necesitamos
agregar un polo adicional. Usando nuevamente un enfoque gráfico, podemos
agregar un polo real eligiendo una x de la pestaña ROOT LOCUS EDITOR en la
parte superior de la ventana de Control System Designer. A través de prueba
y error llegamos a una ubicación polar de 0.6. El locus raíz resultante se muestra
a continuación.

90
A continuación, debemos elegir una ganancia de bucle para mover las
ubicaciones de los polos de bucle cerrado a lo largo del lugar de la raíz hasta la
ubicación deseada. Dado que nuestro sistema de circuito cerrado no es de
segundo orden canónico, tendremos que emplear algunos intentos de prueba y
error para identificar las ubicaciones exactas de los polos. Con el fin de
ayudarnos en este sentido, podemos abrir un gráfico para la respuesta de paso
de bucle cerrado para que podamos observar el efecto de los cambios de
ganancia en la respuesta de paso real, sin tener que depender de una
idealización de segundo orden.

Podemos verificar la respuesta de paso de bucle cerrado para el sistema


con esta nueva ganancia moviéndonos a IOTransfer_r2y: pestaña de paso. Si
accidentalmente se ha cerrado a continuación, puede todavía it. From abierto
el diseñador de sistemas de control de la ventana, haga clic en la nueva
parcela menú y bajo Crear nuevo Terreno, elija nuevo paso, una nueva

91
ventana titulada nuevo paso para trazar aparecerá. Luego, desde
el menú Seleccionar respuestas al gráfico, elige IOTransfer_r2y. Luego haz
clic en Trazar. La respuesta al paso de ciclo cerrado aparecerá en la figura.

El gráfico de respuesta de paso resultante con ganancia de bucle de 1


parece cumplir el requisito de tiempo de establecimiento, pero no el requisito de
sobreimpulso. Para estar seguros, podemos definir la forma de respuesta de
paso permitida eligiendo Requisitos de diseño en el menú de clic derecho del
gráfico de respuesta al paso y eligiendo el sobreimpulso como 16% y el tiempo
de establecimiento como 0.040 segundos. Tenga en cuenta que deberá elegir
un tiempo de subida inferior a 0,040 segundos, aunque no tengamos ese
requisito.

92
Ahora modificaremos la ganancia de bucle para cumplir con el requisito
de sobreimpulso. Utilizando un enfoque de sintonización gráfica, tome una de las
casillas rosas en el gráfico del lugar de la raíz haciendo clic en ella, luego arrastre
la casilla a lo largo del lugar geométrico. Cada cuadro representa la ubicación de
un poste de bucle cerrado y al arrastrar la caja a lo largo del lugar cambia la
ganancia del bucle al valor que coloca ese polo de bucle cerrado en esa
ubicación especificada. A través de prueba y error, una ganancia de bucle de
800 reduce el sobreimpulso de la respuesta de paso asociada a
aproximadamente el 10% mientras alcanza un tiempo de establecimiento de
aproximadamente 0,02 segundos. Además, el error de estado estable se pone a
cero cuando no hay perturbación presente. El gráfico de respuesta al paso
resultante se muestra a continuación.

Lo único que queda por verificar son las propiedades de rechazo de


perturbaciones del sistema. Se puede generar un gráfico de la respuesta del
sistema a una perturbación escalonada desde la ventana del Diseñador del
sistema de control. En cambio, generaremos el diagrama de respuesta a
perturbaciones desde la línea de comando de MATLAB. Sin embargo, antes de

93
hacerlo, primero debemos exportar el compensador que hemos diseñado en
el Diseñador de sistemas de control al espacio de trabajo. Esto se logra
haciendo clic en el botón Exportar de la pestaña CONTROL SYSTEM de
la ventana del Diseñador de Control System. A continuación, seleccione
el Compensador C y haga clic en el botón Exportar. Una vez que haya hecho
esto, ingrese las siguientes instrucciones en la ventana de comandos para
generar el diagrama de respuesta que se muestra a continuación.

El examen de lo anterior muestra que, para una perturbación


escalonada, el error de estado estacionario seguirá siendo cero. Empleando la
propiedad de superposición, también es evidente que la respuesta total se habrá

94
excedido en más del 16% y alcanzará el estado estacionario dentro del requisito
de 40 milisegundos.

3.8. Modelado en Simulink

3.8.1. Configuración física

Un actuador común en los sistemas de control es el motor de


CC. Proporciona directamente movimiento giratorio y, junto con ruedas o
tambores y cables, puede proporcionar movimiento de traslación. El circuito
eléctrico de la armadura y el diagrama de cuerpo libre del rotor se muestran en
la siguiente figura:

La entrada al sistema es la tensión aplicada a la armadura del motor ( ),


mientras que la salida es la posición angular del eje ( ℎ ).

Los parámetros físicos para nuestro ejemplo son:

(J) momento de inercia del rotor 3.2284E-6 kg.m ^ 2

(b) Constante de fricción viscosa del motor 3.5077E-6 Nms

(Ke) fuerza electromotriz constante 0.0274 V / rad / seg

(Kt) par del motor constante 0.0274 Nm / Amp

95
(R) resistencia eléctrica 4 ohmios

(L) inductancia eléctrica 2.75E-6H

El par del motor es proporcional a la corriente de la armadura por un


factor constante como se muestra en la relación a continuación.

= (3.31)

La fem inversa, es proporcional a la velocidad angular del eje por un


factor constante .

= ̇ (3.32)

En unidades del SI, el par motor y las constantes de fuerza


contraelectromotriz son iguales, es decir, = = .

3.8.2. Construyendo el modelo con Simulink

Este sistema se modelará sumando los pares que actúan sobre la inercia
del rotor e integrando la aceleración angular del rotor para dar la velocidad e
integrando la velocidad para obtener la posición. Además, las leyes de Kirchoff
se aplicarán al circuito de la armadura. Primero, modelaremos las integrales de
la aceleración del rotor y de la velocidad de cambio de la corriente del inducido
que se muestra a continuación.

∫∫ =∫ = (3.33)

∫ = (3.34)

Para construir el modelo de simulación, abra Simulink y abra una nueva


ventana de modelo. Luego sigue los pasos que se detallan a continuación.

 Inserte un bloque Integrator desde la biblioteca Simulink /


Continous y dibuja líneas hacia y desde sus terminales de entrada
y salida.

96
 Etiquete la línea de entrada "d2/dt2 (theta)" y la línea de salida "d/dt
(theta)" como se muestra a continuación. Para agregar una
etiqueta de este tipo, haga doble clic en el espacio vacío justo
encima de la línea.

 Inserte otro bloque Integrator conectado a la salida del anterior y


dibuja una línea desde su terminal de salida.

 Etiquete la línea de salida "theta".

 Inserte un tercer bloque Integrator encima del primero y dibuja


líneas hacia y desde sus terminales de entrada y salida.

 Etiquete la línea de entrada "d/dt (i)" y la línea de salida "i".

A continuación, aplicaremos la ley de Newton y la ley de Kirchoff al


sistema motor para generar las siguientes ecuaciones.

= − ⟹ = − (3.35)

97
=− + ⟹ = − + − (3.36)

La aceleración angular es igual a la 1/ multiplicada por la suma de dos


términos (uno positivo, uno negativo). De manera similar, la derivada de la
corriente es igual a la 1/ multiplicada por la suma de tres términos (uno positivo,
dos negativos). Continuando modelando estas ecuaciones en Simulink, siga los
pasos que se detallan a continuación.

 Inserte dos bloques de ganancia de la biblioteca Simulink / Math


Operations, uno conectado a cada uno de los integradores más a
la izquierda.

 Edite el bloque de ganancia correspondiente a la aceleración


angular haciendo doble clic en él y cambiando su valor a "1/J".

 Cambie la etiqueta de este bloque de Ganancia a "Inercia"


haciendo clic en la palabra "Ganancia" debajo del bloque.

 Del mismo modo, edite el otro valor de Ganancia a "1/L" y su


etiqueta a "Inductancia".

 Inserte dos bloques de Agregar de la biblioteca Simulink /


Operaciones Matemáticas, uno agregado por una línea a cada uno
de los bloques de Ganancia.

 Edite los signos del bloque Agregar correspondiente a la rotación


en "+ -", ya que un término es positivo y uno negativo.

 Edite los signos del otro Agregar bloque a "- + -" para representar
los signos de los términos en la ecuación de Kirchoff.

98
Ahora, agregaremos los pares que están representados en la ecuación
de Newton. Primero, agregaremos el par de amortiguación.

 Inserta un bloque de ganancia debajo del bloque de "inercia", luego


selecciónalo haciendo un solo clic sobre él. A continuación,
seleccione Voltear bloque en el menú Girar e Invertir (al hacer
clic con el botón derecho) para voltear el bloque de izquierda a
derecha. También puede voltear el bloque seleccionado
manteniendo presionada la tecla Ctrl-I.

 Establezca el valor de ganancia en "b" y cambie el nombre del


bloque "amortiguación".

 Toque una línea (mantenga presionada la tecla Ctrl mientras


dibuja o haga clic con el botón derecho) fuera de la salida del primer
integrador rotacional (d / dt (theta)) y conéctela a la entrada del
bloque de ganancia de amortiguación.

 Dibuje una línea desde la salida de ganancia de amortiguación a la


entrada negativa del bloque de adición de rotación.

Luego, agregaremos el torque de la armadura.

99
 Inserte un bloque de ganancia conectado a la entrada positiva del
bloque de adición rotativa con una línea.

 Edite su valor en "K" para representar la constante del motor y


etiquételo como "Kt".

 Continúe dibujando la línea que va del Integrador actual y conéctelo


al bloque Kt Gain.

Ahora, agregaremos los términos de voltaje que están representados en


la ecuación de Kirchoff. Primero, agregaremos la caída de voltaje a través de la
resistencia de la armadura.

 Inserte un bloque de ganancia encima del bloque de inductancia y


voltéalo de izquierda a derecha.

 Establezca el valor de ganancia en "R" y cambie el nombre de este


bloque a "Resistencia".

100
 Toque una línea de la salida del integrador actual y conéctela a la
entrada del bloque de ganancia de resistencia.

 Dibuje una línea desde la salida de ganancia de resistencia a la


entrada negativa superior de la ecuación actual Agregar bloque.

A continuación, agregaremos la fuerza de espalda del motor.

 Inserte un bloque de ganancia y conéctelo a la otra entrada


negativa del bloque Agregar actual con una línea.

 Edite su valor en "K" para representar la constante de vuelta al


motor del motor y marque "Ke".

 Toque una línea en la salida del primer integrador rotacional (d / dt


(theta)) y conéctela al bloque Ke Gain.

Ahora el modelo está construido y solo necesitamos agregar la entrada


de voltaje y monitorear la salida de la posición. Insertaremos los puertos In1 y
Out1 desde la biblioteca Simulink / Ports & Subsystems como se muestra en la

101
siguiente figura para que podamos guardar el modelo del motor como un
subsistema.

Para guardar todos estos componentes como un bloque de subsistema


único, primero seleccione todos los bloques, luego seleccione Crear
subsistema de selección luego de hacer clic derecho en la parte
seleccionada. Nombra el subsistema "Motor_pos" y luego guarda el modelo. Su
modelo debe aparecer de la siguiente manera. Usamos este modelo en
la posición del motor de CC: página de diseño del controlador Simulink

102
3.8.3. Construyendo el modelo con Simscape

En esta sección, alternativamente, mostramos cómo construir el modelo


de Motor DC utilizando los bloques de modelado físico de la extensión Simscape
a Simulink. Los bloques en la biblioteca Simscape representan componentes
físicos reales; por lo tanto, se pueden construir modelos complejos de múltiples
dominios sin la necesidad de construir ecuaciones matemáticas a partir de
principios físicos como se hizo anteriormente mediante la aplicación de las leyes
de Newton y las leyes de Kirchhoff.

Abra un nuevo modelo de Simulink e inserte la siguiente lista de bloques.

 Bloque de motor CC de Simscape / Electrónica / Actuadores y


Controladores / Biblioteca de Actuadores Rotacionales

 Bloque de sensor actual de la biblioteca Simscape / Foundation


Library / Electrical / Electrical Sensors

 Bloque de fuente de voltaje controlado de la biblioteca Simscape /


Foundation Library / Electrical / Electrical Sources

 Tres bloques de convertidores PS-Simulink, un convertidor


Simulink-PS y un bloque de configuración de resolución de la
biblioteca Simscape / Utilities

103
 Bloque de referencia eléctrica de la biblioteca Simscape /
Foundation Library / Electrical / Electrical Elements

 Bloque del sensor de movimiento giratorio ideal de la biblioteca


Simscape / Foundation Library / Mechanical / Mechanical Sensors

 Bloque mecánico de referencia rotacional de la biblioteca Simscape


/ Foundation Library / Mechanical / Rotational Elements

 Tres bloques Out1 y un bloque In1 de la biblioteca Simulink / Ports


& Subsystems

El bloque de Motor CC modela las características eléctricas y mecánicas


del motor. Haga doble clic en el bloque para asignar valores numéricos a los
parámetros físicos del motor. Definiremos específicamente el motor mediante
parámetros de circuito equivalentes elegidos en el menú
desplegable Parámetro del motor. Asigne los diversos parámetros a las
siguientes variables y unidades. Eventualmente definiremos estas variables en
la línea de comando del espacio de trabajo de MATLAB. Tenga en cuenta que
dado que la constante de par del motor y la constante de la fuerza de retorno son
iguales si las unidades son consistentes, solo necesitamos definir uno de los dos.

Resistencia de la armadura = R [Ohm]

Inductancia inducida = L [H]

Volver fem constante = K [V / (rad/s)]

Inercia del rotor = J [kg * m2]

Amortiguación del rotor = b [N * m / (rad/s)]

El bloque Sensor de movimiento giratorio ideal representa un dispositivo


que mide la diferencia en la posición angular y la velocidad angular entre dos
nodos. En este caso, empleamos el bloque para medir la posición y la velocidad
del eje del motor en comparación con una referencia fija representada por el
bloque de Referencia de rotación mecánica.

104
El bloque Sensor de corriente representa otro sensor, específicamente
mide la corriente consumida por el motor.

Los bloques PS-Simulink convierten las señales físicas en señales de


salida Simulink, mientras que el bloque Simulink-PS convierte a la inversa una
señal de entrada Simulink en una señal física. Estos bloques se pueden emplear
para convertir las señales de Simscape, que representan cantidades físicas con
unidades, en señales de Simulink, que no tienen explícitamente unidades
conectadas a ellas. Estos bloques, en esencia, pueden realizar una conversión
de unidades entre las señales físicas y las señales Simulink. En nuestro caso,
podemos dejar las unidades indefinidas ya que la entrada y la salida de cada uno
de los bloques de conversión tienen las mismas unidades. En general, el
conjunto de bloques Simscape se emplea para modelar la planta física, mientras
que el conjunto de bloques Simulink se emplea para modelar el controlador.

El bloque de configuración de Solver se emplea para definir los detalles


del solucionador numérico empleado en la ejecución de la simulación
Simscape. Usaremos la configuración predeterminada para este bloque.

A continuación, conecte y etiquete los componentes para que aparezcan


como en la figura siguiente. Haga doble clic en las líneas que están conectadas
a los bloques Out1 y etiquételas como "Actual", "Posición" y
"Velocidad". También haga clic en el bloque In1 y etiquételo como "Voltaje".

105
Ahora necesitamos definir los parámetros usados en nuestra
simulación. Escriba los siguientes comandos en el indicador de la ventana de
comandos de MATLAB.

Puede guardar estos componentes en un único subsistema con una


entrada y tres salidas. Seleccione todos los bloques y luego seleccione Crear
subsistema desde la selección luego de hacer clic derecho en la parte
seleccionada. También etiquete el subsistema y las señales como se muestra en
la siguiente figura:

106
3.8.4. Construyendo el modelo a través de su representación LTI

En esta sección, creamos específicamente un modelo de función de


transferencia y un modelo de espacio de estado, que pueden
importarse. También se puede importar un modelo de formato de ganancia
cero. Recuerde los siguientes comandos utilizados para construir un modelo de
espacio de estado del motor de CC en MATLAB.

Este modelo se puede importar usando el bloque del sistema LTI de la


biblioteca Control System Toolbox como se muestra a continuación. Esta figura
muestra cómo se define el modelo al ingresar "ss (A, B, C, D)" en
la celda variable del sistema LTI, aunque también se pueden emplear los
comandos tf y zpk.

107
Al agregar los puertos In1 y Out1 de la biblioteca Puertos y subsistemas,
se crea el modelo que se muestra a continuación.

Tenga en cuenta que los tres modelos generados anteriormente se


comportarán de forma equivalente siempre que se generen utilizando los mismos
valores de parámetro. La diferencia entre ellos es, entonces, solo la facilidad con

108
la que se crean y se interconectan, y cuán transparentes son para presentar la
información al usuario.

3.9. Diseño del controlador en Simulink

En esta sección vamos a tratar el siguiente contenido:

 Respuesta de bucle abierto

 Extracción de un modelo de muestra lineal en MATLAB

 Implementando control digital en Simulink

 Conversión de un modelo de tiempo continuo a tiempo discreto


dentro de Simulink

En la sección Posición del motor CC: Simulink Modeling,


desarrollamos un modelo Simulink del sistema de motor DC utilizando tres
métodos diferentes. En esta sección, emplearemos este modelo dentro de
Simulink para simular y diseñar diferentes enfoques de control. Específicamente,
exploraremos el diseño de un sistema de control digital.

109
3.9.1. Respuesta de bucle abierto

Comience con el modelo anterior guardado como un subsistema y siga


los pasos que se detallan a continuación.

 Retire los puertos de Entrada y Salida.

 Inserte un bloque de pasos de la biblioteca Simulink / Sources y


conéctelo con una línea a la entrada de voltaje.

 Para ver la posición de salida, inserte un Alcance de la biblioteca


de Simulink / Sinks y conéctelo a la salida de Posición.

 Para proporcionar una entrada de paso de unidad apropiada en


t = 0, haga doble clic en el Bloque de pasos y configure el Tiempo
de paso en "0".

El sistema debería aparecer ahora como en la siguiente figura.

110
Para simular este sistema, primero se deben establecer los detalles de
la simulación. Esto se puede lograr seleccionando Parámetros de
configuración del modelo en el menú Simulación. Dentro del menú
resultante, defina la duración para la cual se ejecutará la simulación en
el campo Tiempo de detención. Ingresaremos "0.2" ya que 0.2 segundos serán
lo suficientemente largos para que la respuesta al escalón alcance el estado
estable. También en el cuadro de diálogo Parámetros de configuración, se
puede especificar el solucionador numérico empleado en la
simulación. Continúe y cambie el campo Solver del predeterminado de 45
(Dormand-Prince) al de 15s (rígido/NDF). Como las escalas de tiempo en este
ejemplo son muy pequeñas, este método rígido de integración del sistema es
más eficiente que el método de integración predeterminado.

111
Los parámetros físicos ahora deben establecerse. Ingrese los siguientes
comandos en la ventana de comandos de MATLAB.

Luego ejecute la simulación (presione Ctrl-T o


seleccione Ejecutar desde el menú Simulación). Cuando finalice la simulación,
haga doble clic en el alcance. Debería ver el siguiente resultado que se vuelve
inestable y obviamente no cumple con nuestros requisitos de diseño. Tenga en
cuenta que esta respuesta es coherente con los resultados que obtuvimos de la

112
línea de comandos de MATLAB en la página Posición del motor de CC:
Análisis del sistema.

3.9.2. Extracción de un modelo de muestra lineal en MATLAB

Ahora vamos a extraer una versión muestreada lineal de este modelo de


tiempo continuo en el espacio de trabajo de MATLAB. La extracción de un
modelo de muestra se puede realizar desde la línea de comandos de MATLAB
utilizando el comando dlinmod, aunque es preferible realizar la extracción
directamente desde Simulink, como demostraremos aquí. Usaremos el modelo
de arriba.

Lo primero que debemos hacer es identificar las entradas y salidas del


modelo que deseamos extraer. Primero, haga clic con el botón derecho en la
señal que representa la entrada de voltaje en el modelo de Simulink. Luego,
elija Puntos de análisis lineal> Entrada de bucle abierto en el menú

113
resultante. De forma similar, haga clic con el botón derecho en la señal que
representa la salida de posición y seleccione Puntos de análisis lineal> Salida
de bucle abierto en el menú resultante. Las señales de entrada y salida ahora
deben identificarse en su modelo mediante símbolos de flecha, como se muestra
en la figura a continuación.

Para realizar la extracción, seleccione de los menús en la parte superior


de la ventana del modelo Análisis> Diseño de control> Análisis lineal. Esto
hará que se abra la herramienta de análisis lineal. A continuación, siga los
pasos que figuran a continuación.

 Desde la ventana de la herramienta de análisis lineal, haga clic


en el botón Más opciones. Desde la ventana resultante, cambie
el tiempo de muestra a "0.001" como se muestra en la figura a
continuación. El método de conversión de velocidad puede
seguir siendo el bloqueo de orden cero predeterminado.

114
 Dentro de la ventana de la herramienta de análisis lineal,
el punto de operación a linealizar puede seguir siendo el
predeterminado, condición inicial del modelo. Para realizar la
linealización/discretización, luego haga clic en
el botón Paso identificado por una respuesta de paso con un
pequeño triángulo verde en la parte superior. El resultado de esta
linealización/discretización es el objeto linsys1 que ahora aparece
en el espacio de trabajo de análisis lineal. Este modelo se puede
exportar simplemente arrastrando el objeto al espacio de trabajo
de MATLAB.

Este objeto se puede usar dentro de MATLAB de la misma manera que


un objeto creado directamente desde la línea de comando de
MATLAB. Específicamente, al ingresar el comando zpk (linsys1) en la ventana
de comandos de MATLAB se demuestra que el modelo resultante tiene la
siguiente forma.

115
( ) . ( . )( . ∗ )
( )= = (3.37)
( ) ( )( . )

Para verificar aún más la validez de la extracción del modelo,


generaremos una respuesta en bucle abierto de la función de transferencia de
tiempo discreto en MATLAB. Ingrese los siguientes comandos en el indicador de
la ventana de comando de MATLAB. Debería ver la siguiente gráfica que está
de acuerdo con la salida del modelo Simulink continuo evaluado anteriormente.

Los modelos discretos extraídos se pueden usar en MATLAB para


diversas tareas de análisis y diseño de controladores. A continuación,

116
empleamos directamente el modelo Simulink desde arriba para simular la
implementación de un controlador digital sin discretizar explícitamente el modelo
de planta en tiempo continuo.

3.9.3. Implementando control digital en Simulink

En la página Posición del motor de CC: Diseño del controlador digital,


se diseñó un controlador digital con la siguiente función de transferencia.

( . )( . )
( ) = 800 (3.38)
( . )( . )( )

Podemos usar este compensador para simular el sistema de control


digital asociado de lazo cerrado en Simulink. A partir del modelo de Simulink que
utilizamos anteriormente para la extracción, elimine los puertos de entrada y
salida y agregue lo siguiente:

 Dos bloques de retención de orden cero de la biblioteca Simulink /


Discrete

 Bloque Zero Pole discreto de la biblioteca Simulink / Discrete

 Bloque de suma de la biblioteca Simulink / Math Operations

Coloque un bloque de retención de orden cero en la entrada del


subsistema Motor_pos que es un modelo continuo de la planta. Este bloque de
retención de orden cero convierte una señal de tiempo discreto en una señal
continua de constante paso a paso. El otro bloque de mantenimiento de orden
cero se coloca en la salida del subsistema Motor_pos y sirve para tomar
muestras discretas de la señal de salida de la planta. Edite los bloques Mantener
orden cero de modo que los campos de tiempo de la muestra se configuren en
"0.001" (esto es rápido en comparación con la respuesta de paso deseada en el
tutorial de MATLAB).

Luego edite el bloque Discrete Zero Pole para modelar la función de


transferencia discreta de controlador descrita anteriormente. Específicamente,

117
edite el campo Ceros a "[0.95 0.80 0.80]", el campo Polos a "[-0.98 0.6 1]",
el campo Ganancia a "800" y el campo de tiempo Muestra a "0.001". Luego
marque el bloque "Controlador" y cambie su tamaño para ver todo su contenido.

A continuación, ingrese "| + -" en el campo Lista de signos del bloque


Sum. El personaje "|" sirve como un espaciador entre los puertos de
entrada. Ahora tenemos que configurar la simulación para observar la posición
del motor para una entrada por pasos.

 Adjunte un bloque de pasos a la entrada positiva del bloque Sum y


conecte un bloque Scope a la salida de la planta.

 Haga doble clic en el bloque de pasos y configure el tiempo de


pasos en "0".

Finalmente, conecta los bloques como se muestra a continuación.

Antes de que podamos simular el sistema de circuito cerrado, de nuevo


necesitamos establecer un tiempo de simulación
apropiado. Seleccione Parámetros de configuración del modelo desde
el menú Simulación e ingrese "0.08" en el campo Tiempo de parada. Elegimos
este tiempo de parada para observar el sistema el tiempo suficiente para ver si
satisface el requisito de tiempo de establecimiento de 0,04 segundos. Si ha
comenzado una nueva sesión de MATLAB o ha omitido la parte de respuesta de
bucle abierto de este ejemplo, entonces los parámetros físicos para la simulación

118
deben establecerse de nuevo. Ejecute los siguientes comandos en el indicador
MATLAB si es necesario.

Ahora la simulación finalmente se puede ejecutar. Recuerde que esto se


puede lograr presionando Ctrl-T o seleccionando Ejecutar desde el menú
de Simulación. Cuando finalice la simulación, haga doble clic en el
alcance. Debería ver la siguiente salida.

119
De la figura anterior, parece que el exceso es inferior al 16% y el tiempo
de establecimiento es inferior a 0,04 segundos, según sea necesario. Esto es
consistente con el análisis empleado en el diseño del controlador digital. Sin
embargo, no hemos evaluado la respuesta del sistema con una perturbación
presente. Se puede agregar una perturbación de paso de manera similar a la
forma en que se agregó la referencia de paso, como se muestra en la siguiente
figura. Sume la perturbación entre el controlador y la planta siguiendo el bloqueo
de Mantener orden cero, ya que la señal de perturbación es continua.

Dentro del modelo, establezca el tiempo de paso de la


perturbación para que ocurra a "0.03" segundos. Luego vuelva a ejecutar la
simulación y observe el resultado del alcance como se describe arriba. El gráfico
de posición resultante debe aparecer como se muestra a continuación.

120
A partir de la inspección de lo anterior, puede ver que hay un pequeño
bache que comienza en 0.03 segundos debido a la perturbación, pero el sistema
puede rechazar su efecto y el error de estado estacionario sigue siendo cero
según sea necesario.

3.9.4. Conversión de un modelo de tiempo continuo a tiempo discreto


dentro de Simulink

En lo anterior, extrajimos un modelo de muestra lineal de nuestra planta


de nuestro modelo Simulink en el espacio de trabajo MATLAB utilizando
la herramienta de análisis lineal. También, en efecto, discretizamos la planta
con el propósito de la simulación usando bloques Zero Order Hold dentro de
Simulink. En esta sección, generaremos un modelo de tiempo discreto de
nuestra planta sin el uso de bloques Cero Order Hold. Este enfoque ofrece una

121
gama más amplia de técnicas de discretización que las que se pueden lograr a
través de bloques Simulink, que están limitados a Orden cero y Retención de
primer orden. Esto es especialmente útil para generar un controlador digital a
partir de un diseño continuo.

Hasta ahora, hemos elegido emplear el primer modelo simulink de


principios, pero podríamos haber utilizado fácilmente el modelo Simscape o el
modelo del sistema LTI. Una cosa a tener en cuenta, sin embargo, es que, si
usara el modelo Simscape de la planta en el punto anterior, las señales físicas
de Simscape tendrían que convertirse en señales Simulink adimensionales para
poder interactuar con los bloques Simulink que empleamos.

Recuerde que el bloque del Sistema LTI importa un modelo del espacio
de trabajo MATLAB. Por lo tanto, debe ingresar los siguientes comandos en la
línea de comando donde se supone que ya se han ingresado valores para los
diversos parámetros físicos.

Su modelo debe aparecer de la siguiente manera.

122
Para discretizar este modelo:

El modelo LTI ahora se convierte en discreto. Agreguemos un


controlador digital y simulemos la respuesta de bucle cerrado de este
modelo. Emplee el mismo controlador que utilizamos anteriormente. El modelo
final debería aparecer de la siguiente manera.

123
Simula el modelo como lo hemos hecho previamente. La respuesta de
posición resultante debería aparecer de la siguiente manera.

Tenga en cuenta el acuerdo con los resultados de simulación de bucle


cerrado que encontramos anteriormente. Esto tiene sentido ya que el modelo de
los primeros principios y el modelo de bloques del sistema LTI son equivalentes
y ambos modelos de Simulink usaron un muestreo de tipo retención de orden
cero para discretizar la planta.

124
CONCLUSIONES

• Se analizó el modelo matemático del motor DC

• Se simulo el control del motor DC con Matlab

• Se diseñó un controlador PID de posición de un motor DC

• El diseño del control es eficaz para nuestro sistema lo que se puede


demostrar en la simulación presentada.

• Los controles analizados en la presente tesis tiene una buena


respuesta.

125
RECOMENDACIONES

• Se puede trabajar el control del motor DC con otros controles como los
controles robusto, difuso y predictivo.

• Se puede comparar los resultados de la simulación del control del motor


DC con otros simuladores como el Labview.

126
BIBLIOGRAFIA.

1) Stephen J. Chapman, “Máquinas Eléctricas”. Tercera Edicón, Editorial Mc


Graw Hill

2) Katsuiko Ogata, “Ingeniería de Control Moderna”, Quinta Edición, Edit.


Prentice-Hall, 2010

3) Richard Dorf y Robert Bishop, “Sistemas de Control Moderno”, 12ava


Edición, Edit. Pearson Prentice Hall, 2010

4) Farid Golnaraghi y Benjamin Kuo, “Sistemas de Control Automático”,


Novena Edición, Edit. Prentice-Hall, 2009

5) W. Bolton. INGENIERIA DE CONTROL. Editorial Alfa Omega 2da Edición


México 2006 Aplicaciones en Tiempo Real Editorial Maguiña 2001 Perú.

6) Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag, 2da


edición, Germany, 1989

7) A JIMENES AVELLO, E. JIMENES MORENO – INTRODUCCIÓN AL


CONTROL ÓPTIMO Universidad Politecnica de Madrid

8) Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag, 2da


edición, Germany, 1989

9) Matlab User’s Guide Version (Release 2015b) from The MatWorks.

http://www.matworks.com

10) M. Vidyasagar, Nonlinear Systems Analysis (Second Edition), Prentice Hall,


Englewood , Cliffs, New Jersey 07632, 1993.

11) R. De Keyser, “A Gentle Introduction to Model Based Predictive Control”. In


PADI2 International Conference on Control Engineering and Signal
Processing, Piura, Peru, 1998.

127
12) Kevin M. Passino. Sthepen Yurkovich .fuzzy Control Editorial Addison
Wesley Longman .Inc 1998. USA. ISBN 0-201-18074-X

13) Mamdani, E.H. and S. Assilian, “An experiment in linguistic synthesis with
a fuzzy logic controller,” International Journal of Man-Machine Studies,
Vol.7, No. 1. 1995.

14) Hellendoorn. H and C. Thomas (1993) “Defuzzification in avanzado


controllers” Intelligent and Avanzado Systems. Vol 1. pp. 109-123.

15) Simulink User’s Guide from The MatWorks. http://www.matworks.com

16) Avanzado Logic Toolbox. Foe Use with Matlab User’s Guide Version 3.0
(Release 14) The MatWorks. http://www.matworks.com.

17) Iván Socolsky. Diseño de un controlador avanzado para el problema del


péndulo invertido Universidad Nacional de Tucumán Argentina, Mayo de
1999

18) Bonifacio Martin del Brio “Redes Neuronales y Sistemas de Difusos”.


Editorial AlfaOmega RAMA México 2002.

19) Solange Olivera “Sistemas Inteligentes “Editora Manole Ltda. Brasil 2003

20) Ian S. Shaw y Marcelo Godoy Simoes. Controle e Modelagem Avanzado


Editorial: Edgard Blucher LTDA. 2001. Impreso en Brasil. ISBN 85-212-
0248-2. Timothy J. Ross. Avanzado Logic with Engineering Applications.

128

También podría gustarte