Autor Tema: PWM para generar onda senoidal  (Leído 40026 veces)

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

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
PWM para generar onda senoidal
« en: 16 de Noviembre de 2008, 22:49:08 »
hola de nuevo..tengo que realizar un proyecto que genere una onda señoidal para alimentar una carga de CA.

he empezado a buscar informacion y he encontrado que con pwm puedo realizar la señoidal y con 4 mosfets darle mas potencia de salida ,y a la salida poner un filtro pasa bajos para que quede como una senoidal y no el tren de pulsos pwm.
pero mi problema es que no se como interpretar el pwm para generar la señoidal

he leido que el area del duty cicle debe ser igual a al area debajo de una divison de la senoidal  pero como saber cuanto vale el area bajo de la senoidal :?,,o como saber el valor pico de la señoide para calcular que el pwm=area de senoide ,pero ya estoy muy confundido de como sacar los calculos del pwm con respecto de la senoidal

el micro que pienso usar es un 16f877 a 20mhz y el pwm a 1.25 khz obteniendo haci 20 periodos del pwm para una señoidal de 60 hz
agradeceria mucho su ayuda :-/

Desconectado IOIO

  • PIC10
  • *
  • Mensajes: 46
Re: PWM para generar onda senoidal
« Respuesta #1 en: 25 de Noviembre de 2008, 15:28:44 »
Hola Solozener, entiendo que sabes como manejar la salida PWM del micro, lo que no sabes es como hacer que la salida represente una senoidal.
A ver si puedo ayudarte.
Tu tienes una resolución en el PWM de 10 bits (1024 niveles de tensión), pero por una cuestión de simplificar el código te recomiendo utilizarlo como de 8 bits (256 niveles). Lo que debes hacer es que estos niveles (salida PWM) varíen en el tiempo para describir una señal seno.
Primero debes elegir que resolución en frecuencia deseas darle a tu "salida seno", es decir cuantos niveles de tensión deseas tener en un ciclo de la senoide, digamos que si lo haces cada 10 grados eléctricos (el ciclo completo es 2pi=360 grados) tendrás 36 niveles distintos.
Para realizar lo anterior debes tener una salida PWM (obvio) y un timer que es el que te actualizará el valor del duty cycle de la salida, según lo haría una señal seno.

Entonces debemos calcular el tiempo en el que el timer debe recalcular el duty cycle de la salida.
Si la frecuencia de la seno que deseas es 60Hz:
el período es  ------>60 Hz = (1/60)seg = 16,67 ms

esto es lo que dura un período de la seno, como lo actualizamos cada 10 grados tendremos 36 niveles y cada uno durará:
Tiempo del timer ----> Tt = período / 36 = 16,67 / 36 = 463 Useg
Estos 463 Useg es cada cuanto debes recalcular el duty cycle del PWM.

Ahora bien, para calcular este duty cycle habría que calcular el seno de 10 grados, el de 20... hasta el de 360 grados y nuevamente el seno de 10.....y asi eternamente, esto es muy complejo de realizar con un microcontrolador de 8 bits. Lo que se hace es colocar los 36 resultados en una tabla, e irlos leyendo con la frecuencia que te da el timer que acabamos de calcular.

Luego los valores de la tabla serán:
para 0o = ((seno 0o)*127)+127 = 127
para 10o = ((seno 10o)*127)+127 = 149
para 20o = ((seno 20o)*127)+127 = 170
.
.
para 90o = ((seno 90o)*127)+127 = 254
.
.
para 270o = ((seno 270o)*127)+127 = 0
.
.
para 360o = ((seno 360o)*127)+127 = 127
Estos  valores son los que deberas colocar en el PWM para ajustar el duty cycle.

Entonces debes leer esta tabla cada 463 Useg e incrementar el puntero de lectura, al llegar al final debes comenzar nuevamente.

La frecuencia del PWM ( o sea el tiempo de encendido + apagado) se mantiene cte y es lo que te da la frecuencia de la portadora. Puedes emplear una frecuencia mayor que los 1,25Khz que propones, cuanto mayor sea la frecuencia menor será el contenido armónico de la señal seno obtenida.
Un dato importante, si realizas un circuito puente con 4 mosfets, ten en cuenta que entre el apagado del mosfet superior y el encendido del inferior de cada rama debes dejar un tiempo muerto de por lo menos 1 Useg.

