Vous êtes sur la page 1sur 38

A Introduction Tutoriel pour les systèmes

de contrôle de développement et mise en œuvre


avec dSPACE

Nicanor Quijano et Kevin Passino


Département de génie électrique de
l'Université Ohio State
2015 Neil Ave.
Columbus, OH 43210

Santhosh Jogi
dSPACE Inc. 22260
Haggerty route
Suite 120
Northville, MI 48167

Abstrait: L'objectif de ce document est de fournir un tutoriel d'introduction au logiciel dSPACE, la carte contrôleur
dSPACE DS1104, et leur utilisation dans le développement et la mise en œuvre d'un système simple de contrôle de la
température. Il est destiné à être utilisé comme un guide de démarrage rapide pour dSPACE matériel / logiciel pour un
cours universitaire. Tous les détails sur le matériel et les logiciels dSPACE se trouvent dans la documentation dSPACE.

Créé: 18/01/02
Version: 29/03/02
Table des matières

1 Contrôle Environnement Desk .............................................. ........................................... 3

2. Conception et mise en œuvre d'une expérience simple avec dSPACE .......................... 5

2.1 Contrôle de la température Problème et connexions physiques ........................................... ....... 6

2.2 Création d'une nouvelle expérience ............................................. .................................................. ......7

2.3 Interfaçage logiciel dSPACE à l'expérience ........................................... ...................... 9


2.3.1 analogique et numérique à analogique à des connexions de conversion numérique ...................................... ........... dix
2.3.2 conversion analogique-numérique (ADC) et Signal Mise à l'échelle ..................................... .......................... 13
2.3.3 conversion numérique analogique (DAC) et initialisation / Résiliation .................................... ...... 15
2.3.4 en temps réel et la structure d'un programme en temps réel ................................... .................................. 17

2.4 Développement Controller dans Simulink ............................................. ....................................... 18


2.4.1 Simulink pour la conception du contrôleur ........................................... .................................................. ........... 18
2.4.2 Construction du modèle Simulink ........................................... .................................................. .............. 19

2,5 Interface utilisateur graphique pour l'Expérience ........................................... ............................. 23

2.6. Capturer des données ................................................ .................................................. ..................... 28


2.6.1 Saisie des données avec le Traceur .......................................... .................................................. .............. 28
2.6.2 Saisie des données Sans Traceur .......................................... .................................................. ......... 32

3. Exercice: mettre en œuvre un système de contrôle de la température dans dSPACE ............................ 34

4. Remarques et conseils pour conditionnement de signaux .......................................... ......................... 37


1 Contrôle Environnement Desk

Vous devez rester assis devant un ordinateur avec le logiciel dSPACE et la carte DS1104. Notre intention dans cette

première section est de vous guider à travers la façon de démarrer le logiciel et de comprendre ses fonctions principales. Dans la

section suivante, nous montrerons comment utiliser le logiciel et le matériel pour mettre en œuvre un système de contrôle très

simple.

Tout d'abord, à partir du système d'exploitation du PC, le raccourci suivant permet d'accéder à l'environnement

dSPACE ControlDesk:

Si le raccourci n'existe pas sur le bureau s'il vous plaît lancer ControlDesk à partir du dossier « dSPACE Outils » sous «

Démarrer / Programmes ». De toute façon, une fois que vous y accédez, vous trouverez la fenêtre suivante:

Navigateur

fenêtre outil

ControlDesk est un interface utilisateur. La carte DS1104 est considéré comme une plate-forme sur laquelle une simulation est

exécutée, tout comme Matlab est également une plate-forme pour exécuter des simulations en temps non réel. C'est pourquoi vous

verrez des icônes tant pour les DS1104 et Matlab dans l'onglet Plate-forme
le navigateur. Ils sont les deux plates-formes de simulation qui peut ControlDesk interface pour, mais pour ce document,

nous mettrons l'accent sur l'utilisation ControlDesk avec le DS1104. De cet environnement, vous serez en mesure de

télécharger des applications sur le DS1104, configurer l'instrumentation virtuelle que vous pouvez utiliser pour contrôler,

surveiller et automatiser des expériences et développer des contrôleurs. Notez que dans la vue ci-dessus (paramètres de la

fenêtre par défaut du ControlDesk) que vous voyez trois régions.

La région dans le coin supérieur gauche est appelé le navigateur; il comporte trois onglets (expérience,

Instrumentation et plate-forme). Comme mentionné précédemment, l'onglet Plate-forme montre les différentes

plates-formes de simulation qui peut ControlDesk interface pour. Vous verrez Matlab comme une plate-forme, et la carte

DS1104 comme l'autre plate-forme. Notez que le DS1104 est répertorié sous « système local ». Il existe différentes

façons dont le matériel dSPACE peut être connecté à l'ordinateur qui exécute ControlDesk et « système local » indique si

le matériel dSPACE est dans un emplacement d'extension dans le PC lui-même. Si vous avez ajouté une autre carte

dSPACE au PC, il serait enregistré dans ControlDesk et se présenteraient sous la rubrique « système local. » Si vous

faites un clic droit sur l'icône Matlab dans l'onglet Plate-forme vous aurez accès à Matlab / Simulink, toutefois utiliser

cette méthode que si vous interfacez ControlDesk à une simulation en cours d'exécution dans Matlab. Pour ce document

s'il vous plaît lancer Matlab séparément, de façon normale.

L'onglet Instrumentation affichera une liste des cours ouverts « Layouts » (panneaux de l'interface graphique que vous

construirez), et les instruments graphiques associés à ces mises en page. Dans l'onglet Instrumentation, vous pouvez ouvrir les boîtes

de dialogue de propriété pour tout instrument sur une mise en page.

Dans la région sur le fond (fenêtre Tool), lorsque vous sélectionnez l'onglet Log Viewer, vous sont fournis avec des

messages d'erreur et d'avertissement. L'onglet Sélecteur de fichiers vous présente avec vue similaire à l'Explorateur Windows

car il vous permet de naviguer à travers le système de fichiers du PC, et choisir et télécharger des applications avec un

glisser-déposer action. Le (Python) onglet interprète (qui utilise le langage de programmation « Python »), gère les

commandes Python et des scripts pour l'automatisation et ControlDesk TestAutomation. D'autres onglets apparaissent en

