Vous êtes sur la page 1sur 19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

We choose the Moon


Ingeniera aplicada incluso a cosas a las que probablemente no debera aplicarse.
Acerca de Bio El equipo

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 Garca Tscar Jueves, 21 de julio de 2011 Nuestro principal proyecto con Arduino! En este caso, empleando el sistema de comunicacin serie, vamos a programar un controlador PID (un controlador que acta proporcionalmente al valor del error, al de su derivada, y al de su integral) en Simulink, el programa de dibujar esquemas ms caro de la historia. El objetivo es controlar la posicin de un sistema muy simple (podra ser llamado helicptero de un grado de libertad por alguien extremadamente idealista y balancn a hlice por alguien que lo fuera menos) y gradualmente ir complicado el sistema.

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

1/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Como se observa, se trata de un brazo articulado con un motor en un extremo, unido a una hlice que proporciona ms o menos sustentacin en funcin del voltaje suministrado al motor. En la articulacin del eje hay un potencimetro solidario a l, que devuelve un voltaje entre 0V y 5V, en funcin del ngulo . El esquema del sistema de control es el siguiente:

De esta manera tenemos definida la variable de salida (posicin del eje: voltaje transmitido por el potencimetro) y la variable de control (sustentacin de la hlice: voltaje proporcionado al motor). Nos falta pues un bucle de control (que programaremos en Simulink), una variable de entrada y una interfaz fsica.

Interfaz fsica: Arduino + circuito de potencia PWM

Tal y como se explica en una entrada anterior, el Arduino es incapaz por s mismo de aportar el amperaje que necesita el motor, por lo que emplearemos un circuito de
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 2/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

potencia consistente en un transistor MOSFET. El microcontrolador enviar a la puerta del transistor una seal PWM, y por tanto esta misma seal PWM pero de potencia ser la que reciba el motor. La representacin de este montaje ser la siguente:

Esta es toda la parte fsica 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 continuacin la parte de cdigo, tanto de Arduino como de Simulink/Matlab.

Arduino: lectura y escritura de variables fsicas


