Main Content

Définition et structure du système

La structure du système au niveau supérieur d'un modèle Simulink® est un contexte courant que de nombreuses équipes d'ingénierie peuvent utiliser et constitue la base de nombreuses tâches dans le paradigme de l'approche Model-Based Design : analyse, design, test et implémentation. Définissez un système au niveau supérieur en identifiant la structure et les composants individuels. Organisez ensuite votre modèle d'une manière hiérarchique qui correspond aux composants. Définissez ensuite des interfaces pour chaque composant et les connexions entre les composants.

Le modèle présenté dans ce tutoriel est un robot plat qui peut se déplacer ou tourner sur deux roues, similaire à un aspirateur-robot domestique. Ce modèle suppose que le robot se déplace de l'une des deux façons suivantes :

  • Linéaire — Les deux roues tournent dans la même direction à la même vitesse et le robot se déplace de façon linéaire.

  • Rotative — Les roues tournent dans des directions opposées à la même vitesse et le robot tourne sur place.

A flat circular robot is shown from the top. The center of the circular robot perimeter is the origin of the polar coordinate system. The direction of motion is indicated by the angle theta, which is marked as about 30 degrees above the horizontal axis pointing right. The wheel axis is perpendicular to the direction of motion. The wheels are lined up parallel to the direction of motion.

Chaque type de mouvement commence à partir d'un état de repos où les vitesses rotative et linéaire sont égales à zéro. Avec ces hypothèses, les composants de mouvement linéaire et rotatif peuvent être modélisés séparément.

Déterminer les objectifs de modélisation

Avant de concevoir un modèle, examinez vos objectifs et vos exigences. Les objectifs déterminent à la fois la structure et le niveau de détail du modèle. Si l'objectif est simplement de déterminer la vitesse de déplacement du robot, la modélisation pour le mouvement linéaire est suffisante. Si l'objectif est de concevoir un ensemble d'entrées pour que l'appareil suive une trajectoire donnée, le composant de mouvement rotatif est impliqué. Si l'évitement d'obstacles est un objectif, le système nécessite un capteur. Ce tutoriel permet de créer un modèle dont l'objectif est de concevoir des paramètres de capteur de sorte que le robot s'arrête à temps lorsqu'il détecte un obstacle sur sa trajectoire. Pour atteindre cet objectif, le modèle doit :

  • Déterminer la rapidité d'arrêt du robot lorsque le moteur s'arrête

  • Fournir une série de commandes pour les mouvements linéaire et rotatif afin que le robot puisse se déplacer dans un espace en deux dimensions

Le premier objectif de modélisation vous permet d'analyser le mouvement afin de concevoir le capteur. Le deuxième objectif vous permet de tester votre design.

Identifier les composants et les interfaces du système

Une fois que vous avez compris vos exigences de modélisation, vous pouvez commencer à identifier les composants du système. L'identification des composants individuels et de leurs relations au sein d'une structure de niveau supérieur permet de créer systématiquement un modèle potentiellement complexe. Effectuez ces étapes en dehors de Simulink avant de commencer à créer votre modèle.

Cette tâche implique de répondre aux questions suivantes :

  • Quels sont les composants structurels et fonctionnels du système ? Lorsqu'un layout reflète la structure physique et fonctionnelle, il vous permet de comprendre, créer, communiquer et tester le système. Cela devient plus important lorsque des parties du système doivent être implémentées à différentes étapes du processus de design.

  • Quelles sont les entrées et les sorties de chaque composant ? Dessinez un schéma montrant les connexions entre les composants. Ce schéma vous permet de visualiser le flux du signal dans le modèle, d'identifier la source et le récepteur de chaque signal et déterminer si tous les composants nécessaires existent.

  • Quel est le niveau de détail nécessaire ? Ajoutez les principaux paramètres du système dans votre schéma. La création d'une image du système peut vous aider à identifier et à modéliser les parties essentielles aux comportements que vous souhaitez observer. Chaque composant et paramètre qui contribue à l'objectif de modélisation doit avoir une représentation dans le modèle, mais il est important de trouver un compromis entre la complexité et la lisibilité. La modélisation peut être un processus itératif. Vous pouvez commencer par un modèle de niveau supérieur avec peu de détails, puis augmenter progressivement la complexité si nécessaire.

