Autor Tema: CONTROL DE VELOCIDAD CON CONTROL P  (Leído 2053 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MICRO.X

  • PIC10
  • *
  • Mensajes: 4
CONTROL DE VELOCIDAD CON CONTROL P
« en: 10 de Noviembre de 2005, 10:44:00 »
me encuentro realizando un control proporcional para un motor dc tengo el codigo pero en el momento de montar el control ,este controla pero muy regular .este es el algoritmo ,podrian mirarlo y talvez ayudarme un poco

Define   LCD_DREG   PORTB
Define   LCD_DBIT   0
Define   LCD_RSREG   PORTB
Define   LCD_RSBIT   4
Define   LCD_EREG   PORTB
Define   LCD_EBIT   5
Define  LCD_LINES 2
Define  LCD_BITS 4
                   
Include "modedefs.bas"
DEFINE ADC_BITS 8       " Set number of bits in result
DEFINE ADC_CLOCK 3     " Set clock source (rc = 3)
DEFINE ADC_SAMPLEUS 50
TRISC=%00000000
TRISA=255
"--------------------------------------------------------------------  
aux VAR BYTE
SP VAR BYTE         "SP
SEN VAR BYTE        "MOTOR
EK  VAR BYTE        "ERROR
MK  VAR BYTE        "SEÑAL CONTROLADOR
Q0 CON 22
M0 con 15

Read 0,sp

 Lcdout $fe, 1                          "limpiar pantalla
 Lcdout "CTROL VELOCIDAD"           
 Lcdout $fe,$C0, "PARA UN MOTOR DC"
 Pause 3000
 
 Lcdout $fe, 1                          "limpiar pantalla
 Lcdout " ACTUADOR X FASE"           
 Lcdout $fe,$C0, " Ultimo SP:",DEC SP
 Pause 5000
"--------------------------------------------------------------------
GOTO INICIO
"--------------------------------------------------------------------
" CONVERTIDOR ANALOGO DIGITAL
ANALOGO:
       ADCON1 = %00000000      
       ADCON0.2 = 1
LOOP:  IF ADCON0.2=1 THEN
       GOTO LOOP
       ELSE
       aux = ADRESH
       PAUSEUS 100
       ENDIF
       RETURN
"-----------------------------------------------------------------      
INICIO:
       ADCON0 = %11000001      "AN0
       GOSUB ANALOGO
       SP = aux
       
       ADCON0 = %11001001      "AN1
       GOSUB ANALOGO
       SEN = aux
       
 IF SP>SEN THEN
       EK=(SP-SEN)                        
       MK= (Q0/10)*EK - M0/10
       if sen = 0 then
       mk = 255
       endif
       portc = mk
       IF MK < 0 THEN
       MK= 0  
       ENDIF
       IF MK > 255 THEN
       MK=255
       
       ENDIF
 ELSE
       EK=(SEN-SP)
       mk = (Q0/10)*EK + 10
       if sen = 255 then
       mk = 0
       endif
       portc =- mk
       IF MK < 0 THEN
       MK=0  
       ENDIF
       IF MK>255 THEN
       MK=255
       
       ENDIF
 endif
       
       Lcdout $fe, 1                          "limpiar pantalla
      Lcdout "Control:P", " SP:",dec sp           
       Lcdout $fe,$C0, "Var:",DEC SEN, " Er:",DEC ek

   Pause 500
    write 0,sp                  " espera.1 seg
    GOTO INICIO  
END

el programa tiene el sp en ra0 y la variable del motor atraves de convertidor frecuencia-voltage es por ra1

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
RE: CONTROL DE VELOCIDAD CON CONTROL P
« Respuesta #1 en: 10 de Noviembre de 2005, 11:03:00 »
Hola, me parece que en tu codigo estas generando el PWM para el control de motor por software... verdad? No se que pic estes usando pero para mi lo mas optimo seria utilizar el modulo PWM que tiene el PIC, al igual como configuraste el ADC tendrias de configurar el PWM.

De esa manera que ganas: que mientras que estes haciendo los calculos para setear la salida, la salida ya esta funcionando, es decir funcionando en paralelo, y a la hora que vas a setear el nuevo PWM, solo lo cargas a los registros y LISTO...

A mi parecer esa forma de trabajar te va a dar mejores resultados... pero todo depende si es que tu PIC tiene el modulo para PWM.

Espero haberte ayudado, una abrazo....Sonrisa Gigante
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado MICRO.X

  • PIC10
  • *
  • Mensajes: 4
RE: CONTROL DE VELOCIDAD CON CONTROL P
« Respuesta #2 en: 10 de Noviembre de 2005, 11:33:00 »
GRACIAS POR LA AYUDA DESAFORTUNADAMENTE  tengo que utilizar un PWM analogo obligatoriamente ,si puedes darme algun consejo con respecto al programa te lo agradeceria

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
RE: CONTROL DE VELOCIDAD CON CONTROL P
« Respuesta #3 en: 10 de Noviembre de 2005, 17:30:00 »
Una pregunta como es un PWM analogo... si no me dices como funciona, no podre ayudarte...

nos vemos...
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado MICRO.X

  • PIC10
  • *
  • Mensajes: 4
RE: CONTROL DE VELOCIDAD CON CONTROL P
« Respuesta #4 en: 10 de Noviembre de 2005, 21:53:00 »
el PWM analogo se controla atraves de un divisor de voltaje implementado con un potenciometro ,despues de haber rectificado la señal pasarla por unos comparadores ,haber generado la rampa ,invertirla se concluye con un pulso el cual se modula de 0 a 180 grados, de esta manera se le podra implementar al motor pormedio de una etapa de potencia el porcentaje de voltaje que deseamos aplicar ya sea de media onda (onda rectificada para un motor dc )o la onda completa para un motor ac  .

el control que deseo realizar consiste en que le tengo un SP establecido por ejemplo en 90 de esta forma solo le pasara la mitad del voltaje (media onda).tengo un motor a 30V estaria trabajando en 15 V ,al ponerle carga al motor esta señal dada por el conversor frecunencia voltaje se compara con el sp establecido generando un error ,esta senal de correccion pasa a ser el divisor de voltaje al que me referia anteriormente ,de esta forma si se le pone mucha carga al motor el ancho de pulso subiria a su maximo dado que el SP se encuentra en la mitad, y si por alguna razon el motor toma demasiada Velocidad  el ancho de pulso seriaminimo contrarestando la accion del motor

espero que me hayas entendido el PWM es manual y se automatiza con el pic.

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
RE: CONTROL DE VELOCIDAD CON CONTROL P
« Respuesta #5 en: 10 de Noviembre de 2005, 22:17:00 »
Ahh... Entonces no estoy tan equivocado.... a ver una consulta, en el conversor Frecuencia/Voltaje que usas para tu control, que caracteristicas debe tener la frecuencia que le envias para generar el voltaje. Por ejemplo: debe ser una frecuencia de 150Hz y lo que se varia es el Duty Cycle (tiempo en alto, TH) que es PWM o debe de variarse la frecuencia siendo esta una señal cuadrada (TH =TL)  que es PFM.

Una cosa que olvide preguntarte es que PIC estas usando, pues como te dije antes los PIC"s tienen dos modulos de PWM y lo que se tiene que ajustar es el periodo y el duty cycle...

Nos vemos, un abrazo Rebotado
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)


 

anything