E SCIENTIA HOMINIS SALUS
1869-2015
ESCUELA POLITÉCNICA NACIONAL LABORATORIO DE CONTROL DE MÁQUINAS Integrantes: Juan Diego Solís Solís G.
Fecha: 06 de Mayo 2015.
PREPARATORIO 03 1. TEMA: TEMA: CONSTRUCCION DEL CONVERSOR AC/DC, DISEÑO E IMPLEMENTACIÓN DEL CONTROLADOR PI Y EVALUACION DEL CONTROL DE VELOCIDAD DEL MOTOR DE DC 2. OBJETIVOS 2.1. Construir un conversor AC/DC para que funcione como actuador en el lazo de control de velocidad del motor de corriente continua. 2.2. Implementar el controlador PI a usarse en el sistema de control de velocidad del motor de corriente continua. 2.3. Análisis del funcionamiento del control de velocidad del motor de corriente continua en régimen dinámico.
3. TRABAJO PREPARATORIO 3.1. Diseñar un convertidor estático de potencia alimentado desde la RED eléctrica que permita alimentar el motor DC, tanto el circuito de potencia como el circuito de control, en el cual el voltaje a la salida del conversor varíe de acuerdo a una señal de control de 0 a 5 V.
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
1869-2015
R1 U1(C)
8k
D1
D2
1N4007
5V
1N4007
U2 40 41 42 43 44 1 2 3
F
U1
N
VAC
1
6
+88.8
120Vrms AMP=169V FREQ=60Hz
Volts
D3
D4
1N4007
1N4007
5 2 4
9 10 11 12 13 14 15 16
OPTOCOUPLER-NPN
R2 4.7K
U2(AREF)
PB0/XCK0/T0/PCINT8 PB1/T1/CLKO/PCINT9 PB2/AIN0/INT2/PCINT10 PB3/AIN1/OC0A/PCINT11 PB4/SS/OC0B/PCINT12 PB5/MOSI/PCINT13 PB6/MISO/PCINT14 PB7/SCK/PCINT15
PD0/RXD0/PCINT24 PD1/TXD0/PCINT25 PD2/INT0/RXD1/PCINT26 PD3/INT1/TXD1/PCINT27 PD4/OC1B/XCK1/PCINT28 PD5/OC1A/PCINT29 PD6/ICP/OC2B/PCINT30 PD7/OC2A/PCINT31
PA0/ADC0/PCINT0 PA1/ADC1/PCINT1 PA2/ADC2/PCINT2 PA3/ADC3/PCINT3 PA4/ADC4/PCINT4 PA5/ADC5/PCINT5 PA6/ADC6/PCINT6 PA7/ADC7/PCINT7 PC0/SCL/PCINT16 PC1/SDA/PCINT17 PC2/TCK/PCINT18 PC3/TMS/PCINT19 PC4/TDO/PCINT20 PC5/TDI/PCINT21 PC6/TOSC1/PCINT22 PC7/TOSC2/PCINT23
29 AREF 27 AVCC 4 RESET
Detector de Cruce por cCero
XTAL1 XTAL2
37 36 35 34 33 32 31 30 19 20 21 22 23 24 25 26
D5
8 7
LED-YELLOW
ATMEGA164P
PWM para activar los SCR's
R8 330
R6(1)
R5(1)
R6 100
U5 1
6
R5
R3
U6
100
1
100
100
2
Q2 2N3904
R4
6
BT151 2
Zero Crossing
MOC3031M
D7 4
R9
Q1 2N3904
1N4007
330
Zero Crossing
D8 4
MOC3031M
1N4007
DC F N
+ 8 8 8 .
MOTOR DC
D6
D9
1N4007
1N4007
' Juan Diego Solís G. $regfile = "m164pdef.dat" $crystal = 8000000 Config Portd.4 = Output 'salida PWM para control SCRs Portd.4 = 0 Config Portd.2 = Input 'interrupcion de cruze por cero Portd.2 = 1 Ddra.0 = 0 'voltaje del tacogen de 0 a 5V al ad0 Ddra.1 = 0 Ddrc = 255 'Setpoint al adc1 Dim Vadc As Word 'variable para guardar dato del ADC Dim Vadc2 As Byte 'para guardar el dato del ADC en 1byte Dim Alfa As Byte 'angulo de disoaro variara de 255 a 0 On Int0 Cruze ' activo interrupcion int0"cruze por cero" '============================================================================= Dim Sensor As Byte Sensor = 0 Config Single = Scientific , Digits = 3
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
1869-2015
'============================================================================= Config Int0 = Rising 'configuramos flanco de subida por que el cruce por cero real esta antes del flanco de subida Enable Int0 On Ovf1 Apagar ' activo inerrupcion de Overfload para apagar el timer y volver a prenderlo en el cruce por cero Enable Ovf1 'de esta manera logramos sincronizar la PWM con el cruce por cero. Config Adc = Single , Prescaler = Auto Start Adc On Oc0a Muestreo mnuestreo. Enable Oc0a
'configuramos el ADC para recibir senial del PI
' habilito la interrupción para el tiempo de
Enable Interrupts '============================================================================= ' para el tiempo de muestreo ts=20ms Tccr0a = &B00000010 ' 010 modo CTC top<== ocr0a Tccr0b = &B00000101 'prescaler=101=1024 Timsk0 = &B00000010 Ocr0a = 156 '156 '============================================================================= 'PROGRAMA PRINCIPAL Main: Vadc = Getadc(0) 'adquirimos dato del ADC V tacogenerador de 0 a 5V Vadc = Vadc / 4 'acondicionamos ADC a 8bits Sensor = Vadc 'acondicionamos ADC a 8 bits '(Vadc = Getadc(1) ' adquisic del setpoint Vadc = Vadc / 4 Set_point = Vadc ') Alfa = Lookup(sensor , Tabla) 'segun dato del ADC escogemos valor correspondiente en la tabla y asignamos valor a alfa Goto Main '============================================================================= 'INTERRUPCIONES Cruze: Ocr1a = 255 'timer trabaja en el modo fast PWM con tope en el OCR1A y comparacion con el OCR1B
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
Tccr1a = &B00110011 Tccr1b = &B00011100 8.2 ms aprox ( manual atemga164p ) Ocr1b = Alfa Return ocr1b(portd.4) Apagar: Tccr1b = &B00000000 cruce por cero y de esta Return
1869-2015
'con prescaler de 256 que nos da un periodo de
'cargamos el valor de alfa en la salida de la pwm
'apgamos el timer para volver a prenderlo en el 'manera que este sincronizado con la red
Muestreo: Convertir = 1 Toggle Portc.6 Return '============================================================================= 'de los cálculos realizados, para encontrar una relación lineal entre el voltaje Tacog con el VDC Tabla: Data 255 , 246 , 243 , 240 , 238 , 235 , 234 , 232 , 230 , 229 , 227 , 226 , 225 , 223 , 222 , 221 , 220 , 219 , 218 , 216 , 215 , 214 , 213 , 213 Data 212 , 211 , 210 , 209 , 208 , 207 , 206 , 205 , 205 , 204 , 203 , 202 , 201 , 201 , 200 , 199 , 198 , 198 , 197 , 196 , 196 , 195 , 194 , 193 Data 193 , 192 , 191 , 191 , 190 , 189 , 189 , 188 , 187 , 187 , 186 , 186 , 185 , 184 , 184 , 183 , 182 , 182 , 181 , 181 , 180 , 179 , 179 , 178, Data 178 , 177 , 177 , 176 , 175 , 175 , 174 , 174 , 173 , 173 , 172 , 171 , 171 , 170 , 170 , 169 , 169 , 168 , 168 , 167 , 167 , 166 , 166 , 165 Data 164 , 164 , 163 , 163 , 162 , 162 , 161 , 161 , 160 , 160 , 159 , 159 , 158 , 158 , 157 , 157 , 156 , 156 , 155 , 155 , 154 , 154 , 153 , 153 Data 152 , 152 , 151 , 151 , 150 , 150 , 149 , 149 , 148 , 148 , 147 , 147 , 146 , 146 , 145 , 145 , 144 , 144 , 143 , 143 , 142 , 142 , 141 , 141 Data 140 , 140 , 140 , 139 , 139 , 138 , 138 , 137 , 137 , 136 , 136 , 135 , 135 , 134 , 134 , 133 , 133 , 132 , 132 , 131 , 131 , 130 , 130 , 129 Data 129 , 129 , 128 , 128 , 127 , 127 , 126 , 126 , 125 , 125 , 124 , 124 , 123 , 123 , 122 , 122 , 121 , 121 , 120 , 120 , 120 , 119 , 119 , 118 Data 118 , 117 , 117 , 116 , 116 , 115 , 115 , 114 , 114 , 113 , 113 , 112 , 112 , 111 , 111 , 110 , 110 , 109 , 109 , 108 , 108 , 107 , 107 , 106 Data 106 , 105 , 105 , 105 , 104 , 104 , 103 , 103 , 102 , 102 , 101 , 101 , 100 , 100 , 099 , 098 , 098 , 097 , 097 , 096 , 096 , 095 , 095 , 094 Data 094 , 093 , 093 , 092 , 092 , 091 , 091 , 090 , 090 , 089 , 089 , 088 , 088 , 087 , 086 , 086
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
1869-2015
3.2. Diseñar un controlador PI utilizando un microcontrolador para regular la velocidad del motor de corriente continua a usarse en el laboratorio. Utilizar los datos de la práctica anterior. (Función de Transferencia de la Planta y señales de realimentación).
Realimentación de velocidad
SIMULACIÓN COMO SUBSISTEMA
Velocidad Entrada Posicion
Step1
Scope1
DC Motor Subsystem
Subsistema con realimentación de velocidad.Velocidad Entrada
Step1
Posicion
Scope1
DC Motor Subsystem
CONTROLADOR PROPORCIONAL INTEGRAL DERIVATIVO (PID) Se implementan con amplificadores operacionales.
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
= + ∫+ = + ∫ = + + = = = − −
Acción proporcional integral PI
Añade el integrador y un cero en
La acción PI mejora el error en estado estable.
En el sisotool se pueden añadir el polo n cero y el cero en
Entonces, se va a diseñar un control PI para el “sistema motor DC ”. >> G2=tf([1000],[0.515 2.07]) G2 = 1000 -------------0.515 s + 2.07 >> Gt=G1*G2*0.373 Gt = 373 ----------------------------0.01453 s^2 + 1.387 s + 5.341 >> gpr=feedback(Gt,1) gpr = 373 ----------------------------0.01453 s^2 + 1.387 s + 378.3
LABORATORIO DE CONTROL DE MÁQUINAS
1869-2015
E SCIENTIA HOMINIS SALUS
Compensado con el PI
LABORATORIO DE CONTROL DE MÁQUINAS
1869-2015
E SCIENTIA HOMINIS SALUS
+ = = 0 . 9 09( + 3 ) = = 3.03; = 0.909 = 0.3
LABORATORIO DE CONTROL DE MÁQUINAS
1869-2015
E SCIENTIA HOMINIS SALUS
El tiempo de establecimiento es rápido. Nota: Entonces
1869-2015
= 0.254 . = = . , = .
en base a éstos resultados se selecciona un tiempo de muestreo de , lo que es generado con el timer 0. Las constantes se ingresan en el microcontrolador . El programa completo es el siguiente, incluye el programa para el conversor y el PI:
' Juan Diego Solís G. $regfile = "m164pdef.dat" $crystal = 8000000 Config Portd.4 = Output Portd.4 = 0 Config Portd.2 = Input Portd.2 = 1 Ddra.0 = 0 Ddra.1 = 0 Ddrc = 255
'salida PWM para control SCRs 'interrupcion de cruze por cero 'voltaje del tacogen de 0 a 5V al ad0 'Setpoint al adc1
Dim Vadc As Word 'variable para guardar dato del ADC Dim Vadc2 As Byte 'para guardar el dato del ADC en 1byte Dim Alfa As Byte 'angulo de disoaro variara de 255 a 0 On Int0 Cruze ' activo interrupcion int0"cruze por cero" '============================================================================= Dim Error_k As Single Dim Error_k_1 As Single Dim Vout As Word Dim Integral As Single Dim Proporcional As Single Dim Derivativo As Single Dim Control As Integer Dim Control1 As Integer Dim Kp As Single Dim Ki As Single 'Dim Kd As Single Dim Error_der As Single Dim Error_int As Single Dim Set_vol As Single Dim Set_point As Integer Dim Convertir As Byte Dim V_vol As Single
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
1869-2015
Dim Sensor As Byte Sensor = 0 Convertir = 0 Set_point = 0 Kp = 0.909 Ki = 0.3
'3 '0.003
'========================= Config Single = Scientific , Digits = 3 '============================================================================= Config Int0 = Rising 'configuramos flanco de subida por que el cruce por cero real esta antes del flanco de subida Enable Int0 On Ovf1 Apagar ' activo inerrupcion de Overfload para apagar el timer y volver a prenderlo en el cruce por cero Enable Ovf1 'de esta manera logramos sincronizar la PWM con el cruce por cero. Config Adc = Single , Prescaler = Auto Start Adc
'configuramos el ADC para recibir senial del PI
On Oc0a Muestreo mnuestreo. Enable Oc0a
' habilito la interrupción para el tiempo de
Enable Interrupts '============================================================================= ' para el tiempo de muestreo ts=20ms Tccr0a = &B00000010 Tccr0b = &B00000101 Timsk0 = &B00000010 Ocr0a = 156
' 010 modo CTC top<== ocr0a 'prescaler=101=1024 '156
'============================================================================= 'PROGRAMA PRINCIPAL Main: Vadc = Getadc(0) 'adquirimos dato del ADC V tacogenerador de 0 a 5V Vadc = Vadc / 4 'acondicionamos ADC a 8bits
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
Sensor = Vadc Vadc = Getadc(1) Vadc = Vadc / 4 Set_point = Vadc
1869-2015
'acondicionamos ADC a 8 bits ' adquisic del setpoint
'============================================================================= If Convertir = 1 Then Error_k = Set_point - Sensor Proporcional = Kp * Error_k Error_der = Error_k - Error_k_1 'Derivativo = Kd * Error_der Error_int = Error_int + Error_k Integral = Ki * Error_int 'Control = Integral + Derivativo Control = Integral + Proporcional If Control >= 255 Then Control = 255 If Control <= 0 Then Control = 0 Vadc2 = Control Error_k_1 = Error_k Convertir = 0 End If '============================================================================= Alfa = Lookup(vadc2 , Tabla) 'segun dato del ADC escogemos valor correspondiente en la tabla y asignamos valor a alfa Goto Main '============================================================================= 'INTERRUPCIONES Cruze: Ocr1a = 255 'timer trabaja en el modo fast PWM con tope en el OCR1A y comparacion con el OCR1B Tccr1a = &B00110011 Tccr1b = &B00011100 'con prescaler de 256 que nos da un periodo de 8.2 ms aprox ( manual atemga164p ) Ocr1b = Alfa Return 'cargamos el valor de alfa en la salida de la pwm ocr1b(portd.4) Apagar: Tccr1b = &B00000000 cruce por cero y de esta
'apgamos el timer para volver a prenderlo en el
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
Return
1869-2015
'manera que este sincronizado con la red
Muestreo: Convertir = 1 Toggle Portc.6 Return '============================================================================= ''de los cálculos realizados, para encontrar una relación lineal entre el voltaje Tacog con el VDC Tabla: Data 255 , 246 , 243 , 240 , 238 , 235 , 234 , 232 , 230 , 229 , 227 , 226 , 225 , 223 , 222 , 221 , 220 , 219 , 218 , 216 , 215 , 214 , 213 , 213 Data 212 , 211 , 210 , 209 , 208 , 207 , 206 , 205 , 205 , 204 , 203 , 202 , 201 , 201 , 200 , 199 , 198 , 198 , 197 , 196 , 196 , 195 , 194 , 193 Data 193 , 192 , 191 , 191 , 190 , 189 , 189 , 188 , 187 , 187 , 186 , 186 , 185 , 184 , 184 , 183 , 182 , 182 , 181 , 181 , 180 , 179 , 179 , 178, Data 178 , 177 , 177 , 176 , 175 , 175 , 174 , 174 , 173 , 173 , 172 , 171 , 171 , 170 , 170 , 169 , 169 , 168 , 168 , 167 , 167 , 166 , 166 , 165 Data 164 , 164 , 163 , 163 , 162 , 162 , 161 , 161 , 160 , 160 , 159 , 159 , 158 , 158 , 157 , 157 , 156 , 156 , 155 , 155 , 154 , 154 , 153 , 153 Data 152 , 152 , 151 , 151 , 150 , 150 , 149 , 149 , 148 , 148 , 147 , 147 , 146 , 146 , 145 , 145 , 144 , 144 , 143 , 143 , 142 , 142 , 141 , 141 Data 140 , 140 , 140 , 139 , 139 , 138 , 138 , 137 , 137 , 136 , 136 , 135 , 135 , 134 , 134 , 133 , 133 , 132 , 132 , 131 , 131 , 130 , 130 , 129 Data 129 , 129 , 128 , 128 , 127 , 127 , 126 , 126 , 125 , 125 , 124 , 124 , 123 , 123 , 122 , 122 , 121 , 121 , 120 , 120 , 120 , 119 , 119 , 118 Data 118 , 117 , 117 , 116 , 116 , 115 , 115 , 114 , 114 , 113 , 113 , 112 , 112 , 111 , 111 , 110 , 110 , 109 , 109 , 108 , 108 , 107 , 107 , 106 Data 106 , 105 , 105 , 105 , 104 , 104 , 103 , 103 , 102 , 102 , 101 , 101 , 100 , 100 , 099 , 098 , 098 , 097 , 097 , 096 , 096 , 095 , 095 , 094 Data 094 , 093 , 093 , 092 , 092 , 091 , 091 , 090 , 090 , 089 , 089 , 088 , 088 , 087 , 086 , 086
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
1869-2015
3.3. Presentar el diagrama eléctrico completo (Potencia y Control) para comandar el motor en lazo cerrado.
4. EQUIPO Y MATERIALES Grupo Motor-Generador de DC. Osciloscopio con retención de memoria. Taco-generador DC. Tacómetro
5. PROCEDIMIENTO 5.1. Implementar y comprobar el correcto funcionamiento del convertidor AC/DC. 5.2. Comprobar el funcionamiento del controlador PI. 5.3. Incorporar los circuitos diseñados anteriormente para cerrar el lazo de control de velocidad y comprobar su funcionamiento. 5.4. Con el control en lazo cerrado: - Manteniendo la carga constante a un valor determinado y con la velocidad a un valor bajo el nominal, incremente bruscamente el set-point de velocidad a la velocidad nominal y tome los resultados correspondientes.
LABORATORIO DE CONTROL DE MÁQUINAS
E SCIENTIA HOMINIS SALUS
-
1869-2015
Trabajando a velocidad nominal disminuya la velocidad bruscamente. Anote los resultados correspondientes. - Manteniendo el set-point de velocidad en un valor constante, aumente súbitamente la carga y tome los resultados correspondientes. - Manteniendo el set-point de velocidad en un valor constante, disminuya súbitamente la carga y tome los resultados correspondientes. 5.5. Tomar formas de onda de la velocidad en función del tiempo en lazo abierto para cambios de set-point de velocidad y cambios de la carga tal como en los numerales anteriores.
6. BIBLIOGRAFÍA -
Burbano, Patricio. “Apuntes de Control Automático” EPN 2014. “Apuntes de Control con Sistemas Microprocesados ”. EPN 2014
Filtros activos de primer orden. Rodas, Ana. “Apuntes de Instrumentación Electrónica” EPN 2014.
LABORATORIO DE CONTROL DE MÁQUINAS