Análisis de retroalimentación

Importante

Estas ganancias son, en efecto, «conjeturas educadas» - no se garantiza que sean perfectas, y debe ser visto como un «punto de inicio» para una mayor sintonía.

Advertencia

La retroalimentación de la ganancia asume que no hay retroceso mecánico, el ruido en sensor, o el desfase en la medición del sensor. Aunque son suposiciones razonables en muchas situaciones, ninguna de ellas es estrictamente cierta en la práctica. En particular, muchos «controladores de motor inteligentes» (como el Talon SRX, Talon FX y SparkMax) tienen configuraciones predeterminadas que aplican un filtrado sustancial :ref: de paso bajo docs/software/advanced-controls/filters/introduction:Introduction to Filters> a sus mediciones de velocidad del codificador, lo que introduce una cantidad significativa de desfase. Esto puede causar que la ganancia calculada para que los bucles de velocidad sean inestables. Para rectificar esto, o bien se reduce la cantidad de filtrado a través de la API del controlador, o se reduce la magnitud de las ganancias del PID – se ha encontrado que reducir las ganancias por un factor de 10 funciona bien para la mayoría de los filtros predeterminados de configuración

Una vez que los coeficientes de feedforward han sido calculados, los controles en el panel Feedback Analysis se vuelven disponibles.

Picture of the feedback analysis pane

Estos pueden ser usados para calcular las ganancias de retroalimentación óptimas para un controlador PD o P para su mecanismo (via LQR).

Escribir controles de parámetro

Nota

El «Spark Max» preestablecido asume que el usuario ha configurado el controlador para operar en las unidades de análisis con la función de escala posición / velocidad.

Las ganancias de feedforward calculadas son cantidades dimensionadas. Desafortunadamente, no se presta mucha atención a las unidades de ganancias PID en los controles de FRC®, por lo que las diversas opciones típicas para las implementaciones de controladores PID difieren en sus convenciones de unidad (que a menudo no se hacen claro para el usuario)

Para especificar la configuración correcta para su controlador PID, utilice las siguientes opciones

Picture of the controller settings
  • Ajustes de ganancia preestablecidos: Este menú desplegable rellenará automáticamente los campos restantes con configuraciones probables para una de las configuraciones comunes de controladores FRC. Tenga en cuenta que algunos ajustes, como el engranaje post-encoder, Pulsos Por Revolución, y la presencia de un motor esclavo debe ser especificado manualmente (ya que el analizador no tiene forma de saber esto sin entrada del usuario), y que otros pueden variar de los valores predeterminados dados dependiendo de la configuración del usuario.

  • Periodo de controlador: Este es el período de ejecución del bucle de control, en segundos. La velocidad del bucle de la RIO por defecto es de 50Hz, lo que corresponde a un período de 0,02s. Los controladores a bordo en la mayoría de los «controladores inteligentes» funcionan a 1Khz, o un período de 0.001s.

  • Salida máxima del controlador: Este es el valor máximo de la salida del controlador, con respecto al cálculo del PID. La mayoría de los controladores calculan las salidas con un valor máximo de 1, pero los controladores del Talon tienen una salida máxima de 1023.

  • Controlador de tiempo normalizado: Esto especifica si el cálculo del PID está normalizado al período de ejecución, lo que afecta a la escala de la ganancia de D.

  • Tipo de controlador: Esto especifica si el controlador es un bucle RIO integrado, o esta funcionando en un controlador de motor inteligente como los Talon o Spark MAX.

  • Engranaje del post-encoder: Esto especifica el engranaje entre el encoder y el propio mecanismo. Esto es necesario para los bucles de control que no permiten la unidad especificada por el usuario en sus cálculos de PID (por ejemplo, los que se ejecutan en Talons). Esto se desactivará si no es relevante.

  • EPR del Encoder: Esto especifica los bordes por revolución (no los ciclos por revolución) del codificador utilizado, que se necesita en los mismos casos que el Engranaje Post-Encoder.

  • Tiene Seguidor: Si hay un controlador de motor siguiendo al controlador que ejecuta el bucle de control, si el bucle de control se ejecuta en un dispositivo periférico. Esto cambia el período de bucle efectivo.

  • Follower Update Period: La velocidad a la que se actualiza el seguidor (si está presente). De forma predeterminada, es 100 Hz (cada 0,01 s) para Talon SRX, Talon FX y SPARK MAX, pero se puede cambiar.

Nota

Si selecciono un controlador de motor inteligente como preestablecido (ej. TalonSRX, SPARK MAX, etc.) la casilla Convert Gains se marcará automáticamente. Esto significa que la herramienta convertirá tus ganancias para que puedan ser usadas a través de los métodos de PID de un controlador de motor inteligente. Entonces, si le gustaría usar los bucles de WPILib de PID, debe de desmarcar la casilla.

Especificar los criterios de optimización

Finalmente el usuario deberá especificar lo que se considerará un controlador «óptimo». Esto toma la forma de las tolerancias deseadas para el error del sistema y el esfuerzo de control - note que no está garantizado que el sistema obedecerá estas tolerancias en todo momento.

Entering optimality criteria for the feedback controller

Por regla general, los valores más pequeños para la Error Máximo Aceptable y los valores más grandes para la Esfuerzo de Control Máximo Aceptable darán lugar a mayores ganancias - esto dará lugar a mayores esfuerzos de control, lo que puede garantizar un mejor seguimiento del punto de ajuste, pero puede causar un comportamiento más violento y un mayor desgaste de los componentes.

La etiqueta Esfuerzo de Control Máximo Aceptable nunca debe exceder los 12V, ya que eso corresponde al voltaje total de la batería, e idealmente debería ser algo menor que esto.

Seleccione el tipo de bucle

Es típico controlar mecanismos con PIDs de posición y de velocidad, dependiendo de la aplicación. Cualquiera de ellos puede seleccionarse mediante el menú desplegable Tipo de lazo.

Specifying characterization loop type

Introduzca la velocidad/aceleración conocida

Nota

A veces, con un mecanismo/robot excepcionalmente ligero y/o datos especialmente ruidosos es posible que el valor kA sea excesivamente pequeño (o incluso ligeramente negativo). En caso de que el usuario deba poner el kA a cero. Las ganancias de retroalimentación calculadas en este caso también pueden ser cero - esto es porque tal mecanismo no debería requerir de retroalimentación para rastrear con precisión el punto de ajuste bajo los supuestos del LQR. Estos supuestos pueden no ser perfectamente exactos, y los usuarios pueden necesitar agregar retroalimentación de todos modos - en este caso, el bucle debe ser configurado manualmente.

Si se desea utilizar el panel Análisis de retroalimentación sin ejecutar un análisis completo en un conjunto de datos, o bien ver el efecto de la modificación de los valores kV y kA, se puede hacer aquí.

Entering known acceleration and velocities

Calcular las ganancias

Por último, pulse Calcular ganancias óptimas del controlador para determinar las ganancias de retroalimentación.

Calculating the Optimal Controller Gains