Autor Tema: ¿Cómo se obtiene la función de transferencia?  (Leído 10766 veces)

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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17404
    • MicroPIC
¿Cómo se obtiene la función de transferencia?
« en: 11 de Febrero de 2010, 04:18:15 »
Hola amigos, ahora que ya soy capaz de obtener las constantes Kp, Ki y Kd ideales para un control PID mediante Matlab, tengo otra duda que me corroe.
Si lo que tengo es la parte mecánica ya montada, con sus motores, sus ruedas, su masa y su forma, ¿cómo puedo obtener la función de transferencia que la define?
Ea, ahí queda eso :)
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #1 en: 11 de Febrero de 2010, 06:51:50 »
Hola Nocturno, lo que quieres hacer es una "MODELIZACIÓN DE UN SISTEMA DINÁMICO", actualmente estoy cursando una asignatura que tiene que ver con éste tema, ayer mismo empezamos la primera clase así que en cuanto sepa/tenga algo de información sobre los métodos utilizados para obtener el modelo del sistema (función de transferencia) intentaré poner algo de información al respecto.


Un Saludo
Share the world !

Blog's

http://www.area0x33.com

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6741
    • Micros-Designs
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #2 en: 11 de Febrero de 2010, 08:32:41 »
Como se comentó en otro mensaje, para obtener el modelo del sistema se debe aplicar entradas escalón y observar la salida. Blackcat en este mensaje, explica como utilizar la herramienta ident de MATLAB.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17404
    • MicroPIC
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #3 en: 11 de Febrero de 2010, 08:51:36 »
¡Genial!, lo probaré
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6741
    • Micros-Designs
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #4 en: 11 de Febrero de 2010, 08:59:09 »
Por aquí hay teoría sobre identificación de sistemas  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17404
    • MicroPIC
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #5 en: 11 de Febrero de 2010, 09:12:06 »
Ufff, hay 15000 modelos, ¿cuál crees que es el más acertado para un motor CC con encoder cuyo objetivo es mantener velocidad constante?
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado alexysar

  • PIC16
  • ***
  • Mensajes: 206
    • e-Kit
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #6 en: 11 de Febrero de 2010, 13:58:07 »
En la facu tuve unos trabajos de laboratorio sobre un tema parecido. Te dejo mis apuntes, el tema es tratado por teoría del control y simulado mediante matlab y simulink, por ahí te sirven de algo:

Obtención de la función transferencia para un lazo de control de posición y velocidad angular

Estudio de un sistema de control de posición y velocidad angular basado en un motor de cc

Simulación demodelos de sistemas de control mediante Matlab y simulink

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17404
    • MicroPIC
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #7 en: 11 de Febrero de 2010, 14:05:19 »
Magnífico material, voy a empollármelo.

Muchas gracias
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17404
    • MicroPIC
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #8 en: 13 de Febrero de 2010, 02:53:45 »
Después de leer, y antes de proceder a las pruebas con el motor, hay una duda que no he resuelto aún.

Si observo la respuesta del motor y voy haciendo un log de su posicición para meterlo luego en Matlab, esta respuesta será distinta según el tipo de ruedas que le ponga, o el peso que lleve la plataforma móvil. De aquí se deduce que obviamente la función de transferencia es distinta para cada planta.

¿Cómo puede ser entonces que funcione un Segway con independencia del peso de quien se monta?

O mejor aún, si voy a utilizar este motor EMG30, ¿cómo funciona esta controladora MD23 para garantizar una estabilidad magnífica de la velocidad en cualquiera de las condiciones descritas anteriormente?. La he probado y va de lujo, pero no me encaja entonces que el modelo matemático sea dependiente de la planta.

¿Cuál es mi error?
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6741
    • Micros-Designs
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #9 en: 13 de Febrero de 2010, 08:56:29 »
Yo haría los cálculos con lo que sería el peso normal a transportar y el suelo estándar de la zona. Con ello tratar de conseguir un PID que entregue las mejores características. Si luego al efectuar pruebas con otras cargas, bajadas, subidas, ect. no resulta como se quiere hay que pensar en usar otro sistema de control.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 796
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #10 en: 14 de Febrero de 2010, 01:24:42 »
Supongo que el peso no es parte de la planta sino una perturbación, algo asi como cuando se diseña el control para una velocidad constante y para perturbarlo se le aplica un freno.. el control debe compensar la acción del freno aumentando la velocidad del motor

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17404
    • MicroPIC
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #11 en: 14 de Febrero de 2010, 02:39:45 »
Disculpad mi ignorancia, pero ¿cuáles son las variables que forman parte de la planta y las que son perturbaciones?
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6741
    • Micros-Designs
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #12 en: 14 de Febrero de 2010, 08:49:58 »
Disculpad mi ignorancia, pero ¿cuáles son las variables que forman parte de la planta y las que son perturbaciones?

Las variables serían tensión aplicada a los motores, angulo de giro del motor, velocidad del motor, angulo de giro de las ruedas, velocidad de las ruedas,etc...

Perturbaciones, cambio de peso, cambio de suelo, desniveles, ect.


Pero en este caso hay perturbaciones que son contantes pero que a partir de un nivel normal tienen una variación, por lo que formaría un nuevo sistema que incluya al peso y suelo estándar, y que las perturbaciones sean los cambios que sufren a partir de un nivel promedio.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado alexysar

  • PIC16
  • ***
  • Mensajes: 206
    • e-Kit
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #13 en: 14 de Febrero de 2010, 11:40:08 »
Nocturno yo se que sabes bastante sobre el tema, y por ahi la info que te paso ya la conoces, pero por ahi aclara algo asique ahi va.

Veamos un sistema de control proporcional porque es el más sencillo:



Vemos varios bloques
kp1 es el control proporcional
La cadena desde el sumador hasta la salida es la cadena directa
kp2 es la realimentación

En la cadena directa, el bloque que dice motor de cc controlado por armadura, hay una función matemática que representa las características del motor y la carga, es decir, que ese bloque representa  el motor con las ruedas que se le ponen, y el peso que lleve la plataforma móvil. Entonces colocando valores en Ra (Resistencia de armadura), Bm ( rozamiento del motor), tm constante de tiempo mecánico, ta constante de tiempo electrica, kt constante de cupla obtenemos la función transferencia del motor con la carga.

Ahora bien para hallar todas esas constantes de la función transferencia del motor y la carga hay que hacer una serie de mediciones como las siguientes:
 Para hallar Ra hay que bloquear el rotor del motor y medir la corriente de armadura
 Para hallar ta hay que poner a funcionar el motor y en un momento desconectarlo, entonces ta es el tiempo que tarda en parar el motor
 Para kb y Bm tenemos que ver la evolución de la corriente en el tiempo
 y hay otras mediciones para las demás variables

Todo lo que comente es para control de un servomotor por armadura, que es el que más se usa en estas aplicaciones, pero tambien hay control por campo, y otros aunque son bastante parecidos.

Si vemos de nuevo el dibujo:



vemos que todo el sistema funciona como un sistema de control. Basicamente si en la entrada alimentamos al sistema con una tenison continua, cuando la cambiamos tenemos un  escalon de tensión. Esta tensión es comparada con la tensión de salida proporcional a la posición ó velocidad del motor.
Comparando la entrada y la salida el sistema corrige la velocidad de salida permitiendo, por ejemplo, que la velocidad de salida sea constante independientemente de la carga del motor.
A la resta de la tensión de salida y entrada se la llama tensión de error porque es la tensión con la que se corrige la velocidad del motor, y además representa un pequeño error entre la velocidad de salida con respecto a la deseada que es necesario para mantener el lazo de control funcionando.


Ahora si en vez de el control proporcional ponemos un control PID ( Proporcional + Integral + Derivativo) tenemos las siguientes funciones.

El contorl derivativo sirve para compensar el sistema y que no se vuelva inestable, es decir que el servomotor se embale
El control integral sirve para aumentar el "tipo" del sistema, es decir pasar de un sistema tipo I a uno tipo II. Esto mejora el seguimiento, por ejemplo, en vez de solo cambiar la velocidad cuando alimentamos con distintas tensiones de referencia, siendo tipo dos podemos seguir tensiones que varían linealmente con el tiempo (rampa de tensión)
El control proporcional sirve para situarnos en el lugar de raices, es decir que variando este parámetro podemos variar características como tiempo de establecimiento, amortiguamiento, sobre error, etc.

SIMULACIÓN
Poniendo simulink en la línea de comandos de Matlab, accedemos al simulador de diagrama en bloques de función transferencia.

En Matlab para cargar funciones transferencia podemos usar los comandos zpk ( ceros, polos, coeficiente proporcional)
>> zpk(1,-1,1)
 
Zero/pole/gain:
(s-1)
-----
(s+1)

o tf ( Función transferencia)

>> tf([1,1,1],[1,2,3])
 
Transfer function:
 s^2 + s + 1
-------------
s^2 + 2 s + 3
 
Los comandos para hacer un bode son bode, y margin
Los comandos para un lugar de raices rlocus
Para un diagrama de estabilidad nyquist


bueno espero que haya aclarado algo y no lo haya embarrado.


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17404
    • MicroPIC
Re: ¿Cómo se obtiene la función de transferencia?
« Respuesta #14 en: 14 de Febrero de 2010, 13:27:31 »
Muy ilustrativo y oportuno tu post, Alexysar. Llegado a este punto, creo que lo único que me queda es hacer la prueba del escalón y la captura de los valores leídos para que Matlab me calcule la función de transferencia.
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ


 

anything