fonction de ce que vous faites dans le ControlDesk (par exemple, lorsque vous compilez un modèle tel que discuté

ci-dessous).
Le sélecteur de fichiers affiche uniquement certains types de fichiers. Il montrera * mdl

(fichiers modèles Simulink), * .ppc (Compiled fichiers d'objets pour l'exécution sur le DS1104), et

* . fichiers sdf (Description du système de fichiers). Le fichier * .sdf contient des références au fichier exécutable (soit *

mdl ou * .ppc), un fichier de description variable (* .trc) et la plate-forme de simulation est construit pour (Simulink,

DS1104 ou tout autre matériel dSPACE). Ainsi, afin de charger une application à une plate-forme spécifique que vous

sélectionnez dans le sélecteur de fichiers, puis faites glisser et déposez-le sur l'icône dans la fenêtre de la plate-forme.

En général, le fichier que nous glisser-déposer sur le DS1104 est soit le * .ppc (fichier objet Compilé pour le DS1104)

ou * sdf (fichiers Description du système); soit aura le même effet.

Le sélecteur de fonction affiche les groupes et les fonctions respectives des modules Python disponibles,

et vous permet de générer des appels de fonctions que vous pouvez copier des scripts Python. Il fait partie de

l'Assistant Fonction et appartient à ControlDesk TestAutomation. Le gestionnaire de variables (portant le nom du

fichier sdf / .trc ouvert), contenant le navigateur variable et l'éditeur de paramètres, permet d'accéder aux variables

d'une application. Chaque ouverture .sdf / .trc ajoute un nouvel onglet à la fenêtre de l'outil.

La grande région grise dans la partie supérieure droite de l'écran est une zone de travail général. Dans ce domaine, vous

pouvez créer et mises en page d'affichage, ainsi que mettre en place un éditeur pour écrire des fichiers texte, des scripts Python ou

code c.

2. Conception et mise en œuvre d'une expérience simple avec dSPACE

Dans cette section, nous présentons un exemple très simple de la façon de concevoir et mettre en œuvre un système de commande

pour une seule sortie d'entrée unique (SISO) problème de contrôle de la température.
2.1 Contrôle de la température Problème et connexions physiques

Nous allons utiliser un processus de température, où un capteur de température est utilisé, et l'actionneur de notre

expérience sera une lampe. Le schéma fonctionnel pour un simple contrôleur marche-arrêt est illustré ci-dessous.

ON-OFF Procédé
Controller (lampe)
Point de consigne
Degré
Celsius
Température
Capteur
Tension

Physiquement, nous allons connecter ce qui suit, avec la lampe placée dans environ un demi-centimètre du

capteur:

Contrôleur mis en œuvre en utilisant certaines Sortie analogique

des caractéristiques dSPACE que nous DS1104 (DACH1, broche Lampe

pouvons trouver dans les blocs Simulink. P1A

Dans ce cas, nous allons construire un 31)


contrôleur simple, on-off, en utilisant la
fonction de Signum, deux constantes (l'un
d'entre eux pour le point de consigne), et DS1104 entrée Capteur de

d'autres éléments utiles. analogique (ADCH5, température


broche P1A
16)
Les circuits pour la connexion du capteur de la lampe et de la température sont indiquées ci-dessous.

Darlington conducteurs

5 Volts

DS 2003
D1

Commun

Sortie DIODE

analogique courant
2.7K / tension
Q1 DS2
2N1070 1
2
RESISTOR

LAMPE
6 Volts -
Q2
2N1070 Une base 0,1
température élevée E-5

7.2 k 3k

RESISTOR RESISTOR

5 Volts
Sonde de

entrée
LM
analogique
simultanée d'un certain
35 nombre de fichiers. PIN P1A 31

PIN P1A
16

utilisant ControlDesk d'interagir avec un programme en temps réel en cours d'exécution sur le DS1104 nécessite l'utilisation

L'objectif du système de contrôle de la température est de réguler la température à une valeur fixe en face des

perturbations de la température ambiante (par exemple, on souffle sur l'expérience physique).

adoptons la convention qui italique sont utilisés pour les éléments de menu et « > » est utilisé pour indiquer un sous-menu). En

2.2 Création d'une nouvelle expérience

Dans ControlDesk, vous créez de nouvelles expériences via le menu: Fichier> Nouvelle expérience ( noter que nous
Ces fichiers sont le programme exécutable généré (* de .ppc), fichier de description variable utilisée pour relier les

variables et les paramètres du modèle (* sdf), tableaux de bord virtuels que vous construisez appelées mises en page (*

.lay), et peut-être d'autres en fonction sur les actions que vous effectuez. Une « expérience » ControlDesk est la façon

dont vous associer tous ces fichiers à une seule entité, donc la prochaine fois que vous devez exécuter le même test il

vous suffit de charger l'expérience, ce qui entraînera automatiquement tous les fichiers associés à charger et . Lorsque

vous créez une nouvelle expérience via la commande de menu ci-dessus, vous obtenez la figure ci-dessous (bien, un

blanc un, celui-ci montre ce qui a été rempli) et vous devez indiquer le nom et le répertoire racine de travail de

l'expérience.

Vous ne devez pas remplir les autres champs, mais il sera utile d'avoir une histoire, et la documentation concernant ces

domaines afin que vous pouvez remplir certaines informations dans le « Auteur » et « Description Texte » (comme indiqué

ci-dessus). Notez bien que non essentiels, vous pouvez créer une « expérience graphique, » qui est un graphique qui peut

être utilisé à titre d'illustration dans le schéma fonctionnel d'une fenêtre juste au-dessus du bouton « Ok » si vous voulez

obtenir un rapide
aperçu des caractéristiques de l'expérience (voir le schéma fonctionnel du système de commande simple du système de

contrôle de la température). L'expérience sera enregistrée avec une extension « CDX » lorsque vous cliquez sur « OK » et

vous retournerez au ControlDesk.

2.3 Interfaçage logiciel dSPACE à l'expérience

Maintenant que nous avons accès physique aux signaux via les connexions ci-dessus, il faut configurer le logiciel pour

l'interface à ces signaux. Supposons que vous construisez un contrôleur de marche-arrêt dans Simulink comme indiqué

ci-dessous.

Numérique au bloc de
conversion analogique

Analogique au
bloc de
conversion
numérique
2.3.1 analogique et numérique à analogique pour les connexions de conversion numérique

