Source: http://www.miliamperios.com/foro/circuitos-electronicos-especiales-para-aeromodelismo-f51/regulador-brushless-casero-t90583.html
Timestamp: 2017-02-22 19:45:49+00:00

Document:
www.miliamperios.com :: Regulador brushless casero : CIRCUITOS ELECTRÓNICOS ESPECIALES PARA EL AEROMODELISMO
Regulador brushless casero
por cespum » Sab, 08 Dic 2007 11:52 Buenas a todos
Como este hobbye es mu apañao os dejo una foto de mi regulador.
De momento en pruebas a ver si no revienta.
por juan ruiz » Sab, 08 Dic 2007 12:18 De cuantos amperios es.por la placa parece sacado de la rebista Electór,no se si se escribe asi o algo parecido.
por cespum » Sab, 08 Dic 2007 12:30 La placa es diseño propio, según características de los transistores aguanta 50 amp continio y mas de 100 amp en pulsos, yo de momento no lo he podido probar a mas de 20 tengo 3S 2.200 mA.
por juan ruiz » Sab, 08 Dic 2007 12:45 Esta basado en el pic 16F876,o alguno parecido,por lo que veo tienes entradas para programarlo con el PC,la alimentacción la lleva a parte.
por cespum » Sab, 08 Dic 2007 12:59 Pues sí Juan, 16f876.
Dispone de un puerto RS232 con el que puedes programar los parámetros de funcionamiento.
La alimentación es de 8 a 29V, tiene un BEC interno pero en esta versión es de poca potencia.
por cespum » Sab, 08 Dic 2007 13:14 Perdon, hay un error de escritura en
"La alimentación es de 8 a 29V"
"La alimentación es de 8 a 20V"
por juan ruiz » Sab, 08 Dic 2007 13:57 Sobre la placa no hay nada que decir, trabajaras en ello,es totalmente profesional.
Tengo algun proyecto parado,es posible hacer unas placas como la tuya.
por Elossam » Lun, 10 Dic 2007 14:30 Sabes que resolucion maxima tiene entre +100% y -100% del stick del motor? (cuantos puntos es capaz de discernir: 20,100, 200, 512...)
Mensajes: 304Registrado: Lun, 13 Dic 2004 22:27
por cespum » Lun, 10 Dic 2007 20:40 Elossam,
en un modo de funcionamiento se puede decir que es continuo, la resolución son 330 unidades para el recorrido completo del stik.
En modo regulador velocidad te pongo los valores para un motor con un par de polos y la relacióin 132/10, comienzo en 1.800 rpm que es lo mínimo con lo que puedo levantar mi Zoom
El motor con 3S no me da mas rpm
por Elossam » Lun, 10 Dic 2007 22:23 Estoy mas interesado en el modo "continuo" que en el modo governor. 330 unidades es ya mejor que cualquier otro comercial de los que he sido capaz de encontrar informacion de internet. Existe algun modo de incrementar esa cantidad? Te hablo de llegar a dupicar o incluso llegar a 1800 pasos que es la resolucion que necesitaria. Supongo que es una cuestion de hacer los pasos mas pequeños pero no se cuales son los limites o que provocaria que no fuese posible. Que opinas?
por cespum » Mar, 11 Dic 2007 0:42 Pués teoricamente es factible, pero piensa que en modo continuo no tienes regulación de velocidad.
Cuando le metes el bucle de regulación de velocidad te aparecen otras restricciones p.e. precisoón de la medida , resolución etc.
Lo que planteas casi equivale a hablar de una precisión < del 0,1%, en ese caso te diria que es necesario el uso de un brusless con sensores de posición para conmutar el campo en vez de un regulador que conmute por medida indirecta de la posición.
Casi todos por no decir todos los reguladores de RC son del tipo de medida indirecta.
por Elossam » Mar, 11 Dic 2007 1:40 Había pensado en la posibilidad de adaptar sensores o buscar brushless con sensores incluso la opción de coreless me parecia estupenda al manejar menos inercia y ser mas sencillos lo variadores, pero de momento estoy más volcado en saber hasta dónde llegar sin tener que entrar en motores especiales ya que los saltos en precio para equiparar prestaciones son muy grandes. No necesito el regulador de velocidad (modo governor) ya que he de manejar un rotor de paso fijo pero con la mayor precisión posible. Reguladores como el de Align anuncian 200 pasos, algún otro fabricante me indica 256, la mayoría no pone nada y seguramente todos ellos están en rangos más bajos (cerca de los 120 pasos y seguro que voy largo porque algunos anuncian 20 pasos). A fín de cuentas en un avión p.ej contar con más de 100 pasos en tu stick solo lo apreciarán unos pocos mortales. En helicópteros más pasos es mejor, por eso no todos valen. Como la idea es asistir el control del rotor con un acelerómetro y/o con un giróscopo y las señales proporcionadas por la unidad de control tienen hasta 1800 pasos de resolución quería aprovechar esa buena resolución y generar el menor "cuello de botella" en el variador. Nuevamente recurro a ti que seguro tienes mas datos que yo. Usando medida indirecta y nada de bucles de regulación, hasta donde aventuras que se podría llegar? dime un dato aprox , 400,500, 600.... 1000 pasos? Te da igual manejar la entrada de servo en PCM que en PPM ? Por otro lado, cualquier brushless acepta el mismo "ancho" de paso? o determinadas configuraciones necesitan pasos mas "gordos" para modificar su respuesta? o quizas esto es una estupidez y los motores trifásicos tambien se comportan de una manera lineal pura? El tipo de motor que quiero mover es un 2410-09 para lipo 3s con una relación de unas 840 rpm/V osea mas bien lentito y con consumos de 3-11 Ah
Disculpa tantas preguntas, si ves que me paso o digo tonterias me lo dices que tampoco quiero darte le vara.
PD, es mi PC o esta mañana había una foto de tu regulador en el post?
por xerex » Mar, 11 Dic 2007 13:01 Hola cespum, podrias facilitarnos planos y codigos fuente?
por cespum » Mar, 11 Dic 2007 19:33 Elossan, vamos a ver si te puedo hechar una mano con tus preguntas empezaré por el aparato que he creido enterder en tu post.
Si vas a hacer ese experimento y no necesitas fijar una velocidad te recomendaría que empieces con un motor de escobillas, tienen varias ventajas:
-Actuadores simples y baratos
-Amplio margen de velocidad.
Por lo que he entendido es un aparato complicadillo y lo mas simple es el control de velocidad del motor.
Si usas un motor de escobillas te aseguras que el resto de cosas funcione y luego cuando o tengas controlado puedes plantearte el sustituirlo por uno brushless.
Respecto a los pasos con la electrónica que uso puedes llegar a 1024 pasos.
Actialmente la tarjeta lee pulso de salida de servo, para leer pulsos PCM tendría que conocer el protocolo que se emolea y hacerlo desde el puerto serie.
Comentarte que los motores brushless son de corriente continua aunque tengan tres fases o mas y que los trifásicos son del alterna. El funcionamiento de ambos es muy diferente y el control no tiene nada que ver aunque la topología de la etapa de potencia sea la misma.
No se si te he aclarado tus preguntas,`para cualquier cosa ponme un privado.
por Elossam » Mar, 11 Dic 2007 22:38 Agradecido, 1024 pasos ya es 4 veces mejor que el mejor de lo que he encontrado. Esto promete. Los de escobillas los he de desestimar por su relacion peso/potencia/consumo en sus versiones de Neodimio o similar. La ventaja de tener las escobillas creo que es muy grande a la hora de hacer modificaciones rápidas en el número de vueltas, pero como te digo el peso/potencia/consumo es desfavorable hasta donde he podido ver.
PCM no es un imperativo de manera inmediata pero ayudaría y a la larga si que podria ser necesario. Tratare de encontrar lo que necesitas. No te mareo más, pero me encantaria saber como evoluciona tu diseño conforme lo vayas probando. Al mismo tiempo voy a ver hasta donde llego con los modelos comerciales que ya tengo comprados y que aun no me han llegado (lei tu post al dia siguiente de formalizar la compra por la red de variadores y motores) y de esa manera acotar de manera mas precisa los datos necesarios para saber realmente qué es lo que hace falta. Luego comentaria contigo esos resultados por si ves factible su implementacion y darle así más utilidades a ese diseño.
por xerex » Jue, 13 Dic 2007 9:23 Buenas de nuevo a todos.
Preguntilla para Cespum, el acabado de la PCB es excelente, ¿podrias decirme como lo has hecho o bien en que empresa has mandado ha hacer la placa y por cuanto te ha salido ese prototipo?
por xerex » Jue, 13 Dic 2007 9:30 Hola! otra pregunta que hago.... sino recuerdo mal PPM (analogica) y PCM (digital) eran las modulaciones entre TX y RX, y que los pulsos de salida del RX que oscilan entre 0.5. y 1.5 ms (aprox. siendo 1 ms su punto central en el servo) con una frecuencia de 50 Hz (20 ms) eran standar para todos los servos y variadores...... por tanto ¿el diseño te valdria para cualquier receptor con independencia de su modulacion no? yo no he tenido que modificar nada al poner el mismo servo en un RX analogico o en uno digital....
Otra cosita, los motores brushless, tecnicamente son trifasicos, utilizas tres conexiones (si no recuerdo mal en configuracion de triangulo... no estoy seguro) y aplicas una modulacion PWM, controlando tambien la frecuencia, a cada conexion desfasada 120º con respecto a las demas, para controlar su velocidad, en el caso de motores trifasicos standar de 220 y 380 VAC (configuracion triangulo y estrella) se utiliza una onda sinosoidal curiosamente desfasada 120º conjuntamente con la variacion de la frecuencia de la misma, manteniendo su amplitud, permite modificar su velocidad. Supongo que a la hora de programar la conmutacion de los transistores habras tenido en cuenta este desfase y el calculo del PWM y su frecuencia para variar la velocidad del motor. Ademas si estas utilizando un PIC16F876/7 podrias utilizar sus entradas analogicas (ADC) para calcular las rpm del motor en funcion de las tensiones de sus conexiones.
Preguntilla, ¿a que frecuencia trabaja el PIC? ¿como has solucionado el tema de los 1024 pasos en 1 ms de calculo de la señal de entrada para calcular la velocidad a aplicar al motor? por curiosidad
por esco » Jue, 13 Dic 2007 15:26 tu regulador tiene muy buena pinta.
Lo que el personal quiere es el programa en Exadecimal para programar el micro y el esquema del circuito.
Mensajes: 5526Registrado: Mar, 06 Jul 2004 17:16Ubicación: Madrid
por xerex » Jue, 13 Dic 2007 18:33 Hola, esco, yo principalmente despues de haberme estado documentando en la web, me gustaria saber como ha solucionado el que pueda contar de una señal de no mas de 1 ms una resolucion de aprox. 1us con un pic que tiene como ciclo de trabajo 200 ns a maxima frecuencia y hacer los calculos de por medio, con solo 5 instrucciones entre conteos minimos., al fin y al cabo el programa en hexadecimal, a mi personalmente no me aporta nada, ya que en principio el esquema de bloques es muy simple y la electronica tambien, donde reside toda la potencia es en el software, y si lo puedo modificar pues mejor
Otra cosa es ese acabado que ha conseguido en la placa.... es impresionante para ser casera.
por esco » Jue, 13 Dic 2007 18:49 Por eso le pido el Exadecimal, porque no cuadra.
por VICTOR VEGA » Jue, 13 Dic 2007 23:58 xerex escribió:Hola! otra pregunta que hago.... sino recuerdo mal PPM (analogica) y PCM (digital) eran las modulaciones entre TX y RX, y que los pulsos de salida del RX que oscilan entre 0.5. y 1.5 ms (aprox. siendo 1 ms su punto central en el servo) con una frecuencia de 50 Hz (20 ms) Me gustaría ayudar comentando que con un micro a 8 Mhz ya se puede obtener una resolución de +/- 1us en la lectura de los pulsos PPM (normalmente entre 900-2100us(50hz)). En la mayoría de nuestros receptores FM (ppm) el tren de pulsos transmitidos al demodularse en el receptor se derivan a cada uno de los pines asociados a los canales. Por esto mismo los canales no se solapan en el tiempo y el ancho de pulso de control nunca se aplica en dos canales al mismo tiempo. Esto nos permite leerlos por separado.
Sabiendo esto te comento una forma simple de tener mucha resolución con un pic leyendo uno/varios canales. Sumas la señal que proviene de todos los canales (una configuración con un transistor te vale). Si usas la entrada de interrupción externa conectada a esta señal y configuras la activación por flanco de subida, simplemente tendras que limpiar un timer (programado para que incremente con resolución de 1us) en la primera interrupción e ir contando en las siguientes ocurrencias. Hay que eliminar los offsets que introducen las instrucciones de entrada en la interrupción y tu propio código de la lectura en el ancho de los canales (antes de las lecturas del timer)y ya lo tienes.
La precisión se obtiene del la propia interrupción. Ojo con el número de instrucciones de salto que pongas en tu código ya que intruducirán una incertidumbre de un ciclo en tu lectura (sumada a la que ya tienes en la entrada de la rutina de servicio)
Espero no haber liado más este tema. Un Saludo
Mensajes: 497Registrado: Sab, 07 Ene 2006 15:11
por Elossam » Vie, 14 Dic 2007 0:06 XD me he quedado loco. No me atrevo ni a leerlo por segunda vez. Elossam
por xerex » Vie, 14 Dic 2007 0:50 Efectivamente rlor, si utilizas al menos 2 señales como triguer puedes calcular medianamente bien y con un error pequeño en lecturas amplias el tiempo transcurrido entre ambas señales*, pero en este caso, estamos hablando de una sola señal de triguer...... y para tener esa resolucion de 1us necesitas un microcontrolador muy rapido y saber calcular perfectamente el numero de ciclos por instruccion de la parada del timer para calcular ese error que comentas con el timer. Haber que nos dice cespum (que parece desaparecido), que nos tiene en ascuas, talvez es una xorrada que al menos yo no veo con la configuracion electronica que nos ha propuesto con una unica señal de control.
*Señales de canales adyacentes!!!!!! Quieres saber mas de mi????http://xerex.no-ip.infoRC Orion: http://www.rcorion.comRC Escalona: http://www.aeromodelismoescalona.es
por cespum » Vie, 14 Dic 2007 0:53 De momento respuesta para Xeres que es mas rápida,
Cadcam: wincad
Empresa de CI : WWW.olimex.com
precio de placas aproximadamente 30$ por 4 placas, pero ahora han subido los precios y han pasado a euros 1$ antiguo a 1€ es decir un 40% mas caro.
El resto de preguntas dejarme un poco de tiempo para meditarlas, ahora ando un poco liado.
por cespum » Vie, 14 Dic 2007 1:15 Primero, no estoy desaparecido, que andamos con los cierres del año y mas que liao me tienen jod.....
Bueno seamos serios:
1º hay que leer el ancho de pulso de 0,5 a 2ms
2º hay que conmutar el campo del motor
3º hay que calcular el regulador de velocidad
4º hay que comprobar algunas cosas como la tensión, alarmas del motor fallo del canal (si no recibes la señal del receptor que haces? paras el motor o lo dejas funcionar sin control)
Lógicamente la esencia del programa es el software, el harware es como un rompecabecazas según indica dice xerex.
Como idea os dire que lo primero que hay que plantearse es manejar interrupciones y asignar las pro¡ioridades a los bloques, establecer las precisiones de control y sobre todo pensar que esto es para un helicoptero de RC o avión si se exige unas preciciones exageradas hay que cambiar el esquema de control y probablemente no lo puedas montar en un aparato de RC por tamaño y precio.
Los resultados estan contrastados con las pruebas y desde luego si os fijais en las características de los convencionales vereis que aporta unas prestaciones equivalentes a reguladores de mas de 100€.
Como el RC es un hobbye cada uno do desarrolla asu gusto, yo lo he diseñado porque me hacia falta para otro inventillo y los reguladores del mercado no me garantizaban lo que queria a un precio razonable, de hecho neceito cuatro y para mi ya esta rentabilizado.
por VICTOR VEGA » Vie, 14 Dic 2007 1:16 Voy a explicar algo más la forma de hacerlo. Como en este caso interesa un solo canal creo que será más sencillo. Antes de nada quiero que no se entienda mal mi intención, quiero explicarlo de manera que la gente no se complique pensando como hacerlo si ya está hecho.
Imaginemos una sola señal (1 canal) de ancho mínimo 900us y de máximo 2100us y de periodo 20ms. Metemos directamente esta señal a la entrada de interrupción de cualquier pic. Simplemente a 8 Mhz tenemos un ciclo de instrucción de 0.5us. Configuramos como flanco activo de al interrupción el de subida. Medida: Cuando entremos en la rutina de int externa reseteamos el timerX (conf a 1us). Tendremos un Offset 1 desde que la interrupción saltó (empezó la señal del canal). Ajustamos el flanco activo como bajada y salimos de la rutina de servicio. En la siguiente interrupción miraremos el valor del timer y lo asignaremos a una variable (valor canal). En este segundo caso tendremos otro Offset2. El valor real será Ancho_canal=Ancho_leido+Offset1-Offset2.
Volvemos a poner el flanco de subida y repetimos.
Cálculo de Offsets: Dependiendo del pic usado tendremos uno o varios vectores de interrupción. Cada interrupción tiene un tiempo concreto (+/- 1 ciclo creo recordar, viene en el datasheet) en interrumpir el código y hacer saltar la rutina de servicio correspondiente. Nuestro código (instrucciones) si no tiene saltos (condicionales) podremós saber lo que tarda en realizarse. Usando un simulador como proteus o el mismo mplab podemos determinar ambos offsets con mucha precisión. Estos offsets van a ser fijos con una incertidumbre de un ciclo de instrucción.
Limitaciones de código/velocidad:
La limitación de tiempo está en la señal mímima que puede llegarnos. En este caso son 900us (algunos bajan mucho más, pero no más allá de 500us). En el peor de los casos tendremos 900us x 2instr/us= 1800 instrucciones, más que suficiente para la rutina de servicio. Precisión: Nuestra incertidumbre si realizamos el código de manera correcta reside en +/-0.5us de la entrada en la interrupción. Aunque tengamos pocos vectores de interrupción y tengamos que hacer condiciones, para cada entrada en la int externa tendrán los mismos saltos (incluidos en los offsets). De esta manerá conseguimos 1 us de resolución con un micro (supongo que hablamos de pics) a 8 Mhz (no muy rápido).
Vuelvo a repetir que hablo porque lo he implementado y funciona con esa precisión. Espero que no se moleste nadie ya que no voy con esa intención.
por xerex » Vie, 14 Dic 2007 1:30 Gracias rlor, no habia pensado en cambiar el flanco, de esa manera si se puede hacer, el tema de errores de la medida casi es lo de menos, todo me ha quedado claro. Gracias Cespum, la empresa que comentas la he estado mirando y tiene buena pinta, lo mejor de todo, que no he visto, es que no te cobran por hacer el fotolito, ni preparacion de la serie ni nada extra, solo las placas.. y los precios estan muy bien para las placas estandar. Saludos y gracias a los dos.
P.D.: Lo he reeditado porque rlor lo ha escrito segun veia yo la web que comenta cespum.
por xerex » Vie, 14 Dic 2007 9:45 Buenos dias, os dejo un enlace para el que se aburra un poquito, me ha parecido interesante dejarlo aqui:
http://ww1.microchip.com/downloads/en/A ... 00857a.pdf
Otra idea para medir pulsos de radio
por Neomodo » Vie, 04 Ene 2008 14:01 Buenos dias.
Yo hago variadores para motores con escobillas, ya que yo empece construyendo barcos, y no utilizaba motores sin escobilla.
Esta es tan solo una idea...
Como todos sabemos, la radio nos da un pulso de duracion determinada, que es proporcional a la posicion del stick del emisor.
Osea que lo que variamos no es realmente la frecuencia, si no la anchura del pulso.
Bien, utilizando un PIC como el de la foto (Va sobradisimo) la idea es, la señal de la radio la metemos en un condensador de digamos 10uF 35V, de tal manera que este se carge con la tension que entrega el emisor.
Cuanto mas ancho sea el pulso del receptor, mas tension (eficaz claro) tenemos en el condensador. Por lo tanto, si utilizamos uno de los canales A/D del micro podemos medir de una manera indirecta la posicion del stick en la radio.
En base al valor convertido, aplicaremos mas o menos velocidad al motor.
De esta manera, con un solo micro y sin complicarnos demasiado el programa, podemos tener un variador doble (uno solo para dos motores) en una misma placa.
Yo con el tema de los motores con escobilla asi lo tengo hecho y da muy buen resultado, en cuanto en tanto el tiempo de respuesta no es algo esencial (hay que tener en cuenta que los condensadores son elementos que son lentitos al cargarse y descargarse) por lo tanto la respuesta del motor no es instantanea.
Ademas de esto, ese pic, diga lo que diga el fabricante, funciona a 20 Mhz max sin despeinarse, que llevo muchos años ya usandolos a esa frecuencia sin problema alguno.
Powered by Neomodo
Mensajes: 7Registrado: Jue, 03 Ene 2008 1:05Ubicación: Bilbao

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución