Contenu principal

Implémenter des comportements de simulation de modèles d’architecture

Un workflow d’ingénierie des systèmes de base dans System Composer™ comprend la composition d’un système d’architecture, la définition des exigences, l’ajout de métadonnées, la réalisation d’analyses et la représentation de l’architecture par le biais de vues. À l’issue de ces étapes, le design du système est plus proche des objectifs des parties prenantes et des besoins des clients.

Vous pouvez également commencer à concevoir les composants du système avec Simulink®, Stateflow® et Simscape™. L’approche Model-Based Design permet de spécifier, de tester et d’analyser entièrement le comportement d’un composant.

Pour plus d’informations sur le workflow d’ingénierie des systèmes basée sur des modèles (MBSE) au sein de System Composer, consultez Composer et analyser des systèmes au moyen de modèles d’architecture.

Dans ce tutoriel, vous allez réaliser cette procédure sur le modèle d’architecture d’un bras robotisé.

Modèle d’architecture d’un bras robotisé

Ouvrez le modèle d’architecture d’un bras robotisé composé de capteurs, d’actionneurs de mouvement et d’un algorithme de planification. Vous pouvez utiliser System Composer pour visualiser les interfaces et gérer les exigences de ce modèle.

Faire référence à un modèle comportemental Simulink dans un composant

Lorsqu’un composant ne nécessite pas de décomposition architecturale plus poussée, vous pouvez activer la simulation de modèle et un workflow de bout en bout. Pour activer la simulation du modèle, implémentez des comportements Simulink pour les composants. Vous pouvez associer un modèle Simulink doté d’un composant ou d’un lien à un sous-système Simulink ou à un modèle existants.

  1. Sélectionnez le composant Motion. Accédez à Modeling > Create Simulink Behavior. Vous pouvez également faire un clic droit sur le composant Motion, sélectionner Create Behavior, puis sélectionner Simulink Behavior.

  2. Dans la liste Type, sélectionnez Model Reference. Indiquez le nom de modèle MotionSimulink. Par défaut, le nom correspond à celui du composant.

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

  3. Cliquez sur OK. Un nouveau fichier de modèle Simulink est créé avec le nom proposé dans le dossier actuel. Les ports de niveau racine du modèle Simulink correspondent à ceux du composant. Le composant dans le modèle d’architecture est lié au modèle Simulink. L’icône Simulink figurant sur le composant indique que ce dernier a un comportement Simulink.

    Remarque

    Pour supprimer le comportement du modèle, faites un clic droit sur le composant Motion lié et sélectionnez Inline Model.

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

  4. Pour afficher les interfaces du port SensorData converti en éléments de bus Simulink, double-cliquez sur le port dans Simulink.

    Sensor data bus element properties

Vous pouvez également lier un composant System Composer à un modèle de comportement Simulink existant à condition que le composant ne soit pas déjà lié à une architecture de référence. Faites un clic droit sur le composant et sélectionnez Link to Model. Vous pouvez saisir ou rechercher le nom d’un modèle Simulink.

Vous pouvez également lier le comportement d’un sous-système Simulink référencé à un composant. Utilisez les références de sous-systèmes pour créer des comportements Simulink ou Simscape avec des ports physiques, des connexions et des blocs.

  1. Sélectionnez le composant Motion. Accédez à Modeling > Create Simulink Behavior. Vous pouvez également faire un clic droit sur le composant Motion, sélectionner Create Behavior, puis sélectionner Simulink Behavior.

  2. Dans la liste Type, sélectionnez Subsystem Reference. Indiquez le nom de modèle MotionSubsystem. Par défaut, le nom correspond à celui du composant.

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

  3. Cliquez sur OK. Un nouveau fichier de sous-système Simulink est créé avec le nom proposé dans le dossier actuel. Les ports de niveau racine du sous-système Simulink correspondent à ceux du composant. Le composant dans le modèle d’architecture est lié au sous-système Simulink. L’icône Subsystem figurant sur le composant indique que ce dernier a un comportement de sous-système Simulink.

    Motion component as a subsystem reference component

Ajouter un comportement de diagramme Stateflow à un composant

