You are on page 1of 10

INFORME DE LABORATORIO PRÁCTICA NO.

4, CONTROL 2, NOVIEMBRE 2017 1

Laboratorio Control II - Diseño de un Controlador


Digital por Frecuencia y de Tiempo Mı́nimo para
Sistema Térmico
Santiago Cuervo, Brayan Ruı́z, Juan Vélez
Universidad Distrital Francisco José de Caldas
Facultad de Ingenierı́a
Bogotá, Colombia

Abstract— In this paper we present the procedures done in prácticos obtenidos de la implementación de los sistemas de
order to design a digital controller for a thermal system using control y se comparan con las simulaciones correspondientes.
frequency domain based methods, and a minimum settling time Finalmente en la sección VI se presentan las conclusiones de
controller. The digital controller was implemented on a PSoC
5LP microcontroller, and some additional recquired circuitry. la práctica.
The practical results are validated by simulation and conclussions
regarding the performance of the derived models and designed
controllers are presented. II. D ESCRIPCI ÓN DEL S ISTEMA
El sistema que se trabajará en esta práctica es el mismo
presentado en [3] y consiste de un volumen cuya temperatura
I. I NTRODUCCI ÓN
interna se desea controlar. Este se implementó como un

E L diseño de controladores digitales permite también em-


plear, casi de forma directa, los mismos métodos usados
en tiempo continuo basados en el dominio de la frecuencia.
sistema en lazo cerrado con realimentación unitaria negativa y
control digital. El diagrama de bloques se muestra en la figura
1, siendo T el periodo de muestreo, y se usa un retenedor de
Estas técnicas tienen diversas ventajas, como la eliminación orden cero.
de los efectos del ruido, o la no necesidad de una función
de transferencia para el diseño al ser posible obtener modelos 1
s Y (s)
C(z) 1−e−T s G(s)
experimentales, y satisfacen de forma indirecta condiciones Σ s
en la respuesta temporal [1]. Las implementaciones digitales T
permiten además extender las limitaciones de diseño que tie- −
nen los controladores analógicos por sus limitaciones fı́sicas,
por lo que hay controladores que usualmente irrealizables
con componentes analógicos, pueden ser implementados con Fig. 1. Diagrama de bloques del sistema con control discreto
circuitos digitales [2]. Esta ventaja se manifiesta en el diseño
de controladores de tiempo mı́nimo, que son sistemas de
control que forzan a la señal de error a llegar a cero después En lo que sigue se describen en detalle la implementación de
de un tiempo mı́nimo finito de periodos de muestreo. la planta y sistema de control.

En esta práctica de laboratorio se realiza el diseño de dos con-


troladores digitales, uno por métodos de diseño en frecuencia A. Planta
y el otro por el método de diseño de controladores de tiempo La planta consiste de: una cámara de calentamiento, un
mı́nimo, para una planta térmica, en la que el objetivo es fijar actuador térmico, un sensor LM35, y un acondicionamiento
la temperatura en un valor deseado indicado por la referencia, para obtener una sensibilidad de 100 mV/◦ C. A continuación
esto sujeto a requisitos impuestos a la respuesta temporal. se especifica la implementación de estos elementos.
En la sección II se describe el montaje experimental usado en
la práctica de laboratorio, incluyendo el diseño de los circuitos 1) Cámara de calentamiento:
que componen la planta y el sistema de control, y detalles Es el volumen dentro del cual se controla la temperatura.
de la implementación en el microcontrolador del controlador Esta debe ser de un material aislante térmico, que para esta
digital, ası́ como las condiciones de operación en las cuales implementación fue poliestireno expandido 1 . Como actuador
se realizaron los experimentos. En la sección III se muestra se implementó un bombillo de 12 VDC de 20 W. La figura 2
el modelo derivado en prácticas anteriores [3]. En la sección muestra el sistema térmico implementado para la práctica.
IV se realizan los cálculos para la obtención del controlador
digital por técnicas de frecuencia y del controlador digital de
tiempo mı́nimo. En la sección V se presentan los resultados 1 Nombre común: icopor.
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 2

Fig. 2. Sistema térmico implementado.

Fig. 4. Diagrama circuital para la etapa de potencia. Imagen tomada de [5].