En internet hay mucha info sobre INVERSORES, así es como se llaman los circuitos que trabajan en puente o semi puente.

Espero haberte ayudado y no confundido. :mrgreen:


Un saludo
Sergio
Desde Avellaneda, Buenos Aires. Argentina

Saludos,
Sergio

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: PWM para generar onda senoidal
« Respuesta #2 en: 25 de Noviembre de 2008, 15:36:00 »
¿Y no serviría si saca un PWM a la frecuencia que desee con un duty del 50% y un filtro que "redondee" la onda cuadrada para convertirla en senoidal?

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: PWM para generar onda senoidal
« Respuesta #3 en: 25 de Noviembre de 2008, 16:12:25 »
¿Y no serviría si saca un PWM a la frecuencia que desee con un duty del 50% y un filtro que "redondee" la onda cuadrada para convertirla en senoidal?

es buena, ya que una cuadrada tiene infinitas componentes senoidales... tan solo basta con filtrar la fundamental ;)
eso si, tambien iria montada sobre una componente de continua que tambien hay q filtrar, esto se hace facilmente con un capacitor en serie.

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: PWM para generar onda senoidal
« Respuesta #4 en: 25 de Noviembre de 2008, 16:16:56 »
Yo ni me complicaría para algo tan simple, basta con utilizar un generador de ondas integrado y punto, que él solo se haga cargo de darme mi seno, bien formadito y con un error de menos del 1%, Analog, por ejemplo hace muchos de estos dispositivos, incluso los hay que los conectas por I2C o SPI al uC y listo le dices de cuanta frecuencia quieres el seno.

Yo creo que sería algo muy directo y suficientemente preciso.

Saludos
Reinier

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: PWM para generar onda senoidal
« Respuesta #5 en: 25 de Noviembre de 2008, 16:40:26 »
¿Conoces alguna referencia, paisano?

Desconectado IOIO

  • PIC10
  • *
  • Mensajes: 46
Re: PWM para generar onda senoidal
« Respuesta #6 en: 25 de Noviembre de 2008, 16:54:19 »
El problema radica que lo que se quiere es manejar una carga importante, por ello se conecta a un circuito puente con mosfets.
Si se manejara una señal senoidal analógica (no PWM) los transistores mosfets deberían trabajar en la zona activa, con lo cual el rendimiento sería muy bajo; algo asi como lo que sucede con un amplificador de audio de potencia.
Es por ello que se utiliza un puente con mosfets, estos trabajan en corte y saturación (zona no lineal) y el rendimiento es superior.
Este es el principio de funcionamiento de los inversores trifásicos que gobiernan la velocidad de motores asincrónicos.

Nocturno, respecto de lo que dices de hacer una señal cuadrada puede funcionar, pero para filtrarla se deberían usar capacitores excesivamente grandes, cuyas capacidades dependerían de la carga eléctrica. En un motor, por ejemplo, la carga depende de la carga mecánica que tenga el motor, por lo que se haría dificil compensar algo que puede estar variando constantemente. A pesar de esto, antiguamente los inversores trabajaban con señales cuadradas pero tenían el inconveniente de generar muchos armónicos y ruidos indeseables sobre los ejes de los motores.

Talvez entendi mal y lo que Solozener llamó carga era en realidad una impedancia de alto valor y como consecuencia baja potencia, si es así se podría armar un oscilador analógico senoidal que sería mucho mas sencillo y amplificarle la salida.

Saludos
Sergio
Desde Avellaneda, Buenos Aires. Argentina

Saludos,
Sergio

Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
Re: PWM para generar onda senoidal
« Respuesta #7 en: 25 de Noviembre de 2008, 20:46:57 »
Hola camaradas encontré hace un tiempo descubrí una página de un tal don Lancaster que genero en una especie de PWM unas ondas senoidales casi libres de armónicos.
Tiene ejemplos de cómo se conforma una sen mediante tablas.
http://www.tinaja.com/magsn01.asp
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: PWM para generar onda senoidal
« Respuesta #8 en: 25 de Noviembre de 2008, 22:27:46 »
Para generar señales cuasisenosoidales  con el mínimo de armónicos, es mejor crear esa señal PWM denominada centro-alineado.

Normalmente conocemos la señal PWM como:

PWM alineada a la izquierda.