En primer lugar, el cdigo del Arduino debe ser capaz de (1) leer del potencimetro, (2) enviarlo como dato a travs del puerto serie, (3) recibir el dato de potencia necesaria al motor y (4) escribir dicho dato en la salida analgica como seal PWM. Hay que tener en cuenta que el conversor devuelve un valor entre 0 y 1024, que mapeamos a 0 y 255 para poder enviarlo como un solo bit unsigned. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 i n to u t=0 ; b y t ei n=0 ; b y t ep i n O u t=1 0 ; v o i ds e t u p ( ){ / /i n i c i a l i z a rp u e r t os e r i e S e r i a l . b e g i n ( 9 6 0 0 ) ; / /p r e p a r a ro u t p u t p i n M o d e ( p i n O u t ,O U T P U T ) ; } v o i dl o o p ( ){ / /l e e rd e lp i nA 0c o m o o u t=a n a l o g R e a d ( A 0 ) ; / /e s c a l a rp a r ao b t e n e rf o r m a t ou i n t 8 o u t=m a p ( o u t ,0 ,1 0 2 3 ,0 ,2 5 5 ) ; / /e n v i a re nb a s e1 0e nA S C I I S e r i a l . w r i t e ( o u t ) ; / /l e e rd e ls e r i es ih a yd a t o s i f ( S e r i a l . a v a i l a b l e ( ) ) { i n=S e r i a l . r e a d ( ) ; / /e s c r i b i re ne lp i n1 0 a n a l o g W r i t e ( p i n O u t ,i n ) ; }
3/19

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

6/4/2014

Arduino + Matlab/Simulink: controlador PID

2 5 2 6 2 7

/ /e s p e r a rp a r ae s t a b i l i z a re lc o n v e r s o r d e l a y ( 2 0 ) ;

Simulink: referencia y bucle de control


Por otra parte, nuestro programa de Simulink debe recibir este dato de a travs del puerto serie, compararlo con una referencia que controlaremos nosotros con un slider en la propia interfaz grfica de Simulink, y, mediante un controlador PID, determinar la seal de control (potencia al motor) necesaria. Despus debe enviarla a travs del puerto serie en formato uint8, unsigned integer de 8 bits, que toma valores entre 0 y 255, ideales para la funcin analogWrite() de Arduino (click para ampliar):

Dentro del bloque PID, se pueden editar los parmetros P, I y D, siendo los ltimos que hemos empleado P = 0.26 , I = 0.9, D = 0.04 y una discretizacin de 10 ms. Otro dato a tener en cuenta es que la transmisin serie se hace en formato uint8, pero las operaciones se hacen en formato double, de ah los conversores. Las ganancias son de valor 5/1024 para pasar la seal a voltios reales. A continuacin, un vdeo de todo el sistema en funcionamiento (esta es una de las primeras pruebas, con otros parmetros del PID sin optimizar todava):

Se puede observar cmo mediante el slider ajustamos la referencia (seal lila). El sistema, ajustando la seal de potencia entregada al motor (seal azul) va ajustando el ngulo del eje hasta conseguir que el voltaje del potencimetro (seal amarilla) coincida con la referencia que le hemos indicado. Incluso, a pesar de
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 4/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

estar en una primera fase de pruebas, se observa que es capaz de resistir a Salva perturbaciones.

Matlab: postproceso de los datos recogidos


Si nos fijamos en el programa de Simulink anterior, se puede observar que no slo se presentan en el visor las tres seales, sino que adems se guardan en el espacio de trabajo de Matlab. Esto nos permite, a posteriori, procesar los resultados del proceso de control como queramos: identificacin de sistemas, exportacin a Excel en este caso, nos contentamos con emplear la genial funcin externa savefigure() para obtener un grfico vectorial PDF: 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 % %P r e p a r a rl af i g u r a f=f i g u r e ( ' N a m e ' , ' C a p t u r a ' ) ; a x i s ( [ 0l e n g t h ( r e f _ o u t )05 . 1 ] ) g r i do n x l a b e l ( ' M e d i d a( ) ' ) y l a b e l ( ' V o l t a j e( V ) ' ) t i t l e ( ' C a p t u r ad ev o l t a j ee nt i e m p or e a lc o nA r d u i n o ' ) h o l da l l % %T r a t a m i e n t o p o s _ o u t=p o s _ o u t ( : ) ; p i d _ o u t=p i d _ o u t ( : ) ; x=l i n s p a c e ( 0 , l e n g t h ( r e f _ o u t ) , l e n g t h ( r e f _ o u t ) ) ; % %L i m p i a rf i g u r ayd i b u j a r c l a p l o t ( x , p i d _ o u t , ' C o l o r ' , [ 0 . 6 , 0 . 6 , 0 . 6 ] , ' L i n e W i d t h ' , 2 ) p l o t ( x , r e f _ o u t , x , p o s _ o u t , ' L i n e W i d t h ' , 2 ) l e g e n d ( ' C o n t r o l ' , ' R e f e r e n c i a ' , ' P o s i c i n ' , ' L o c a t i o n ' , ' B e s t ' ) ; % %S a l v a re lg r f i c o s a v e f i g u r e ( ' r e s u l t a d o ' , ' s ' , [ 4 . 53 ] , ' p o ' , ' d p d f ' )

Ejecutando este cdigo tras haber realizado una prueba del sistema, hemos obtenido el siguiente grfico, que a pesar de ser originalmente un grfico vectorial PDF, hemos rasterizado como PNG para poder representarlo aqu:

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

5/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Se observa en este caso que el motor requiere mucho menos voltaje (en gris) debido a que se trata de uno ms potente que el inicial y que el sistema presenta todava una sobreoscilacin (overshoot ) en la seal de salida (en rojo) cuando la seal de referencia (en verde) presenta una subida escaln, cosa que esperamos corregir en futuras versiones. El siguiente desarrollo programado es realizar un control con dos grados de libertad en lugar de uno not because its easy, but because its hard!
Compartes? Facebook Twitter 2 Google Tumblr Pinterest

Categora: Cosas "tiles", Engineer-It-Yourself | Etiquetas: Arduino, Grficos, MATLAB, MOSFET, PID, PWM, Serie, Simulink | Comentarios: 76 Comentarios

76 Comentarios on Arduino + Matlab/Simulink: controlador PID


1. 1 Ingeniero dijo a las 4:45 del 17/08/2011: Interesante, me podria enviar el codigo de simulink que utilizaron. Gracias. 2. 2 Jorge dijo a las 4:51 del 17/08/2011: Claro, est aqu; probablemente tengas que ajustar los parmetros del PID a tu planta en concreto! 3. 3 wilker dijo a las 6:06 del 25/08/2011: Gracias . Yo estaba tratando de hacer la interfaz entre Matlab/Simulink y Arduino Mega 2560 de destino y no tuvo xito. Creo que voy a obtener de esta manera la solucin gracias; Wilker
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 6/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

MG-Brasil 4. 4 Esteban Pioquinto dijo a las 0:34 del 19/09/2011: Magnifico trabajo, Jorge te felicito. voy a intentar reproducirlo y espero hacerte varias preguntas saludos 5. 5 Jose dijo a las 22:42 del 19/09/2011: Me parece una idea bastante buena para reproducir en laboratorios de bajo coste o para la uned, voy a probarlo, te recomiendo tambien la libreria de arduino que hay en matlab. Un saludo. 6. 6 Cristian dijo a las 22:42 del 22/09/2011: Hola! Excelente idea, yo tengo un proyecto similar pero necesito procesar 3 seales provenientes desde el arduino en el simulink y luego a traves de mi bucle de control, generar 2 seales que se envian al arduino. No tengo idea como hacerlo ya que slo veo que funciona con una salida y una entrada. A ver si me ayudan por favor! 7. 7 Jorge Garca Tscar dijo a las 19:29 del 23/09/2011: Hola Cristian! Pues nosotros ahora mismo tenemos el proyecto un poco abandonado, porque hemos empezado el curso acadmico y tenemos poco tiempo libre pero la idea que tenemos es usar algn tipo de protocolo que Arduino y Simulink puedan discriminar, del estilo S1 300 S2 400, y que al recibirlo, un switch-case o similar las entiendan como seal 1, seal 2, etc. Colgaremos cualquier avance! Y si lo consigues, avsanos! =) 8. 8 Diego dijo a las 0:05 del 12/10/2011: Gracias por tu aporte jorge, un abrazo desde colombia!!! 9. 9 adelrio dijo a las 23:26 del 01/11/2011: Me funcionio bien la primera vez pero ahora se me cierra simulink y no encuentro el problema!!!!! me podrias ayudar 10. 10 Jorge Garca Tscar dijo a las 3:11 del 02/11/2011: A m la verdad es que no me ha pasado, que se me cierre Simulink, has probado en otros ordenadores u otras versiones de Matlab? De todas formas una opcin es volver a construir de nuevo el montaje, a m me ha solucionado problemas al abrir el archivo en una versin diferente de Matlab (de 32 a 64 bits por ejemplo). PS: Un saludo desde Espaa a todos los que se han animado a comentar! Da gusto ver lo activa que es la comunidad hispanohablante Gracias! =) 11. 11 adelrio dijo a las 7:55 del 02/11/2011: Gracias creo q solo queria q reiniciara la compu!!!
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 7/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