2) Sensado y Acondicionamiento:
Como elemento de sensado se utilizó el sensor de temperatura El acondicionamiento se hace con amplificadores operaciona-
semiconductor LM35DZ de National Semiconductors, cuya les en configuración sumador-restador. El rango entrada/salida
sensibilidad nominal es de 10 mV/◦ C. Para evitar ruido en el de este se define como:
sensado se utilizó el circuito recomendado en [4](figura 3).
Para cumplir con el requisito de 100 mV/◦ C de sensibilidad −10, 7V → 0,3V
se implementó un amplificador de ganancia 10. El circuito
completo de sensado y acondicionamiento se muestra en la 11V → 4V
figura 3. Siendo -10.7 V y 11 V los valores de VOL y VOH respecti-
vamente, medidos con alimentación de ±12v. La ecuación de
salida del amplificador es:
37 2314
Vo = Vi + v
223 1115
El circuito resultante considerando condiciones de balance
eléctrico se muestra en la figura 5.

Fig. 3. Diagrama circuital para la etapa de sensado, incluido acondiciona-


miento. Imagen tomada de [5].

3) Actuador:
El actuador, elemento encargado de aplicar la potencia reque-
rida por el controlador a la planta para generar calor, consiste
de un seguidor de potencia con un transistor en configuración
Darlington implementado usando el circuito integrado TIP122.
El circuito empleado se muestra en la figura 4.
Fig. 5. Diagrama circuital del acondicionador de entrada

B. Controlador
Dado que el DAC está limitado en el rango de voltajes de
1) Acondicionadores de la señal de error y de control: salida a valores entre 0 V y 4.08 V también se hace necesario
La señal de error requiere acondicionamiento para ser proce- acondicionar la señal a la salida del microcontrolador. El rango
sada por el microcontrolador, dado que el ADC establece un de entrada-salida de este acondicionador es:
rango de entrada máximo entre Vssa + 0.1 V y Vdda - 0.25 V,
siendo Vssa y Vdda el voltaje de referencia y de alimentación 0,5V → −10, 7V
analógica del microcontrolador, respectivamente. Para evitar
4V → 11V
overflow debido a variaciones del voltaje de alimentación USB
se define el rango de la señal de error entre 0.3V y 4V, lo cual Se considera 0.5V como el voltaje mı́nimo para evitar que pri-
implica que no se aprovecha el rango completo de cuentas del me el efecto del offset y pérdidas del amplificador operacional
convertidor, pero se evitan para todos los casos errores debido para voltajes en el rango de las decenas de mV. La ecuación
a voltajes fuera del rango de entrada. que define el acondicionador de salida es:
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 3

223 486
Vo = Vi − v
35 35 3) Temporizador:
El diseño considerando balance eléctrica resulta en el circuito
de la figura 6. Este se usó para configurar el periodo de muestreo y se imple-
mentó mediante el bloque de Temporizador. La configuración
de parámetros fue:
• Resolución de 16 bit.
• Módulo (MOD) en 2000 cuentas para el controlador por
frecuencia, y en 6300 cuentas para el controlador de
tiempo mı́nimo.
• Reloj de 1 kHz.

MOD
El periodo de muestreo se calcula como: T = 100 Hz s. Para
temporizar la ejecución de la acción de control se hizo pooling
sobre la bandera tc (Conteo de tiempo) del temporizador.
Se incluye además saturación por código a los valores medidos
de VOH y VOL . En el Apéndice se anexa el código fuente
Fig. 6. Diagrama circuital del acondicionador de salida utilizado para la implementación del controlador digital.

III. I DENTIFICACI ÓN DEL S ISTEMA


C. Implementación del controlador digital
La identificación del sistema térmico se realizó en [3], sin
Para la implementación de los controladores digitales se embargo una de las conclusiones del trabajo anterior fue que
usó el Kit de desarrollo CY8CKIT-059 que incorpora el la ganancia considerada del sistema era inferior a la real, por
microcontrolador CY8C5888LTI-LP097 de la familia 5LP lo que el proceso de identificación se repite para cinco valores
de Cypress Semiconductors [7]. Este microcontrolador tiene de escalón. Los resultados obtenidos se muestran en la figura
embebidos varios Conversores Análogicos-Digitales (ADC) 7.
y Conversores Digitales-Analógicos(DAC) lo que facilita
la implementación del controlador discreto. A continuación
se listan los bloques usados y su configuración para la
implementación del controlador.

