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.
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
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 :
Ouvrez un nouveau modèle Simulink. Consultez la rubrique Ouvrir un nouveau modèle.
Ouvrez l'explorateur de bibliothèques. Consultez la rubrique Ouvrir l'explorateur de bibliothèques Simulink.
Ajoutez des blocs Subsystem. Faites glisser cinq blocs Subsystem de la bibliothèque Ports & Subsystems vers le nouveau modèle.
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.
Organisez et renommez les blocs Subsystem comme indiqué. Pour modifier le nom d'un bloc, double-cliquez dessus et modifiez le texte.
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.
Bloc | Entrée(s) | Sortie(s) | Informations |
---|---|---|---|
Inputs | Aucune | Force sur la roue droite Force sur la roue gauche | Non applicable |
Right Wheel | Force sur la roue droite | Vitesse de la roue droite | Directionnelle, négative signifie sens inverse |
Left wheel | Force sur la roue gauche | Vitesse de la roue gauche | Directionnelle, négative signifie sens inverse |
Rotation | Différence de vitesse entre les roues droite et gauche | Angle de rotation | Mesuré(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 | Aucune | Aucun 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 :
Ajoutez les ports d'entrée et de sortie nécessaires à chaque sous-système. Double-cliquez sur un bloc Subsystem.
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.
Lorsque vous copiez un bloc Inport pour en créer un nouveau, utilisez l'option Paste (Ctrl + V).
Calculez les entrées requises pour les sous-systèmes Coordinate Transform et Rotation à partir des vitesses des roues gauche et droite.
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.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.
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
.Finalisez les connexions du système.
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ètre | Bloc | Symbole | Valeur | Type |
---|---|---|---|---|
Mass | Left Wheel Right Wheel | m | 2.5 kg | Variable |
Rolling resistance | Left Wheel Right Wheel | k_drag | 30 Ns2/m | Variable |
Robot radius | Rotation | r | 0.15 m | Variable |
Initial angle | Rotation | Aucun | 0 rad | Fixed |
Initial velocities | Left Wheel Right Wheel | Aucun | 0 m/s 0 m/s | Fixed |
Initial (X, Y) coordinates | Integrators | Aucun | (0, 0) m | Fixed |
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;