tienes algun codigo sencillo para leer y escribir datos desde matlab hacia el arduino esta muy chido tu foro!!!!!! gracias!!! por tus respuestas 12. 12 kusko dijo a las 10:58 del 17/11/2011: amigo felicitaciones excelente pagina salu2 desde Colombia 13. 13 Juan Farias dijo a las 5:48 del 24/11/2011: hola queria saber si este proyecto, actualmente lo haz implementado con la libreria Arduino Target del simulink?, pues me intereseria saber si se puede hacer algo como esto pero con esa libreria, saludos desde Chile 14. 14 Jorge Garca Tscar dijo a las 0:19 del 25/11/2011: Hola! no, no he usado esa librera, pero es una idea interesante, avisa si lo consigues! En este proyecto simplemente usamos el Arduino como tarjeta de adquisicin/escritura de la seal, comunicndolo con Simulink mediante puerto serie. 15. 15 Juan Farias dijo a las 22:08 del 30/11/2011: Cul es la funcin de transferencia de tu motor? Me podras dar tu correo para preguntarte cualquier cosa? 16. 16 Carlos dijo a las 7:46 del 01/12/2011: hola buenas noches !!! tengo un problema descargue el programa de simulik y no puedo correrlo !! me dice que la configuracion del serial en el bloque tiene un error !! agradeceria su ayuda porfavor !!! lo necesito para un proyecto urgente !!! 17. 17 Jorge Garca Tscar dijo a las 19:00 del 01/12/2011: Hola! no tengo FDT para el motor, el PID se ajusta empricamente! Y respecto al error de Carlos, prueba a comprobar que el puerto serie definido en el bloque es el que realmente est usando el Arduino! 18. 18 felipe dijo a las 1:29 del 04/12/2011: hola quisiera saber de que tamao es el potenciometro ya que creo tener problemas al utilizar uno de 50k 19. 19 Jorge Garca Tscar dijo a las 3:03 del 04/12/2011: Ms que la resistencia del potencimetro lo importante es la facilidad de giro y el recorrido: ste es un potencimetro de joystick (un antiguo Microsoft Sidewinder) que gira con mucha facilidad y tiene un recorrido muy pequeo y muy lineal. Quizs ests usando un potencimetro logartmico! Eso sera muy conflictivo 20. 20 Antonio Mxico dijo a las 15:42 del 09/12/2011:
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 8/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Hola Jorge tengo una pregunta, al bajar tu programa de Simulink, y abrirlo el bloque de PID(z) se abre con error, quiero pensar que es por la versin de Matlab, Cul versin utilizaste? y Cul de los bloques PID implementaste en tu archivo?..Saludos 21. 21 Claudio Brasil dijo a las 2:17 del 15/01/2012: Muy bueno el articulo!! Tengo solo una pregunta, has medido la latencia q tiene todo el sistema, seguramente con matlab tienes una mayor latencia, y quizas realizando todo desde arduino vas a tener mejores resultados. 22. 22 Jose Vasqquez dijo a las 6:36 del 20/01/2012: Wooow Exelente proyecto lo implementare, y estare haciendote algunas preguntas! Genial 23. 23 LUIS RODRIGUEZ dijo a las 19:00 del 14/02/2012: Saludos muy buen apractica espero poder reproducirla aunque no he tenido la oportunidad de trabajar con matlab/simulink si tienes algn tutorial que pudieras prestar.. se te agradecera 24. 24 jose benito guillen badillo dijo a las 17:55 del 25/02/2012: hola Jorge Garca Tscar estoi realizando un proyecto casi igual al que estas empleando aqui,trato de posicionar un motor de cd con arduno,con ,arduino+matlab+simulin y accionarlo desde simulink y que el motor trabaje como quiero pero lo que no entiendo es como realizar el codigo del arduino si me pudieras explicar un poco te lo agradeseria o si me puedes mandar el codigo del arduino que empleastes en esa practica este es mi correo. 25. 25 Rodrigo dijo a las 7:00 del 29/02/2012: Hola jorge, me gustaria saber como se hace la comunicacion serie de simulink con arduino, no logro hacer la conexion no se si podras ayudarme con esto. mi simulink es el 2008 26. 26 vladimir dijo a las 14:26 del 02/03/2012: Hola jorge, te escribo porque quiero hacer este proyecto pero tengo una duda en la parte de potencia, que mosfet has utilizado y que dispositivo es ese otro que aparece en el esquema que has dehajado en esta pagina..un saludo 27. 27 Gonzalo dijo a las 21:24 del 17/03/2012: Primero que nada, excelente tu proyecto!.. Siempre he querido comunicar matlab/simulink con alguna placa.. me podrias indicar como hacerlo?? Muchas gracias 28. 28 Universidad dijo a las 5:51 del 28/03/2012: hola, todo esta perfecto pero como conectaste el arduino con el puerto serie para que envie y controle la posicion del pot, solo conectast los 2 pines (tx y rx del arduino ) con los tx y rx del puerto serie de la compu?? 29. 29 vladimir dijo a las 13:04 del 02/04/2012:
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 9/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Universidad, hola, no soy jorge pero estoy haciendo este proyecto y te puedo aclarar tu pregunta, la comunicacion serie se establece a traves del programa de arduino que ha expuesto jorge ms arriba, o sea que es via software, no es una conexin fisicaespero que te sirva mi aclaracin, cualquier cosa podemos seguir comentando..un saludo 30. 30 Osiris dijo a las 15:30 del 21/04/2012: Yo eh logrado reproducir exitosamente el proceso por medio de la librera de arduino para simulink el sistema funciona excelente gracias jorge. Saludos desde mexico 31. 31 Jorge Garca Tscar dijo a las 15:34 del 21/04/2012: Hola! Sera muy interesante que compartieras tu enfoque del problema Osiris! Y Vladimir tiene razn, la conexin serie es emulada por software, fsicamente est conectado por USB. 32. 32 emanuel sosa dijo a las 22:35 del 30/04/2012: Hola que tal!!! La verdad me llam mucho la atencin tu trabajo, en mi caso tengo un motor con encoder y sensor hall, como me recomiendas adaptarlo para que en vez de potencimetro use el encoder 33. 33 Emmanuel dijo a las 9:06 del 10/05/2012: Queria preguntar que Diodo usaste y por MOSFET 34. 34 mackito dijo a las 19:33 del 21/05/2012: hola amigos!!! muy buen sitio voy a usar su programa para hallar los coeficientes del pid (una especie de autotuning) para controlar 4 esc con motores brushless, el proyecto es un un quadcopter controlado por arduino. saludos de Colombia cualquier cosita les voy comentando de antemano muchas Gracias. 35. 35 Jorge Garca Tscar dijo a las 19:35 del 21/05/2012: Hola! Te agradeceremos que nos mantengas informados al respecto! 36. 36 Jose Mejia dijo a las 0:41 del 23/05/2012: Buenas tardes! Mi nombre es jose mejia y soy estudiante de ultimo semestre de ingenieria de produccion en la ciudad de Medellin, colombia. Le escribo porque en internet encontre esta pagina suya donde muestran un sistema de comunicacion en serie con controladores PID en el programa de Matlab.Estoy muy interesado en saber si usted de pronto me puede colaborar en una asesoria. Yo tengo que implementar un controlador PID en matlab para un tanque. Entonces tengo que programar este controlador para este trabajo. Quisiera saber si usted me puede colaborar en realizar este trabajo, osea programando eso. Espero sus pronta respuesta. Saludos y estoy atento a su respuesta. Jose Calixto 37. 37 Landiner dijo a las 2:04 del 23/05/2012: Ola , me a parecido interesante lo que se puede hacer con simulink, tengo la duda de como puedo leer un sensor y graficarlo en simulink. es un acelerometro, lo puedo graficar en matlab creando la figura
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 10/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

