summaryrefslogtreecommitdiff
path: root/docs/src/common/Integrator_Concepts_fr.txt
blob: e21358276e7562a238a9d48ec61c52c8ef708a34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
:lang: fr
:toc:

= Concepts importants pour l'intégrateur

[[cha:concepts-integrateur]] (((Concepts intégrateur)))

== Système pas à pas

=== Période de base

Période de base (BASE_PERIOD) est le _métronome_ de 
l'ordinateur de LinuxCNC. footnote:[Cette section fait référence à 
l'utilisation de _stepgen_ le générateur de pas intégré à LinuxCNC. 
Certains dispositifs matériels ont leur propre générateur de pas 
et n'utilisent pas celui incorporé à LinuxCNC. Dans ce cas se référer 
au manuel du matériel concerné.] A chaque période le logiciel de 
génération de pas calcule si c'est le moment pour une autre impulsion 
de pas. Une période de base plus courte permet de produire plus 
d'impulsions de pas par seconde, mais si elle est trop courte l'ordinateur 
passera tout son temps à générer les impulsions et les autres services 
seront ralentis voir bloqués.
La latence et les besoins des pilotes des moteurs pas à pas déterminent 
la durée minimum de la période que nous pouvons utiliser.

La latence la plus défavorable peut ne se présenter que quelquefois par
minute ou même moins. La probabilité que cela se produise au même 
moment qu'un changement de direction du moteur et faible. Donc 
on peut obtenir des erreurs très rares et intermittentes qui 
ruinent une production de temps en temps et il est impossible 
d'intervenir pour régler le problème.

La façon la plus simple d'éviter ce problème est de choisir un 
BASE_PERIOD qui est la somme des plus longues exigences de temps 
de votre périphérique et le pire cas de latence de votre ordinateur. 
Ceci n'est pas toujours le meilleur choix. 

Par exemple si le pilote moteur a besoin d'un maintien du signal 
de direction d'une durée de 20 µs est que la latence maximum est 
de 11 µs, la période de base sera de 11+20=31 µs ce qui donne une fréquence 
de génération de pas de 32258 pas par seconde dans un mode 
et de 16129 pas par seconde dans un autre mode.

Le problème est qu'avec les exigences de 20us pour le maintien 
du signal et les 11 µs de latence cela nous force à utiliser une 
période défavorable de 31 µs. Mais le générateur de pas du 
logiciel LinuxCNC a quelques paramètres qui nous laissent régler 
les divers temps d'une période de différentes manières.

Par exemple, si _steplen_ footnote:[Steplen se réfère à un paramètre 
qui ajuste la performance du générateur de pas incorporé à LinuxCNC, 
_stepgen_, qui est un composant de HAL. Ce paramètre ajuste 
la longueur de l'impulsion de pas. Continuez à lire, on expliquera 
tous finalement.] est changé de 1 à 2, alors il y aura deux 
périodes entre le commencement et la fin de l'impulsion de pas. 
De même, si _dirhold_ footnote:[dirhold se réfère à un paramètre 
qui adapte la longueur du maintien du signal de commande 
de direction.] est changé de 1 à 3, il y aura au moins trois périodes 
entre l'impulsion de pas et un changement d'état de la commande 
de direction.

Si nous pouvons utilisez _dirhold_ pour répondre aux exigences des 20µs 
de maintiens du signal de direction, le prochain délai à respecter est 
la durée de 4.5 µs du signal de pas haut, additionnons les 11 µs de 
latence au 4.5 µs de signal haut et nous obtenons une période minimum 
de 15.5 µs.
Lorsque nous essayons la valeur de 15.5, nous trouvons que l'ordinateur 
est lent, donc nous réglons sur 16 µs.
Si nous laissons _dirhold_ à 1 (par défaut) alors temps minimum entre 
un pas et le changement de direction est de 16 µs moins les 11 µs 
de latence ce qui nous donne 5µs. Ce qui n'est pas suffisant il nous 
manque 15 µs. Puisque la période est 16 µs, nous avons besoin d'encore 
une période. Dans ce cas nous changeons _dirhold_ de 1 à 2. Maintenant 
le temps minimal entre la fin de l'impulsion de pas et le changement 
du signal de direction et de 5+16=21 µs. Nous n'avons plus à 
nous inquiéter d'une erreur de direction à cause de la latence.

Pour plus d'informations sur stepgen voir la section stepgen du manuel 
de HAL.

=== Timing des pas

