tutos:rt-lab

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).

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.

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

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.
  • 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)
  • Faire toujours un “run” (mode Offline) sous simulink pour tester avant de le lancer sous RT-LAB
  • Gestion du temps réel

  • 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
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…
  • 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

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

  • É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 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)
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 FIXME:
    • 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

FIXME avec les programmes de la formation

Il est possible d’automatisé des tâches via un code Python directement dans RTlab grâce à “RT LAB API

Ne pas oublier de placer le RTlab API import

FIXME avec les programmes de la formation

  • Placer le bloc SimPower
  • Placer le bloc Arthemis

Arthemis est un solver qui permet d’accélérer la simulation pour les réseaux smartgrid

FIXME Voir avec ceux qui sont resté jusqu’à la fin.

  • tutos/rt-lab.txt
  • Dernière modification : 2017/10/25 10:12
  • de ygangat