Soy un programador que nunca antes había trabajado con electrónica. Estoy aprendiendo los conceptos y espero construir un cuadricóptero, con el software de control completamente escrito por mí. El control motor parece ser la parte más importante.
¿Es cierto que el típico motor de corriente continua sin escobillas y el ESC (control electrónico de velocidad) solo pueden controlar aproximadamente la velocidad? Eso se debe a que el ESC parece tener solo una idea muy aproximada de qué tan rápido gira el motor. Esto todavía funciona para un controlador PID (Proportional Integral Derivative) porque recibe retroalimentación indirecta de, por ejemplo, un giroscopio si el motor va lo suficientemente rápido y puede decirle al ESC que lo haga girar "aún más rápido" o "aún más lento", y Eso es lo suficientemente bueno.
¿Es correcto mi entendimiento en el párrafo anterior?
Si es así, me pregunto si un servomotor que pueda informar sobre su velocidad de rotación actual podría ayudar a eliminar por completo el ESC. Siento que si el microcontrolador puede recibir una entrada sobre las velocidades del motor y enviar una salida solicitando una cierta velocidad, no necesitaría el ESC. Pero no estoy seguro de cómo funcionan los servomotores: ¿qué sucede inmediatamente después de que solicita 100 rpm cuando dice que estaban a 80 rpm?
Dado que no pueden ajustar inmediatamente, ¿debería el microcontrolador ajustar inmediatamente otros motores para tener en cuenta el hecho de que no todos los motores están a 100 rpm todavía? ¿Eso implica que el microcontrolador solo debe solicitar deltas muy pequeños de la velocidad medida actualmente, de modo que el período de desviación del estado deseado sea insignificante?
En el último modelo, al solicitar solo deltas muy pequeños de la velocidad medida actualmente, ¿parece que el algoritmo no sería realmente PID ya que no hay forma de controlar la aceleración? ¿Pero puede ser que solicitar que el servo pase de 80 rpm a 100 rpm haga que alcance las 81 rpm mucho más rápido que solicitar que pase de 80 rpm a 81 rpm?
Siento que sé tan poco que no puedo identificarlo con mayor precisión, pero espero que esto dé una idea de los conceptos que estoy luchando por absorber.
Para resumir, las preguntas son:
Primero, hay varios errores de definición en sus suposiciones:
Entonces, en resumen:
can a servo (brushless dc) motor allow doing away with ESC?
does a servo motor accept control inputs such as "revolve at 100rpm"?
does a servo motor offer an output saying "i am at 80rpm now"?
does a servo motor at 80rpm go to 81rpm faster if it is requested to revolve at 100rpm versus at 81rpm?
the less precise questions implicit in the text above.
Siendo realistas, existen numerosos factores limitantes en la precisión de un sistema de control (como un lazo de control basado en PID). Incluso si tiene retroalimentación directa de la velocidad de rotación de un motor, la capacidad del lazo de control para corregir errores en la velocidad está limitada por el par disponible, la inercia del rotor, el ancho de banda de la electrónica de control y la precisión de la medición. interfaz.
Lectura adicional: http://en.wikipedia.org/wiki/Servomechanism
¿Es cierto que el típico motor de corriente continua sin escobillas y el ESC (control electrónico de velocidad) solo pueden controlar aproximadamente la velocidad?
No. Los motores de CC sin escobillas (BLDC) son un tipo de motor síncrono (más específicamente, son motores síncronos de imanes permanentes (PMSM)) y los motores síncronos requieren que el campo magnético del estator y el campo magnético del rotor estén "sincronizados". ." Prácticamente, lo que esto significa es que la corriente que fluye a través de las bobinas dependerá de la posición en la que se encuentre el rotor. La siguiente imagen muestra las formas de onda de corriente para las fases A, B y C para un motor BLDC. Notará que solo hay 2 fases activas en un momento dado. Cuando cualquier fase en particular se enciende o se apaga, se activa por la posición del rotor. Cuanto mejor sea la detección de la posición del rotor, mejor funcionará su motor (más eficiente, más par, etc.).
En los motores de hobby, es bastante común usar la detección de posición del rotor sin sensores. Esto generalmente funciona mirando la fase que no está encendida y usando la forma de onda en esa fase para determinar la posición del rotor. Otros motores tienen sensores de efecto Hall o codificadores que determinan la posición del rotor. La detección de posición sin sensores a menudo es lo suficientemente buena cuando todo lo que intenta hacer es controlar la velocidad. Si necesita tener control de posición (a menudo llamado "servo"), entonces debe considerar el uso de un codificador.
Si es así, me pregunto si un servomotor que pueda informar sobre su velocidad de rotación actual podría ayudar a eliminar por completo el ESC.
Tenga en cuenta que la función más básica de un ESC o control sin escobillas es proporcionar corriente a las bobinas en la secuencia correcta en el momento correcto. En otras palabras, la función más básica es conmutar el motor. Este es el mínimo que se requiere para que un motor BLDC funcione correctamente. Entonces, no, no puede eliminar por completo un ESC.
... ¿qué sucede inmediatamente después de solicitar 100 rpm cuando dicen que estaban a 80 rpm?
Eso depende. Un sistema de circuito abierto muy simple podría calibrarse de modo que 12 V = X RPM, 6 V = X/2 RPM, etc. En este caso, ordenar 100 RPM equivale a aumentar el voltaje a algún voltaje Y que ya se conoce. darte 100 RPM. Un sistema de circuito cerrado podría usar la posición del rotor para observar el cambio en la posición del rotor a lo largo del tiempo para determinar la velocidad y luego ajustar el voltaje hasta que la nueva velocidad sea de 100 RPM. De cualquier manera, el voltaje tendrá que aumentar.
¿Un servomotor a 80 rpm pasa a 81 rpm más rápido si se le pide que gire a 100 rpm en lugar de a 81 rpm?
Esto es imposible de decir a menos que tenga un control específico en mente. Para una carga dada, lo que determina qué tan rápido acelera el eje es el par. Cuanto más torque pueda proporcionar su motor, más rápido acelerará. En los motores BLDC, el par es proporcional a la corriente. Entonces, asumiendo la misma carga y asumiendo que proporciona la misma cantidad de corriente, deberían alcanzar 81 RPM al mismo tiempo.
¿Un servomotor acepta entradas de control como "girar a 100 rpm"?
Como mencioné anteriormente, "servomotor" a menudo se refiere a motores/controles que se utilizan para el control de posición. Es más probable que el comando "girar a 100 RPM" se vea en un sistema de motor/control que se usa para controlar la velocidad. Muchos sistemas de servomotor/control pueden controlar la velocidad, pero no todos están configurados para hacerlo.
Diré una última cosa sobre la terminología por algo que mencionó Connor Wolf. No existe un estándar industrial para la terminología de los motores sin escobillas. He visto nada menos que los siguientes acrónimos/términos para motores sin escobillas: BLDC (CC sin escobillas), BLAC (CA sin escobillas), PMSM (motor síncrono de imán permanente o servomotor de imán permanente), BPM (imán permanente sin escobillas), SMPMSM ( motor síncrono de imán permanente de montaje en superficie), IPM (motor de imán permanente interior), etc. BLDC, BLAC y PMSM son los más comunes, según mi experiencia.
BLDC se refiere con mayor frecuencia a motores que están diseñados para tener una fuerza contraelectromotriz trapezoidal y están destinados a funcionar con un control de 6 pasos (trapezoidal) (este es el tipo de control mencionado en mi respuesta anterior). BLAC generalmente se refiere a motores que están diseñados para tener una fuerza contraelectromotriz sinusoidal y están destinados a funcionar con un control sinusoidal (es decir, el control proporciona corriente sinusoidal al motor en lugar de las formas de onda en la imagen de arriba). Los motores "servo" suelen ser motores BLAC. En mi opinión, hay poca diferencia entre un motor BLDC y BLAC y deberían considerarse el mismo tipo de motor. Los motores con back-emf trapezoidal pueden funcionar con controles sinusoidales y viceversa. Todo depende de lo que estés tratando de hacer con ellos. Mi terminología preferida para cubrir estos dos tipos de motores es PMSM (motor síncrono de imanes permanentes). Pero, de nuevo, aquí no hay un estándar de la industria, así que mi preferencia es solo eso, una preferencia.
RJR
nigromante
connor lobo
nigromante
connor lobo