Contenido principal

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.

  1. Seleccione el componente Motion. Vaya a Modeling > Create Simulink Behavior. De forma alternativa, haga clic con el botón secundario en el componente Motion, seleccione Create Behavior y, después, seleccione Simulink Behavior.

  2. En la lista Type, seleccione Model Reference. Asigne el nombre MotionSimulink al modelo. El nombre predeterminado es el nombre del componente.

    Create Simulink Behavior dialog box with the new model reference name, MotionSimulink.

  3. 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 Simulink 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.

    The motion component with referenced Simulink model showing a Simulink base model inside with input ports and output ports designated

  4. Para ver las interfaces en el puerto SensorData convertido en elementos de bus de Simulink, haga doble clic en el puerto en Simulink.

    Sensor data bus element properties

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.

  1. Seleccione el componente Motion. Vaya a Modeling > Create Simulink Behavior. De forma alternativa, haga clic con el botón secundario en el componente Motion, seleccione Create Behavior y, después, seleccione Simulink Behavior.

  2. En la lista Type, seleccione Subsystem Reference. Asigne el nombre MotionSubsystem al modelo. El nombre predeterminado es el nombre del componente.

    Create Simulink Behavior dialog box with the new subsystem reference name, MotionSubsystem.

  3. 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 Subsystem en el componente indica que el componente tiene un comportamiento de subsistema de Simulink.

    Motion component as a subsystem reference component

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.

  1. Haga clic con el botón secundario en el componente Sensor, seleccione Create Behavior y, a continuación, seleccione Stateflow Behavior. De forma alternativa, seleccione el componente Sensor y, después, vaya a Modeling > Create Stateflow Chart Behavior.

  2. 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.

    Sensor state chart with symbols.

  3. 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.

    The interface named sensor data is shown as a bus.

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.

  1. Modifique el nombre del componente Trajectory Planning a TrajectoryPlanning para que sea un nombre de variable C válido.

  2. Haga clic con el botón secundario en el componente TrajectoryPlanning, seleccione Create Architecture y, a continuación, seleccione Software Architecture o vaya a Modeling > Create Software Architecture Model.

  3. Especifique el nombre de la arquitectura de software como TrajectorySoftware. Haga clic en OK.

    Create a software architecture model named Trajectory Software from a component.

  4. El modelo de arquitectura de software TrajectorySoftware.slx está referenciado desde el componente TrajectoryPlanning.

    Trajectory planning component has a trajectory software architecture model reference.

  5. Haga doble clic en el componente TrajectoryPlanning para interactuar con el componente de software TrajectorySoftware.

    Trajectory software component.

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.

The robot arm model with a software architecture, state chart, and Simulink behavior.

  1. 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 New > Sequence Diagram.

  2. 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 secuencia RobotArmSequence.

  3. Seleccione Component > Add Lifeline button 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.

  4. Haga clic en la flecha hacia abajo y seleccione Sensor. Añada una segunda línea de vida denominada Motion.

  5. Seleccione la línea de puntos vertical para la línea de vida Sensor. Haga clic y arrástrela a la línea de vida Motion. En el cuadro To, comience a escribir Sensordata y elija SensorData del menú desplegable. Se crea un mensaje desde el puerto SensorData del componente Sensor hasta el puerto SensorData del componente Motion.

  6. 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.

Finished sequence diagram.

Consulte también

Temas