1) Conversor Analógico-Digital:
Este se implementó mediante el bloque de Convertidor
Analógico-Digital Delta Sigma que permite conversión a alta
resolución sacrificando altos recursos de hardware lógico del
microcontrolador, desventaja que no es pertinente para esta
aplicación a diferencia de la resolución. La configuración
empleada para este bloque fue:
Fig. 7. Respuesta en lazo abierto de la planta para diferentes escalones, y
• Modo de conversión de una sóla muestra activado por respuesta del modelo aproximado.
software.
• Resolución de 16 bits.
• Rango de entrada endre VSSA y VDDA (0 V y 5 V). Siguiendo el mismo proceso descrito en [3], se obtiene el
• Voltaje de referencia de VDDA/4 con capacitor de filtrado. modelo de la planta:

De donde se obtiene una sensibilidad de: 0,75


Gp (s) =
1,25 V µV 85 s + 1
sadc = ≈ 19
216 CT A
IV. D ISE ÑO DE C ONTROLADORES
.
2) Conversor Digital-Analógico: A. Controlador por diseño en frecuencia

Para la conversión Digital-Analógica se empleo el bloque Se requiere diseñar un controlador tal que el sistema tenga un
Convertidor Digital-Analógico de Voltaje de 8-bit. Este tiene margen de fase de 70◦ , error de posición nulo, y frecuencia de
una resolución fija de 8 bits, los parámetros configurados cruce de ganancia de τ6 , siendo τ la constante de tiempo del
fueron: sistema en tiempo continuo, por lo que para el caso se tiene
ωg0 = 0,0706 rad/s.
• Rango de salida entre 0 y 4.08V.
• Valor inicial en 2.04V. Siguiendo el criterio de tiempo de subida, se establece el
• Tiempo de levantamiento lento. periodo de muestreo de T = 19 s, por lo que la función de
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 4

transferencia pulso de la planta es:


0,1502
Gp (z) =
z − 0,7997
Aplicando la transformada bilineal se obtiene:
−0,08348 w + 0,008787
Gp (w) =
w + 0,01172
A la cual se pueden aplicar las mismas técnicas que en
sistemas continuos para la obtención del controlador. Para
lograr error de posición nulo se añade primero un integrador,
cuya ganancia se estimó por tanteo para facilitar el diseño, por Fig. 9. Diagrama de Bode del sistema con el primer compensador atraso-
adelanto.
lo que el sistema resultante es:
0,3 −0,2248 w2 + 0,007135 w
Gp2 (w) = Gp (w) = El diagrama de Bode del sistema con el compensador diseñado
w w2 + 0,01189 w
se muestra en la figura 9.
El diagrama de Bode de este sistema se muestra en la figura
8. Teniendo ya un sistema estable se procede a aumentar la
frecuencia de cruce de ganancia y el margen de fase para
cumplir con los criterios de diseño, esto se hace con un
segundo compensador atraso-adelanto, que se diseña para la
frecuencia de cruce de ganancia deseada de ωg0 = 0,0706 rad/s.
Para lograr la frecuencia de cruce deseada se tiene que:
ΦM 2 = 6 [C1 (jωg0 ) Gp2 (jωg0 )] − 180◦ + 6◦ = 30,7◦
1 + sin(30,7◦ )
b2 == = 3,0862
1 − sin(30,7◦ )
El compensador en atraso debe compensar no sólo por el
aumento en ganancia causado por el compensador en adelanto,
sino también por el valor de la curva de magnitud en ωg0 , por
Fig. 8. Diagrama de Bode del sistema con integrador.
lo que se tiene:
20 log(a) = −10 log(b2 ) − ||C1 (jωg0 ) Gp2 (jωg0 )||
Como se muestra en la figura este sistema no cumple los requi- 1,8
sitos impuestos, por lo que es necesario realizar compensación. a2 = 10−0,5 log(b)+ 20 = 0,7003
En primera instancia se añade un compensador atraso-adelanto Y con la frecuencia de cruce deseada se hallan los parámetros
con el fin de hacer el margen de fase positivo y lo más grande restantes del compensador:
posible, dejando la frecuencia de cruce de ganancia original
ωg = 0,0538 rad/s. Se hace que el compensador en adelanto 10 1
T12 = = 202,2574 ; T22 = √ = 8,0628
aporte ΦM 1 = 70◦ , de donde se puede hallar el parámetro b1 a2 ωg0 b2 ωg
del compensador en adelanto como: Resultando en la función de transferencia del segundo com-
1 + sin(70 ) ◦ pensador atraso-adelanto:
b1 = = 32,1634 141,6 w + 1 24,88 w + 1
1 − sin(70◦ ) C2 (w) =
202,3 w + 1 8,063 w + 1
Se hará que la atenuación del compensador de atraso compense
por el aumento en ganancia de 10 log(b1 ) manteniendo ası́ la El diagrama de Bode resultante de C1 (w) C2 (w) Gp2 (w) se
misma frecuencia de cruce de ganancia, de donde se halla el muestra en la figura 10, donde se observa que se cumple con
parámetro a1 del compensador en atraso: los criterios establecidos.
Se pasa ahora la función de transferencia del controlador
20 log(a1 ) = −10 log(32,1634) C(w) = C1 (w) C2 (w) 0,3 w al dominio de z, obteniéndose la
función de transferencia del controlador discreto:
a1 = 10−0,5 log(32,1634) = 0,1763 6,578 − 13,54 z −1 + 2,512 z −2 + 11,61 z −3 − 9,082 z −4 + 1,939 z −5
C(z) =
1 − 2,324 z −1 + 1,181 z −2 + 0,576 z −3 − 0,3975 z −4 − 0,03563 z −5
Con lo que se hallan los parámetros restantes:
Finalmente se halla la función del controlador en el tiempo
10 1
T11 = = 1446,3 ; T21 = √ = 4,4966 aplicando transformada Z inversa, obteniéndose:
a1 ωg b1 ωg
u[k] = 6,578e[k]−13,54e[k−1]+2,512e[k−2]+11,61e[k−3]−...
Por lo que el compensador atraso-adelanto resultante es:
9,082e[k−4]+1,939e[k−5]+2,324u[k−1]−1,181u[k−2]−...
255 w + 1 144,6 w + 1
C1 (w) = 0,576u[k − 3] + 0,3975u[k − 4] + 0,03563u[k − 5]
1446,3 w + 1 4,4966 w + 1
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 5

