Introducción al modelo de piloto automático del avión!!! (3 / 7 paso)

Paso 3: Demo controlador PID

Antes de lanzara mi arduino en un aeroplano, decidí que sería una buena idea para construir una plataforma para probar el PID en. Mi controlador PID utiliza las siguientes partes:
EFlite Outrunner Motor
ESC 35 amp
11,1 batería LiPo V
1/2" PVC
Una vieja Sierra caballo para un stand

El controlador examina el ángulo, el brazo está colgando en el uso de nuestro acelerómetro y giroscopio y utiliza esos datos para determinar cuanta corriente para lanzar el motor para hacer el nivel del brazo.

Porque el ESC se utiliza para enchufar el motor de un autobús de receptor de radio diseñado para servos, es relativamente fácil de controlar un motor de CA sin escobillas con un ESC en un Arduino gracias al Servo.h + Servo.cpp en la carpeta de bibliotecas. Creo que el protocolo de servo utiliza posición de pulso modulación (PPM) que puede lograrse utilizando un PWM pin en tu arduino con la función servo.write().
http://www.Hooked-on-RC-Airplanes.com/servo-tutorial.html

Es importante ser consciente de la seguridad cuando estos motores, ya que ir extremadamente rápido. * SIEMPRE use gafas de seguridad * * dejar la hélice fuera hasta que absolutamente necesita it *

Usted tendrá que escribir una función para arm(); su salida por lo que se puede ajustar su velocidad. Básicamente necesita escribir la ESC bajo, alto, y luego baja otra vez.
http://www.Arduino.CC/cgi-bin/yabb2/YaBB.pl?NUM=1226292633 Este foro va sobre cómo controlar un motor sin escobillas y es donde me marco para mi arm(); función y setSpeed (); función.

Se podría usar un servo.write(0-180) para establecer la velocidad en su salida, pero también se puede asignar en una escala de 0-100. Puede descargar el motor_functions en la parte inferior del paso. Si no funciona por favor diganme!! Simplemente puedo agregarlo en las instrucciones!