La construction de ce schéma fonctionnel sera discuté plus en détail ci-dessous. Pour l'instant, se concentrer sur la

façon dont nous créons l'interface logicielle entre le contrôleur et l'installation (à savoir l'interface qui génère des entrées de

commande et de lecture des valeurs de capteur). Le numérique de blocs de conversion analogique (DAC) sont prévus dans

Simulink lorsque le logiciel dSPACE est disponible. Par conséquent, on utilise un bloc de DAC comme indiqué ci-dessus pour

générer l'entrée de commande de l'usine (par exemple, le signal de tension de la lampe) et un bloc de ADC pour lire la tension

provenant du capteur de température qui est proportionnelle à la température. Comment définissez-vous ces blocs de DAC et

ADC?

Il y a deux façons d'accéder aux blocs dSPACE qui peuvent être utilisés dans Simulink. Tout d'abord, ils sont

répertoriés en tapant simulink ( noter que nous utilisons ici une convention d'un italic

courrier la police quand il est quelque chose que vous tapez dans l'ordinateur) dans la fenêtre de commande Matlab (qui, par

l'intermédiaire ControlDesk vous accédez par un clic droit sur l'icône Simulink dans le coin supérieur gauche lorsque l'onglet

Plate-forme est sélectionnée). La fenêtre qui est indiqué ci-dessous (notez que si vous cliquez deux fois sur le dernier élément

sur le fond gauche vous verrez les blocs dSPACE pour Simulink):
Une autre façon de voir les blocs dSPACE, et que nous utiliserons ici car il offre quelques fonctionnalités, est de

taper rti à partir de la fenêtre de commande Matlab. Si vous le faites, la fenêtre suivante apparaît:
Si vous double-cliquez sur chacun de ces blocs, vous allez trouver les blocs nécessaires à la construction de la simulation

que vous avez besoin. Par exemple, si vous double-cliquez sur l'icône appelée Simulink, vous obtenez les mêmes

éléments que vous obtiendriez si vous avez saisi simulink

dans votre fenêtre de commande Matlab. Notez qu'il existe des « demos » qui peuvent être utiles pour vous. En outre, notez qu'il ya un

bouton « Aide » vous trouverez peut-être utile. Ensuite, nous allons discuter de problèmes d'interface.

La bibliothèque de l'Office RTI1104 vu ci-dessus est divisé en plusieurs sections principales. Les

ressources d'E / S du DS1104 sont partagés entre les deux processeurs sur la carte, le PPC maître (Power PC) et

l'esclave DSP F240. En cliquant sur l'un, vous aurez accès à des blocs que vous pouvez placer dans votre modèle

que la fonctionnalité E / S fournir associée au processeur respectif. Pour ce tutoriel, nous allons nous concentrer sur

le groupe de blocs contenus dans la section principale PPC. Si vous double-cliquez sur ce que vous obtiendrez la

fenêtre suivante:
Comme vous le voyez, cette fenêtre a quelques-uns des éléments les plus couramment utilisés pour la carte contrôleur,

comme ADCs DACS, encodeurs, etc. Si vous double-cliquez sur un de ces blocs d'E / S vous obtiendrez est la boîte de

dialogue de configuration respective et l'un des boutons que vous verrez dans cette boîte de dialogue est « Aide ». en

cliquant sur ce lancera le HelpDesk dSPACE exactement à la page faisant référence ce bloc particulier. Ici, nous avons

cliqué sur dSPACE Aide et téléchargé les informations pertinentes sur l'ADC et du CAD que nous avons besoin pour le

problème de contrôle de la température. Vous pouvez également lancer le HelpDesk dSPACE de la

Démarrer> Programmes> Outils> dSPACE dSPACE HelpDesk, ou si vous utilisez ControlDesk vous pouvez le lancer à partir du

menu d'aide ou simplement en appuyant sur la touche « F1 ».

2.3.2 analogique à la conversion numérique (ADC) et mise à l'échelle du signal

Tout d'abord, nous considérons l'acquisition du signal de tension du capteur. Notez que nous avions le capteur connecté

à ADCCH5, la broche P1A 16. Pour configurer le logiciel pour qu'il puisse obtenir ce signal dans le contrôleur il suffit de cliquer