a D(z) como la función de transferencia del controlador a


implementar de la siguiente manera:
F (z)
D(z) =
Gp (z)(1 − F (z))
z −1
D(z) = 0,409z −1
1−0,4546z −1 (1 − z −1 )
Reduciendo la expresión anterior tenemos:
1 − 0,4546z −1
D(z) =
0,409 − 0, 409z −1
Fig. 10. Diagrama de Bode del sistema con el controlador diseñado.
Pasando a potencias positivas tenemos:
z − 0,4546
B. Controlador de tiempo de establecimiento mı́nimo D(z) =
0,409(z − 1)
Para diseñar el controlador de tiempo mı́nimo, se requiere Donde U (z) y E(z) son las señales de salida del controlador
encontrar el periodo de muestreo adecuado para lograr el y error en el dominio de z. Al igualar y eliminar la fracción
propósito. Siguiendo la recomendación dada por la guı́a de se tiene que:
laboratorio [6], se tomará T = t5s , siendo ts el tiempo de
establecimiento del sistema en lazo abierto, que como se (z − 0,4546)E(z) = 0,409(z − 1)U (z)
muestra en la Figura 11, es de 333 segundos. Pasando a potencias negativas:
E(z) − 0,4546z −1 E(z) = 0,409U (z) − 0,409z −1 U (z)
Y aplicando transformada Z inversa:
e[k] − 0,4546e[k − 1] = 0,409u[k] − 0,409u[k − 1]
Con lo que se obtiene la función de salida del controlador en
el tiempo:
1 0,4546
u[k] = e[k] − e[k − 1] + u[k − 1]
0,409 0,409
Para validar el diseño, se muestra en la figura 12 el LGR del
sistema con controlador en lazo cerrado, donde se ve que los
Fig. 11. Respuesta al escalón simulada de la planta en lazo abierto polos dominantes quedan en el origen, tal como es el objetivo
del diseño de sistemas de tiempo de establecimiento mı́nimo.
Por lo que el periodo de muestreo a utilizar se toma de
67 segundos. Teniendo T , podemos encontrar el controlador,
discretizando la planta en contı́nuo con el nuevo periodo de
muestreo.
Con el periodo de muestreo escogido y un retenedor de orden
cero se obtiene la función de transferencia discreta:
0,409
Gp (z) =
z − 0,4546
Pasando a potencias negativas se tiene:
0,409z −1
Gp (z) =
1 − 0,4546z −1 Fig. 12. LGR del sistema con controlador de tiempo mı́nimo en lazo cerrado.