Utilizando estas funciones le da control completo motor. Usted tendrá que manosean su propio código para su ESC particular. Declarando las funciones sensor independientemente del bucle podemos ejecutar ahora el motor y los sensores al mismo tiempo. Esto es donde pegué mi primer contratiempo. Porque el motor dibuja tan actual de la batería, lo fue induciendo corrientes en mi bus I2C. Mi sensor funcionaría muy bien cuando el motor estaba apagado, pero cuando el motor funcionaba que los valores fueron más o menos sentidos.
Hice los siguientes pasos para limpiar el ruido:
He añadido un anillo de ferrita a la esc (retrospectivamente, esto probablemente sólo protege la ESC de ruido-aprendió a usarlas después de mi Zagi se estrelló http://www.hobbyking.com/hobbyking/store/__23206__Clip_On_Soft_Ferrite_Rings_5pc_.html)
Montara los sensores lo más lejos posible del motor
Torcido de todos mis cables para tratar de minimizar la inducción de corriente

He encontrado estos sitios web para ayudar a resolver mi problema:

http://diydrones.com/Forum/topics/PID-Controller-I2C-bus-Noise-from-ESC?xg_source=Activity //this es un hilo que comencé en DIY drones
http://Forum.allaboutcircuits.com/showthread.php?t=41916

Esto pareció minimizar el error del sensor, pero todavía unos 5 de cada 20 valores estaban fuera por +-10 grados. Para limpiar esto mediada por los valores de los sensores de:
Construcción de un aray para sostener 20 valores como aparecieron cronológicamente
Construir una matriz que llevó a cabo los últimos 20 valores ordenados en (ascendente o descendente; no importa porque estamos en busca de la mediana)
Utiliza a una especie de burbuja para ordenar mis valores

He encontrado esta web para ayudar a explicar cómo ordenar array eficientemente:
http://mathbits.com/mathbits/CompSci/arrays/Sorting.htm
Usted tendrá que construir múltiplos de estas funciones para varios valores de clasificación (x, y, z; dx, dy, dz)

Mis funciones de clase y punto medio de burbuja pueden ser descargados en la parte inferior del paso!

Ahora que los valores de los sensores son congruentes y tiene control sobre el motor de CA, podemos comenzar el control PID real!
La página de la wikipedia hace un buen trabajo explicando cómo debe ser su programa estructurado utilizando psuedocode. Hay muchas maneras de implementar esto. Depende de cuánto tiempo desea utilizar tus comentarios para los términos integral y hayan.

Usted puede encontrar mi PID_sample en la parte inferior de este paso!

Sintonización del PID: hay muchas maneras de afinar un PID. Se puede por software, conjetura y verificación, probaría el método Zieger Nichols.
Cualquier manera, para empezar, sólo ejecuta su salida con el error proporcional. establecer KP para que el término proporcional nunca excede la capacidad de salida. Básicamente, el sistema oscilará, quieres humedecer alrededor de su punto de referencia (o por lo menos no aumenten con el tiempo!). Una vez que ha encontrado un KP correspondiente o bien puede establecer KD o KI. Diferentes dicen cosas diferentes cuando se trata de que uno hacer primero, pero término integral acelerará un undercorrection hacia el punto de referencia mientras que el término hayan retrasará una sobrecorrección.

Lo sentimos todos que he tratado de incrustar los videos pero para algunos la razón no funcionaba. Este es el link:
http://www.youtube.com/watch?v=_qlgWSP-KFK&feature=g-UPL

Después de un rato jugando con el código debe convertirse en aparente adaptación cómo este tipo de controlador es su sistema particular. Recuerde, trate y feedforward tanto como sabes cómo! Una vez que estés cómodo seguir adelante e instalar el controlador!!

Artículos Relacionados

Barco piloto automático - basado en Arduino

Barco piloto automático - basado en Arduino

Aquí es cómo construir un piloto automático que puede dirigir un RC barco a waypoints! Es fácil de construir, basado en la popular plataforma Arduino e ideal para aficionados que quieren alguna soldadura práctica! Con este piloto automático, un barco
Piloto automático de hélice

Piloto automático de hélice

** Nota: no he tenido tiempo para completar todos los pasos pero, sin embargo, voy a terminar después de que he terminado con el trabajo de hoy, disculpen por el post prematuro, quiero conseguirlo antes de la fecha límite del proyecto **¡Hola a todos
CONTROL AUTOMÁTICO DEL AGUA... AUTO apagar la bomba de agua

CONTROL AUTOMÁTICO DEL AGUA... AUTO apagar la bomba de agua

detiene automáticamente bajadas agua bomba wen tanque de agua es completoComponentes requeridosFuente de alimentación (6v)Temporizador NE 555 ICResistencias (100Ωx2, 10kΩ)Relé (6V, 30A)BC 548 transistor x2Diodo 1N4007Paso 1: 555 icCircuito de control
Regulador automático del nivel del agua

Regulador automático del nivel del agua

¿Hola todos, están buscando para controlar automáticamente el nivel del agua del tanque es aquí el post para, como nivel de agua controlable automáticamente?Hay muchas maneras usando un sensor flotador para determinar el nivel de agua, o usando punta
Módulo de conmutador de Smoothieware para el control automático del ventilador

Módulo de conmutador de Smoothieware para el control automático del ventilador

Se trata de un seguimiento a mi Instructable sobre configuración de MKS como v1.2 32-bit controlador básicos y intro para Smoothieware.Como el anterior, esto es usando como pero funciona igualmente bien en el Smoothieboard original.Esta vez voy a ech
Automático del eje z cero en cambio de herramienta con Shapeoko 2 o X-talle.

Automático del eje z cero en cambio de herramienta con Shapeoko 2 o X-talle.

Construí mi 2 Shapeoko en enero de 2015.Mientras que esto podría funcionar en otros controladores, personalmente he sólo hago este trabajo con la v0.9 Grbl o posterior disponible en https://github.com/grbl/grbl/wiki/Connecting-Grbl.Quería crear una f
Puerta de garaje automática (puerto n autom tico)

Puerta de garaje automática (puerto n autom tico)

Nota: Las fotos son 3D, en formato anaglifo y en par cruzado.Hace unos años hice este engendro, y puedo decir es una de las cosas mejor resultado me han dado. La automatización del portón del garaje es una excepción a la regla dice la comodidad se co
Bawls automático LED luz azul

Bawls automático LED luz azul

Ok Haz tu mente salir de la cuneta. Estoy hablando de la botella de cristal azul que el refresco Bawls. Probé uno el otro día y pensó que la botella de vidrio podría ser utilizada para algo interesante. En un principio sólo iba a pegar un LED en él,
Riego automático de un barril de agua

Riego automático de un barril de agua

soy perezoso.  Hace unos años que me cansé de tener que manualmente de agua las plantas en macetas de 15-20 alrededor de nuestro patio, así que puse en un sistema de riego por goteo automático.  Me hubiera gustado correr el mismo sistema al lado de n
Alimentador de mascotas automático

Alimentador de mascotas automático

necesitaba un alimentador confiable peces para mi estanque para cuando estoy lejos.  Este instructable da detalles sobre el alimentador que acabo de terminar de construir y probar.  La misma idea podría utilizarse para la alimentación de otros animal
Un automático de seguimiento solar motorizado ventana ciega adaptación utilizando Arduino

Un automático de seguimiento solar motorizado ventana ciega adaptación utilizando Arduino

Cuenta edificios de 20-40% del total de energía utilice en los países desarrollados. Cortinas de ventana (o persianas) pueden ayudar a reducir la energía del edificio uso y mejorar el confort visual (es decir, reducción de fulgor y aumentar la luz de
Portátil 12 voltios 17 Watt generador de viento con enrollador automático

Portátil 12 voltios 17 Watt generador de viento con enrollador automático

solo he diseñado y construido un práctico, portátil 12 voltios 17 vatios generador eólico que es ideal (y apropiado) para configurar en campamentos, parques, exposiciones del día de la tierra, las estaciones de investigación y granjas del tercer mund
Peces alimentos alimentador automático utilizando Arduino Uno

Peces alimentos alimentador automático utilizando Arduino Uno

En este Instructables voy a mostrarle cómo construir un Alimentador automático de alimentación de peces. Para que no tenga que recordar alimentar a tus peces diariamente porque su Arduino lo hará por usted. También puede configurar contadores en la c
Sistema de llenado automático de agua de Keurig B40/B60/B70

Sistema de llenado automático de agua de Keurig B40/B60/B70

Este es un proyecto simple que hice para evitar la adición de agua en mi maquina cada vez que tomo una taza de café. Es un sistema bastante simple pero también requiere conocimientos básicos de plomería y habilidades eléctricas / soldaduras:-). Este