Desarrollo de una Interfáz de Programación en Matlab para la Simulación de Tareas de Control sobre un Kernel de Tiempo Real

Desarrollo de una Interfáz de Programación en Matlab para la Simulación de Tareas de Control sobre un Kernel de Tiempo Real

Roberto Manuel Linares Zamora
 

Texto completo de la Tesis     

 


Resumen

La mayoría de los sistemas de control son desarrollados en un microprocesador usando un kernel de tiempo real o un sistema operativo de tiempo real. En la mayor parte de los casos el algoritmo de control es ejecutado periódicamente, enfocándose solamente en el dominio del problema sin preocuparse de cómo la planificación afecta al sistema de control como la ejecución concurrente de los procesos de cómputo afecta el comportamiento y la estabilidad del sistema de control. Actualmente, existen aplicaciones que auxilian en el diseño de sistemas de control como Matlab/Simulink, LabVIEW, Wincon, etc. Estas aplicaciones presentan una serie de herramientas (funciones, bloques y modelos) desarrolladas para la simulación del sistema de control. Sin embargo, son pocas las herramientas que ayudan al diseño de sistemas de control que contemplen restricciones de tiempo, y que además garanticen la ejecución concurrente de los algoritmos de control , o bien, que interactúen con otros ambientes de software externos, que permitan aplicar políticas de planificación y utilizar una interfaz gráfica para la visualización de los procesos. Este trabajo tesis, presenta el desarrollo de una interfaz de programación en Matlab para la ejecución de tareas de control sobre un kernel de tiempo real. El sistema se compone de tres etapas: Una etapa de generación de código (módulo generador de tareas), otra etapa de manejo de código (interfaz de programación) y una ultima etapa de ejecución (micro-kernel de aplicación). En la primera etapa del sistema, se implementa un módulo generador de tareas, que construye código a partir de un diagrama de Simulink. Este módulo utiliza la opción ERT de la herramienta RTW (Real Time WorkShop) de Matlab/Simulink para la generación de código. En la segunda etapa, se desarrolla la interfaz de programación, donde se realiza la conexión funcional entre Matlab/Simulink y el micro-kernel. La interfaz es un programa escrito en lenguaje C que contiene las dependencias y funciones que necesitan los códigos generados por la herramienta RTW de los modelos Simulink. Esta interfaz ejecuta el código dentro del micro-kernel. En la tercera etapa, se utiliza un micro-kernel de tiempo real, donde el código generado por el módulo se ejecuta como un proceso dentro del micro-kernel, comportándose como una tarea de tiempo real. El micro-kernel a puede manejar más de un proceso o tarea y su función principal es la de permitir la a o creación y ejecución concurrente de varios procesos. El micro-kernel que se utiliza se ejecuta sobre el sistema operativo MS-DOS. Este sistema puede ser utilizado para el diseño e implementación de sistemas de control con características de tiempo real, integrando así la funcionalidad de la herramienta Matlab/Simulink/Embedded Real Time Worshop con otra aplicación fuera del ambiente de Matlab (microkernel de tiempo real).
Las pruebas del código se realizaron en un micro-kernel de tiempo real y los modelos Simulink utilizados, se generaron con el fin de construir modelos sencillos con los bloques más utilizados de Simulink y obtener la descripción en código de los bloques empleados. El modelo de tareas de control se ejecuta dentro del micro-kernel sin recursos compartidos, teniendo la posibilidad de ejecutar varios procesos de forma concurrente. El método de planificación utilizado en la aplicación es uno de prioridad fija, en particular se emplea la política de RR (Round Robin).