En F (z) se deben incluir los ceros y retardos del sistema, por


lo que el sistema al no tener ceros, F (z) es: V. R ESULTADOS
−1
F (z) = z M (z) A. Simulaciones
En 1 − F (z) se incluyen los polos inestables del sistema y de 1) Controlador por diseño en frecuencia:
la entrada, por lo que : La respuesta al escalón del sistema con controlador por diseño
−1 en frecuencia se muestra en la figura 13. El sistema es estable,
1 − F (z) = 1 − z
como se esperaba del diseño, y tiene error de posición nulo,
Ahora, lo único que resta es igualar las ecuaciones para obte- sin embargo el bajo margen de ganancia obtenido causa una
ner el valor de m0 . Se obtiene m0 = 1, por lo que definimos respuesta altamente oscilatoria.
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 6

1) Controlador por diseño en frecuencia: En la figura 16


se muestran los resultados de las mediciones hechas para el
sistema con doble compensador atraso-adelanto.

Fig. 13. Respuesta al escalón del sistema con controlador por diseño en
frecuencia en lazo cerrado.

2) Tiempo Mı́nimo:
La respuesta al escalón del sistema con controlador de tiempo
mı́nimo se verifica en la figura 14, donde se puede ver que el
valor de establecimiento ocurre exactamente en un periodo de
muestreo (63 segundos).

Fig. 16. Medición de la respuesta al escalón (3.5 V a 4.5 V) del sistema


con controlador por frecuencia. Referencia-Salida (arriba), Referencia-Salida,
señales de control y error (abajo).

Puesto que el diseño en frecuencia no define directamente las


caracterı́sticas de la respuesta temporal, la validación de los
Fig. 14. Respuesta al escalón del sistema con controlador de tiempo mı́nimo resultados se hace comparando con la respuesta simulada. Las
en lazo cerrado. curvas de salida y error coinciden de forma muy cercana a
las curvas simuladas, viéndose la diferencia más notable en la
curva de la señal de control, resultando esta en la práctica
B. Mediciones con escalones en sentido inverso respecto a la simulación
Para la verificación experimental del diseño realizado se midió en algunos instantes, esto pudiendo justificarse en el signo
la respuesta del sistema para un escalón de referencia en la del error práctico respecto al simulado en el momento del
región lineal de la planta. A continuación se muestran para am- muestreo y cálculo de la señal de control.
bos controladores los resultados obtenidos de la medición de 2) Controlador de tiempo de establecimiento mı́nimo: En la
las señales de referencia, salida, control y error (lı́nea sólida), y figura 17 se muestran los resultados de las mediciones hechas
se comparan con los valores obtenidos por simulación para las para el sistema con controlador de tiempo de establecimiento
mismas condiciones (linea punteada). El diagrama de bloques mı́nimo.
usado para la simulación en MATLAB Simulink se muestra
en la figura 15. En esta se incluye un bloque de saturación
para tener en cuenta la saturación especificada por código
y los voltajes lı́mite de salida de los acondicionadores, y se
considera además la fuente externa al sistema de temperatura
que es la temperatura ambiente.

Fig. 17. Mediciones hechas de la respuesta al escalón del sistema con


Fig. 15. Diagrama de bloques usado para simulación en MATLAB Simulink. controlador de tiempo de establecimiento mı́nimo entre 4.5 V y 5.5 V.
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 7

Los resultados obtenidos cumplen con los criterios de diseño R EFERENCIAS