sur « ADC » dans le coin supérieur gauche (notez la


l'étiquette sur la partie inférieure de ce bouton). Dans la fenêtre qui apparaît, il y a un bouton d'aide. Si vous cliquez dessus, vous

verrez:

• DS1104ADC_Cx

Objectif: Pour lire à partir d'un canal unique de l'un des quatre canaux parallèles du convertisseur A / N.
cartographie I / O: Pour plus d'informations sur la mise en correspondance d'E / S, reportez-vous à Unité ADC .
Page d'unité: Le numéro de canal Sélectionnez un canal unique dans la gamme 5 ... 8.
caractéristiques E / S: Mise à l'échelle entre la tension d'entrée analogique et la sortie du bloc:

Gamme de tension d'entrée sortie Simulink

- 10 V ... 10 V - 1 ... +1

Cela vous indique comment définir les paramètres pour obtenir le signal. Ici, lorsque vous placez un bloc ADC dans

un modèle Simulink (par glisser-déposer), puis double-cliquez dessus, tout ce que vous devez sélectionner est le « numéro de

canal. » Dans ce cas, il est le canal 5 en raison du choix que nous avions fait pour la connexion physique du capteur de

température (c.-à-AD CH5, P1A broche 16). Ensuite, il est important de comprendre la « mise à l'échelle » qui se produit dans

l'acquisition du signal. La plage d'entrée de signal d'entrée physique est -10V à + 10V. dSPACE toujours redimensionnée cela

par un facteur de 0,1 (multiplie par ce nombre) pour placer la valeur sur une plage de 1V à

+ 1V. Cette mise à l'échelle doit généralement être corrigée pour en raison de la nécessité de cartographier le sens de volts à la

température en degrés. Cette cartographie dépend des caractéristiques du capteur, et est généralement ajustée en blocs

Simulink lorsque le signal de capteur est traité avant qu'il ne soit utilisé par la partie principale du dispositif de commande. Ce

pré-traitement du signal du capteur doit également tenir compte des problèmes d'étalonnage, telles que savoir quelle tension

correspond quelle température, et en général la mise en correspondance de la tension à la conversion de la température doit

obéir. Pour notre sonde de température on suppose un fonctionnement linéaire sur toute la plage de températures ambiantes, et

0,1 volts correspond à 10 degrés. C, 0,15 volts correspond à 15 degrés.

C, etc., comme indiqué ci-dessous. Notez que la pente de cette ligne est 100.
C
deg

20

dix

0,1 0,2 volts

En résumé, nous devons prendre le signal ADC et multiplier par 10 pour éliminer le facteur d'échelle et par

100 pour représenter la pente de la ligne ci-dessus pour convertir Volts en degrés, C. Le signal obtenu peut ensuite

être utilisé dans le contrôleur.

2.3.3 conversion numérique analogique (DAC) et initialisation / Résiliation

Ensuite, nous considérons générer l'entrée de tension à la lampe via DAC. Notez que nous avions connecté

l'entrée de la lampe à DACH1, pin P1A 31. Pour configurer le logiciel pour générer ce signal nous cliquons sur « DAC » sur

le côté gauche, troisième bloc vers le bas (notez l'étiquette sur le fond de ce bouton). Dans la fenêtre qui apparaît, il y a un

bouton d'aide. Si vous cliquez dessus, vous verrez:

• DS1104DAC_Cx

Objectif: Pour écrire dans l'un des huit parallèle D / A canaux du convertisseur.
cartographie I / O: Pour plus d'informations sur la mise en correspondance d'E / S, reportez-vous à Unité DAC .
Page d'unité: Le numéro de canal Sélectionnez un seul canal dans la plage 1 ... 8.
Page d'initialisation: Valeur d'initialisation La tension de sortie initiale au début de la simulation. La valeur doit rester
dans la plage de tension de sortie ± 10 V.
Page de terminaison: Sortie à la cessation Soit maintenir la tension de sortie de courant lorsque la simulation se
termine, ou régler la sortie à une valeur spécifiée. La valeur doit rester dans la plage de tension de sortie ± 10 V.

caractéristiques E / S: Mise à l'échelle entre la tension de sortie analogique et l'entrée du bloc:

Entrée Sortie Simulink Gamme de tension

- 1 ... +1 - 10 V ... 10 V

Le bloc fournit à ses sorties en mode transparent, qui est le canal est convertie et sortie immédiatement.

Initialisation et terminaison
Pendant la phase d'initialisation du modèle, une valeur de tension de sortie initiale est écrite dans chaque D / A canal. Ceci
est particulièrement utile si un canal est utilisé dans un sous-système déclenché ou activé qui n'a pas été exécuté dès le
début de la simulation. Avec la valeur d'initialisation, le canal a une sortie définie pendant cette phase de simulation. Lorsque
la simulation se termine, le canal maintient la dernière valeur de sortie par défaut. Vous pouvez spécifier une valeur de sortie
définie par l'utilisateur sur la terminaison dans la page de résiliation, et utiliser ces paramètres pour conduire votre matériel
externe dans une condition finale en toute sécurité.

Here, note that if you place a DAC block in your Simulink model and double click it there are several

settings that need to be made (note the tabs near the top of the window). First, on the “Unit” tab you need to

select the channel number; here it is channel 1 (DA CH1, pin P1A 31). Next, under the “Initialization”

(“Termination”) tab you pick the initial (final) voltage value. Depending on which experiment you hook up,

the choice of these values can dictate smooth and safe operation of the experiment (e.g., so that you do not

hurt the experimental equipment). For instance, if the initial value for some mechanical system were 10V,

then this may correspond to spinning a motor at its maximum rotational speed. Note that in general these

values should be viewed as the ones that are input to the plant immediately before and after the actual

control system operates. Hence, for example, if you initialize the output to be zero there may be a sharp

change at the first sampling instant when the controller may put out a different value (analogous comments

hold for termination). Note that such a sharp change is something that you may have to pay attention to in

an actual implementation since it can have effects on the transient response (e.g., for some experiments

you may want to make sure


that the initial transients due to such effects have died out before you test the response of the system to a step

set point change). Here, since the dynamics of the temperature process are so slow, we ignore the effects of

such possible transients and simply set the initialization and termination values to zero. The precise meaning

of Initialization and Termination in a real-time program running on the DS1104, and when are they executed,

are discussed in the following section, which also explains what “real-time” is and what the basic structure of a

real-time program looks like.

As we can notice, we added before this block a scale gain of 2/10, due to the dSPACE scaling factor that we

saw in the input, but now it should be reversed when it goes to the exterior (1/10), and since the Darlington

device switches when the input voltage is greater than 2 volts, we have to add this value of 2 in the gain.

2.3.4 Real-time and the Structure of a Real-Time Program

Qu'est-ce en temps réel? Vous disposez d'un système physique ou l'objet que vous souhaitez contrôler avec un

programme, tout comme l'expérience détaillée dans ce tutoriel. Parce que ce système ou d'un objet a une certaine dynamique qui y

sont associés, vous devez contrôler en fonction de ces dynamiques. Par conséquent, nous disons que le système physique aura une

constante de temps, à partir de laquelle vous tirerez un pas ou de temps échantillon pour votre programme de contrôle. Le défi

consiste à utiliser non seulement que le temps de l'échantillon dans les calculs numériques qui composent votre algorithme de

contrôle, mais aussi d'exécuter cet algorithme dans ce temps d'échantillonnage. Vous devez commencer chaque « étape » de votre

programme exactement un temps taille de l'échantillon ou une étape à part, et donc de terminer le calcul de chaque étape dans le

temps de l'échantillon, soit avant le début de la prochaine étape. C'est en temps réel. S'il vous plaît voir le schéma ci-dessous.

programme
d'exécution

Temps d'inactivité

0 T 2T 3T
Si le temps échantillon de notre programme est T, vous pouvez voir que le programme est exécuté à des points distincts

dans le temps qui sont un temps d'échantillonnage à part. Vous remarquerez également que chaque étape du programme se termine

en cours d'exécution avant l'étape suivante doit commencer; ainsi ce programme fonctionne en temps réel. Cependant, si les exigences

de calcul du programme amènent le processeur à prendre plus de temps que le temps de l'échantillon alors nous avons une condition

Overrun, et notre programme ne peut fonctionner en temps réel. Plus tard, à la condition de dépassement est discuté plus loin.

The overall structure of a real-time program can be simplified for explanation purposes into three

main sections: Initialization, the real-time task or tasks, and the background. The initialization section is code

that is executed only once at the start of execution, upon download of the program. In this section you will

have functions that, for initialization of the system, are only needed to run once. The next part of the program

is the real-time part, the task, represented by the gray sections in the diagram above. This is what is

executed periodically based on the sample time. This part is the heart of the control program; for this, you

read inputs (e.g., from an ADC), compute your control signals, and write outputs (e.g., with a DAC). Note that

depending on what your control application is you may have multiple tasks in your model. Finally, the last

section is the background; this is code executed in the “idle” time between the end of computation of a step

and the start of the next step.

2.4 Développement Controller dans Simulink

Dans cette section, nous allons discuter comment utiliser Simulink pour la conception du contrôleur et la façon de compiler le

modèle Simulink dans le code qui se déroulera sur la carte dSPACE pour la mise en œuvre en temps réel du contrôleur.

2.4.1 Simulink pour la conception du contrôleur

Maintenant que nous avons les signaux que nous devons détecter et actionnent nous pouvons considérer le

développement du modèle Simulink du contrôleur indiqué ci-dessous:


Manette

Comme vous pouvez le voir dans cet exemple, nous avons utilisé une constante pour fixer le point de consigne (bien sûr,

nous aurions pu le mettre à une onde carrée ou une autre fonction variant dans le temps). Nous avons choisi 20 degrés. C puisque

cela correspond à 68 degrés. F et les températures typiques de notre laboratoire de 18 degrés. C (64,4 °. F) à 22 °. C (71,6 °. F)

donc cette valeur est au milieu. Plus tard, nous allons changer cette valeur pour voir comment le système de contrôle réagit.

La fonction signe fixe la sortie en fonction du signe de l'erreur (puisque nous ne voulons pas une sortie

négative dans ce cas, nous avons utilisé la fonction min-max de choisir une valeur positive, si l'on compare avec 0).

Ensuite, le contrôleur fonctionne en calculant l'erreur entre le point de consigne et de la température détectée. Si l'erreur

est positive, alors la température détectée est inférieure au point de consigne de sorte que le contrôleur tourne la lampe.

Si l'erreur est négative, alors la température détectée est supérieure à celle réelle de sorte que la lampe est éteinte et la

température ambiante doit abaisser la température dans la zone autour du capteur.

2.4.2 Construction du modèle Simulink


Une fois que nous définissons le modèle, nous devons changer certains paramètres dans la simulation. Pour ce

faire, dans le modèle Simulink, utilisez Simulation> Simulation Paramètres ... et vous verrez la fenêtre suivante.

Les étapes les plus importantes à prendre en compte sont décrites dans les figures suivantes. Tout

d'abord, dans les options de Solver (voir onglet) définir la « Heure de début » à 0 (nécessaire pour les

applications en temps réel). Le « temps d'arrêt » peut être réglée en fonction de la façon dont vous

voulez l'expérience de courir. Si vous définissez comme « inf » il ira pour toujours, mais si vous le

réglez sur 20 elle se déroulera l'expérience pendant 20 secondes. Ensuite, définissez le « Type » à

une option à pas fixe, et choisir un solveur comme « Euler » ou peut-être « ode5. » Notez que le un

solveur plus complexe que vous choisissez le votre programme intensif plus informatiquement sera et

donc il faudra plus de temps pour exécuter. Ensuite, choisissez le temps d'échantillonnage pour

l'expérience. Ceci est la fréquence d'échantillonnage, qui est généralement désigné par « T » dans les

livres de commande numérique, et il définit la fréquence d'échantillonnage pour les signaux détectés

et mises à jour de commande.


taux d'échantillonnage. Pour notre problème de contrôle de la température que nous choisissons T = 0,0001 s. si nous obtenons les

éléments suivants:

Après avoir modifié cela, allez dans l'onglet Options avancées, et comme il est suggéré au début du programme

Matlab que vous devriez avoir l'option de réduction bloquer donc faire pour obtenir la figure suivante:
Une fois que vous avez suivi ces étapes, vous êtes prêt à construire le modèle. Vous avez deux options: la commande «

raccourci » CTRL-B ( à partir du modèle Simulink) ou aller à Outils> Atelier en temps réel> Construire modèle. Le processus de

construction commencera alors, au cours de laquelle vous demandera ce qu'il faut faire s'il y a un « dépassement » via la

boîte de dialogue suivante:

Comme expliqué précédemment, une situation de dépassement se produit si une tâche est prié de commencer, mais n'a pas terminé

son exécution précédente encore. Par défaut, l'option est réglée sur « arrêter la simulation (définie simState STOP) », vous voulez

garder cette valeur par défaut. Nous voulons être en mesure de détecter si le programme est exécuté en temps réel ou non et si nous

choisissons d'ignorer les dépassements que nous ne pouvons pas en cours d'exécution en temps réel et ne jamais le réaliser.
Après avoir cliqué sur « OK » dans la boîte de dialogue au-dessus du processus de construction se poursuivra.

le code C est généré pour le modèle et le code est compilé et lié par le compilateur Power PC (depuis le DS1104 utilise un

processeur Power PC) pour produire un fichier objet exécutable unique avec une extension .ppc. Cet exécutable est

ensuite téléchargé sur le DS1104 et le programme se met en marche (c.-à-exécution du contrôleur). S'il y a des erreurs au

cours du processus de construction ou vous exécutez dans une condition de dépassement cela sera imprimé dans la

fenêtre de commande Matlab, sinon, si tout va bien, vous verrez le message « Build Réussi » dans Matlab. Vous pouvez

arrêter le programme sur le DS1104 en cliquant sur le bouton d'arrêt qui se trouve dans le ControlDesk, la barre d'outils en

haut (son icône est une petite boîte rouge). Notez que l'arrêt du programme de cette façon signifie arrêter tout le

programme, donc la tâche en temps réel et la routine de fond, et que cette façon ne sera pas exécuter ou activer les

fonctions associées à l'état de terminaison, comme les valeurs de terminaison pour le canal du CAD. Pour activer la

condition de terminaison ou indiquer que vous devez arrêter uniquement la tâche en temps réel, et en changeant une

certaine variable dans le programme fait cela.

2,5 Interface utilisateur graphique pour l'Expérience

Dans cette section, nous expliquerons comment créer une interface utilisateur graphique (GUI) pour l'utilisateur afin de

pouvoir visualiser sur l'écran divers aspects du fonctionnement du système de commande de fonctionnement (analogue à brancher un

oscilloscope dans certains cas), apporter des modifications tandis que le système de contrôle fonctionne (par exemple, l'évolution des

gains de contrôleur ou points de consigne) et la visualisation et l'enregistrement des données pour le traçage et les rapports.

