RT-LAB

Sur cette page sont regroupées les notes relatives à la formation Opal-RT sur RT-LAB.

Les fichiers de la formation se trouvent ici (Accès en interne uniquement, mot de passe à voir avec Yassine) : slides et exemples fournis par le formateur, patch pour Matlab 2015aSP1 (problème d’affichage à l’ouverture de fenêtres Matlab 2015aSP1).

Notes Installation

RT-LAB Library

Defaut d’ installation RT-LAB Library dans simulink.

Lors de l’installation d’opal-rt, puis au lancement de matlab, puis simulink, la library RT-LAB n’apparait pas. Un defaut d’installation détecté a régler avec la procédure suivante.

Suite a l’installation de Matlab puis Opal-RT. copier le fichier setup_rtlab.m depuis C:\OPAL-RT\RT-LAB\v11.1.4.59\Simulink\m vers C:\OPAL-RT\RT-LAB\v11.1.4.59\Simulink\m

puis une fois matlab lancé, ouvrez ce fichier depuis C:\OPAL-RT\RT-LAB\v11.1.4.59\Simulink\m Executez ce script. Puis ouvrez simulink, a l’ouverture de la librairie un message en haut de la fenêtre s’affiche, cliquez sur FIX. la librairie RT-LAB doit apparaitre.

Mode d'utilisation de simulation temps réel

Model in the loop : Pas d’organe réel, tout simulé Hardware in the loop : Contrôleur réel et autre organe simulé Prototypage rapide : Contrôleur simulé et autre organe réel Power Hardware in the loop : Ajout de la notion de puissance par le bias d’un convertisseur

Slides n°2 et 3

Création du modèle

Structurer son modèle en sous-système (subsystem) avec les sous-systèmes suivants :

Un sous-système nommé SM_nom pour la partie calcul qui sera compilé sur un cœur du simulateur

Un sous-système nommé SC_nom pour le GUI qui sera utilisé sur le PC pour la supervision [scopes, displays, switches, constants]

Des sous-systèmes SS_nom qui pourra être utilisé pour le calcul en parallèle sur plusieurs cœurs du simulateur.

Dans chaque sous-système, rajouter un bloc OpComm qui aura le même nombre d’I/O que les entrées du sous-système et qui sera placé juste après chaque entrée du sous-système assurer la communication entre les sous-systèmes.

Config

Désactiver dans “Model Configuration Parameter” (roue dentée) les options:

Block Reduction (dans le sous-menu “Optimization”)

Signal Storage (dans le sous-menu “Optimization/Signal”)

Mettre un pas de temps fixe (impossible d’utiliser un temps de simulation variable dans une configuration temps réel)

Conseil

Faire toujours un “run” (mode Offline) sous simulink pour tester avant de le lancer sous RT-LAB

Gestion du temps réel

Ajout du modèle sur le système OpalRT

Ouvrir RT lab sur l’ordinateur

Ajouter une cible en réalisant un clic droit sur “target” puis “new target”

Créer un nouveau projet grâce au bouton + sur le menu contextuel

Lier ou importer le modèle créer précédemment

Lancement de la simulation sur le système OpalRT

Pour le cablage a l’arrière d’OpalRT et dans le mode “auto-alimenté” de la carte, brancher ou débrancher la carte avec l’alimentation coupée.

Clic gauche sur le modèle importé

Aller dans l’ongle “overview”

Clic sur “build” et attendre la compilation

Clic sur “load” pour charger le projet dans le système OpalRT

Clic sur “execute” pour lancer la simulation temps réel et réaliser la supervision grâce à votre GUI

À la fin de chaque simulation, ne pas oublier de cliquer sur “reset” en dessous de “execute” pour terminer la simulation et permettre à un autre utilisateur de lancer sa simulation. Et si plusieurs personne utilise le système en même temps, choisir les coeurs utilisés dans les options “advence”.

Une erreur courante : lorsque le répertoire OpREDHAWKtarget (dans lequel se trouve d’ailleurs les fichiers .mat) est ouvert, RT-LAB renvoie une erreur lors du build.

Faire un rebuild all au lieu de build, en particulier après une erreur de RT-LAB…

Pour la modification de paramètre en direct

Réaliser les étapes pour lancer la simulation

Aller sur le modèle et cliquer sur Variables Tables

Aller dans le menu contextuel sur la gauche et étendre le menu contextuel jusqu’à voir apparaitre les variables (blocs) du système

Ouvrir le menu contextuel du bloc nécessaire et faite un drag and drop de la variable dans Variables Tables

Monitoring de la simulation temps réel

Méthode statique