pero solo me da aceleracion, lo que quiero es integrarlo dos veces para obtener posicion, y ya me han dicho que es con simulink , pero no logro hacer graficar nada con el scope, hay algun procedimiento para configurar mi tarjeta arduino? solo es la seal analoga del acelerometro que se manda por AO. les agradeceria mucho. 38. 38 Yhosy dijo a las 23:37 del 12/06/2012: q onda soy alumno de 6 semestre de ing. y y estoy realizando su proyecto pero me tope con un problema y espero me puedan ayudar pues no se q transistor mosfet y diodo utilizan para el circuito en la protoboard espero su respuesta 39. 39 Electronico dijo a las 6:13 del 16/06/2012: Jorge en el bloke serial send sale (Data type mismatch. Input port 1 of block helicopsimik/serial Send /S-Function expects a signal of data type double. However, it is driven by a signal of data type uint8) y le cambio en el primer conv1 a double y grafica una pequena linea amarilla si hacer conexion fisica , no se cambia nada enel serial paramatros/serial format o se deja tal cual ala hora de pornerlo 40. 40 TonyS dijo a las 6:10 del 19/06/2012: Hola xa todos Primero darle las gracias por tan buenos apuntes que hacen, me sirvio mucho este y otro que hay sobre comunicacion Arduino+Matlab, quisiera preguntar sobre que lenguaje de programacion realizan la programacion del Arduino, he tenido unos problemas implementando una serie de codigos que estoy realizando, y el que encontre aca no me presento ningun problema. Muchas gracias 41. 41 vladimir dijo a las 18:10 del 26/06/2012: chicos yo estoy teniendo un problema con el serial send y no s por qu ocurrees el siguiente Error evaluating registered method Outputs of M-S-Function sserialsb in vladmoo/Serial Send. An error occurred during writing. he probado a limpiar el buffer de arduino cosa que este estuviese lleno y el serial send no pudiese escribir..pero nada..si alguien sabe porfa que me eche un cable..saludos 42. 42 andres rivas dijo a las 21:00 del 05/07/2012: hola amigo.. he iniciado un proyecto de control basandome en tu estructara de control en el simulink pero el pid no me esta enviado los datos al arduino, es decir, no esta funcionando no se a q podria deberse si tuvo un problema similar a este por favor agredeceria su ayuda. 43. 43 Richard dijo a las 9:17 del 01/08/2012: Primero q todo felicitaciones por tan buen proyecto. Me gustaria saber cuales son las referencias del MOSFET y diodo zener q utlizaron en la etapa de potencia. Agradezco su atencion a la presente. 44. 44 Fredy dijo a las 15:37 del 02/08/2012:
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 11/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Hola Primero darle las gracias por tan buenos aportes que ustedes nos suministran, quera comunicarles que me funciono perfecto el ejecutable de simulink, les escribo para preguntarles si existe la posibilidad de facilitarme la programacin en matlab ya que para el proyecto que estoy realizando es de vital importancia este cdigo. Agradezco de antemano su pronta respuesta Muchas gracias 45. 45 Richard dijo a las 20:53 del 05/08/2012: Que tipo de turbina utilizaron para el proyecto. Gracias 46. 46 Cristian Gisel dijo a las 23:02 del 07/08/2012: oyee see qiero enviar datos mas grandes qe 255 como lee en matlab ? 47. 47 Oscar dijo a las 22:55 del 15/08/2012: Hola amigos primero que nada felicitarlos por lo que hicieron esta muy bueno en segundo lugar estoy realizando un proyecto similar para mis clases y pues me gustara saber que bloque utilizaron para la generacin de la referencia en el ambiente de matlab. Saludos. 48. 48 Ivan dijo a las 9:01 del 17/08/2012: amigo una pregunta, la comunicacion la haces con el mismo cable usb con el que conectas el arduino con la PC? 49. 49 Ivan B dijo a las 7:39 del 19/08/2012: buen dia amigo, oye a ti no te aprecio un problema de que necesita estar enviando datos simulink al arduino para que se empiece a graficar en matlab? 50. 50 Worrent Dark dijo a las 5:13 del 10/10/2012: Gracias exelente me voy a ver si puedo hacerlo funcionar para controlar un regulador buck para hacer un MPPT para unos paneles solares 51. 51 Miki dijo a las 6:53 del 05/11/2012: Podrias poner el cdigo de simulink nuevamente, esta caido el enlace 52. 52 Isra dijo a las 2:58 del 08/11/2012: Que tal, excelente trabajo! Podras subir el archivo de simulink? 53. 53 Julian dijo a las 16:41 del 09/11/2012: Lo mismo, Jorge podrias subir el archivo de simulink?? Excelente aporte!!!
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 12/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