Tout d'abord, il faut avoir un fichier « mise en page » pour l'expérience dSPACE. Pour ce faire, utilisez

Fichier> Nouveau> Mise en page. Ensuite, vous utilisez Affichage> ControlBars> Sélecteur d'instruments. This

shows the items that can be used to make a GUI interface. First note that there are two instrument types: Virtual

instruments and Data acquisition instruments. These instruments are showed below. You can ignore the Custom

instruments group at this time.


When you generate a layout that you associate with the experiment, you can link any of the

variables that you created in your Simulink model to it. When you build your Simulink model, two of the files

generated are the Variable Description File (*.trc) and the System Description File (*.sdf). If ControlDesk is

open when your model is built and downloaded to the DS1104, you will see that the associated .sdf file will

automatically be loaded into the variable browser in the Tool Window. If ControlDesk is not open when the

model is downloaded you will need to load the file by using File > Open Variable

File, then selecting the appropriate .sdf file.

Once the variable file is loaded you can link variables in your model to graphical instruments on

layouts. In order to do so, you need to locate the variables in the variable browser and then drag and drop

them onto the respective instruments on the layout. The variable browser (that is shown in the next figure) has

two areas: the variable tree (the one which is at the bottom left of your screen), and the variable list that is at

the bottom right. The variables that you are going to associate with each of the layout instruments are pulled