Il est souvent utile de tenir compte des points suivants :

  • Quelles parties du système doivent être testées ?

  • Quelles sont les données de test et les critères de réussite ?

  • Quelles sont les sorties nécessaires pour les tâches d'analyse et de design ?

Identifier les composants de mouvement du robot

Le système de ce tutoriel définit un robot qui se déplace sur deux roues électriques en deux dimensions. Il comprend :

  • Les caractéristiques du mouvement linéaire

  • Les caractéristiques du mouvement rotatif

  • Les transformations pour déterminer l'emplacement du système en deux dimensions

  • Un capteur pour mesurer la distance du robot par rapport à un obstacle

The block diagram lists these components from left to right: force inputs, left wheel, right wheel, rotation computation, coordinate transformation, sensor.

Le modèle de ce système comprend deux roues identiques, les forces d'entrée appliquées aux roues, la dynamique de rotation, la transformation des coordonnées et un capteur. Le modèle utilise un bloc Subsystem pour représenter chaque composant :

  1. Ouvrez un nouveau modèle Simulink. Consultez la rubrique Ouvrir un nouveau modèle.

  2. Ouvrez l'explorateur de bibliothèques. Consultez la rubrique Ouvrir l'explorateur de bibliothèques Simulink.

  3. Ajoutez des blocs Subsystem. Faites glisser cinq blocs Subsystem de la bibliothèque Ports & Subsystems vers le nouveau modèle.

  4. Cliquez sur un sous-système. Dans l'onglet Format, cliquez sur la liste déroulante Auto. Puis décochez la case Hide Automatic Block Names.

    The Auto drop-down list is expanded. The Hide Automatic Block Names check box is cleared.

  5. Organisez et renommez les blocs Subsystem comme indiqué. Pour modifier le nom d'un bloc, double-cliquez dessus et modifiez le texte.

    Five Subsystem blocks have the names: Inputs, Left Wheel, Right Wheel, Rotation, and Coordinate Transformation.

Définir les interfaces entre les composants

Identifiez les connexions d'entrée et de sortie entre les sous-systèmes. Les valeurs d'entrée et de sortie changent dynamiquement pendant une simulation. Les lignes reliant les blocs représentent le transfert de données. Ce tableau indique les entrées et sorties de chaque composant.

BlocEntrée(s)Sortie(s)Informations
InputsAucune

Force sur la roue droite

Force sur la roue gauche

Non applicable
Right WheelForce sur la roue droiteVitesse de la roue droiteDirectionnelle, négative signifie sens inverse
Left wheelForce sur la roue gaucheVitesse de la roue gaucheDirectionnelle, négative signifie sens inverse
Rotation Différence de vitesse entre les roues droite et gaucheAngle de rotationMesuré(e) dans le sens antihoraire
Coordinate Transformation

Vitesse normale

Angle de rotation

Vitesse en X

Vitesse en Y

Non applicable
Sensor

Coordonnée X

Coordonnée Y

AucuneAucun bloc nécessaire pour la modélisation

Certaines entrées de bloc ne correspondent pas exactement aux sorties de bloc. Par conséquent, en plus de la dynamique des composants individuels, le modèle doit calculer les éléments suivants :

  • Entrée pour le calcul de la rotation — Soustrayez les vitesses des deux roues et divisez par deux.

  • Entrée pour la transformation des coordonnées — Calculez la moyenne des vitesses des deux roues.

  • Entrée pour le capteur — Intégrez les sorties de la transformation des coordonnées.

Les vitesses des roues sont toujours égales en amplitude et les calculs sont corrects selon cette hypothèse.

