Hola, yo estoy tratando de hacer funcionar un motor de disco rígido y uno de compactera, ambos son trifásicos, para ello estoy utilizando un PIC18F4431 y un dsPIC30F4012. Para el puente inversor, retiré los IRF7101 de un disco rígido Maxtor de 4Gb. en deshuso.
El tema es que estos integrados me llegan la semana que viene, pero estoy utilizándolos por simulación con Proteus, y logro generar las tres sinusoides por integración en las bobinas, con un desfasaje de 120° perfecto, asi que supongo que va a funcionar en la realidad.
Mis preguntas son las siguietes.
Estoy usando una frecuencia de PWM de 20khz. Pero el Proteus me las muestra como si fueran de 80Khz, que que en el osciloscopio, tienen un período de 12.5useg. Pero asumo que el proteus (v7.6SP0) tiene algún error, ya que he configurado bien el período del PWM a 20khz y no a 80.
Ha por cierto utilizo C18, después de haber programado mucho con CCS, he llegado a la conclusión que a C18 no hay con qué darle y es superior a CCS se lo mire por donde se lo mire. Pero es una opinión y no quiero discutir este tema.
1) La frecuencia del PWM influye en algo??? (quiero controlar la velocidad y el sentido de giro, en un pricipio a lazo abierto, después veré el tema del feedbak y el controlador PID, o alguno robusto mejor)
2) Si bien al micro lo estoy trabajando a 40mhz, este tarda un tiempo considerable en resolver las funciones seno, son 3, una para cada fase con 120° de desfasaje. Por este motivo me veo restringido en el rango de frecuencias que puedo variar, (esto lo controlo mediante una interrupición del TIMER0) ya que si la frecuencia es muy grande, el timer0 interrumpe antes de que pueda resolver las funciones trigonométricas seno, y no funciona.
3) Estoy tratando de desarrollar una tabla seno, que en mi caso es de 10.96bits de resolución, ya que trabajo a Fosc=40Mhz, y un PWM de 20Khz. es decir que mi duty cycle va de 0 a 1999, en la simulación esto se respeta al pie de la letra, asi que asumo que esta bien.
la tabla seno me queda {0, 15, 60, 134, 234, 357, 500, 658, 826, 999, 1173, 1341, 1499, 1642, 1765, 1865, 1939, 1984, 1999}
pero hasta aquí llego, no sé como vincularla ni darle los offset para los desfasajes ni como usarla. La obtuve con Mahtematica 7.0.1. Si estuviera trabajando a 8 bits, esta tabla sería {0, 2, 8, 17, 30, 46, 64, 84, 105, 128, 150, 171, 191, 209, 225, 238, 247, 253, 255}.
4) El tema de los tiempos muertos, yo utilicé 1useg. En este caso, de usar tiempos muertos para evitar cortocircuitos, mi PWM tiene un valor mínimo y un valor máximo dentro de rango de duty cycle 0-1999??. Cómo puedo calcular mi duty mínimo y mi duty máximo?
Si alguien me ayudara a solucionar el problema se lo agradecería mucho. Apenas reciba los micros, voy a probar lo que tengo hecho y les comento.
Muchas gracias.