Sur certain pilote moteur le rapport entre la durée des espaces et 
la durée des impulsions n'est pas égal, dans ce cas 
le point (le moment) du pas est important. Si le pas se déclenche 
sur le front descendant alors, la broche de sortie doit être inversée.

== Systèmes à servomoteurs

=== Opération de base

Les systèmes à servomoteurs sont capables de vitesses plus élevées pour 
une précision équivalente au moteur pas-à-pas, mais ils sont plus coûteux 
et complexes. Contrairement aux systèmes pas à pas, les servo-systèmes 
nécessitent un dispositif de rétroaction pour se positionner. 
Ils ne fonctionnent pas immédiatement sorti de la boite et 
ils doivent être calibrés pour fonctionner contrairement aux moteurs 
pas à pas.

Cette différence s'explique par le mode de régulation différent 
des deux systèmes. Les servosystèmes sont régulés en _boucle fermée_ 
et le moteur pas à pas en _boucle ouverte_.

Que signifie _boucle fermée_ ? Regardons un schéma simplifié et 
la façon dont un système de servomoteur fonctionne.

.Boucle fermée
image::images/servo-feedback_fr.png[]

Ce diagramme montre que le signal de consigne (de commande) et le signal 
de retour pilotent l'amplificateur sommateur, ensuite celui-ci pilote 
l'amplificateur de puissance, qui pilote le moteur, qui actionne 
la charge et le dispositif de retour d'information qui fournis 
le signal de retour. Cela se perçoit comme une boucle fermée où 
A contrôle B, B contrôle C, C contrôle D et D contrôle A.

Si vous n'avez pas travaillé avec des systèmes à servomoteurs auparavant, 
cela sera sans aucun doute étrange au premier abord, surtout 
par rapport aux plus normal des circuits électroniques, où le bon 
déroulement des entrées vers les sorties est de ne jamais revenir 
en arrière.footnote:[Si cela peut aider, l'équivalent le plus proche 
dans le monde numérique ce sont les machines d'état, 
machines séquentielles où l'état des sorties à ce moment dépend 
de l'état que les entrées et sorties avaient avant. Si cela n'aide 
pas, alors passons.]

Si tout contrôle tout le reste comment cela peut-il fonctionner, qui 
en a la charge ? La réponse est que LinuxCNC peut contrôler ce système, 
mais il doit le faire en choisissant une des différentes méthodes 
de contrôle.

La méthode de contrôle qu'utilise LinuxCNC, est l'une des plus simples 
et la meilleure appelée PID.
PID est l'acronyme de **P**roportionnelle, **I**ntégrale et **D**érivée. 
La valeur proportionnelle détermine la réaction à l'erreur actuelle, 
la valeur intégrale détermine la réaction basée sur la somme d'erreurs 
récentes et la valeur dérivée détermine la réaction basée sur 
la vitesse de variation de l'erreur. Ce sont trois techniques communes 
de mathématique qui sont appliquées pour fournir un processus de suivi 
d'une consigne. Dans le cas de LinuxCNC le processus que nous 
voulons contrôler est l'actuelle position de l'axe et le point de 
consigne qui est la position commandée l'axe.

.Boucle PID
image::images/pid-feedback_fr.png[]

En ajustant trois composantes (proportionnelle, intégrale et dérivée) 
dans l'algorithme du contrôleur PID, nous pouvons concevoir 
une régulation qui s'adapte aux exigences de processus spécifiques. 
La réponse du contrôleur peut être décrite en trois termes 
de réactivité : une erreur, de tolérance, au dépassement du point 
de consigne et au taux d'oscillation du système.

=== Terme proportionnel

Le terme proportionnel appelé plus souvent gain proportionnel 
applique un changement à la sortie qui est proportionnelle a la valeur 
d'erreur courante. Un gain élevé provoque un grand changement à 
la sortie pour un petit changement de l'erreur. Si le gain est 
trop haut, le système peut devenir instable. Au contraire, 
un gain trop faible aboutit à une faible réponse de la sortie 
en réaction à une grande erreur d'entrée. Si le gain proportionnel 
est trop bas, il peut être trop faible pour répondre aux perturbations 
du système.

En l'absence de perturbation, un contrôle proportionnel pur ne 
se positionnera pas à sa valeur cible, mais conservera un état 
d'erreur statique qui est une fonction du gain proportionnel et 
du gain du processus. Malgré la compensation de l'état stationnaire, 
tant la théorie des systèmes asservis que la pratique industrielle 
indiquent que c'est le terme proportionnel qui devrait contribuer 
à la plus grande partie du changement de la sortie.