Ajoutez les composants nécessaires et finalisez les connexions :

  1. Ajoutez les ports d'entrée et de sortie nécessaires à chaque sous-système. Double-cliquez sur un bloc Subsystem.

    An Inport block named In1 connects to an Outport block named Out1.

    Chaque nouveau bloc Subsystem contient un bloc Inport (In1) et un bloc Outport (Out1). Ces blocs définissent l'interface de signal avec le niveau supérieur immédiat dans une hiérarchie de modèle.

    Chaque bloc Inport crée un port d'entrée sur le bloc Subsystem, et chaque bloc Outport crée un port de sortie. Le modèle indique les noms de ces blocs comme noms de ports d'entrée/de sortie. Ajoutez des blocs supplémentaires pour des signaux d'entrée et de sortie supplémentaires. Dans la barre d'outils de l'éditeur Simulink, cliquez sur le bouton Navigate Up To Parent pour revenir au niveau supérieur.

    Pour chaque bloc, ajoutez et renommez les blocs Inport et Outport.

    The five Subsystem blocks are shown with previews of the subsystem contents visible. In the Subsystem block named Inputs, Outport blocks named Left force and Right force are visible.

    Lorsque vous copiez un bloc Inport pour en créer un nouveau, utilisez l'option Paste (Ctrl + V).

  2. Calculez les entrées requises pour les sous-systèmes Coordinate Transform et Rotation à partir des vitesses des roues gauche et droite.

    1. Calcul de l'entrée Linear Speed du sous-système Coordinate Transform. Ajoutez un bloc Add de la bibliothèque Math Operations et connectez les sorties des composants de deux roues. Ajoutez un bloc Gain et définissez le paramètre Gain sur 1/2. Connectez la sortie du bloc Add à ce bloc Gain.

    2. Calcul de l'entrée Speed difference du sous-système Rotation. Ajoutez un bloc Subtract de la bibliothèque Math Operations. Connectez la vitesse de la roue droite à l'entrée + et la vitesse de la roue gauche à l'entrée -. Connectez les sorties des composants de deux roues. Ajoutez un bloc Gain et définissez le paramètre Gain sur 1/2. Connectez la sortie du bloc Subtract à ce bloc Gain.

      The Subsystem block named Left Wheel is above the Subsystem block named Right Wheel. The input port of both blocks is named Force, and the output port is naemd Speed. Both output port connect to an Add block that connects to a Gain block with the value of 1/2. Both output ports also connect to a Subtract block that subtracts the speed of the left wheel from the speed of the right wheel and then connects to a Gain block with a value of 1/2.

  3. Calcul des coordonnées X et Y à partir des vitesses X et Y. Ajoutez deux blocs Integrator de la bibliothèque Continuous et connectez les sorties du bloc Coordinate Transform. Laissez les conditions initiales des blocs Integrator définies sur 0.

    The Subsystem named Coordinate Transform has two input ports, named Linear speed and Angle, and two output ports named X speed and Y speed. Both output ports connect to an Integrator block.

  4. Finalisez les connexions du système.

    In the completed model, the Subsystem block named Subsystem connects to the Subsystem blocks named Left Wheel and Right Wheel. The wheel subsystems connect to an Add block that connects to a Gain block with the value of ½ that connects to the Subsystem block named Coordinate Transform. The wheel subsystems also connect to a Subtract block that subtracts the left wheel speed from the right wheel speed and connects to a Gain block with the value of ½. The Gain block connects to the Subsystem block named Rotation that connects to the Subsystem block named Coordinate Transform. Both of the output ports of the Coordinate Transform subsystem connect to an integrator block.

Paramètres et données

Déterminez les paramètres qui font partie du modèle et leurs valeurs. Utilisez les objectifs de modélisation pour déterminer si ces valeurs sont toujours fixes ou si elles changent d'une simulation à une autre. Les paramètres qui contribuent à l'objectif de modélisation nécessitent une représentation explicite dans le modèle. Ce tableau permet de déterminer le niveau de détail lors de la modélisation de chaque composant.

ParamètreBlocSymboleValeurType
Mass

Left Wheel

Right Wheel

m2.5 kg Variable
Rolling resistance

Left Wheel

Right Wheel

k_drag30 Ns2/mVariable
Robot radiusRotationr0.15 mVariable
Initial angleRotationAucun0 radFixed
Initial velocities

Left Wheel

Right Wheel

Aucun

0 m/s

0 m/s

Fixed
Initial (X, Y) coordinatesIntegratorsAucun(0, 0) mFixed

Simulink utilise l'espace de travail MATLAB® pour évaluer les paramètres. Définissez les paramètres suivants dans la fenêtre de commande MATLAB :

m = 2.5;
k_drag = 30;
r = 0.15;

Sujets associés