Quitar gran valle en diagrama de fase

Estoy trabajando en un controlador de velocidad para un robot y es para cuando el robot se balancea sobre sus ruedas. Estoy diseñando el controlador como parte de un proyecto en un curso de diseño de control lineal. Sin embargo, el controlador debe implementarse en un robot y en el software entregado por mi instructor, por lo que no tengo un espacio infinito de libertad. La forma en que implemento mi controlador se puede ver aquí: -

ingrese la descripción de la imagen aquí

Como puede ver, puedo agregar una ganancia k pag , un integrador y un post-integrador, un término de adelanto/retraso tanto en el camino directo como en el de retroalimentación, un prefiltro y un feed-forward. Y eso es. No puedo cambiar los comentarios que recibo, solo puedo agregar y ajustar los términos del controlador.

Editar - Encontrar la nueva función de transferencia

Hacer lo que sugiere AJN me da un diagrama de bode mucho más agradable: -

ingrese la descripción de la imagen aquí

El diagrama de Bode es mucho mejor, pero todavía tengo algunos problemas. Quiero suavizar la colina en el gráfico de fase, pero no estoy seguro de cómo hacerlo.

La nueva función de transferencia:

num = [0 0 0 -3.5113e+07 -3.7165e+10 -2.0902e+12 -3.8701e+13 -1.5402e+14 2.5341e+15 2.2109e+16 3.3405e+16];
den = [1 2.4731e+03 1.4491e+06 2.5930e+08 1.2622e+10 9.9503e+10 -1.8488e+12 -1.0302e+13 0 0 0];
G2 = tf(num,den);

Forma anterior de la pregunta que contiene información obsoleta

num = [0 0 0 0 -2.3409e+07 -2.4777e+10 -1.3935e+12 -2.5801e+13 -1.0268e+14 1.6894e+15 1.4740e+16 2.2270e+16];
den = [1 2.4738e+03 1.4508e+06 2.6223e+08 1.5442e+10 6.8736e+11 2.6563e+13 5.2944e+14 4.0900e+15 8.1300e+15 3.7708e+15 1.1220e+13];
G2 = tf(num,den);

El diagrama de Bode de bucle abierto y cerrado para la función de transferencia está aquí: -

ingrese la descripción de la imagen aquí

Como puede ver en el diagrama de Bode de bucle cerrado, hay un gran valle en la fase, y esto hace que el sistema sea inestable (creo), y no quiero eso.

Mi idea inicial era agregar un término de retraso al camino hacia adelante. Un término de retraso elimina la fase, por lo que si lo coloco justo donde está el valle, el pico debería ser más pequeño. Mi término de retraso se ve así: -

ingrese la descripción de la imagen aquí

Pero incluso después de agregar el término de retraso, la fase todavía se ve muy rara. Aquí está el nuevo diagrama de Bode de bucle cerrado: -

ingrese la descripción de la imagen aquí

¿Hay alguna manera de eliminar este valle de fase y obtener un sistema estable adecuado?

Esto parece resonancias inducidas por histéresis que causan la inversión de fase. Y me recuerda a la tesis de graduación del tren servo de escoba invertida. Esto se ha hecho muchas veces. Eliminar la holgura (histéresis) con tensión de empuje o tracción y un circuito de retroalimentación de velocidad y posición dará mejores resultados.
El uso del control de posición con la segunda integral de la corriente genera un margen de fase deficiente. Intente usar retroalimentación de primer orden, ángulo del brazo de velocidad y luego Posición del ángulo y del vehículo. Es decir, múltiples bucles a medida que la carga cambia con el ángulo no son lineales
Tracé los polos y ceros de la planta y noté; un cero en el RHP y dos polos complejos conjugados en el RHP. El sistema será bastante difícil de estabilizar ya que necesita llevar los polos al RHP mientras evita que los polos de lazo abierto migren hacia el RHP cero en el proceso de cierre del lazo.
" Como puede ver en el diagrama de Bode de lazo cerrado , hay un gran valle en la fase, y esto hace que el sistema sea inestable (creo), y no quiero eso". El diagrama de fase del lazo cerrado trama puede no ser la forma de pensar sobre este problema.
" He encontrado la función de transferencia entre el ángulo de inclinación del robot y la velocidad de la rueda". ¿Cómo la encontraste? Identificación del sistema basada en alguna entrada y salida de prueba. ¿O modelos matemáticos de primeros principios?
@AJN He agregado una explicación a mi pregunta.
Tal vez no entiendo completamente el diagrama de simulink, pero ¿por qué hay dos líneas que retroalimentan desde tilt_angle ? a saber, una línea resaltada en azul y otra línea que parece alimentar ref_tilt . ¿No sería ref_tilt una señal predefinida como una entrada de paso o algo similar? No tengo mucha experiencia en linealizar sistemas en simulink.
ios¿Se le dio la interrupción del bucle y los puntos de monitoreo definidos ? ¿O decidiste esos puntos de ruptura de bucle tú mismo?
Habría cortado el bucle justo después del cruce de suma donde se une la línea azul para abrir el bucle G(s)H(s)y no tener la línea de retroalimentación superior en absoluto en el diagrama.
@AJN Hice lo que sugeriste y resultó en un diagrama de bode "más agradable". Supongo que debo haber encontrado la función de transferencia incorrectamente inicialmente.
esto parece más razonable. sin embargo, ¡cuidado! No sé cómo funciona Simulink, pero es posible que esté tramando -G(s)H(s)ahora. Simulink no sabe que tiene que ignorar el -vesigno en el cruce de suma al abrir un bucle (al menos la versión anterior de Simulink no lo sabía, creo). La forma positiva de la gráfica de fase me hace creer que ese es el caso. Ser cauteloso.
@AJN Aunque ahora estoy trabajando con la función de transferencia adecuada, todavía tengo problemas para diseñar mi controlador porque no estoy seguro de qué camino tomar. Mi único pensamiento fue suavizar el gráfico de fase agregando un término de retraso en la colina. Pero no sale como yo quiero. ¿Tienes alguna sugerencia?

Respuestas (1)

Una buena parte del Diseño de Ingeniería es tratar de no reinventar la rueda y aprender de los errores del pasado de otros y hacer mejoras. Hay muchos factores no lineales que no se incluyen en su simulación, como la histéresis de la fricción y la holgura en cada parte móvil y la falta de especificaciones de diseño para errores de entrada y salida. Una respuesta de un solo paso al voltaje no es la mejor prueba ya que el motor BEMF cambia el par.

  • utilice control de corriente y retroalimentación para una aceleración/frenado suave en lugar de voltaje de paso.

  • Para acelerar un brazo invertido, primero debe ir hacia atrás para inclinar el brazo hacia adelante y luego acelerar lo suficiente a la velocidad máxima para inclinar el brazo hacia atrás en preparación para frenar hacia la posición objetivo.

  • Investigue las conclusiones de una docena de trabajos de tesis de péndulo o escoba invertida similares pero diferentes y cite los defectos y las soluciones que propone con múltiples bucles para la aceleración, la velocidad, el ángulo de inclinación y la posición horizontal ideales con errores y tolerancias permitidos.

  • Aquí hay un ejemplo que cumplió con algunos criterios pero al final no fue sólido. Lee primero las conclusiones de cada artículo y sigue mis consejos. El contenido le dará algunas ideas sobre la teoría, pero estará incompleto.