Implementar comportamientos para la simulación de modelos de arquitectura
Un flujo de trabajo básico de ingeniería de sistemas en System Composer™ incluye componer un sistema de arquitectura, definir requisitos, añadir metadatos, realizar análisis y representar la arquitectura mediante vistas. Después de completar estos pasos, el diseño del sistema está más cerca de cumplir los objetivos de las partes interesadas y las necesidades del cliente.
Ahora también puede comenzar a diseñar los propios componentes del sistema con Simulink®, Stateflow® y Simscape™. Puede especificar, probar y analizar de forma completa el comportamiento de un componente utilizando el proceso de diseño basado en modelos.
Para obtener más información sobre el flujo de trabajo de ingeniería de sistemas basada en modelos dentro de System Composer, consulte Componer y analizar sistemas usando modelos de arquitectura.
En este tutorial, realizará estos pasos en el modelo de arquitectura de un brazo robótico.
Modelo de arquitectura de un brazo robótico
Abra el modelo de arquitectura de un brazo robótico que consta de sensores, actuadores de movimiento y un algoritmo de planificación. Puede utilizar System Composer para ver interfaces y gestionar requisitos del modelo.
Referenciar un modelo de comportamiento de Simulink en el componente
Cuando un componente no requiere mayor descomposición arquitectónica, puede habilitar la simulación de modelos y un flujo de trabajo de extremo a extremo. Para habilitar la simulación de modelos, implemente comportamientos de Simulink para componentes. Puede asociar un modelo de Simulink a un componente o enlazarlo a un modelo o subsistema de Simulink existente.
Seleccione el componente
Motion
. Vaya a Modeling > Create Simulink Behavior. De forma alternativa, haga clic con el botón secundario en el componenteMotion
, seleccioneCreate Behavior
y, después, seleccioneSimulink Behavior
.En la lista Type, seleccione
Model Reference
. Asigne el nombreMotionSimulink
al modelo. El nombre predeterminado es el nombre del componente.Haga clic en OK. En la carpeta actual se crea un nuevo archivo de modelo de Simulink con el nombre asignado. Los puertos en nivel de raíz del modelo de Simulink reflejan los puertos del componente. El componente del modelo de arquitectura está enlazado al modelo de Simulink. El icono
en el componente indica que el componente tiene un comportamiento de Simulink.
Nota
Para eliminar el comportamiento del modelo, haga clic con el botón secundario en el componente
Motion
enlazado y seleccione Inline Model.Para ver las interfaces en el puerto SensorData convertido en elementos de bus de Simulink, haga doble clic en el puerto en Simulink.
También puede enlazarlo a un modelo de comportamiento de Simulink existente desde un componente de System Composer, siempre y cuando el componente no esté ya enlazado a una arquitectura de referencia. Haga clic con el botón secundario en el componente y seleccione Link to Model. Puede escribir o buscar el nombre de un modelo de Simulink.
También puede enlazar a un componente un comportamiento de subsistema de Simulink referenciado. Utilice las referencias de subsistemas para crear comportamientos de Simulink o Simscape con puertos físicos, conexiones y bloques.
Seleccione el componente
Motion
. Vaya a Modeling > Create Simulink Behavior. De forma alternativa, haga clic con el botón secundario en el componenteMotion
, seleccioneCreate Behavior
y, después, seleccioneSimulink Behavior
.En la lista Type, seleccione
Subsystem Reference
. Asigne el nombreMotionSubsystem
al modelo. El nombre predeterminado es el nombre del componente.Haga clic en OK. En la carpeta actual se crea un nuevo archivo de subsistema de Simulink con el nombre asignado. Los puertos en nivel de raíz del subsistema de Simulink reflejan los puertos del componente. El componente del modelo de arquitectura está enlazado al subsistema de Simulink. El icono
en el componente indica que el componente tiene un comportamiento de subsistema de Simulink.
Añadir un comportamiento de gráfico de Stateflow a un componente
Para implementar modelado basado en eventos con máquinas de estados, añada un comportamiento de gráfico de Stateflow a un componente. Los gráficos de estados consisten en un conjunto finito de estados con transiciones entre ellos para capturar los modos de funcionamiento del componente. Esta funcionalidad requiere una licencia de Stateflow.
Un componente de System Composer con estereotipos, interfaces, enlaces de requisitos y puertos se conserva cuando se añade comportamiento Chart (Stateflow) de Stateflow.
Haga clic con el botón secundario en el componente
Sensor
, seleccioneCreate Behavior
y, a continuación, seleccioneStateflow Behavior
. De forma alternativa, seleccione el componenteSensor
y, después, vaya a Modeling > Create Stateflow Chart Behavior.Haga doble clic en
Sensor
, que tiene el icono de Stateflow. Desde el menú Modeling, haga clic en Symbols Pane para ver los símbolos de Stateflow. El puerto de entrada Encoder aparece como dato de entrada en el panel de símbolos y el puerto de salida SensorData aparece como dato de salida.Seleccione la salida SensorData y visualice la interfaz en Property Inspector. Puede acceder a esta interfaz de la misma manera que a una señal de bus de Simulink.
Diseñar arquitecturas de software en un componente
Para diseñar una arquitectura de software, definir el orden de ejecución de las funciones, simular y generar código, puede crear una arquitectura de software a partir de un componente de System Composer.
Modifique el nombre del componente
Trajectory Planning
aTrajectoryPlanning
para que sea un nombre de variable C válido.Haga clic con el botón secundario en el componente
TrajectoryPlanning
, seleccioneCreate Architecture
y, a continuación, seleccioneSoftware Architecture
o vaya a Modeling > Create Software Architecture Model.Especifique el nombre de la arquitectura de software como
TrajectorySoftware
. Haga clic en OK.El modelo de arquitectura de software
TrajectorySoftware.slx
está referenciado desde el componenteTrajectoryPlanning
.Haga doble clic en el componente
TrajectoryPlanning
para interactuar con el componente de softwareTrajectorySoftware
.
Representar interacciones del sistema mediante diagramas de secuencia
Para representar la interacción entre los elementos estructurales de una arquitectura como una secuencia de intercambio de mensajes, utilice un diagrama de secuencia en Architecture Views Gallery.
Observe que el modelo de arquitectura del brazo robótico consta de componentes, puertos, conexiones y comportamientos. Los resultados de la simulación de modelos deben coincidir con las interacciones dentro de los diagramas de secuencia.
Para crear un nuevo diagrama de secuencia vaya a Modeling > Sequence Diagram. Se abre Architecture Views Gallery. Para crear un nuevo diagrama de secuencia, haga clic en
New > Sequence Diagram.
Se crea un nuevo diagrama de secuencia denominado
SequenceDiagram1
en View Browser y la pestaña Sequence Diagram se activa. En Sequence Diagram Properties, modifique el nombre del diagrama de secuenciaRobotArmSequence
.Seleccione Component > Add Lifeline
para añadir una línea de vida. Se crea una línea de vida nueva sin nombre y se indica mediante una línea de puntos.
Haga clic en la flecha hacia abajo y seleccione
Sensor
. Añada una segunda línea de vida denominadaMotion
.Seleccione la línea de puntos vertical para la línea de vida
Sensor
. Haga clic y arrástrela a la línea de vidaMotion
. En el cuadro To, comience a escribirSensordata
y elijaSensorData
del menú desplegable. Se crea un mensaje desde el puerto SensorData del componenteSensor
hasta el puerto SensorData del componenteMotion
.Haga clic en el mensaje para ver dónde colocar la condición del mensaje. Introduzca una condición de activación del mensaje con la forma:
rising(SensorData.distance1-1)
El nombre de la señal es un elemento de datos en una interfaz de datos. El mensaje se reconocerá en el evento de cruce por cero cuando el valor de
SensorData.distance1
aumente a 1.