establecidos en cuanto a la respuesta temporal, logrando [1] Katsuhiko Ogata, Ingenierı́a de Control moderna, 5ta Edición, 2010.
estabilizarse el sistema en un periodo de muestreo, sin os- [2] Katsuhiko Ogata, Sistemas de Control en Tiempo Discreto, 2da Edición,
cilaciones. Las curvas de salida y error coinciden de forma 2000.
[3] Santiago Cuervo, Brayan Ruı́z, Juan Vélez, Laboratorio Control II -
muy cercana a las curvas simuladas, con una diferencia muy Diseño de un Controlador Digital por LGR para Sistema Tërmico, 2017.
mı́nima en la magnitud de la señal de control durante el primer [4] National Semiconductors, LM35 Precision Centigrade Temperature Sen-
periodo de muestreo. sors, 2000.
[5] Diana Marcela Ovalle M., Luis Francisco Cómbita A., Teaching Basic
Control Concepts with a Home-made Thermal System, 2014.
VI. C ONCLUSIONES [6] Diana M. Ovalle, Práctica No. 4, 2017.
Los resultados obtenidos tanto por simulación como por medi- [7] Cypress Semiconductors, CY8CKIT-059, PSoC® 5LP Prototyping Kit
Guide, 2015.
ción experimental son concordantes con los modelos teóricos
planteados en el proceso de identificación de la planta y diseño
de los sistemas de control. Comparando con los modelos
teóricos simulados, se observa como única diferencia notable
que en simulación la magnitud de la señal de control suele
ser mayor que en el caso de las mediciones experimentales,
esto probablemente debido a que el modelo aproximado de
la planta considera una ganancia K fija en todo el rango
de operación, mientras que las mediciones experimentales
sugieren que la ganancia de la planta tiene una ligera variación
a lo largo de la región lineal.
Se verificó, según lo esperado de la teorı́a del diseño de
controladores de tiempo mı́nimo, que el ubicar los polos en
el origen del plano complejo logra el mı́nimo tiempo de
establecimiento, que para el caso del sistema tratado en la
práctica, resultó en la estabilización tras un único periodo de
muestreo.
El diseño en frecuencia, a pesar de haber logrado cumplir
las condiciones de diseño, resultó en una respuesta temporal
lenta y altamente oscilatoria. Una posible forma de mejorar
esta respuesta usando las técnicas de diseño en frecuencia
serı́a intentar elevar el margen de ganancia mediante la imple-
mentación de un compensador en atraso adicional. Este paso
no se consideró necesario pues los criterios de diseño fueron
cumplidos, y el sistema resultó estable en la práctica.
En las mediciones del controlador de tiempo de establecimien-
to mı́nimo se observó para altas temperaturas la presencia de
un sobrepico, o en bajas temperaturas error en estado esta-
cionario. Esto podrı́a justificarse nuevamente en la variación
de la ganancia de la planta en el rango de operación. En las
mediciones del controlador en frecuencia se tomaron medidas
en el rango en que la señal de control no presentaba saturación,
esto para evitar efectos no lineales.
La diferencia en el sentido de algunos escalones en la señal
de control medida experimentalmente y simulada del modelo
teórico para el controlador por frecuencia podrı́an justificarse
en la variación de la polaridad de la señal de error, entre la
simulada y la medida, en los instantes nT , donde n = 1, 2, 3...,
en que se calcula la señal de control.
En esta práctica se hizo evidente la dificultad del diseño en
el dominio de la frecuencia para una determinada respuesta
temporal deseada, dado que el diseño en frecuencia no se hace
directamente para criterios temporales. Las ventajas mencio-
nadas de estos métodos no se hicieron evidentes en este caso
pues se contaba de antemano con un modelo tanto teórico,
como derivado experimentalmente, de la planta.
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 8

A P ÉNDICE # i n c l u d e < p r o j e c t . h>


C ÓDIGO FUENTE DEL SISTEMA DE CONTROL DIGITAL # i n c l u d e < s t d i o . h>
A continuación se anexa el código fuente implementado para
el sistema de control digital. Este involucró como periférico # i f d e f i n e d ( GNUC )
externo el uso de una pantalla LCD para visualización de las / / Permitir conversiones float / string
variables de error, control y salida del sistema. asm ( ” . g l o b a l printf float ” );
# endif

