- Accueil
- Produits
- Logiciels
- Logiciel d'expérimentation et de test
- AutomationDesk
- Automatisation de tests en temps réel
- Des tests en temps réel 100% reproductibles, exécutés de façon synchrone avec un modèle de simulation
- Des tests temps réels implémentés dans Python 2.5 (extensibles par l’utilisateur via des bibliothèques)
- Des variables de modèle observables et modifiables à tout moment de la simulation
- Plusieurs scripts de test indépendants exécutables en concurrence
- Aucune modification de modèle nécessaire pour les tests en temps réel
- Disponible pour la DS1005 et la DS1006 (pour les systèmes mono- ou multiprocesseurs), SCALEXIO et MicroAutoBox
Caractéristiques techniques
Caractéristiques techniques et cas d’utilisation
- Chargement de test dynamique pendant l’exécution du modèle et du test
- Support CAN de tests temps réels (basés sur le RTI CAN MultiMessage Blockset)
- Utilisation de données de fichier MAT localisées sur le PC hôte pour la stimulation en temps réel des variables du modèle
- Accès transparent aux variables dans les systèmes multiprocesseurs
- Simplicité des échanges d’objets Python entre des tests temps réel et le script Python de votre PC
- Gestion de test en temps réel par scriptage et interface utilisateur graphique spécifique.
- Intégration simple dans les structures de test clientes (AutomationDesk® ou autres)
- Real-Time Test Library dans AutomationDesk pour une gestion de scripts adaptée
Description des tests en temps réel dans Python
Les tests
automatisés sont habituellement effectués en exécutant des tests sur un
PC standard connecté au système Hardware-in-the-Loop (HIL). Toutefois,
cette méthode est rarement effective dès qu’une précision temporelle
poussée est nécessaire – par exemple quand il faut capturer
l’interaction du calculateur et y répondre en l’espace de quelques
millisecondes La solution : les scripts Python d’AutomationDesk pour les
tests en temps réels. Ils fonctionnent en temps réel sur la carte
processeur du système HIL, p.ex. de façon synchrone au modèle. Ainsi
toutes les étapes du test sont réalisées en temps réel ce qui offre des
options de test étendues avec le dSPACE Simulator. Il est possible
d’implémenter des tests réactifs répondant aux modifications des
variables du modèle pour la même étape de simulation. Les mesures
temporelles au sein des tests sont nettement plus précises comme il n’y a
plus de latences dans la communication. La période d’échantillonnage de
la simulation est à présent la seule limite à la résolution temporelle
maximale des mesures.
De nombreux clients avaient demandé la
portation de Real-Time Testing pour la MicroAutoBox. Ce support a été
intégré fin 2008 permettant ainsi l’utilisation du Real-Time Testing
pour le prototypage rapide de lois de commande et les scénarii en
véhicule. La retransmission en temps réel des données mesurées et
l’implémentation d’une passerelle CAN sur la MicroAutoBox en sont des
exemples d’application.
Tests en temps réel basés sur Python
Interpréteur Python utilisable en temps réel
Un interpréteur Python en temps réel qui fonctionne sur la carte processeur parallèlement au modèle, permet au script d’exécuter de façon synchrone au modèle. L’interpréteur peut exécuter plusieurs tests en temps réel simultanément et indépendamment d’autres tests. Les tests peuvent interagir avec le modèle de simulation en temps réel grâce à la mémoire de la carte processeur. Vous pouvez, cependant, observer et influencer les calculateurs connectés au simulateur HIL au cours de chaque étape de la simulation.
L’interpréteur est intégré à l’application pendant le processus de translation via l’option de création Real-Time Workshop. Vous pouvez formuler des tests en temps réel en utilisant les scripts Python standards des bibliothèques de tests en temps réel fournies par AutomationDesk (par exemple, pour accéder aux variables du modèle et exécuter en parallèle différentes parties d’un test à partir d’un seul test en temps réel). Il vous est ainsi possible de créer vos propres bibliothèques Python et de les réutiliser dans différents tests. Les tests créés sont téléchargeables du PC vers la carte processeur du simulateur ou vers la MicroAutoBox. Ils sont exécutables indépendamment du fait qu’un test en temps réel soit en cours ou pas. Même si l’exécution de tests en temps réel exige une capacité en mémoire et des temps de calcul plus élevés, les scénarii de test types sont facilement implémentables. Ils fonctionnent sur les cartes processeurs HIL, à des périodes d’échantillonnage de 1 ms, parallèlement aux modèles complexes de moteurs et de dynamique de véhicule.
Exemples de cas d’utilisation pour l’exécution de tests en temps réel
- Tests de réactivité dans une plage de quelques millisecondes
- Précision temporelle pour la stimulation de plusieurs signaux d’un modèle
- Précision temporelle pour la mesure des modifications d’un modèle
- Définition fiable des valeurs maximum et minimum des variables d’un modèle
- L‘exécution dynamique d’une simulation du restbus Python n’est pas incluse dans le modèle de simulation
- Retransmission exacte de la communication du bus enregistrée (comme les fichiers log CAN ou FlexRay)
- Exécution parallèle de plusieurs tests indépendants du calculateur
Observateurs en temps réel
Implémentation d’observateurs en temps réel
Un cas de test commun est la détection d’un événement généré par le modèle en temps réel. Un événement est spécifié par une condition qui renvoie à une ou plusieurs variables du modèle en temps réel. Une fois l’événement détecté, une action de test est immédiatement triggée dans la même étape d’échantillonnage. Dans cet exemple, le script en temps réel respecte la vitesse d’un véhicule simulé et réagit en effectuant une manœuvre d’arrêt d’urgence dès que le véhicule dépasse une vitesse de 80 km/h. Ce cas de test peut être facilement implémenté par un script Python en temps réel. La condition reste respectée au sein d’une boucle Tant que (While). L’instruction Yield incluse a pour effet d’interrompre l’exécution du test et de la résumer ultérieurement dans l’étape suivante de la simulation. Le contrôle temporel du script est ainsi facilité. Dès que la vitesse dépasse 80 km/h, le modèle quitte la boucle Tant que et lance la manœuvre de freinage en définissant le paramètre associé dans la même étape de simulation.
Stimulus en temps réel
Implémentation d’un stimulus en temps réel
Dans de nombreux scénarii de test, les données enregistrées pour la stimulation du calculateur doivent être retransmises d’après un timing correct. Dans cet objectif, les scripts Python en temps réel peuvent exécuter une génération de stimulus précisément synchronisée d’après des variables de modèle prédéfinies. Citons à titre d’exemple un générateur de signaux sinusoïdaux implémentable à l’aide de la fonctionnalité sinusoïdale standard du module mathématique de Python (voir l’exemple de scriptage).
Des données de mesure enregistrées peuvent également être retransmises par un mécanisme de chargement intelligent dans lequel le script en temps réel Python référence un fichier enregistré (fichier MAT) sur le disque dur du PC. Le script relie les vecteurs de données du fichier aux paramètres cible du modèle. Si, par exemple, le test en temps réel exige que les données soient retransmises exactement 50 ms après la réception d’un message CAN donné, une simple commande de retransmission dans le script Python permet de trigger le transport des données en temps réel du PC au matériel en temps réel, dans les délais impartis. Ce mécanisme de chargement automatique supporte la retransmission de volumes de données importants tels que les fichiers log de test de conduite comportant plusieurs centaines de Mo. Il est possible d’exécuter simultanément plusieurs processus de retransmission et ils sont tous contrôlables indépendamment les uns des autres. Dans un système multiprocesseur, vous pouvez même stimuler de façon synchrone sur plusieurs nœuds secondaires.
Restbus CAN
Implémentation de la simulation du restbus CAN
Afin de programmer une simulation du restbus CAN, Real-Time Testing est véritablement intégré au RTI CAN MultiMessage Blockset. Le jeu de blocs comprend une option permettant de préparer l’accès CAN au Real-Time Testing. Les scripts en temps réel peuvent alors envoyer et recevoir des messages CAN comportant des ID et des contenus CAN librement définissables ce qui facilite les tests de simulation du restbus d’après des cas déterminés. Ces entités dynamiques du restbus (telles que les messages de test CAN spécifiques au calculateur) sont chargeables et exécutables sur le matériel en temps réel comme voulu et ne constituent plus une entité statique du modèle de simulation.
Le monitoring d’un signal d’entrée analogique forme un exemple de scénario de test possible (voir l’illustration ci-dessous). Quand une valeur seuil définie du trigger (par exemple 14.7 V) est dépassée, un message CAN prédéfini est envoyé toutes les 50 ms jusqu’à ce que cette valeur se trouve de nouveau sous la valeur seuil définie. Un autre exemple d’application consiste à prendre une communication CAN ayant été enregistrée pendant une conduite de test et à la rejouer en laboratoire avec un timing correct.