from the variable list.

When you create a graphical instrument on a layout and it is not yet associated with a variable it will

have a red border. Once a variable is linked to that instrument on your layout the red border will turn black.

If you right-click over any created instrument on a layout you will obtain a menu, on which you will see

“Highlight variables”. If you select this, every time you click on an instrument that is associated with a

variable you will see that particular variable highlighted in the variable browser.

Variable list
Variable tree
En utilisant tous ces éléments, nous avons construit une mise en page pour notre problème de contrôle de la

température qui est indiqué ci-dessous. Pour ajouter chacun de ces instruments nous avons cliqué sur le groupe d'instruments

contenant l'instrument, puis nous avons cliqué sur l'icône de l'instrument, et enfin dans le tableau de bord (ce que nous avons

appelé la mise en page), et en utilisant la souris nous a tiré des instruments rectangulaires. Dans cet exemple, nous avons utilisé

un bar pour afficher l'entrée de tension, un écran pour montrer la valeur de sortie, une entrée numérique pour régler le point de

consigne, et un traceur pour montrer une variété de valeurs. Le traceur, comme vous pouvez le voir dans la figure suivante, a de

nombreuses variables qui y sont associées (par exemple en bas à gauche de la figure, vous verrez des couleurs différentes, et

cela signifie que vous complotez plus d'une variable). Dans ce cas, l'erreur, le point de consigne, la sortie, et l'entrée mis à

l'échelle sont les variables associées à la table traçante. Si vous cliquez sur l'une des cases de couleur, vous verrez le nom de

variable associée au Yaxis. Notez que si vous faites glisser et déposer des variables sur l'axe Y du traceur, il mettra tous ces

signaux sur le même axe Y. Si vous faites glisser et déposer des variables sur l'axe X ou sur le corps principal du traceur, il va

créer un nouveau axe Y pour chaque signal abandonné cette façon, ce qui est utile si vous souhaitez afficher plusieurs signaux

sur le même traceur, mais la les signaux ont des gammes très différentes.
Nous pouvons modifier certaines propriétés concernant chacun des éléments de la mise en page. Par exemple, nous

pouvons limiter la portée de l'entrée numérique pour éviter que l'utilisateur modifie le point de consigne de manière drastique. Pour cela,

nous double-cliquez dans cet élément, et nous obtenons les éléments suivants:

Ici, nous mettons l'incrément de 0,1 degré, et le point de consigne va être entre 18 et 26. L'utilisateur ne

peut pas mettre une valeur supérieure à ces limites, car avec l'environnement actuel, il n'a pas de sens d'avoir

plus que ceux-ci valeurs.

Après avoir créé la mise en page (s) (oui, vous pouvez avoir plus d'un pour une expérience), vous devrez ajouter

cette mise en page et les variables que vous lui sont associés, à l'expérience (par exemple, lorsque vous chargez cette

expérience, tous les les fichiers seront rechargés avec elle, et ainsi les liens créés dans le processus décrit ci-dessus). Pour

cela, allez à Fichier> Ajouter tous les fichiers ouverts, puis enregistrez l'expérience en utilisant la commande Fichier>

Enregistrer expérience.

Si vous avez plusieurs mises en page dans votre expérience, vous pouvez sélectionner Affichage> Cahier d'exercices, cela va créer des

onglets pour chaque mise en page vous permettant de passer une forme facilement l'un à l'autre.

Une fois que nous avons construit tous les composants dans le mode d'édition, on passe au mode d'animation (raccourci F5 ou

cliquez sur l'icône que nous montrons ci-dessous). Ce mode vous permet de contrôler les variables d'une application (modification des

valeurs des paramètres ou des connexions de données), observez les signaux avec des instruments d'acquisition de données et les

données de capture et d'enregistrer les résultats sur le disque pour une analyse ultérieure et de traçage, par exemple, Matlab pour les

rapports de laboratoire . Les données sont


now being transferred from/to the simulation platform, and you can work now with other external devices.

While in this mode, you might change the parameters of the variables at least the ones that you allowed to be

changed, such as the output voltage and so on. In addition, you can also capture data or observe some

signals with the data acquisition instruments (e.g., the plotter).

Mode édition

Mode d'animation

Mode d'essai

2.6. Capturing Data 1

Il existe deux méthodes principales de saisie des données dans un fichier ou plusieurs fichiers. Si vous attribuez une

variable à un instrument traceur non seulement vous pouvez voir le signal, vous pouvez également faire les données à

sauvegarder dans un fichier. Toutefois, si vous n'avez pas besoin de voir le signal, mais simplement capturer ou acquérir, alors

vous pouvez le faire aussi bien. Ces deux méthodes utilisent les mêmes mécanismes exacts dans ControlDesk, on vient affiche

également le signal. Le mécanisme utilisé pour contrôler et paramétrer la saisie des données est la fenêtre CaptureSettings.

2.6.1 Saisie de données du traceur

Vous êtes familier avec l'affichage d'une variable sur un traceur par une action de glisser-déposer. Pour définir

ControlDesk pour stocker ces données dans un fichier que vous devez lancer ou accéder à la fenêtre CaptureSettings. Il

y a trois façons de le faire:

une. Cliquez sur le bouton ci-dessous qui apparaît dans le navigateur de variable

1 SJP CDExpGuide. 298-310


b. Faites un clic droit sur le traceur et sélectionnez « Modifier les paramètres de capture »; dans la plupart des cas, la fenêtre

CaptureSettings qui a suivi apparaît sur le bord droit de ControlDesk comme indiqué ci-dessous et vous devrez développer

Développer

c. Sélectionnez l'instrument CaptureSettings du groupe d'acquisition de données et le placer sur une mise en page.

Une fois que vous avez accédé à la fenêtre CaptureSettings il apparaîtra comme suit:
Vous pouvez cliquer sur le bouton « Paramètres » et vous obtiendrez la boîte de dialogue Propriétés de contrôle CaptureSettings. S'il

vous plaît cliquer sur l'onglet Acquisition, vous verrez alors les éléments suivants:
Explication des options de cette page est la suivante:

Simple: Sélectionnez ce bouton radio pour effectuer simple capture de données. Ce mode capture seulement une période des

signaux dans la mémoire tampon. Même si vous sélectionnez Répétition automatique, deux captures consécutives sont

indépendants les uns des autres. Par exemple, il peut y avoir un délai entre eux.

Autosave: Sélectionnez ce bouton radio pour activer la capture à enregistrer dans le fichier MAT / CSV (* .mat sous forme de fichier

MAT qui peut être utilisé dans Matlab pour certaines manipulations, ou * .csv à utiliser dans certains paquets de tableur comme Excel)

spécifié dans le champ d'édition. Cliquez sur le bouton Parcourir pour sélectionner le fichier MAT / CSV ou entrez un nouveau nom. Les

données capturées sont écrites dans le fichier spécifié. Si vous effectuez plusieurs données de captures, les anciennes données sont

écrasées par les nouvelles données.

Nom automatique: Sélectionnez ce bouton radio pour activer le nommage automatique des fichiers. Cliquez sur le bouton Parcourir

pour sélectionner un fichier MAT / CSV ou entrez un nouveau nom. Le nom de fichier est prolongé par un index qui augmente

automatiquement pour chaque capture de données. Chaque capture est stockée dans son propre fichier.

Continu: Sélectionnez ce bouton radio pour activer la capture continue. Le mode continu capture les données sans

lacunes de la plate-forme de simulation en utilisant un tampon cyclique. Vous devez arrêter la capture explicitement.

En continu sur disque: Sélectionnez ce bouton radio pour activer la saisie des données en continu au fichier IDF spécifié dans

le champ d'édition. Tant que le disque est flux actif, une icône supplémentaire (disque jaune) est affiché.

Cliquez sur le bouton Parcourir pour spécifier un autre fichier et le chemin du fichier de stockage de capture continue de Tsahal.

Afficher sortie graphique: sortie graphique est activée par défaut. Cependant, l'affichage des données réduit le taux de

transmission de données sur le disque. Décocher cette case pour enregistrer


Puissance de calcul. Afficher Valeurs de rendement graphique est disponible uniquement pour Nom automatique, Autosave et en

continu sur disque.

En supposant que vous avez lancé la fenêtre CaptureSettings, nous allons examiner les paramètres ou les options que vous avez à

définir.

Longueur: Ceci indique la longueur réelle en quelques secondes de la saisie des données, l'axe des x ,, donc si vous avez

sélectionné « Autosave » comme méthode d'acquisition, les données du fichier stocké correspondent à cette longueur.

Le sous-échantillonnage: Cela fait référence à la fréquence que vous souhaitez capturer un point de données, à savoir le

sous-échantillonnage est 1, cela signifie capturer la valeur de cette variable à chaque étape unique ou un échantillon du programme; si

nous fixons à 3, cela signifie capturer un point de données que tous les trois étapes. Si vous travaillez avec une dynamique lente ou

transitoires, vous pouvez augmenter le sous-échantillonnage. Si vous utilisez « continue » comme mode d'acquisition, vous devrez

peut-être utiliser une valeur de sous-échantillonnage plus élevée pour éviter les problèmes avec le matériel face à des taux de capture

et les limitations de mémoire.

Répétition automatique: Si vous utilisez les modes d'acquisition en sélectionnant cette option « Simple », « Autosave, » ou « permettra

» Nommer automatiquement des captures consécutives pour démarrer automatiquement.

Signal de déclenchement: Si vous souhaitez déclencher la capture de données pour commencer en fonction d'une autre variable dans

votre modèle, vous pouvez glisser et déposer cette variable sur le champ gris avec la légende « << variable déclencheur drop ici >> « ,

vous pouvez définir avec les autres champs quel bord vous souhaitez déclencher sur: hausse ou en baisse, quel niveau de valeur pour

définir la condition de déclenchement, et si vous voulez pré ou post-déclenchement en fournissant une valeur de retard positif ou

négatif. Ceci est très bien comme caractéristiques sur un oscilloscope régulier.

2.6.2 Saisie des données Sans Traceur


Comme mentionné précédemment, vous pouvez capturer des données dans un fichier sans l'aide d'un traceur. Vous pouvez

sélectionner les variables pour capturer cette façon par deux méthodes:

une. Localisez la variable dans le navigateur variable que vous souhaitez capturer, puis faites glisser et

déposez-le sur le bouton # 1 sur le côté droit du navigateur de variable

b. La même chose que ci-dessus glisser-déposer sur l'icône de CaptureVariables sur la

fenêtre CaptureSettings), illustrés ci-dessous:

Laissez tomber

variable sur cette icône

Configurez les paramètres souhaités comme indiqué dans la section précédente.

Pour vérifier les variables utilisées et connectées que vous devez suivre les étapes suivantes:

• Dans la capture des paramètres __gVirt_NP_NN_NNPS<__ Instrument, cliquez sur « Paramètres » pour afficher boîte de dialogue

Propriétés du contrôle CaptureSettings.

• Dans la boîte de dialogue Propriétés du contrôle CaptureSettings, choisissez la page CaptureVariables

Les variables liées aux instruments d'acquisition de données peuvent être identifiés par l'icône affichée dans la première

colonne (connecté). Les variables connectées seront toujours utilisées pour la saisie de données. Si vous n'avez sélectionné

une variable de capture pour la capture de données, aucune icône apparaît dans la première colonne. Pour utiliser les

variables, cochez la case dans la deuxième colonne (mesure). La figure ci-dessous montre l'onglet CaptureVariables que

nous utilisons pour choisir les variables que nous allons stocker.
Saisie des données commence immédiatement après l'animation démarre, si la case Démarrage automatique avec une

animation sur la page de propriétés de capture dans la boîte de dialogue Propriétés du contrôle CaptureSettings est marqué. Dans le

cas contraire, utilisez le bouton Start / Stop pour démarrer et arrêter la capture manuellement.

3. Exercice: Mettre en œuvre un système de contrôle de la température dSPACE

Ici, nous vous demandons de procéder à un exercice simple pour vous aider à vous familiariser avec dSPACE. L'idée générale consiste

à détecter la température qui est mesurée en utilisant le LM35CAZ, et essayer d'allumer / éteindre deux lampes différentes en utilisant

une sortie analogique et une entrée / sortie numérique. Pour cela, nous allons construire le modèle qui est montré dans la figure

suivante.
Le matériel que vous devez construire est le suivant:

Les fiches de données pour tous les composants que nous allons utiliser pour construire l'expérience sont sur le web.
Si vous étudiez le modèle que vous allez vous construire pouvez voir une boucle très semblable à celle que nous montrons

dans le tutoriel, mais au lieu d'avoir une sortie analogique, nous allons utiliser une sortie numérique. Pour cela, nous devons

convertir la sortie qui provient du bloc MinMax, car cette sortie est une valeur double. Nous utilisons ensuite le bloc de

conversion de type de données (que vous trouverez utiles dans d'autres applications). Nous mettons deux exemples dans cet

exercice, puisque dans la boucle inférieure on compare la valeur de l'erreur avec une certaine valeur. Depuis la sortie dans ce

cas est booléenne, nous devons le convertir à nouveau en double, puisque dans ce cas, la sortie analogique utilise des valeurs

doubles.

Vous devez développer le même schéma que ci-dessus et aller étape par étape pour compiler correctement, tel qu'il

fonctionne dans dSPACE. La période d'échantillonnage peut être de sélection en tant que 10 ms, et le résolveur peut être ode5.

Maintenant, une fois que vous construisez le modèle, vous devez créer une expérience dSPACE. Suivez les

étapes avant, puis vous devez:

1. Mettez un traceur pour montrer la valeur d'entrée et le signal qui vient de la

capteur.

2. Prenez deux entrées numériques, de sorte que l'un d'entre eux gère le point de consigne, et

une autre gère la constante qui est dans la boucle inférieure, à savoir celui qui vous comparez avec l'erreur. La

première entrée numérique doit avoir une fourchette comprise entre 19 et 25, et l'augmentation ne doit pas être

supérieure à 0,1 (choisir ce que vous voulez). La deuxième entrée numérique doit avoir des incréments de 0,05,

et vous choisissez la gamme selon ce que vous pensez est la meilleure performance de votre contrôleur.

3. Prenez un écran et montrer dans cet élément la valeur de température détectée par la

capteur, après la mise à l'échelle appropriée.

4. Si vous voulez mettre quelque chose de plus dans, le faire, et montrer votre travail à la TA.
4. Remarques et conseils pour conditionnement de signaux 2

Les notes et les conseils suivants peuvent vous aider à obtenir les meilleurs résultats à l'aide et ADCs DACs.

• crosstalk

La diaphonie se produit si un signal à flancs raides fonctionne à proximité d'un signal analogique à haute impédance. La

principale raison de la diaphonie est un couplage inductif. Crosstalk peut être réduite ou évitée par les mesures suivantes:

ÿ Twist chaque signal avec sa ligne de retour (masse) et numérique et analogique séparé

signaux.

ÿ Ne jamais utiliser un câble à paires torsadées pour les signaux différents.

ÿ Acheminer les fils des entrées ADC séparément des fils de sorties du CNA.

ÿ Pour ADC: piloter les entrées avec une sortie à basse impédance (bien que l'entrée

résistance des convertisseurs est très élevé).

• échouage

Toutes les lignes de retour sont reliés à une masse du système. Pour éviter les boucles de masse, utiliser des lignes de retour

séparées pour tous les capteurs / actionneurs connectés. Capteur / motifs de l'actionneur doivent être isolés les uns des autres.

Idéalement, chaque signal doit être tordu avec sa ligne de retour (terre) de sorte que leurs champs électromagnétiques annuler. Les

lignes de retour au sol doivent être connectés sur les deux extrémités du câble. Si pas assez broches de masse sont disponibles au

niveau du connecteur plusieurs lignes de retour peuvent être fixés à une broche de masse commune. Cependant, ce fil de masse

commune doit être aussi courte que possible pour réduire l'inductance de ligne au sol.

ļ Les notes et les conseils suivants peuvent vous aider à obtenir des résultats optimaux en utilisant le BIT

E / S.

2 Guide d'installation et de configuration, Connexion de périphériques externes au système dSPACE.


• broches E / S non connecté sont fixés à un haut niveau logique défini intégré 10 k W pull-up resistors, which

are connected to +5V. To force a TTL input to a defined logical lowlevel, an external pull-down resistor of

about 1 k W can be connected to GND.

¸ The following notes and tips may help you to achieve optimum results using the

INCREMENTAL ENCODER INTERFACE.

• To allow proper operation, do not connect the outputs of your encoder to an ACcoupling network. The

input signals must be DC signals.

• The connectors for the incremental encoders offer two VCC pins. You should connect both pins so that

both pins share the current evenly and the voltage drop in the lead wires is kept as small as possible.

• The total load of ALL connector pins that provides access to the PC power supply must not exceed 500

mA.

• If you use an external supply voltage, you have:

ÿ To guarantee that no input voltages are fed to the DS1104 while is switched off

ÿ Pour connecter la ligne de masse du codeur à une broche de masse de la carte (page 102).

Vous aimerez peut-être aussi