i n t main ( v o i d )
{
/ / D e c l a r a c i ó n e i n i c i a l i z a c i ó n de v a r i a b l e s
uint32 adc out ;
/ / S a l i d a d e l ADC
float v out ;
/ / V o l t a j e de s a l i d a d e l DAC
char8 s t r [ 6 ] ;
/ / S t r i n g para almacenar d a t o s medidos
/ / Selector controlador
uint8 sel = ’0 ’ ;
/ / −−−−−−−−−−−−−−−−−−−−−−−−LGR−−−−−−−−−−−−−−−−−−−−−
float la0 = 2.216;
/ / C o e f i c i e n t e de e [ k ]
f l o a t l b 0 = −1. 717 ;
/ / C o e f i c i e n t e de e [ k −1]
float lc0 = 1;
/ / C o e f i c i e n t e de u [ k −1]
/ / −−−−−−−−−−−−−−−−−−−−Tiempo mı́nimo−−−−−−−−−−−−−−−
float ta0 = 1/0.4088;
/ / C o e f i c i e n t e de e [ k ]
f l o a t tb0 = −0.455/0.4088;
/ / C o e f i c i e n t e de e [ k −1]
float tc0 = 1;
/ / −−−−−−−−−−−−−−−−−−−−−−−F r e c u e n c i a −−−−−−−−−−−−−−−
f l o a t fa0 = 6.7201;
/ / c o e f i c i e n t e de e [ k ] ;
f l o a t f b 0 = −14 .0 62 8;
/ / c o e f i c i e n t e de e [ k −1];
f l o a t fc0 = 2.9306;
/ / c o e f i c i e n t e de e [ k −2];
f l o a t fd0 = 1 1 . 9 4 ;
/ / c o e f i c i e n t e de e [ k −3];
f l o a t f e 0 = −9. 64 36 ;
/ / c o e f i c i e n t e de e [ k −4];
float ff0 = 2.1299;
/ / c o e f i c i e n t e de e [ k −5];
f l o a t fg0 = 2.2849;
/ / c o e f i c i e n t e de u [ k −1];
f l o a t f h 0 = −1. 08 06 ;
/ / c o e f i c i e n t e de u [ k −2];
f l o a t f i 0 = −0. 63 99 ;
/ / c o e f i c i e n t e de u [ k −3];
float fj0 = 0.3798;
/ / c o e f i c i e n t e de u [ k −4];
f l o a t fk0 = 0.0559;
/ / c o e f i c i e n t e de u [ k −5];
f l o a t sns ; / / sensor
float u; / / u[k]
float u p = 0; / / u [ k −1]
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 9

f l o a t u pp = 0; / / u [ k −2]
f l o a t u ppp = 0 ; / / u [ k −3]
f l o a t u pppp = 0 ; / / u [ k −4]
f l o a t u ppppp = 0 ; / / u [ k −5]
float e ; // e[k]
float e p = 0; / / e [ k −1]
f l o a t e pp = 0; / / e [ k −2]
f l o a t e ppp = 0; / / e [ k −3]
f l o a t e pppp = 0; / / e [ k −4]
f l o a t e ppppp = 0; / / e [ k −5]
uint8 tc ;
/ / Timer count
/ / I n i c i a l i z a componentes y v a r i a b l e s
timer clock Start ();
Timer Start ( ) ;
AMUX Start ( ) ;
ADC Start ( ) ;
VDAC Start ( ) ;
LCD Start ( ) ;
UART Start ( ) ;
/ / M e n s a j e de p r u e b a
U A R T P u t S t r i n g ( ” I n i t Ops . ” ) ;
/ / P o s i c i o n a e l p u n t e r o en l a LCD y e s c r i b e l a s e t i q u e t a s
LCD Position (0 u , 0u ) ;
LCD PrintString ( ”y : ” ) ;
LCD Position (1 u , 0u ) ;
LCD PrintString ( ”e : ” ) ;
for ( ; ; ) {
/ / Conmuta l a s e ñ a l de r e f e r e n c i a a l ADC
AMUX Select ( 0 ) ;
/ / Empieza l a c o n v e r s i ó n en e l ADC
ADC StartConvert ( ) ;
/ / E s p e r a r e s u l t a d o de l a c o n v e r s i ó n
ADC IsE ndC onve rsio n ( ADC WAIT FOR RESULT ) ;
/ / R e f e r e n c i a en 16 b i t s ( s e p i d e en 32 b i t s p a r a e v i t a r o v e r f l o w )
a d c o u t = ADC GetResult32 ( ) ;
/ / R e f e r e n c i a de c u e n t a s a v o l t a j e
e = ADC CountsTo Volts ( a d c o u t ) ;
/ / E m u l a c i ó n d e l v o l t a j e de e r r o r a l r a n g o e n t r e −10.7 y 1 1 . 6 v o l t i o s ( de 0 . 3 a 4 )
e = ( e *6.027027027) − 12.50810811;
/ / D e t i e n e l a c o n v e r s i ó n
ADC StopConvert ( ) ;
/ / Conmuta l a s e ñ a l d e l s e n s o r a l ADC
AMUX Select ( 1 ) ;
/ / Empieza l a c o n v e r s i ó n en e l ADC
ADC StartConvert ( ) ;
/ / E s p e r a r e s u l t a d o de l a c o n v e r s i ó n
ADC IsE ndC onve rsio n ( ADC WAIT FOR RESULT ) ;
/ / S a l i d a d e l s e n s o r en 16 b i t s ( s e p i d e en 32 b i t s p a r a e v i t a r o v e r f l o w )
a d c o u t = ADC GetResult32 ( ) ;
/ / S e ñ a l s e n s a d a de c u e n t a s a v o l t a j e
s n s = ADC CountsTo Volts ( a d c o u t ) ;
sns = sns * 2 . 5 ;
/ / D e t i e n e l a c o n v e r s i ó n
ADC StopConvert ( ) ;
/ / C a l c u l a y a p l i c a l a a c c i ó n de c o n t r o l s i t = nT , n = 1 , 2 , 3 . . .
t c = T i m e r R e a d S t a t u s R e g i s t e r ( ) & 0 b00000001 ;
i f ( t c == 1 ) {
INFORME DE LABORATORIO PRÁCTICA NO. 4, CONTROL 2, NOVIEMBRE 2017 10

/ / Lee p u e r t o s e r i a l
s e l = UART GetChar ( ) ;
switch ( s e l ){
/ / Timer STATUS ; case ’0 ’ :
// u = a0 * e + b0 * e p r e v + c0 * u ; / / C o n t r o l a d o r LGR
switch ( s e l ){ U A R T P u t S t r i n g ( ”L\ r \ n ” ) ;
case ’0 ’ : break ;
// C o n t r o l a d o r LGR case ’1 ’ :
u = l a 0 * e + l b 0 * e p + l c 0/ */ u C; o n t r o l a d o r t i e m p o mı́nimo
Timer WritePeriod (1900); U A R T P u t S t r i n g ( ”T\ r \ n ” ) ;
break ; break ;
case ’1 ’ : case ’2 ’ :
// C o n t r o l a d o r t i e m p o mı́nimo / / Controlador frecuencia
u = t a 0 *e + t b 0 * e p + t c 0 *u ; U A R T P u t S t r i n g ( ” F\ r \ n ” ) ;
Timer WritePeriod (6700); break ;
break ; }
case ’2 ’ : }
// Controlador frecuencia }
u = fa0 *e + fb0 * e p + fc0 * e pp + fd0 * e ppp + fe0 * e pppp + . . .
f f 0 * e ppppp + fg0 * u p + fh0 * u pp + f i 0 * u ppp + f j 0 * u pppp + fk0 * u ppppp ;
Timer WritePeriod (1900);
break ;
}
/ / S a t u r a c i ó n p o r s o f t w a r e
i f ( u > 10){
u = 10;
} e l s e i f ( u < −10){
u = −10;
}
/ / A c o n d i c i o n a l a s e ñ a l de c o n t r o l e n t r e 0 . 5 y 4
v out = ( u *0.186950672*0.8671875) + 2.168;
L C D P o s i t i o n ( 1 u , 10 u ) ;
s p r i n t f ( s t r , ” %1.2 f V” , u ) ;
LCD PrintString ( s t r ) ;
/ / S e ñ a l de c o n t r o l de v o l t i o s a c u e n t a s
v out = v out * 62.5;
VDAC SetValue ( ( u i n t 8 ) v o u t ) ;
/ / A c t u a l i z a c i ó n de v a r i a b l e de e r r o r
u ppppp = u pppp ;
u pppp = u ppp ;
u ppp = u pp ;
u pp = u p ;
u p = u;
e ppppp = e pppp ;
e pppp = e ppp ;
e ppp = e pp ;
e pp = e p ;
e p = e;
Timer Start ( ) ;
}
/ / E s c r i t u r a de v a l o r e s a l a LCD
LCD Position (0 u , 2u ) ;
s p r i n t f ( s t r , ” %1.1 f V ” , s n s ) ;
LCD PrintString ( s t r ) ;
LCD Position (1 u , 2u ) ;
s p r i n t f ( s t r , ” %1.1 f V ” , e ) ;
LCD PrintString ( s t r ) ;
CyDelay ( 5 0 u ) ;

You might also like