UTILISER MATLAB 2020

Présentation de Simulink Desktop Real-Time

Simulink Desktop Real Time est un environnement logiciel qui permet de mettre au point, de tester et de mettre en œuvre des applications temps réel sur du matériel de type PC.  Cet outil offre l’avantage d’être associé à Matlab/Simulink, ce qui permet de passer de la phase essai/simulation à la phase mise en œuvre/expérimentation rapidement et facilement en s’affranchissant de l’étage de codage.

L’ordinateur qui sert au développement sert également à exécuter un code en temps réel : il a deux rôles bien distincts.

 -          En tant que PC hôte, il sert d’unité de développement. A partir de Matlab/Simulink, il est possible de générer directement un code de commande (commande de la montre dans notre cas).

-          En tant que PC cible, il est orienté temps réel. Il permet d’exécuter le code engendré par l’unité de développement. Il est équipé de cartes qui lui permettent de commander le processus.

La Figure ci dessous présente les entités manipulées en TP : le PC avec la partie développement avec Matlab/Simulink, la partie PC cible et le système à contrôler.


Configuration manuelle de Simulink Desktop Real-Time
  1. Réalisation du modèle développé sous Simulink

On va réaliser un modèle avec un convertisseur numérique-analogique (CNA ici le bloc Analog Output) et un convertisseur analogique-numérique (CAN ici Analog Input). Ces deux blocs se trouvent dans la bibliothèque Simulink Desktop Real-Time.

Il faut régler les blocs Analog Output et Analog input en fonction de la carte E/S (celle contenant les CAN et les CNA).

Pour cela double cliquer sur le bloc (exemple pour Analog Output) :


Cliquer sur install new board. Il faut mettre le nom de la carte, il se trouve sur votre paillasse sur le boitier E/S. Dans cet exemple la carte est une carte National Instrument PCI-6024E.

Une fenêtre apparait. Vous pouvez tester la disponibilité du matériel, puis cliquez sur OK.

Il ne faut pas oublier de régler la période d’échantillonnage, je vous conseille de définir Te et de l’utiliser dans tous vos blocs/ scripts.

Afin de ne pas sortir de signal avant et après votre simulation, mettre initial value et final value à zéro.

Il faut choisir quel port vous utilisez (les boitiers n’ont que 2 ports, le port1 ou le port 2). Si vous voulez utiliser simultanément les deux ports, il faut mettre deux blocs « analog Output ».

Pour le deuxième bloc, il ne faut plus installer la carte mais aller chercher dans la liste des cartes installées, celle que vous venez d’installer.

Le nom de la carte apparait maintenant en dessous des 2 blocs.

Pour récupérer les données sous Matlab, on utilise les blocs de sorties habituels de Simulink.

  1. Compilation et exécution du modèle développé sous Simulink

Pour compiler le programme, cliquer sur le menu Modeling/Model settings


L’écran suivant apparait :


Sélectionner l’onglet Solver.

Dans le paragraphe Simulation Time, mettre « inf » dans Stop time (ou une durée déterminée si elle est connue)

Ce réglage permet de fixer le temps au bout duquel le programme doit s’arrêter. Ici on met inf pour infini, le programme tournera sans interruption sur la cible.

Dans le paragraphe Solver Options, choisir « Fixed-Step» dans Type, mettre « Discrete » dans Solver, taper « Te » dans Fixed-Step size. Sauvegarder vos modifications en cliquant sur le bouton Apply.

Vous devez avoir l’écran suivant :


Le paramètre Te sera le pas de calcul de l’horloge interne du PC Cible, soit la période d’échantillonnage. Il faudra le spécifier sous Matlab et sous Simulink :

Dans la fenêtre ‘Command Window’ de Matlab, fixer le pas de calcul Te.

Mettre le même Te comme Sample Time dans les CAN/CNA PCI 6024E.

Sélectionner l’onglet Code Generation. Dans le paragraphe Target Selection, choisir à l’aide du bouton Browse « sldrt.tlc» dans System target file. Sauvegarder vos modifications en cliquant sur le bouton Apply.

Pour compiler et exécuter le programme, il suffit de taper sur run in Real Time dans l’onglet Desktop Real-Time.


ATTENTION, la compilation doit prendre un peu de temps, sinon vous devez être dans l'onglet de simulation ce qui n'est pas la même chose!

La compilation prend un certain temps, elle est terminée lorsque vous voyez les signaux apparaitre.

 


Modifié le: vendredi 26 janvier 2024, 10:27