es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Forma adecuada de implementar un controlador de corriente PI (motor de corriente continua) con RTOS.

Con mi proyecto de hobby, comencé a reescribir el software clásico basado en interrupciones por uno nuevo con un RTOS. Estoy utilizando un STM32 con FreeRTOS, pero no es importante porque mi pregunta está relacionada en general con el problema de cómo implementar un controlador PI rápido con un RTOS.

  1. Idea:
    Colocar el controlador actual (de torque) en una interrupción (por ejemplo, en la interrupción del temporizador que se utiliza para la modulación de ancho de pulso) y luego poner el controlador de posición en un hilo o en un temporizador de software.

  2. Idea:
    Colocar el controlador de corriente en un hilo que espera una señal basada en una interrupción de temporizador donde se elevará la señal.

El controlador de corriente debe ser rápido, por lo que no puedo colocarlo en un temporizador de software, pero los documentos que he leído sobre el RTOS dijeron que debería poner un código mínimo en la función de manejo de interrupciones al usar un RTOS y un controlador PI no es lo que pienso. Por eso, la primera idea parece ser problemática.

Pero si coloco el controlador de corriente rápido en un hilo que se señaliza mucho más rápido que el systick, ¿podrá manejarlo en absoluto? ¿Es una idea terrible?

Entonces, la pregunta exacta es: ¿Cómo debo implementar un controlador PI rápido con un RTOS cuando la frecuencia requerida está muy por encima de la frecuencia del sistema?

¡Gracias por la ayuda!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en C, microcontroladores, interrupciones, RTOS y controlador PID, el problema al que te enfrentas al implementar un controlador PI rápido con un RTOS es común. Aquí tienes algunas sugerencias que pueden ayudarte:

    1. Considera utilizar un enfoque híbrido: Como has mencionado, la primera idea de ubicar el controlador actual en una interrupción y el controlador de posición en un hilo puede no ser óptima debido al requisito de código mínimo en la función del gestor de interrupciones de un RTOS. En su lugar, puedes considerar un enfoque híbrido en el que utilices interrupciones para el controlador de corriente rápida y hilos para el controlador de posición más lento. Esto podría ayudarte a lograr tanto rendimiento como compatibilidad con un RTOS.
    2. Utiliza una solución de hardware: En lugar de depender de soluciones basadas en software, puedes investigar sobre el uso de soluciones basadas en hardware para tu controlador PI. Este enfoque a menudo logra una operación de alta frecuencia con baja latencia, lo que lo hace ideal para aplicaciones en tiempo real. Algunos ejemplos de soluciones basadas en hardware que puedes considerar incluyen matrices de compuertas programables en campo (FPGAs) o procesadores de señal digital (DSPs).

    3. Habilita el mecanismo de herencia de prioridad: Otro enfoque para manejar el controlador PI rápido podría ser habilitar el mecanismo de herencia de prioridad. Con este mecanismo, la tarea con mayor prioridad interrumpirá la tarea de menor prioridad y tomará los recursos requeridos por la tarea de menor prioridad, que luego se beneficiará de la prioridad temporalmente elevada de la tarea de mayor prioridad.

    En general, implementar un controlador PI rápido con un RTOS puede ser un desafío pero no imposible. Al considerar las sugerencias anteriores, podrás encontrar la solución óptima para satisfacer tus necesidades.

Comments are closed.