
En esta clase vamos a ver por qué cada vez más se usa Simulink/Matlab para la generación de código. En concreto:
- Simulación y diseño basada en bloques.
- Programar en C mediante bloques.
- El concepto de Model Based Design.
- La eficiencia en el desarrollo de firmware.
En esta clase aprenderás qué es y por qué se usa Stateflow de Simulink.
En esta clase aprenderás qué es la metodología del diseño en V y su aplicación en los sistemas embebidos.
En esta clase vamos a ver cómo se va a desarrollar este curso.
En esta clase vamos a ver la relación de Simulink con GIT.
En esta clase vamos a ver los módulos necesarios para poder realizar el curso.
En esta clase comenzamos con Stateflow. Aprenderás a:
- A crear un Stateflow desde cero.
- El concepto de “Chart” y “Estado”.
En esta clase vamos a aprender:
- La transición por defecto o “Default Transition”.
- Los elementos del estado o “state”: Nombre e instrucciones.
- Declarar variables locales.
- Crear notas de texto.
Symbols Pane
En esta clase vamos a aprender:
- Crear condiciones para las transiciones entre estados.
- Los tipos de condiciones más frecuentes.
- Condiciones booleanas simples ( [ Cambiar ]).
- Condiciones múltiples.
En esta clase vamos a aprender:
- Crear condiciones con operaciones matemáticas.
En esta clase vamos a aprender:
- Asignar valores en la transición.
- Combinar condiciones y asignaciones de valores.
En esta clase vamos a aprender:
- El elemento nudo o “junction”.
- Insertar nudos en el “chart”.
- El orden de evaluación de las condiciones.
- Uso de junctions a modo estético.
En esta clase vamos a analizar dos casos de ejemplo para repasar conceptos.
En esta clase vamos a aprender:
- Operador enter (en).
- Operador during (du).
- Operador exit (ex).
En esta clase planteamos un ejercicio sencillo para practicar los operadores de estado.
En esta clase daremos una posible solución al ejercicio.
En esta clase vamos a aprender:
- A crear estados dentro de otro estado.
- La jerarquía de estados.
- Ejemplo básico de horno.
En esta clase vamos a aprender:
- El concepto de supertransición.
- Recomendación: evitar usarlo en diseños para la generación de código.
En esta clase vamos a aprender:
- Bucles de control al estilo de C: if-else, for, while…
- No es el mismo código que en C.
En esta clase vamos a aprender:
- If-else anidado.
- For anidado.
- While anidado.
En esta clase vamos a aprender a crear un modelo de Simulink. Además veremos:
- La idea de modelo como una especie de “función” o “procedimiento” en C.
- La base del diseño modular en Simulink.
- La idea de reutilizar bloques.
En esta clase vamos a aprender:
- A crear señales de entrada.
- A crear señales de salida.
- Las nuevas opciones de Symbols Pane.
- El panel “Propierty inspector”.
En esta clase vamos a aprender:
- A combinar señales de distinto tipo.
- Usar nets: goto y from.
En esta clase vamos a aprender cómo se muestran los errores en Simulink.
En esta clase vamos a aprender:
- A construir un modelo de Simulink mediante “Atomic Subsystems”.
- Creación de puertos.
Además comentaremos ventajas de utilizar los “Atomic subsystems”.
En esta clase vamos a aprender:
- A construir un modelo de Simulink mediante “Model Referenced”.
- Creación de nets.
Además comentaremos ventajas de utilizar los “Model Referenced”.
En esta clase vamos a comenzar a crear el ejemplo del ascensor que nos permitirá aprender nuevos conceptos más avanzados. Concretamente vamos a realizar:
- El modelo del control con su Stateflow.
- El modelo general del ascensor con el referenced model de control.
En esta clase vamos a aprender:
- Crear una constante.
- Crear un botón interactivo.
Ver las señales en durante la ejecución mediante displays y outputs values.
En esta clase vamos a aprender:
- El concepto de diccionario.
- A crear un diccionario.
- El concepto de Enumerate.
- A crear “enumerates” en el diccionario.
En esta clase vamos a aprender:
- Qué es el path de Matlab.
- Cómo usarlo.
En esta clase vamos a aprender:
- A crear un proyecto de Matlab.
- A configurar el path del proyecto.
En esta clase vamos a aprender:
- A usar los “Enumerated Constant”.
- Crearemos un “Combo Box”.
En esta clase vamos a analizar el diagrama de flujo del ascensor y vamos a entender la necesidad de dividir el modelo en bloques.
En esta clase vamos a separar el bloque de control y del motor.
En esta clase vamos a aprender:
- Qué es el bloque UnitDelay.
- Cómo utilizarlo para la generación de código.
Precauciones.
En esta clase vamos a aprender:
- Cómo se conecta la capa de hardware con la de Simulink.
En esta clase vamos a aprender:
- A crear un bus.
- Recomendaciones.
En esta clase vamos a crear:
- Bloque de sensores.
- Puerto con un bus asociado.
En esta clase vamos a crear el “Terminator”.
En esta clase vamos a:
- Aprender la idea de jerarquía de diccionarios.
- Usar el “Dependency Analyzer”.
En esta clase vamos a:
- Crear el diccionario monitor.
- Crear el diccionario Sensores_DataDictionary.
- Agregar a los diccionarios.
En esta clase vamos a ver cómo utilizar un bus en un modelo.
En esta clase vamos a ver cómo conectar puertos de buses entre modelos.
En esta clase vamos a aprender:
- Las herramientas de bus creator y bus selector.
- Dividir buses.
En esta clase vamos a aprender:
- A separar señales de buses.
- Recomendaciones.
En esta clase vamos a aprender:
- A juntar señales de buses.
- Recomendaciones.
En esta clase vamos a aprender:
- A juntar señales y buses en buses.
- Recomendaciones.
En esta clase vamos a aprender:
- Los parámetros o “parameters”.
- Crear parámetros.
En esta clase vamos a aprender:
- Usar los parámetros.
- Recomendaciones.
En esta clase vamos a aprender el recurso de “casting” de variables.
En esta clase vamos a aprender:
- Los vectores en Simulink.
- Crear vectores.
En esta clase vamos a aprender:
- A utilizar el recurso de “Symbolic dimensions” en los vectores.
- Recomendaciones.
En esta clase vamos a ver el contenido del siguiente bloque:
- Proyecto real: sistema domótico para viviendas.
- Tests en Simulink.
- Generación de código.
En esta clase vamos a ver:
- Los requerimientos del proyecto.
- El proyecto en Matlab.
En esta clase vamos a ver cómo hacer un test manual.
En esta clase vamos a ver cómo crear un test unitario.
En esta clase vamos a ver los elementos del test.
En esta clase vamos a ver los elementos del bloque del Test Sequence.
En esta clase vamos a ver la velocidad de simulación.
En esta clase vamos a ver la velocidad de simulación.
En esta clase vamos a ver la herramienta de “Trace Signals”.
En esta clase repasamos el Diagnostic Viewer.
En esta clase vamos a ver cómo corregir el efecto loop.
En esta clase vamos a ver el panel de Test Assessments.
En esta clase vamos a ver la sintaxis del Test Assessments.
En esta clase vamos a ver cómo utilizar señales de disparo para los Test Assessments.
En esta clase vamos a ver cómo utilizar el Test Manager de Simulink.
En esta clase vamos a ver el procedimiento para crear un test del modelo completo.
En esta clase aprenderemos a aplicar valores en los buses para la ejecución de un test.
En esta clase vamos a ver algunas recomendaciones interesantes para el trabajo con tests.
En esta clase vamos a ver algunas recomendaciones la generación de código.
En esta clase vamos a ver la configuración para la generación de código.
En esta clase vamos a ver la segunda parte de la configuración para la generación del código.
En esta clase vamos a ver los archivos generados.
En esta clase vamos a ver el archivo zip generado para el módulo de “Gestión de comandos”.
En esta clase vamos a ver cómo especificar el archivo .h de los structs.
En esta clase veremos a qué es debido este error y posibles soluciones.
En esta clase veremos la posibilidad de que se generen errores por caché.
Es un curso para ingenieros que parte desde lo más básico de State Flow hasta la generación de código. Está enfocado a ingenier@s que necesiten iniciarse con Simulink. El objetivo principal es que el alumn@ sea capaz de crear un proyecto desde 0 y termine con la generación de código a través de Code Generation. El curso está distribuido en los siguientes bloques:
- State Flow: se tratan todos los aspectos importantes, desde qué es un estado hasta cómo generar flujos complejos. Además se comentan estrategias y consejos que ayuden al desarrollo profesional En el índice del curso podrás encontrar todos los apartados de este tema.
- Simulink: se aplica todo lo aprendido con el bloque de State Flow y se avanza hacia la creación de proyectos complejos desde un punto de vista profesional. También se estudia la metodología de diseño en V para entender la base de diseño en Simulink.
- Simulink Test: el alumn@ adquirirá una metodología básica para el desarrollo de test que le permitan confirmar que su proyecto de Simulink es robusto y está libre de fallos.
- Simulink Code Generation: último bloque donde se trata los procedimientos para la generación de código. Además se ofrecen al alumn@ consejos y soluciones para los errores más frecuentes.