Éditer votre modèle pour ajouter un bloc OPmonitor dans le sous-système GUI (SC) (disponible dans la bibliothèque)

Ne pas relier l’entrée du bloc et relier les sorties sur un “mux” pour concaténer les variables dans un vecteur

Relier la sortie du mux sur un display et régler sa taille afin de permettre l’affichage des variables

Répéter les étapes pour lancer la simulation

Méthode Dynamique

Permet de de monitorer tout les signaux dynamique (voir image ci-dessous)

Dans Matlab/simulink

Dans OpComm du SC_xxx, cocher l’option “Dynamic signal acquisition”

Le relier directement à un display ou déconcatener avec un demux

Dans RT-LAB

Cliquer sur “probe control” dans les icônes en haut

Cliquer sur signaux

Choisir le nombre de signaux à visualiser

Développer le menu contextuelle qui liste les signaux

Faite un drag and drop du signal désiré dans le tableau

Ouvrir le scope pour vérifier la visualisation

Sauvegarde de donnée sur le disque dur du système OpalRT

Éditer votre modèle pour ajouter un bloc “OPwritefile” dans le sous-système de calcul (SM)

Ajouter un mux qui concaténera toutes les variables à enregistrer dans un seul vecteur

Relier la sortie du mux au bloc OPwritefile et modifier les paramètres du bloc (taille du fichier, nom du fichier, nom du vecteur, etc.)

Le fichier créé (un .mat) se trouve dans un sous-répertoire du workspace (chemin_workspace/nom_projet/models/nom_du_modele_matlab/nom_du_SM/OpREDHAWKtarget/ )

Seulement 5 blocs OPwritefile peuvent être placés dans un modèle

Il est possible de rajouter un bloc “OpTrigger” : cela permet de lancer l’acquisition de donnée à partir d’une certaine condition. Il faut faire attention à ce que “AcquisitionGroup” soit le même dans OpTrigger et OpWriteFile

Calcul de nombre d’enregistrement par seconde (Ns/sec) :

Exemple pour un système électrique

Fenêtre de mesure (d) = 200 ms ; Ts = 50 micro seconde ; Decimation factor (Df) = 1

Ns/s = d/(Ts*Df) = 4000

Pour un calcul sur plusieurs processeurs

Pour de la parallélisation, Il faut séparer le modèle en sous-système

Il faut aussi placer un générateur d’état sur chaque sous-système (Integrator ou Memory)

Slides n°4

Utilisation des entrées/sorties

Toujours placer les fichiers .bin et .conf disponible dans le dossier “…\OPAL-RT Training\3 - Project Files\Test Model” dans le même dossier que le programme simulink avant de l’importer dans RT lab.
Un numéro de port correspond à 8 sortie, d’où le mux pour choisir la bonne sortie/entrée
RT lab doit être configurer sur “Hardware synchronise” si de entrées/sorties sont utilisés. De plus, le mode XHP (Extra High Performence) doit être activé.

Sortie analogique

Placer les bloc AnalogOut (disponible dans la bibliothèque simulink RTlab I/O→ OpalRT → common)

Configurer le numéro de port (voir les numéro de port dans la datasheet)

Mettre en entrée un mux pour choisir la sortie analogique (si une seule sortie est utilisé et qu’il s’agit de la première, ne pas mettre de mux et réglé le bloc AnalogOut pour n’utiliser qu’une seule sortie)

Placer le bloc OpCtrl et le configurer (nom du .bin, etc.)

Entrée analogique

Placer les bloc AnalogIn (disponible dans la bibliothèque simulink RTlab I/O→ OpalRT → common)

Mettre en sortie un demux pour choisir l’entrée analogique (si une seule entrée est utilisé et qu’il s’agit de la première, ne pas mettre de demux et réglé le bloc AnalogIn pour n’utiliser qu’une seule entrée)

Placer le bloc OpCtrl et le configurer (nom du .bin, etc.)

Entrée/Sortie digital

La procédure est la même que pour les entrées/sorties analogique à la différence que le bloc est DigitalIn / DigitalOut ou si on utilise une PWM → PWMin / PWMout

Les port number pour les entrées/sorties digital ne peuvent être utilisés que sur une configuration : Digital PWM tsd

RTE events

Utilisé dans le cas ou la fréquence de la PWM générer par simulink (hors utilisation des entrées/sorties PWM) est trop élevé pour le calcul sur le processeur.

Utilisé pour la génération de transition à l’intérieur du pas de temps

Toujours faire attention au pas de temps, ils doivent toujours être des multiple pour être synchronisé

Deux bloc disponible :

RTE relation operator : un seule événement par pas de temps

SPWM : pour des fréquences très élevés avec un maximum de 255 événement par pas de temps