54. 54 Jorge Garca Tscar dijo a las 20:07 del 09/11/2012: Listo, ahora est aqu, un saludo! 55. 55 Julian CHILE dijo a las 16:24 del 10/11/2012: Como calculaste tus parametros para el PID??? 56. 56 Jorge Garca Tscar dijo a las 17:20 del 10/11/2012: Probando cuidadosamente. Pero siempre puedes probar el mtodo de Ziegler-Nichols. 57. 57 JAIME CANDELARIA SOLIS dijo a las 22:43 del 11/11/2012: Hola, oye disculpa una pregunta, como haces para realizar la simulacion de Simulink en tiempo real?? Que parametros modificaste en la configuracion de la simulacion. Sabes que yo tambien necesito controlar un motor mediante el puerto serial pero cuando intento hacer la simulacion me dice que el puerto serial no se puede simular en tiempo continuo. Agradeceria mucho tu respuesta, gracias y excelente proyecto! 58. 58 Tonatiuht dijo a las 23:00 del 28/11/2012: Hola! Crees que se pueda hacer lo mismo pero con un fuzzy? Estoy intentando en hacerlo, espero funcione 59. 59 Alejandro Suarez dijo a las 17:43 del 29/11/2012: Hola muy bueno tu proyecto me podrias ayudar con el codigo para el simulink esque se me complica un poco, ya que no se en donde esta il icono para el serial COM 4 60. 60 cham dijo a las 17:30 del 01/12/2012: hi, the project is cool. may i know how do you solve the problem of data transmission delay? im trying to do it in a higher sample time, but i got some delay. thanks in advance 61. 61 Darwin Ipiales dijo a las 1:31 del 04/12/2012: hola disculpa me podrias informar que materiales usaste 62. 62 Daniel Sanchez dijo a las 4:16 del 04/12/2012: me gustara saber como sacar el puro pwm modulandolo desde la PC, pues trato de controlar un mecanismo de 3GDL con un PID hecho por mi mismo, buen proyecto, gracias! 63. 63 Guillermo Sahonero lvarez dijo a las 19:42 del 10/12/2012: Que tal Jorge. Muy interesante el proyecto que realizaste. Tengo unas dudas sobre la estructura fsica, que MOSFET usaste? Y como es que el potencimetro puede medir el ngulo de inclinacin? Finalmente, no s si podras publicar una fotografa ms cercana a la plataforma. De antemano, Muchas Gracias! 64. 64 Manuel Otero dijo a las 6:07 del 06/02/2013:
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 13/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Si ya ests ocupando control digital por qu no implementas un algoritmo ms adecuado para ello? Seguro que con el logaritmo de la tangente hiperblica te quedara de fbula. 65. 65 Danilo dijo a las 20:27 del 21/02/2013: Hola, usted podria muestrar el diseo de la planta y la lista de materiales? Hi, can you show me the draw of your project and the bill of materials used? 66. 66 Marc dijo a las 19:43 del 05/05/2013: Buen ejemplo, sobre todo ilustrativo. Estoy trabajando con arduino, recibo los datos via serial y los represento utilizando Processing. Con Processing necesito estar variando los la forma de representacin, es algo tedioso. Estoy intentando leer datos con el bloque que tu utilizas serial recieve, pero por alguna razn, al intentar elegir el puerto (COM3) no me deja elegir ninguno, me sale la frase por defecto. Debo configurar algo antes? Gracias! 67. 67 Marc dijo a las 22:23 del 05/05/2013: Hola de nuevo, he solucionado el problema del serial receiver. Ahora tengo un segundo problema. Recibo datos Int8 correctamente del serial receiver (comprobados). Quiero que esos datos tengan decimales, si en serial receiver selecciono double los datos que me da no son correctos. Una segunda opcin es obtener int8 del serial reciever y convertirlos a double con un conversor, como tu haces. El problema es que no se convierten a double, siguen siendo enteros. En tu video no se aprecia si el bloque conv2 realiza realmente la conversin a double. La leyenda del eje de ordenadas va de 50 en 50. Pusiste un bloque display para comprobarlo? Agradecera tu respuesta porque estoy buscando sin cesar la solucin asumiendo que a ti si te cambia a double. Gracias por tu tiempo, Un cordial saludo, Marc 68. 68 komar dijo a las 1:06 del 19/05/2013: Hola, soy nuevo usando matlab, y me parece interesante el proyecto, quisiera tomar idea haciendo este proyecto, puedes, decirnos k mosfet usaste?, te lo agradecer. Y espero tambin ayudar a otros de igual forma. 69. 69 Benjamn_PUC_CHILE dijo a las 6:37 del 27/05/2013: Muchisimas gracias! Con tu ayuda podr terminar un proyecto de pndulo invertido en el que estoy trabajando.
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/ 14/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