|----ton---|--------toff----|   
_________
|              |
|              |
|              |___________


PWM alineada a la derecha.

|----toff------|----ton----|   
                   _________
                   |              |
                   |              |
___________|              |


Pero, también podemos generar lo siguiente:

|---toff--|----ton----|---toff--|
             _________
            |              |
            |              |
_______|              |_______

Con lo anterior, varia de forma centrada el ancho del pulso ton.. Eso junto a un capacitor a la salida, podríamos generar una señal muy muy cercana a senoidal.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PWM para generar onda senoidal
« Respuesta #9 en: 25 de Noviembre de 2008, 23:04:58 »
Hola.

La gran ventaja de hacerlo como dice IOIO es que se aprobecha al maximo la potencia, si no estoy mal, eso es un aplificador tipo D, los cuales son muy eficientes. Lo que si tiene de desventaja es que las conmutaciones en los IRF generan interferencias (ademas debido a que el tab central de los IRF son justamente el DRAIN el cual sumado al disipador de calor se convierten en antenas de emision). Para evitar interferencias del swicheo se usan filtros de 2 orden o PI o jaulas de Faraday.

Saludos
El papel lo aguanta todo

Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
Re: PWM para generar onda senoidal
« Respuesta #10 en: 26 de Noviembre de 2008, 00:46:25 »
hola kamaradas
Según lo que entendí, este don Lancaster con sus seno mágicas para conseguir los fenómenos que logra sobre los armonicos,en  los periodos de trabajo y apagado parecen aleatorios.
Pic mouse coloca el ejemplo de generar una seno con un capacho y la cuadrada directo esto es valedero Mientras no se le coloque una carga.
La idea seria que el elemento de carga seria el integrador del PWM seno mágica.
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: PWM para generar onda senoidal
« Respuesta #11 en: 27 de Noviembre de 2008, 13:14:01 »
Primero lo que explica el amigo PICMouse ya no es un PWM, es otro tipo de modulación que ahora no recuerdo como se llama, pero existe y se utiliza mucho, sobre todo en telecomunicaciones.

Y ya que lo que deseas es mover motores, bueno pos la cosa se pone más simple, al menos en la parte del control del driver, por lo que veo lo que se pretende es crear un sistema para manejar motores, supongamos que de directa. Pues bien, si ese es el caso, tenemos las siguientes consideraciones sobre el diseño:

1. Un motor de directa, girará más rápido cuando es excitado con una señal de tensión mayor y menos cuando la señal de tensión es menor.
2. Una señal de directa tiene un valor efectivo igual a la tensión de directa, el valor efectivo de la señal es lo que hace mover al motor más rápido o más lento.
3. Un motor de alterna se excita con una señal usualmente sinusoidal, pero en realidad lo que hace mover al motor es la tensión efectiva de la señal de alterna que se le conecta. No el valor de la señal de pico a pico.
4. Por tanto podemos mover motores de directa con una señal de alterna en forma de pulso, cuyo valor efectivo depende del ciclo útil del pulso, y he aquí la necesidad del PWM.

Solución:
Encontrar una ecuación que me permita obtener el valor efectivo de la señal equivalente de directa para una señal en forma de PWM. Para ello busca algún libro dedicado al control de motores, y allí te deleitarás con unas buenas ecuaciones al respecto.

Durante el tiempo de la carrera utilicé un libro donde se explica bien el tema, si me encuentro por el campus a algún colega que sea de la especialidad de eléctrica, le preguntaré al respecto, seguro que me dará una lista de posible literatura que pueda ofrecerte para que consultes, porque yo como especialista de sistemas digitales estoy un poco desactualizado en ese sentido.

Manolo:
Analog Devices, Maxim, National Semiconductor fabrican varios integrados que son generadores de señales integrados, darte referencias sería perder el tiempo, lo mejor es llegarse a las páginas de estas gentes y ver que tienen porque estos bichitos que ellos hacen, no sólo hacen senos, sino también ondas cuadradas, triangulares y de otro tipo, tienen varios canales, son completamente analógicos o tienen interfaces para I2C o SPI. Creo que saldrás mejor que si te digo usa este o el otro.

Saludos
Reinier