=== Terme intégral

La contribution du terme intégral est proportionnelle à l'amplitude 
de l'erreur et à sa durée. La somme des erreurs instantanées au fil 
du temps (intégration) donne la compensation accumulée qui devrait 
avoir été corrigée précédemment. L'intégration de l'erreur est alors 
multipliée par le gain d'intégral et ajoutée à la sortie du contrôleur.

Le terme intégral lorsqu'il est ajouté augmente le mouvement 
du processus vers la consigne, il élimine l'erreur de statisme qui 
se produit avec un régulateur proportionnel seul. Cependant, puisque 
le terme intégral doit répondre aux erreurs accumulées par le passé, 
il peut causer un dépassement de la valeur de consigne actuelle 
(dépasser le point de consigne et puis créer un écart dans l'autre sens).

=== Terme dérivé

Le taux de variation de l'erreur du processus est calculé en 
déterminant la pente de l'erreur au cours du temps (c'est-à-dire 
sa dérivée première en relation avec le temps) et en multipliant ce 
taux de changement par le gain de dérivé.
Le terme dérivé ralentit le taux de variation de la sortie 
du régulateur, cet effet est plus visible à proximité du point 
de consigne du contrôleur.
Par conséquent, le contrôle dérivé est utilisé pour réduire l'ampleur du 
dépassement que produit la composante intégrale et pour améliorer la stabilité 
de la combinaison contrôleur processus.

=== Réglage de la boucle

Si les paramètres du contrôleur PID (les gains des termes 
proportionnel, intégral et dérivé) sont mal choisis, 
l'entrée du processus contrôlé peut être instable, c'est-à-dire 
sa sortie diverge, avec ou sans oscillation et, est limitée seulement 
par la saturation ou la rupture mécanique. Le réglage fin d'une boucle 
de contrôle consiste en l'ajustement de ses paramètres de contrôle 
(gain proportionnel, gain intégral, gain dérivé) aux valeurs optimums 
pour la réponse désirée.

=== Réglage manuel

Une méthode de réglage simple consiste à régler les valeurs *I* et *D* 
à zéro. Augmentons la valeur de *P* jusqu'à ce que la sortie oscille, 
*P* devrait être paramétré approximativement à la moitié de cette valeur 
pour diminuer d'un quart l'amplitude de ce type de réponse. Augmentons 
sa valeur pour que n'importe quelle compensation soit correcte dans un 
temps raisonnable pour le processus. Cependant, une valeur trop élevée 
apporte de l'instabilité. Ensuite, augmentons la valeur de *D* pour que 
la réponse soit suffisamment rapide pour atteindre sa référence après 
une perturbation de charge. Cependant, une valeur trop grande de *D* 
provoquera une réponse excessive et un dépassement.
Un réglage de boucle PID rapide a un dépassement léger pour atteindre 
le point de consigne plus rapidement, cependant, certains systèmes ne 
peuvent accepter de dépassement, dans ce cas, une boucle fermée 
sur-amortie est nécessaire, cela requière une valeur *P* 
significativement plus basse que celle provoquant l'oscillation.

== RTAI

La _Real Time Application Interface_ (RTAI) Interface d'application
temps réel est utilisée pour fournir la meilleure performance temps réel.
Le noyau patché RTAI permet d'écrire des applications avec des 
contraintes temporelles strictes. RTAI donne la possibilité 
d'avoir des logiciels comme ceux de génération de pas qui ont besoin 
d'un timing précis.

=== ACPI

L'Advanced Configuration and Power Interface (ACPI) a de nombreuses 
et différentes fonctions, dont la plupart interfèrent avec les 
performances du système temps réel. (Pour par exemple: la gestion de 
l'énergie, la réduction de puissance du processeur, la variation de 
fréquence du CPU, etc.)
Le noyau LinuxCNC (et probablement tous les noyaux RTAI-patché) ont les 
fonctions ACPI désactivées. ACPI prend également soin de mettre hors 
tension le système après qu'un arrêt système a été commandé, et 
c'est pourquoi vous pourriez avoir besoin de presser sur le bouton 
d'alimentation pour éteindre complètement votre ordinateur. 
Le groupe RTAI a amélioré cela dans les versions récentes, de sorte 
que votre système LinuxCNC peut éteindre le système par lui-même.