(Quedar la referencia a esta pgina) Saludos! 70. 70 Jorge Garca Tscar dijo a las 21:23 del 27/05/2013: Genial! Deja el enlace cuando lo tengas para que lo veamos! =) 71. 71 Juako dijo a las 21:45 del 21/01/2014: Muchas gracias Joge, estoy omenzando un proyecto para un pendulo invertido con simulink y este tutorial me aclar algunas dudas, de todas formas te queria preguntar si sabes sobre conexion Arduino-Simulink a traves del Shield de Bluetooth de arduino, si es posible realizarla, espero puedas aclararme esa duda. Saludos 72. 72 Angel-UVMCOYOACAN dijo a las 21:20 del 18/02/2014: Disculpa soy nuevo en esto pero me gustara saber que arduino utilizaste y como se realiza la conexin Simulink-Arduino gracias. 73. 73 Victor Gomez dijo a las 3:23 del 02/03/2014: Como puedo hacer para corregir los Bad link que aparecen en el simulink? 74. 74 juan dijo a las 6:27 del 13/03/2014: hola como estas? amigo como puedo graficar en matlab 3 datos del arduino, asi como esta este grfico con 3 colores de legend, quiero graficar un setpoint una lectura de un sensor de temperatura y una salida de un control PID de la libreria del arduino todo funciona y lo veo por el monitor serial del arduino con Serial.print(datos) , pero nesecito graficarlos en matlab. gracias. muy buena informacin gracias 75. 75 Ricardo Vega dijo a las 5:03 del 14/03/2014: Cmo desarrollaste el modelo matemtico para este proyecto? 76. 76 rafa dijo a las 11:53 del 30/03/2014: Hola Jorge tengo un problema haber si me lo puede solucionar alguien.He realizado un programa exactamente igual que el tuyo pero con mi COM3 en vez de el COM6 que ese es el tuyo pero al ejecutar al progrma me da fallo en el Serial Send y me pone que arregle el ode45 y nose como lo puedo solucionar.Me podeis ayudar? Gracias Anmate y deja un comentario, it's free! Puedes iniciar sesin con Twitter, Faccebook o WordPress o bien introducir un nombre y direccin de correo (y una pgina, si quieres!). Slo tienen que ser verdaderos si quieres que te podamos contestar!

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

15/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Introduce tu comentario aqu...

Mensajes y Pginas Populares


Arduino + Matlab/Simulink: controlador PID Arduino + Matlab: adquisicin de datos Arduino + LabVIEW: instrumentos virtuales Arduino + motor DC: circuito PWM Teora de grafos y redes sociales Dropbox + VirtualBox: aumentar espacio! Dselo con Mathematica Melodas con Arduino: Fr Elise MATLAB: aceleracin de clculo con GPU Mathematica y CDF: Solucin de Navier

Etiquetas

Arduino CDF Cocina CUDA DAQ Datos Dropbox Estructuras Facebook Gephi GPGPU GPU computing Grficos LabVIEW LaT eX Linux LyX Mathematica MATLAB Miktex MOSFET
Aeropuerto Altavoz Apocalipsis Zombie Motor

Msica Navier nVidia PID proxy PWM Redes sociales Sensores Serie Simulink Spotify T ex T exmaker Tutorial Ubuntu

Valencia VI VirtualBox Virtualizacin Wolfram

Categoras
Aeronutica Cosas "tiles" Engineer-It-Yourself Recetas Sin categora Tutoriales

Publi de Google
Horror! Los tenebrosos tentculos del capitalismo se extienden hasta el inmaculado templo de la ciencia! Pero tenemos que mantener el dominio y adquirir caf, pociones, hechizos componentes electrnicos... etc.!

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