PD: Puedes buscar libros de accionamiento eléctrico modernos (publicados después de 1998) debe estar bien documentado el tema. Esto me lo dice un colega de control, esperará a ver si en el almuerzo me topo a algún eléctrico eléctrico.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: PWM para generar onda senoidal
« Respuesta #12 en: 27 de Noviembre de 2008, 13:34:48 »
Es que los estuve buscando, y salvo el MAX038 que ya está descatalogado, no encontré ningún otro

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: PWM para generar onda senoidal
« Respuesta #13 en: 27 de Noviembre de 2008, 18:31:05 »
amigo reiniertl, creo que debo contradecirte esta vez.

Freescale le llama PWM Centro-Alineado.

Sucede que ellos han lanzado hace poco un microcontrolador llamado MCF51AC256, desarrollado especialmente para controlar motores.

Bajar Hoja


Durante la realización del “Freescale Technology Forum 2008” (FTF 2008) llevado a cabo del 16 al 19 de Junio de 2008 en la ciudad de Orlando, Florida U.S.A , Freescale Semiconductor lanzó en forma mundial la tercera Serie de Microcontroladores Flexis, cuyos dispositivos son los MC9S08ACxx por el lado del mundo de los 8 bits y los MCF51ACxx por el lado del mundo de los 32 bits.

El hecho destacado de este lanzamiento consiste en la aparición de los primeros miembros de 5V de esta serie, lo que hace a la “Familia AC” apta para aplicaciones de electrónica de consumo o industrial en donde el ruido eléctrico sea un factor a tener en cuenta. Además, el hecho de trabajar con 5V constituye una gran ventaja a la hora de contar con periféricos externos compatibles como displays gráficos o alfanuméricos inteligentes, drivers diferenciales, controladores de RFID, etc, etc.

La familia AC representa el compromiso de Freescale por el “Controller Continuum” en donde migrar del mundo de los 8 Bits al mundo de los 32 Bits sea una tarea sencilla, con herramientas de hardware y software en común, y compatibilidad pin a pin que faciliten el trabajo del diseñador cuando decide mejorar su aplicación.

Por ejemplo, el dispositivo MCF51AC256/128, cuyo “core” es el ColdFire V1 de 32 bits (el miembro más “chico” de la familia ColdFire), cuenta con hasta 256 Kb de memoria FLASH, 32 Kb de RAM, módulo Controlador de Area de Red (CAN), 24 canales ADC de 12 Bits de resolución, Timers de 16 Bits, múltiples puertos de comunicación como SPI x 2 , SCI x 2, I2C, y una frecuencia de Bus (FBUS) máxima de 25 Mhz.

Mientras que en el mundo de los 8 Bits, las múltiples versiones del MC9S08AC (128, 96, 60, 48, 32 Kb) mantienen compatibilidad pin a pin, y de herramientas, entre ellas y con respecto a sus “hermanos mayores” de 32 Bits.

Resumen de Características en los dispositivos MCF51ACxx:

• Core “ColdFire V1” de 32 Bits y 25 Mhz de FBUS máximo.
• Interface BDM + On – Chip ICE para depuración de código.
• Hasta 256 Kbytes de memoria FLASH.
• Hasta 32 Kbytes de memoria RAM.
• 2 Comparadores Analógicos (ACMP).
• 24 canales ADC de 12 Bits de resolución.
• Controlador de Area de Red (CAN).
• Módulo de chequeo de redundancia cíclica (CRC).
• Múltiples puertos seriales: 2 x SCI, 2 x SPI, I2C.
• Módulo multipropósito generador de Clock (MCG).
• Módulo Timer tipo “TPM” para generación de PWM, IC, OC.
• 2 Módulos FTM (Flexible Timer Modules).
• Múltiples I/Os (hasta 70), KBIs, etc.





Saludos amigo!


« Última modificación: 27 de Noviembre de 2008, 19:21:11 por PICmouse »

Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
Re: PWM para generar onda senoidal
« Respuesta #14 en: 27 de Noviembre de 2008, 22:46:58 »
hola kamaradas
Con ganas de aclarar pero sin ofender,
modulación PWM en centro alineado, pulso único y flanco alineado.
Estos métodos mencionados son idóneos para el control de movimiento de motores ac de tres fases .pero si la meta de uno es “conformar” integrar un seno u otra función sobre una carga de dos polos basta y sobra con una salida de pmw. el rendimiento es aumentado si se utiliza el método “seno mágico”.
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia