¿Alguna herramienta abierta para el trazado de gráficos para determinar los parámetros de ajuste de PID?

He pasado por varias implementaciones de PID y sus tutoriales de ajuste, documentos y todo. El mejor tutorial de ajuste fue PID-with-a-PhD.pdf . Pero no ha sido de mucha ayuda. Puedo decir que funciona un poco.

Estoy trabajando en un proyecto de levitación magnética. Vaya al enlace ( Barry's Maglev ) para ver un ejemplo. Soy capaz de levitar el imán manteniendo una placa de aluminio debajo. Progreso actual: Video .

Quiero realizarlo sin la placa de aluminio.

Mi pregunta es cómo comenzar con el trazado de gráficos y todo. He visto y me ha atraído solo el gráfico. Digamos que tome el archivo PID-sin-a-PhD.pdf y solo mire los gráficos trazados. ¿Cómo conseguir eso? ¿Con qué herramienta abierta empezar?

He intentado construir y trabajar en alguna herramienta de trazado de gráficos hecha por mí mismo. La conspiración contra el tiempo no es satisfactoria y, por lo tanto, la determinación de la ganancia.

[¡Si hay algún algoritmo de autoajuste disponible que se explique por sí solo! : esta no es mi pregunta ahora.]

Quiero reiniciar de nuevo con un enfoque sistemático duro. Cualquier ayuda será como Dios útil. No quiero ir con el método trail-n-error. Como eso no ayudó.

Estoy usando AtMega2560, una bobina, una pila de 2 imanes de neodimio, un puente H que funciona muy bien.

....Actualización1....

También un sensor de pasillo para retroalimentación.

........

....Actualización2....

Ahora tengo su función de transferencia conmigo. Estoy estudiando Análisis de respuesta transitoria LTI usando Python . El problema es que tengo una matriz de funciones de transferencia. Puede que me equivoque porque cómo se llama qué, no lo sé exactamente. Lo aprenderá pronto.

........

¿Qué mide el sensor de efecto hall? ¿Tiene medición directa de la posición de la pelota? En el último sistema de levitación magnética, trabajé con él como se hace con fotodetectores y LED, creo que IR.
Sí, estoy midiendo la posición directamente. La unidad no es la distancia por ahora. Pero sí, puedo relacionar la salida del sensor con la distancia. Que no se necesita actualmente. En resumen, el sistema puede saber dónde está la pelota, más bien el imán. :) N es bueno que ya tengas experiencia en Maglev.
Si solo tiene un sensor (sensor de desplazamiento) y un actuador (fuerza), entonces debe tener solo una función de transferencia. ¿Por qué/cómo tienes una matriz de funciones de transferencia?
@nibot Porque la gravedad está ejerciendo otra fuerza. Así que suma dos fuerzas y un sensor. :)
La fuerza de gravedad es constante. Y no lo controlas. Entonces: no hay función de transferencia.
Podría estar equivocado entonces. Entonces, ¿te importa si te envío las 'funciones'?

Respuestas (3)

Generalmente en la industria esto se haría con Matlab. Si lo está intentando por su cuenta, tiene algunas opciones diferentes en lo que respecta al software de cálculo numérico/trazado de gráficos. El primero de ellos es SciLab , un programa muy parecido a Matlab pero de código abierto y gratuito. Hay un par de cajas de herramientas que pueden o no proporcionar funciones útiles para diseñar y analizar sistemas de control: Control Design Tool (muy popular al parecer) y ADS CoLiSyS (mucho menos popular).

De lo contrario, podría probar NumPy o SciPy, que tienen algunas capacidades numéricas/gráficas, pero no cajas de herramientas del sistema de control.

Editar: en cuanto a ajustar un controlador PID usando un método conocido ... puede que no tenga suerte. Puedes probar métodos como Ziegler-Nicholspero dado que está trabajando con un sistema inestable (la pelota caerá sin control de retroalimentación) no puede hacer lo que recomienda el método (es decir, 'apagar' las ganancias integrales y derivadas para sintonizar solo proporcional, luego asigne ganancias integrales y derivadas como múltiplo de la ganancia proporcional). Sin embargo, si puede crear un controlador que simplemente estabilice la pelota en un punto establecido (un controlador de rechazo de perturbaciones, siendo la perturbación la gravedad), entonces puede agregar su controlador PID en serie y ajustarlo de esa manera una vez que el sistema sea estable. Pero parece que su objetivo general es hacer un controlador que simplemente estabilice la pelota y no, por ejemplo, hacer que siga una entrada de onda cuadrada o sinusoidal. Así que ese puede no ser un enfoque que valga la pena. Tenga en cuenta que lo que usted Re hacer no es de ninguna manera controles básicos y los enfoques simplistas no se aplican necesariamente. Buena suerte.

Lo siento mucho... Olvidé mencionar la entrada del sensor de pasillo al PID. También estoy usando un sensor de pasillo. También estoy actualizando lo mismo arriba.
Se te olvidó Octave, que he leído que es más parecido a Matlab, es software libre y con Octave-forge tiene varias cajas de herramientas, casi seguro también la de sistemas de control.
Tenía la impresión de que Scilab fue creado por náufragos del propio Matlab. Sin embargo, apuesto a que ambos son bastante cercanos. Todos copian al líder...
Octave está más cerca de las versiones anteriores de Matlab. La interfaz es pura línea de comandos. La sintaxis de Octave está destinada a ser casi completamente compatible con Matlab. SciLab tiene más características de GUI y menos compatibilidad directa con Matlab. SciLab parece estar más alineado con los usos educativos. Cualquiera de los dos probablemente tiene todo lo que necesita para hacer simulaciones básicas de sistemas PID.
También debería agregar que Octave se desarrolló originalmente para Unix/Linux y que la versión de Windows no está completamente libre de errores. SciLab parece tener una mejor compatibilidad con Windows (sin embargo, he usado Octave más que SciLab).
Actualmente evaluando sistemas de control Python. A ver si puedo resolverlo. Consulte: sourceforge.net/apps/mediawiki/python-control/…
Sé que Octave tiene algunos errores molestos, pero hay varias GUI, como GUIOctave o QtOctave.

Eche un vistazo a 20-sim, tienen una versión gratuita disponible, hay muchas cajas de herramientas (también para el diseño de controladores y sistemas LTI) y la última versión 4.4 también tiene secuencias de comandos con Matlab y Octave. Aquí está su sitio: http://www.20sim.com

No es de código abierto, pero CircuitLab hará el trazado en el dominio del tiempo y la frecuencia según lo requiera. Puede componer el bucle de retroalimentación gráficamente utilizando elementos de circuito o bloques de transformada de Laplace, y luego medir la respuesta y ajustar sus parámetros PID para asegurarse de obtener un resultado estable. Por ejemplo, consulte la respuesta al escalón de la transformada de Laplace y el diagrama de Bode .