16/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Pedagoga Infantil
admisionesareandina.com Estudia en Fund. del rea Andina. Modalidad Virtual. Inscrbete ya!

Calendario de publicaciones
julio 2011 LM X J V S D 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ago ago

Archivos
febrero 2012 enero 2012 diciembre 2011 noviembre 2011 septiembre 2011 agosto 2011 julio 2011 agosto 2009

Otra publi de Google


Un poquito ms de publi! Procuramos que se camufle para que no moleste si ests leyendo la (interesante?) publicacin! Pero si te da mucha rabia, usa Adblock! ;-)

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

17/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Gerencia de Mercadeo
estudiaenelpoli.edu.co/Mercadeo Posgrado presencial en el Poli. Inscripciones Abiertas. Ingresa ya!

Suscrbete!
Introduce tu correo electrnico para suscribirte a este blog y recibir notificaciones de nuevas entradas. nete a otros 12 suscriptores
Direccin de email Suscribir

Ms publi!
Desgraciadamente hay que pagar los costes de alojamiento y dominio de la pgina! Esperamos que no iterfieran demasiado con el interesantsimo contenido de la izquierda! (:

Meta
Acceder RSS de las entradas RSS de los comentarios WordPress.org

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

18/19

6/4/2014

Arduino + Matlab/Simulink: controlador PID

Jorge Garca Tscar

http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/

19/19