Pour implémenter une modélisation évènementielle avec des machines à état, ajoutez un comportement de diagramme Stateflow à un composant. Les diagrammes d’état consistent en un ensemble fini d’états reliés par des transitions pour capturer les modes de fonctionnement du composant. Cette fonctionnalité nécessite une licence Stateflow.

Un composant System Composer avec des stéréotypes, des interfaces, des liens d’exigences et des ports est préservé lorsque vous ajoutez un comportement Stateflow Chart (Stateflow).

  1. Faites un clic droit sur le composant Sensor, sélectionnez Create Behavior, puis sélectionnez Stateflow Behavior. Vous pouvez également sélectionner le composant Sensor, puis accéder à Modeling > Create Stateflow Chart Behavior.

  2. Double-cliquez sur Sensor qui présente l’icône Stateflow. Dans le menu Modeling, cliquez sur Symbols Pane pour afficher les symboles Stateflow. Le port d’entrée Encoder apparaît sous la forme d’une donnée d’entrée dans le volet des symboles et le port de sortie SensorData apparaît sous celle d’une donnée de sortie.

    Sensor state chart with symbols.

  3. Sélectionnez la sortie SensorData et affichez l’interface dans le Property Inspector. Vous pouvez accéder à cette interface à la manière d’un signal de bus Simulink.

    The interface named sensor data is shown as a bus.

Concevoir une architecture logicielle dans un composant

Pour concevoir une architecture logicielle, définissez l’ordre d’exécution des fonctions, simulez et générez du code, créez une architecture logicielle à partir d’un composant System Composer.

  1. Renommez le composant Trajectory Planning en TrajectoryPlanning afin que cela soit un nom de variable C valide.

  2. Faites un clic droit sur le composant TrajectoryPlanning, sélectionnez Create Architecture, puis sélectionnez Software Architecture ou accédez à Modeling > Create Software Architecture Model.

  3. Spécifiez le nom de l’architecture logicielle en tant que TrajectorySoftware. Cliquez sur OK.

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

  4. Le modèle d’architecture logicielle TrajectorySoftware.slx est référencé à partir du composant TrajectoryPlanning.

    Trajectory planning component has a trajectory software architecture model reference.

  5. Double-cliquez sur le composant TrajectoryPlanning pour interagir avec le composant logiciel TrajectorySoftware.

    Trajectory software component.

Représenter l’interaction des systèmes avec des diagrammes de séquence

Pour représenter l’interaction des éléments structurels d’une architecture sous la forme d’une séquence d’échanges de messages, utilisez un diagramme de séquence dans l’Architecture Views Gallery.

Observez le modèle d’architecture du bras robotisé composé de composants, de ports, de connexions et de comportements. Les résultats de la simulation du modèle doivent correspondre aux interactions figurant au sein des diagrammes de séquence.

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

  1. Créez un nouveau diagramme de séquence en accédant à Modeling > Sequence Diagram. L’Architecture Views Gallery s’ouvre. Pour créer un nouveau diagramme de séquence, cliquez sur new New > Sequence Diagram.

  2. Un nouveau diagramme de séquence appelé SequenceDiagram1 est créé dans le navigateur de vues et l’onglet Sequence Diagram est activé. Sous Sequence Diagram Properties, renommez le diagramme de séquence RobotArmSequence.

  3. Pour ajouter une ligne de vie, cliquez sur le bouton Component > Add Lifeline button. Une nouvelle ligne de vie sans nom est créée et indiquée par une ligne en pointillé.

  4. Cliquez sur la flèche vers le bas et sélectionnez Sensor. Ajoutez une deuxième ligne de vie du nom de Motion.

  5. Sélectionnez la ligne en pointillé verticale pour la ligne de vie Sensor. Cliquez et faites glisser le curseur jusqu’à la ligne de vie Motion. Dans la zone To, commencez à taper Sensordata et choisissez SensorData dans le menu déroulant. Un message est créé à partir du port SensorData du composant Sensor vers le port SensorData du composant Motion.

  6. Cliquez sur le message pour savoir où placer la condition du message. Saisissez une condition de déclenchement du message sous la forme suivante :

    rising(SensorData.distance1-1)

    Le nom du signal est un élément de données sur une interface de données. Le message est reconnu lors de l’événement de franchissement de seuil, lorsque la valeur de SensorData.distance1 atteint 1.

Finished sequence diagram.

Voir aussi

Rubriques