PRÁCTICA No9

8
PRÁCTICA No. 9 LABORATORIO DE CONTROL CON MICROPROCESADORES IMPLEMENTACIÓN DIGITAL DE ALGORITMOS DE CONTROL OBJETIVO Familiarizar al estudiante con el manejo de conversores Análogos / Digitales y salidas PWM que posee el micro controlador Atmega164. Familiarizar al estudiante con las técnicas de implementación digital de los algoritmos de control más comunes utilizados en los sistemas de control y aplicarlos al control en lazo cerrado de la velocidad de un motor de corriente continua (MOTOMATIC). PREPARATORIO A través del pórtico de comunicación serial el computador envía los comandos necesarios al micro controlador para que este realice la medición de una señal analógica conectada al conversor A/D. Esta señal es el voltaje de realimentación acondicionado, proveniente de un taco generador y corresponde a la velocidad del motor del MOTOMATIC. De igual manera, el computador consulta en el micro controlador el valor de la referencia de velocidad (set point). La referencia o set-point de velocidad podrá ser variada mediante el uso de las teclas conectadas al micro controlador Tecla 1: incremento set point en 2 Tecla 2: incremento set point en 10 Tecla 3: decremento set point en 2 Tecla 4: decremento set point en 10

description

CONTROL CON MICROS

Transcript of PRÁCTICA No9

PRCTICA No. 9LABORATORIO DE CONTROL CON MICROPROCESADORESIMPLEMENTACIN DIGITAL DE ALGORITMOS DE CONTROLOBJETIVO Familiarizar al estudiante con el manejo de conversores Anlogos / Digitales y salidas PWM que posee el micro controlador Atmega164. Familiarizar al estudiante con las tcnicas de implementacin digital de los algoritmos de control ms comunes utilizados en los sistemas de control y aplicarlos al control en lazo cerrado de la velocidad de un motor de corriente continua (MOTOMATIC).PREPARATORIOA travs del prtico de comunicacin serial el computador enva los comandos necesarios al micro controlador para que este realice la medicin de una seal analgica conectada al conversor A/D. Esta seal es el voltaje de realimentacin acondicionado, proveniente de un taco generador y corresponde a la velocidad del motor del MOTOMATIC. De igual manera, el computador consulta en el micro controlador el valor de la referencia de velocidad (set point). La referencia o set-point de velocidad podr ser variada mediante el uso de las teclas conectadas al micro controlador Tecla 1: incremento set point en 2Tecla 2: incremento set point en 10Tecla 3: decremento set point en 2Tecla 4: decremento set point en 10El computador recibe las seales de set-point y de realimentacin, y obtiene el error. La seal de error es la entrada de la ecuacin de diferencias correspondiente al algoritmo P.I.D. El resultado que arroja el algoritmo P.I.D. deber ser apropiadamente limitado y escalado para que su rango de variacin est siempre entre 0 y 255 (FFH). El computador enva al micro controlador el resultado del P.I.D., este a su vez utilizando el conversor D/A obtendr una seal analgica. El voltaje analgico de salida del D/A ser conectado al amplificador de potencia del MOTOMATIC a fin de que esta seal sea la que imponga el voltaje de armadura que, en un momento dado, el motor requiere para mantener la velocidad real igual al set-point. Permanentemente en la pantalla del computador se graficar la seal de realimentacin proveniente del taco generador, a fin de poder visualizar la evolucin de la velocidad ante variaciones del set-point o ante perturbaciones en el motor y el set point de velocidad.

'LABORATORIO DE CONTROL CON MICROS'PRACTICA No.9$regfile "m164pdef.dat"$crystal = 8000000$baud = 2400'//CONFIGURO PUERTOSDdrb = &B00000000Portb = &B11111111Ddrd.2 = 0Portd.2 = 1'//DEFINO VARIABLESDim Setpoint As ByteDim Realim As IntegerDim Pid As ByteDim R_data As ByteDim X1 As String * 10Dim Temp As LongDim X As IntegerDim Y As SingleDim Porc As LongDim X_1 As WordDim Y_1 As SingleSetpoint = 0'////CONFIGURO PWMConfig Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1'///CONFIGURO LCDConfig Lcd = 16 * 2Config Lcdbus = 4Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4ClsCursor OffCls'///ACTIVO INTERRUPCIONES PARA PULSADORES Y COMUNICACIONConfig Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8On Urxc CompEnable InterruptsEnable UrxcOn Int0 PulsadoresConfig Int0 = FallingEnable Int0Enable Interrupts'////CONFIGURO ADCConst K = 100 / 1024Const P = 100 / 255Config Adc = Single , Prescaler = Auto , Reference = AvccStart Adc'////PROGRAMA PRINCIPALDoX = Getadc(6)Y = X * KTemp = Y * 1X_1 = SetpointY_1 = X_1 * PPorc = Y_1 * 1

Locate 1 , 1Lcd "SETPOINT(" ; Setpoint ; "):" ; Porc ; "% "Locate 2 , 1Lcd "REALIMENT: " ; Temp ; "% "Pwm1a = PidX = Getadc(6)X = X / 4Loop'////INTERRUPCION DE LOS PULSADORESPulsadores:If Pinb = &B11111110 Then If Setpoint < 254 Then Setpoint = Setpoint + 2 End IfEnd IfIf Pinb = &B11111101 Then If Setpoint 2 Then Setpoint = Setpoint - 2 End IfEnd IfIf Pinb = &B11110111 Then If Setpoint >= 10 Then Setpoint = Setpoint - 10 End IfEnd IfReturn'////INTERRUPCION DE RECEPCIONComp:R_data = Inkey()X1 = X1 + Chr(r_data)If R_data = 65 ThenRealim = Getadc(6)Print SetpointX1 = ""End IfIf R_data = 66 ThenRealim = Getadc(6)Realim = Realim / 4Print RealimX1 = ""End IfIf R_data = 67 ThenPid = Val(x1)X1 = ""End IfReturn