Autor Tema: PID Digital (paso a paso)  (Leído 73724 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: PID Digital (paso a paso)
« Respuesta #15 en: 29 de Enero de 2009, 13:27:36 »
Hola, otra transformada de utilidad es:

         t^n     ---------------->     S^( n! / n+1 )

Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado krakc

  • PIC10
  • *
  • Mensajes: 29
Re: PID Digital (paso a paso)
« Respuesta #16 en: 01 de Febrero de 2009, 13:28:13 »
Bueno amigos, retomando el tema....

Una vez aque tenemos nuestro y(t) le aplicamos transformada de LaPlace lo cual nos entrega una funcion Y(S), con esto ya podemos hallar nuestra funcion de transferencia (de la planta).

suponiendo que nos dio: G(S)= (1) / (S+1)^2  ahora miramos nuestro diagrama de bloques del sistema a controlar que seria el siguiente:



Donde el primer diagrama corresponde al dominio del tiempo (t) y el segundo al de la frecuencia (S) y donde:

D(S) : Es la funcion de nuestro controlador discreto en el dominio de la frecuencia
Bo(S): Es un retenedor de orden 1
G(S): Es la funcion de transferencia de nuestra planta

D(Z): Es nuestro controlador en el plano discreto
G(Z): Es el producto del retenedor y la planta en el plano discreto

R(?): Entrada
Y(?): Salida

Ahora hacemos la canonica del segundo diagrama de bloques para obtener: F(Z) = [ D(Z) G(Z) ] / [ 1 + D(Z) G(Z) ]
Donde F(Z) es la respuesta de nuestro sistema en el plano discreto.

Si tenemos G(Z) y sabemos como queremmos que se comporte nuestro sistema osea conocemos F(Z), pero con la condicion que F(1) = 1 y el Essp=0 .... y ademas que F(Z) = K / P(Z) y que P(Z) = (Z - Z1) (Z - Z2) ........ entonces despejamos D(Z) el cual seria nuestra incognita y se refiere a nuestro controlador.

D(Z) = [ 1 / G(Z) ] [ F(Z) / (1 -F(Z)) ]

Ahora tenemos que discretizar nuestro G(S)... que para este ejemplo es G(S) = 1 / (S+1)^2

Pero recuerden que tenemos un G(Z) que es igual a: G(Z) = Tranformada Z | Bo(S) G(S)
si nos leemos la teoria de los retenedores de orden 1 obtenemos que Bo(S) = (1 - e^-TS) / S
y aplicando transformada Z obtenemos que Bo(Z) = (1 - Z^-1)

Entonces nos falta discretizar nuestro G(S) para asi hallar nuestro G(Z) completo:
G(Z) = (1 - Z^-1) Tranformada Z G(S)

Despues de mucho calculo, lapiz borrador y papel y como no de hacer una y otra cosa obtenemos:



Donde:
a = 1
T = periodo de muestreo

Ahora con la teoria que nos dan en libros y universidades sabemos que T = tao min / 10 .... o .... T = tao min / 8 ... pero para comodidad escogemos el /10 .

Bueno aqui empiezan las preguntas:

** Como hago para que funcion de transferencia quede de la forma G(S) = 1 / (tao1+S+1)(tao2+S+1).....(taoN+S+1) ... por que se supone que se escoge el minimo de los taos para poder hallar el periodo de muestreo.... ahi necesito ayuda.

** La otra pregunta es: tengo que escoger las demas condiciones de mi sistema, asi que se escoge Essp = 0 y un Zita = 0.5... pero tambien tengo que escoger un Test5% = xx segundos .... se supone que con mi G(S) puedo saber este tiempo de establecimiento, pero la cuestion es como ??? se hace mediante la grafica ??? o algun otro metodo....

ayudenme ahi, por que es donde estoy barado... despues de eso, puedo terminar todo y pasar la parte matematica y seguir a la de programacion...


PD: no habia vuelto a escribir por que andaba en parciales  :P
 





Desconectado blackcat

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 600
Re: PID Digital (paso a paso)
« Respuesta #17 en: 01 de Febrero de 2009, 14:08:55 »
Hola!

Elegir el tiempo de muestreo siempre es un dilema, en audio es muy facil; sin embargo, en control el tiempo de muestreo correcto lo dice la planta, parece que en eso lo tenes bien claro ...

El detalle está en que si elegimos un tiempo de muestreo muy alto, nuestro controlador digital no será capaz reproducir ciertas frecuencias en el que la planta reacciona, si usamos un tiempo de muestreo bajo es posible que tengamos un amplio rango de frecuencias y habrá algunas en el que la planta no actua ... este último suena bien, pero nos comprometemos a usar un procesamiento mas robusto; es decir, tenemos que usar un micro de mas velocidad.

Lo que yo hago, no se si estará bien  :?; sin embargo, mi profesor me dio el visto bueno, este es una vez obtenido el sistema aplicar la función BODE, que me muestra el rango de frecuencias del sistema. Por lo general, es un pasobajos, entonces tomo la frecuencia de -3dB, la multiplico por 10 y esa será mi frecuencia de muestreo.

Aqui dejo un ejemplo del sistema en tiempo continuo y el mismo sistema discretizado a diferentes frecuencias de muestreo:



La linea azul es la respuesta en frecuencia del sistema en tiempo continuo, los otros sistemas son los distretizados a diferentes frecuencias de muestreo, se observa que el tiempo de muestreo determina el rango de frecuencias que podrá representar, Nyquist no estaba tan loco como decian!!  :D ...


Para discretizar el sistema podes usar la funcion C2D, que se usa como:

>>H = c2d( G, ts )

donde G es el sistema en tiempo continuo o plano S y ts es el tiempo de muestreo. La función tambien permite elegir el método de discretización.

Saludos!



 
« Última modificación: 01 de Febrero de 2009, 14:21:52 por blackcat »
Control Automático, DSP & Microcontroladores

Desconectado krakc

  • PIC10
  • *
  • Mensajes: 29
Re: PID Digital (paso a paso)
« Respuesta #18 en: 01 de Febrero de 2009, 16:27:38 »
Muy bein ,ahora si voy entendiendo... haber si es vedad...

tengo G(S) = 1 / (S+1)^2

en matlab seria:

G = tf([0 1],[1 -2 1]);
bode(G)


hasta ahi bien???

bueno ahora en la grafica busco la magnitud en -3dB, y me da 0.637 rad/seg ... pero asi no me sirven, entonces hago lo siguiente multiplico por 180 y divido en pi .. verdad ???

si lo anterior es cierto y no me he confundido el valor resultante seria 36.4974 .... entonces ahora lo multiplico por 10 .... quedaria 364.974  ahora para hallar T = 1/ 364.974 .... entonces T = 0.00274 seg .... verdad o dije alguna mentira????


ahora pasando a lo siguiente.. una vez elegido el periodo de muestreo, matlab me discretiza usando C2D verdad?? lo cual es realmente cierto, pues tome un periodo de muestreo con el cual hize mi controlador y me dio similar, aunque debido a que matlab toma todas las decimas y yo solo 4, pues habia alguna diferencia entre los resultados, pero no era muy grande que digamos, asi que para este caso es mejor usar matlab y si quieres aprender pues usa lapiz y papel...

una vez se resuelvan mis dudas continuaremos con el siguiente paso... y editare el post principal para añadir lo que ya esta bien...

Desconectado krakc

  • PIC10
  • *
  • Mensajes: 29
Re: PID Digital (paso a paso)
« Respuesta #19 en: 10 de Febrero de 2009, 18:02:24 »
Bueno muchachos despues de unos cuantos dias sin poder seguir con esto, he vuelto y terminado la parte matematica, espero que revisen nuevamente el primer post, por que lo he modificado bastante...

Ahora viene la parte de programacion... una vez obtenida la famosa ley de control jejeje

Para lo cual requiero que me ayuden con un programa para hacer comunicacion rs232 usando pic 16f877a ... ademas que se pueda leer por matlab o por labview ... asi que necesitare bastante ayuda..

espero respuetas amigos.

vemos.

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: PID Digital (paso a paso)
« Respuesta #20 en: 15 de Febrero de 2009, 13:36:47 »
Hola Krack, este es el controlador que has hallado en tu primer post,

u(Z)     0.001058Z^-1 - 0.002116Z^-2 + 0.001058Z^-3
----- = ---------------------------------------------------------
e(z)     1 - 2.93769Z^-1 + 0.9382Z^-2 - 0.9379Z^-3


ya lo simulaste en matlab, con tu planta haber como responde?

sería bueno que coloques la grafica de la respuesta al escalón haber como queda,

saludos.
control de movimiento

Desconectado carq

  • PIC10
  • *
  • Mensajes: 1
Re: PID Digital (paso a paso)
« Respuesta #21 en: 10 de Mayo de 2009, 11:03:42 »
Hola

al digitar ident en matlab me sale un error en donde especifica que la funcion o variable no esta definida
y hasta el momento no se como activarla
espero que me ayuden

Desconectado NANO1985

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
    • Desarrollos Tecnologicos - Tucuman - Argentina
Re: PID Digital (paso a paso)
« Respuesta #22 en: 10 de Mayo de 2009, 17:40:09 »
que buen  hilo éste!!  :-) no me había enterado de él.... voy a seguirlo desde cerca.
Saludos
"La inquebrantable voluntad de vencer"
"hay dos cosas infinitas... El universo y la Estupidez humana" Albert Einstein
 "El sabio actua sin anhelos, permanece sosegado,... así no es afectado por el resultado de sus acciones sean éstas el triunfo o el fracaso"
- UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL TUCUMAN -

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: PID Digital (paso a paso)
« Respuesta #23 en: 13 de Mayo de 2009, 02:54:47 »
hola, talves estas usando una version antigua de matlab que no tiene ese guide, la 2006b si la tiene.

saludos.
control de movimiento

Desconectado komodo100

  • PIC10
  • *
  • Mensajes: 6
Re: PID Digital (paso a paso)
« Respuesta #24 en: 17 de Mayo de 2009, 23:01:26 »
Hola!lei toda esta informacion y me parecio muy interesante...yo estoy implementando un pid con pic 18f452 ¿Alguien sabe como hacerlo?.......

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PID Digital (paso a paso)
« Respuesta #25 en: 18 de Mayo de 2009, 00:44:00 »
Hola.

No es complicado hacerlo, solo basta resolver la ecuacion en diferencias del controlador. Algo que es de vital importancia es el modelo fisico del sistema -ya sea experimental o teorico-, el modelo del actuador .... si tienes mal eso, el control no te funcionara.

Saludos
El papel lo aguanta todo

Desconectado dkns

  • PIC10
  • *
  • Mensajes: 1
Re: PID Digital (paso a paso)
« Respuesta #26 en: 07 de Julio de 2009, 03:20:46 »
Que tal, oigan esta muy interesante y muy buena la informacion que dan aqui, la vdd me esta ayudando mucho a darme idea de como es esto del PID, solo que mi gran y principal problema es que en la escuela me pidieron hacer esto del PID discreto con un microcontrolador (ya sea pic o avr), pero sin enseñarme absolutamente nada al respecto de que es y como se hace un PID, todo me lo dejaron a investigacion, y sii ya he buscado por toodos lados y he encontrado varias cosas, pero lo que sigo sin encontrar o sin entender, es exactamente cuales son las variables que necesito conocer de mi  "caja negra" conformada en mi caso por una hielera de unicel, un foco de 40watts y un lm35.. y bueno por el momento esa es mi principal duda, espero pueda alguien auxiliarme porque me lo encargaron la semana pasada y lo tengo que entregar a finales de esta semana  :(.. estoy practicamente desesperado. de ante mano gracias.

Desconectado NANO1985

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
    • Desarrollos Tecnologicos - Tucuman - Argentina
Re: PID Digital (paso a paso)
« Respuesta #27 en: 07 de Julio de 2009, 11:24:16 »
que buen tema éste.... muy buena data el PDF blackcat
los voy a estar siguiendo
Gracias por compartir tanta informacion   :lol:
Saludos  8)
"La inquebrantable voluntad de vencer"
"hay dos cosas infinitas... El universo y la Estupidez humana" Albert Einstein
 "El sabio actua sin anhelos, permanece sosegado,... así no es afectado por el resultado de sus acciones sean éstas el triunfo o el fracaso"
- UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL TUCUMAN -

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PID Digital (paso a paso)
« Respuesta #28 en: 07 de Julio de 2009, 14:29:30 »
Lee al principio de este hilo. Esto todo muy bien explicado por BlackCat.

Una cosa muy importante: segun el ejemplo el modelo es ideal. Para un modelo real, la ecuacion del sistema de planta tendria una ecuacion como esta:

G(s) = \frac{K_{o}e^{-s\tau_{o}}}{1+s\tau}

Saludos
« Última modificación: 07 de Julio de 2009, 15:16:05 por MLO__ »
El papel lo aguanta todo

Desconectado krakc

  • PIC10
  • *
  • Mensajes: 29
Re: PID Digital (paso a paso)
« Respuesta #29 en: 12 de Julio de 2009, 22:46:00 »
Que tal, oigan esta muy interesante y muy buena la informacion que dan aqui, la vdd me esta ayudando mucho a darme idea de como es esto del PID, solo que mi gran y principal problema es que en la escuela me pidieron hacer esto del PID discreto con un microcontrolador (ya sea pic o avr), pero sin enseñarme absolutamente nada al respecto de que es y como se hace un PID, todo me lo dejaron a investigacion, y sii ya he buscado por toodos lados y he encontrado varias cosas, pero lo que sigo sin encontrar o sin entender, es exactamente cuales son las variables que necesito conocer de mi  "caja negra" conformada en mi caso por una hielera de unicel, un foco de 40watts y un lm35.. y bueno por el momento esa es mi principal duda, espero pueda alguien auxiliarme porque me lo encargaron la semana pasada y lo tengo que entregar a finales de esta semana  :(.. estoy practicamente desesperado. de ante mano gracias.

hola que pena la tardanza en responder pero hace varios dias que no tengo acceso a internet asi que no me habia enterado de nada

bueno en este hilo se crea un pid digital que es lo mismo que hacer un pid discreto, pues asi es que se hace uno digital, osea discretizando, si te lees el post completo (un poco extenso jejeje) te dras cuenta que hay que discretizar usando la transformada Z...

al final del proceso matematico obtienes una ecuacion que es la que programas en tu pic para controlar tu bombilla respecto a la entrada, el lm35.

para programar te recomiendo lenguaje C, asi que busca info alli.

para tomar las medidas lo mejor es hace un programa de comunicacion serial que tome datos cada cierto tiempo y los envie al pc para luego leerlos con matlab y guardarlos en una matriz para luego graficarla, con eso obtienes mucha exactitud y rapides en la toma de datos

cualquier duda pregunta que para eso estamos,

suerte con eso.