Anda di halaman 1dari 16
osiosit2 Arduino + Matl/Simulink: controlador PID We choose the Moon Ingenieria aplicada incluso a cosas a las que probablemente no deberia aplicarse. © Acerea de ° Bio © Elequipo “Engineers like to solve problems. If there are no problems handily available, they will create their own problems.” ~ Scott Adams Arduino + Matlab/Simulink: controlador PID Jorge Garcia Tiscar Jueves, 21 de julio de 2011 ‘Nuestro principal proyecto con Arduino! En este caso, empleando el sistema de comunicacién serie, vamos a programar un controlador PID (un controlador que actia proporcionalmente al valor del error, al de su derivada, y al de su integral) en Simulink, el programa de dibujar esquemas mais caro de la historia, El objetivo es controlar la posicién de un sistema muy simple (podria ser llamado “helicéptero de un grado de libertad” por alguien extremadamente idealista y “balancin a hélice” por alguien que lo fuera menos) y gradualmente it complicado el sistema, ‘wechoosethemaon #s(2011/07/21/arduine-matlab-simulnk-contolador-pid! 6 osiosit2 Arduino + Matl/Simulink: controlador PID roan al PWM —~ (potencia) Comp se observa, se trata de un brazo articulado con un motor en un extremo, unido a una hélice que proporciona mis o menos sus fimcién del voltaje suministrado al motor. En la articulacién del eje hay un potenciémetro solidario a cn fimcién del Angulo 6. El esquema del sistema de control es el siguiente: én en que devuelve un voltaje V(0) entre OV y SV, |opeseen-----2nn9 cana === | (orescesses oon reeeeee- \ Arduino [+ >| Helicéptero Arduino Potenciémetro Arduin L a De esta manera tenemos definida la variable de salida (posiciin del eje: volaje transmitido por el potenciémetro) y la variable de control (sustentaciin de la hélice: voltaje proporcionado al motor). Nos fata pues un buele de control (que programaremos en Simulink), una variable de entrada y una interfaz fisiea, Interfaz fisica: Arduino + circuito de potencia PWM ‘wechoosethemaon #s(2011/07/21/arduine-matlab-simulnk-contolador-pid! ane osiosit2 Arduino + Matl/Simulink: controlador PID $ Tal y como se explica en una entrada anterior, el Arduino es incapaz por si mismo de aportar el amperaje que necesita el motor, por lo que emplearemos un circuito de potencia consistente en un transistor MOSFET. El microcontrolador enviard a la puerta del transistor una seflal PWM, y por tanto esta misma sefial PWM pero de potencia serd la que reciba el motor. La representacidn de este montaje sera la siguente: Esta es toda la parte fisica del problema: la planta que vamos a controlar, la variable de salida (ngulo del eje), la variable de control (potencia al motor) y el montaje que hemos realizado con el Arduino. A continuacién la parte de cédigo, tanto de Arduino como de Simulink/Matlab, Arduino: lectura y escritura de variables fisicas En primer lugar, el e6digo del Arduino debe ser capaz de (1) leer V(8) del potenciémetro, (2) enviarlo como dato a través del puerto serie, (3) \weehoosethemoon 28/201 1/072 ardune-natab-simulrk-contoador sa! ane

Anda mungkin juga menyukai