Comment utiliser la réponse échelonnée mesurée pour régler le système de contrôle

17

Comment utiliser une réponse échelonnée mesurée pour régler un schéma de contrôle PID ou convolution?

Inspiré par cette réponse * , je suis intéressé par une explication plus détaillée de la façon de mettre en œuvre un système de contrôle basé sur la réponse échelonnée mesurée.

Je n'essaierais pas de deviner tous les effets. Il se passe probablement des choses non évidentes et vous ne pouvez pas connaître tous les paramètres.

Je mesurerais la réponse échelonnée. Trouvez deux réglages de pompe qui ont pour résultat que la balle se trouve dans la plage mesurable du tube. Ensuite, le contrôleur passe soudainement d'un réglage à l'autre en boucle ouverte. Pendant ce temps, mesurez ce que fait la balle au fil du temps. Telle est la réponse par étapes. Vous pouvez prendre la dérivée de cela et obtenir la réponse impulsionnelle. À partir de la réponse impulsionnelle, vous pouvez prédire le mouvement de la balle pour tout historique des paramètres de la pompe, en supposant qu'il s'agit d'un système linéaire. Il est probablement suffisamment linéaire sur la petite plage de paramètres pour maintenir la balle dans sa plage normale.

Vous pouvez l'utiliser comme base de simulation pour trouver les paramètres du contrôle PID à l'ancienne. Ou vous pouvez utiliser la réponse impulsionnelle directement pour effectuer un contrôle de convolution. Vous devez filtrer le filtre passe-bas suffisamment pour que le noyau de convolution ne devienne négatif que si votre pompe est réellement réversible et peut aspirer la balle.

Comment est-ce que cela fonctionne exactement? Le réglage PID est difficile ; Je suppose que le "contrôle de convolution" est l'utilisation de la fonction de pôle zéro ou de transfert, mais je ne vois pas exactement comment obtenir les paramètres.

CONNEXES: Modélisation du système pour les systèmes de contrôle
* modélisation de la fonction de transfert de la lévitation de la balle de ping-pong dans un tube comme amortisseur

tyblu
la source

Réponses:

23

introduction

Tout d'abord, nous devons examiner ce qu'est exactement cette chose appelée réponse impulsionnelle d'un système et ce que cela signifie. Il s'agit d'un concept abstrait qui nécessite un peu de réflexion pour être visualisé. Je ne vais pas me lancer dans des mathématiques rigoureuses. Mon point est d'essayer de donner une certaine intuition de ce qu'est cette chose, ce qui conduit ensuite à la façon dont vous pouvez l'utiliser.

Exemple de problème de contrôle

Imaginez que vous disposiez d'une grosse résistance de puissance grasse avec un capteur de température monté dessus. Tout démarre à température ambiante. Lorsque vous allumez l'appareil, vous savez que la température au niveau du capteur augmentera et se stabilisera éventuellement, mais l'équation exacte serait très difficile à prévoir. Disons que le système a une constante de temps d'environ 1 minute, bien que la "constante de temps" ne soit pas complètement applicable car la température n'augmente pas dans une belle exponentielle comme elle le ferait dans un système à un seul pôle, et donc une seule constante de temps . Disons que vous voulez contrôler la température avec précision, la faire passer à un nouveau niveau et y rester régulièrement beaucoup plus rapidement que ce qu'elle ferait si vous allumiez simplement au niveau de puissance approprié et attendiez.

Fondamentalement, vous avez un problème de système de contrôle. La réponse en boucle ouverte est raisonnablement reproductible et il y a quelque part une équation qui la modélise assez bien, mais le problème est qu'il y a trop d'ignorances pour que vous dériviez cette équation.

Contrôle PID

Un moyen classique de résoudre ce problème est d'utiliser un contrôleur PID. À l'époque du pléistocène, alors que cela devait être fait dans l'électronique analogique, les gens sont devenus intelligents et ont trouvé un schéma qui fonctionnait bien avec les capacités analogiques à portée de main. Ce schéma était appelé "PID", pour Proportionnel , Intégral et Dérivé .

Terme P

Vous commencez par mesurer l'erreur. Il s'agit simplement de la réponse mesurée du système (la température signalée par le capteur dans notre cas) moins l'entrée de commande (le réglage de température souhaité). Habituellement, ceux-ci peuvent être arrangés pour être disponibles sous forme de signaux de tension, donc trouver l'erreur n'était qu'une différence analogique, ce qui est assez facile. Vous pourriez penser que c'est facile. Tout ce que vous avez à faire est de piloter la résistance avec une puissance plus élevée, plus l'erreur est élevée. Cela tentera automatiquement de le rendre plus chaud lorsqu'il fait trop froid et plus froid lorsqu'il fait trop chaud. Cela fonctionne, sortof. Notez que ce schéma nécessite une erreur pour provoquer une sortie de contrôle non nulle (puissance entraînant la résistance). En fait, cela signifie que plus la puissance nécessaire est élevée, plus l'erreur est importante, car c'est le seul moyen d'obtenir la puissance élevée. Maintenant, vous pourriez dire que tout ce que vous avez à faire est d'augmenter le gain pour que l'erreur soit acceptable même à une puissance élevée. Après tout, c'est à peu près la base de l'utilisation des amplis-op dans de nombreux circuits. Vous avez raison, mais le monde réel ne vous laissera généralement pas vous en tirer. Cela peut fonctionner pour certains systèmes de contrôle simples, mais quand il y a toutes sortes de rides subtiles dans la réponse et quand cela peut prendre un temps considérable, vous vous retrouvez avec quelque chose qui oscille lorsque le gain est trop élevé. Autrement dit, le système devient instable. mais quand il y a toutes sortes de rides subtiles dans la réponse et quand cela peut prendre un temps considérable, vous vous retrouvez avec quelque chose qui oscille lorsque le gain est trop élevé. Autrement dit, le système devient instable. mais quand il y a toutes sortes de rides subtiles dans la réponse et quand cela peut prendre un temps considérable, vous vous retrouvez avec quelque chose qui oscille lorsque le gain est trop élevé. Autrement dit, le système devient instable.

Ce que j'ai décrit ci-dessus était la partie P (promotionnelle) du PID. Tout comme vous pouvez rendre la sortie proportionnelle au signal d'erreur, vous pouvez également ajouter des termes proportionnels à la dérivée temporelle et intégrale de l'erreur. Chacun de ces signaux P, I et D a son propre gain séparé avant d'être additionné pour produire le signal de sortie de commande.

Je terme

Le terme I permet d'annuler l'erreur au fil du temps. Tant qu'il y a une erreur positive, le terme I continuera à s'accumuler, augmentant éventuellement la sortie de contrôle au point où l'erreur globale disparaît. Dans notre exemple, si la température est constamment basse, cela augmentera constamment la puissance dans la résistance jusqu'à ce que la température de sortie ne soit finalement plus basse. J'espère que vous pouvez voir que cela peut devenir instable encore plus rapidement qu'un simple terme P élevé. Le terme IA en lui-même peut facilement provoquer des dépassements, qui deviennent facilement des oscillations.

Terme D

Le terme D est parfois omis. L'utilisation de base du terme D est d'ajouter un peu de stabilité pour que les termes P et I soient plus agressifs. Le terme D dit essentiellement que si je me dirige déjà dans la bonne direction, arrêtez-vous un peu sur le gaz car ce que j'ai maintenant semble nous y conduire .

Tuning PID

Les bases du contrôle PID sont assez simples, mais obtenir les termes P, I et D juste n'est pas le cas. Cela se fait généralement avec beaucoup d'expérimentation et de réglages. Le but ultime est d'obtenir un système global où la sortie répond aussi rapidement que possible mais sans dépassement excessif ni sonnerie, et bien sûr, elle doit être stable (ne pas commencer à osciller d'elle-même). Il y a eu de nombreux livres écrits sur le contrôle PID, comment ajouter de petites rides aux équations, mais surtout comment les "régler". Le réglage fait référence à la détermination des gains optimaux P, I et D.

Les systèmes de contrôle PID fonctionnent, et il y a certainement beaucoup de connaissances et d'astuces pour les faire fonctionner correctement. Cependant, le contrôle PID n'est pas la seule bonne réponse pour un système de contrôle. Les gens semblent avoir oublié pourquoi le PID a été choisi en premier lieu, qui avait plus à voir avec les contraintes de l'électronique analogique qu'avec une sorte de schéma de contrôle optimal universel. Malheureusement, trop d'ingénieurs assimilent aujourd'hui «système de contrôle» avec PID, qui n'est rien de plus qu'une réaction de réflexe de genou à petite pensée. Cela ne rend pas le contrôle PID incorrect dans le monde d'aujourd'hui, mais seulement l'une des nombreuses façons d'attaquer un problème de contrôle.

Au-delà du PID

Aujourd'hui, un système de contrôle en boucle fermée pour quelque chose comme l'exemple de température serait fait dans un microcontrôleur. Celles-ci peuvent faire bien plus que simplement prendre la dérivée et l'intégrale d'une valeur d'erreur. Dans un processeur, vous pouvez effectuer des divisions, des racines carrées, conserver un historique des valeurs récentes et bien plus encore. De nombreux schémas de contrôle autres que PID sont possibles.

Réponse impulsive

Alors oubliez les limites de l'électronique analogique et reculez et réfléchissez à la façon dont nous pourrions contrôler un système en revenant aux premiers principes. Et si pour chaque petit morceau de sortie de contrôle, nous savions ce que le système ferait. La sortie de contrôle continue n'est alors que la somme de beaucoup de petits morceaux. Puisque nous savons quel est le résultat de chaque pièce, nous pouvons savoir quel est le résultat de tout historique antérieur des sorties de contrôle. Notez maintenant qu'un "petit morceau" de la sortie de contrôle correspond bien au contrôle numérique. Vous allez calculer ce que devrait être la sortie de contrôle et la définir, puis revenir en arrière et mesurer à nouveau les entrées, calculer la nouvelle sortie de contrôle à partir de celles-ci et la définir à nouveau, etc. Vous exécutez l'algorithme de contrôle en boucle, et il mesure les entrées et définit la sortie de contrôle à nouveau à chaque itération de boucle. Les entrées sont "échantillonnées" à des moments discrets, et la sortie est également réglée sur de nouvelles valeurs à un intervalle fixe. Tant que vous pouvez le faire assez rapidement, vous pouvez penser que cela se produit dans un processus continu. Dans le cas d'un chauffage par résistance qui prend normalement quelques minutes à s'installer, il est certain que plusieurs fois par seconde sont tellement plus rapides que le système répond intrinsèquement de manière significative que la mise à jour de la sortie à 4 Hz par exemple semblera continue pour le système. C'est exactement la même chose que la musique enregistrée numériquement qui modifie réellement la valeur de sortie par étapes discrètes dans la gamme 40-50 kHz et qui est si rapide que nos oreilles ne peuvent pas l'entendre et ça sonne continu comme l'original. vous pouvez penser à ce qui se passe dans un processus continu. Dans le cas d'un chauffage par résistance qui prend normalement quelques minutes à s'installer, il est certain que plusieurs fois par seconde sont tellement plus rapides que le système répond intrinsèquement de manière significative que la mise à jour de la sortie à 4 Hz par exemple semblera continue pour le système. C'est exactement la même chose que la musique enregistrée numériquement qui modifie réellement la valeur de sortie par étapes discrètes dans la gamme 40-50 kHz et qui est si rapide que nos oreilles ne peuvent pas l'entendre et ça sonne continu comme l'original. vous pouvez penser à ce qui se passe dans un processus continu. Dans le cas d'un chauffage par résistance qui prend normalement quelques minutes à s'installer, il est certain que plusieurs fois par seconde sont tellement plus rapides que le système répond intrinsèquement de manière significative que la mise à jour de la sortie à 4 Hz par exemple semblera continue pour le système. C'est exactement la même chose que la musique enregistrée numériquement qui modifie réellement la valeur de sortie par étapes discrètes dans la gamme 40-50 kHz et qui est si rapide que nos oreilles ne peuvent pas l'entendre et ça sonne continu comme l'original. il est certain que plusieurs fois par seconde sont tellement plus rapides que le système répond de manière significative de manière significative que la mise à jour de la sortie à 4 Hz par exemple semblera continue pour le système. C'est exactement la même chose que la musique enregistrée numériquement qui modifie réellement la valeur de sortie par étapes discrètes dans la gamme 40-50 kHz et qui est si rapide que nos oreilles ne peuvent pas l'entendre et ça sonne continu comme l'original. il est certain que plusieurs fois par seconde sont tellement plus rapides que le système répond de manière significative de manière significative que la mise à jour de la sortie à 4 Hz par exemple semblera continue pour le système. C'est exactement la même chose que la musique enregistrée numériquement qui modifie réellement la valeur de sortie par étapes discrètes dans la gamme 40-50 kHz et qui est si rapide que nos oreilles ne peuvent pas l'entendre et ça sonne continu comme l'original.

Alors, que pourrions-nous faire si nous avions cette façon magique de savoir ce que le système fera au fil du temps en raison d'un échantillon de sortie de contrôle? Étant donné que la réponse de contrôle réelle n'est qu'une séquence d'échantillons, nous pouvons additionner la réponse de tous les échantillons et savoir quelle sera la réponse système résultante. En d'autres termes, nous pouvons prédire la réponse du système pour toute forme d'onde de réponse de commande arbitraire.

C'est cool, mais simplement prédire la réponse du système ne résout pas le problème. Cependant, et voici le moment aha, vous pouvez retourner cela et trouver la sortie de contrôle qu'il aurait fallu pour obtenir la réponse souhaitée du système. Notez que cela résout exactement le problème de contrôle, mais seulement si nous pouvons en quelque sorte connaître la réponse du système à un seul échantillon de sortie de contrôle arbitraire.

Donc, vous pensez probablement, c'est facile, donnez-lui simplement une impulsion importante et voyez ce qu'il fait. Oui, cela fonctionnerait en théorie, mais en pratique, cela ne fonctionne généralement pas. C'est parce que tout échantillon de contrôle, même grand, est si petit dans le schéma global des choses que le système a à peine une réponse mesurable. Et rappelez-vous que chaque échantillon de contrôle doit être petit dans l'ordre des choses afin que la séquence d'échantillons de contrôle soit continue pour le système. Ce n'est donc pas que cette idée ne fonctionnera pas, mais qu'en pratique la réponse du système est si petite qu'elle est enterrée dans le bruit de mesure. Dans l'exemple de résistance, frapper la résistance avec 100 W pendant 100 ms ne provoquera pas suffisamment de changement de température pour mesurer.

Réponse par étapes

Mais il y a encore un moyen. Bien que l'introduction d'un seul échantillon de contrôle dans le système nous ait donné directement sa réponse à des échantillons individuels, nous pouvons toujours l'inférer en mettant une séquence connue et contrôlée de réponses de contrôle dans le système et en mesurant sa réponse à ceux-ci. Habituellement, cela se fait en mettant une étape de contrôlein. Ce que nous voulons vraiment, c'est la réponse à un petit coup, mais la réponse à une seule étape n'est que l'intégrale de cela. Dans l'exemple de la résistance, nous pouvons nous assurer que tout est stable à 0 W, puis allumez soudainement l'alimentation et mettez 10 W dans la résistance. Cela entraînera éventuellement un changement de température bien mesurable sur la sortie. La dérivée de celle-ci avec la bonne mise à l'échelle nous indique la réponse à un échantillon de contrôle individuel, même si nous ne pouvions pas mesurer cela directement.

Donc, pour résumer, nous pouvons mettre une entrée de contrôle d'étape dans un système inconnu et mesurer la sortie résultante. C'est ce qu'on appelle la réponse par étapes . Ensuite, nous prenons la dérivée temporelle de cela, qui est appelée la réponse impulsionnelle . La sortie du système résultant de n'importe quel échantillon d'entrée de contrôle est simplement la réponse impulsionnelle adaptée à la force de cet échantillon de contrôle. La réponse du système à toute une histoire d'échantillons de contrôle est un tas de réponses d'impulsion additionnées, mises à l'échelle et asymétriques dans le temps pour chaque entrée de contrôle. Cette dernière opération revient souvent et porte le nom spécial de convolution .

Contrôle de convolution

Alors maintenant, vous devriez être en mesure d'imaginer que pour tout ensemble souhaité de sorties système, vous pouvez trouver la séquence des entrées de contrôle pour provoquer cette sortie. Cependant, il y a un piège. Si vous devenez trop agressif avec ce que vous voulez du système, les entrées de commande pour y parvenir nécessiteront des valeurs élevées et basses non médiévales. Fondamentalement, plus vous vous attendez à ce que le système réponde, plus les valeurs de contrôle doivent être grandes, dans les deux sens. Dans l'exemple de la résistance, vous pouvez mathématiquement dire que vous voulez qu'elle passe immédiatement à une nouvelle température, mais cela nécessiterait un signal de commande infini. Plus vous permettez à la température de revenir à la nouvelle valeur, plus la puissance maximale dont vous avez besoin pour pouvoir vider la résistance est faible. Une autre ride est que la puissance dans la résistance devra parfois aussi baisser. Vous pouvez'

Une façon de résoudre ce problème consiste pour le système de contrôle à filtrer passe-bas l'entrée de contrôle utilisateur avant de l'utiliser en interne. Les utilisateurs de figure font ce que les utilisateurs veulent faire. Laissez-les claquer l'entrée rapidement. En interne, vous filtrez le filtre passe-bas pour le lisser et le ralentir au plus rapide que vous savez que vous pouvez réaliser étant donné la puissance maximale et minimale que vous pouvez mettre dans la résistance.

Exemple du monde réel

Voici un exemple partiel utilisant des données du monde réel. Cela provient d'un système embarqué dans un produit réel qui, entre autres, doit contrôler quelques dizaines de réchauffeurs pour maintenir divers réservoirs chimiques à des températures spécifiques. Dans ce cas, le client a choisi de faire un contrôle PID (c'est ce avec quoi il s'est senti à l'aise), mais le système lui-même existe toujours et peut être mesuré. Voici les données brutes de la conduite d'un des réchauffeurs avec une entrée pas à pas. Le temps d'itération de la boucle était de 500 ms, ce qui est clairement un temps très court étant donné que le système se stabilise visiblement sur ce graphique à l'échelle après 2 heures.

Dans ce cas, vous pouvez voir que le chauffage a été entraîné avec un pas d'environ 0,35 de taille (la valeur "Out"). Mettre une étape complète de 1,0 pendant longtemps aurait entraîné une température trop élevée. Le décalage initial peut être supprimé et le résultat mis à l'échelle pour tenir compte du petit pas d'entrée pour déduire la réponse du pas unitaire:

À partir de cela, vous penseriez qu'il suffirait de soustraire les valeurs de réponse d'étape successives pour obtenir la réponse d'impulsion. C'est correct en théorie, mais en pratique, vous obtenez principalement le bruit de mesure et de quantification puisque le système change si peu en 500 ms:

Notez également la petite échelle des valeurs. La réponse impulsionnelle est représentée par une échelle de 10 6 .

Des variations clairement importantes entre des lectures individuelles ou même quelques lectures ne sont que du bruit, nous pouvons donc filtrer le filtre passe-bas pour nous débarrasser des hautes fréquences (le bruit aléatoire), ce qui, nous l'espérons, nous permet de voir la réponse sous-jacente plus lente. Voici une tentative:

C'est mieux et montre qu'il y a vraiment des données significatives à avoir, mais toujours trop de bruit. Voici un résultat plus utile obtenu avec un filtrage passe-bas plus important des données d'impulsion brutes:

C'est quelque chose avec lequel nous pouvons réellement travailler. Le bruit restant est faible par rapport au signal global, il ne devrait donc pas gêner. Le signal semble toujours être là à peu près intact. Une façon de voir cela est de remarquer que le pic de 240 est à peu près juste à partir d'une vérification visuelle rapide et d'un filtre oculaire filtrant l'intrigue précédente.

Alors maintenant, arrêtez-vous et réfléchissez à ce que signifie réellement cette réponse impulsionnelle. Tout d'abord, notez qu'il est affiché fois 1M, donc le pic est vraiment 0,000240 à pleine échelle. Cela signifie qu'en théorie, si le système était piloté avec une seule impulsion pleine échelle pour l'un des intervalles de temps de 500 ms seulement, ce serait la température résultante par rapport à elle qui aurait été laissée seule. La contribution d'une période de 500 ms est très faible, comme cela a du sens intuitivement. C'est aussi pourquoi la mesure directe de la réponse impulsionnelle ne fonctionne pas, car 0,000240 de pleine échelle (environ 1 partie sur 4000) est inférieur à notre niveau de bruit.

Maintenant, vous pouvez facilement calculer la réponse du système pour tout signal d'entrée de commande. Pour chaque échantillon de sortie de contrôle de 500 ms, ajoutez l'une de ces réponses impulsionnelles mises à l'échelle en fonction de la taille de cet échantillon de contrôle. Le temps 0 de cette contribution de réponse impulsionnelle au signal final de sortie du système est au moment de son échantillon de contrôle. Par conséquent, le signal de sortie du système est une succession de ces réponses impulsionnelles décalées de 500 ms les unes des autres, chacune étant mise à l'échelle au niveau de l'échantillon de contrôle à ce moment.

La réponse du système est la convolution de l'entrée de commande avec cette réponse impulsionnelle, calculée chaque échantillon de commande, qui est toutes les 500 ms dans cet exemple. Pour créer un système de contrôle à partir de cela, vous le travaillez à l'envers pour déterminer l'entrée de contrôle qui se traduit par la sortie du système souhaitée.

Cette réponse impulsionnelle est toujours très utile même si vous voulez faire un contrôleur PID classique. Le réglage d'un contrôleur PID demande beaucoup d'expérimentation. Chaque itération prendrait une heure ou deux sur le système réel, ce qui rendrait le réglage itératif très très lent. Avec la réponse impulsionnelle, vous pouvez simuler la réponse du système sur un ordinateur en une fraction de seconde. Vous pouvez maintenant essayer de nouvelles valeurs PID aussi rapidement que vous pouvez les modifier et ne pas avoir à attendre une heure ou deux pour que le système réel vous montre sa réponse. Les valeurs finales doivent bien sûr toujours être vérifiées sur le système réel, mais la plupart du travail peut être effectué par simulation en une fraction du temps. C'est ce que je voulais dire par "Vous pouvez l'utiliser comme base de simulation pour trouver les paramètres du contrôle PID à l'ancienne" dans le passage que vous avez cité dans votre question.

Olin Lathrop
la source
4
Ne pas. aussi. minable.
NickHalden
4
Je pense que certains titres de section pourraient être très utiles ici. Mais génial s'applique.
Kortuk
Je suis en retard à la fête, mais quand même: réponse impressionnante, Olin! :)
bitsmack
7

Les filtres FIR et IIR, comme Jon l'a mentionné, sont des filtres numériques qui implémentent directement la convolution de la réponse impulsionnelle, comme son nom l'indique (Finite \ Infinite Impulse Response).

Convoluer la réponse impulsionnelle à un signal (dans le domaine temporel) revient exactement à multiplier la fonction de transfert à la transformée du signal (dans le domaine fréquentiel); et, fondamentalement, il consiste à multiplier la réponse impulsionnelle du filtre à la version traduite du signal (pensez au fait que la réponse du filtre est fixe dans le temps, alors que le signal varie continuellement dans le temps).

Dans les filtres numériques, la réponse impulsionnelle est réduite à un nombre fixe de coefficients qui multiplient le signal à un certain point; les points sont séparés par des retards, en obtenant qu'un 0 multiplie la valeur instantanée du signal, tandis qu'un k multiplie le même signal après k unités de retard.

entrez la description de l'image ici

La figure montre la réponse impulsionnelle d'un filtre générique (passe-bas dans ce cas) où les coefficients d'un filtre FIR à 13 prises (le nombre de retards) sont obtenus.

Pour obtenir certaines fonctions de transfert, un filtre FIR nécessiterait un nombre infini de coefficients: dans ces cas, une rétroaction est utilisée pour obtenir des filtres IIR (Infinite Impulse Response). Ces filtres permettent d'obtenir de meilleures fonctions de transfert (ex. Transition plus étroite entre bande passante et bande supprimée dans les filtres) mais peuvent générer une instabilité, tandis que les filtres FIR sont stables par construction.

Ce type de filtres peut être conçu avec des circuits analogiques, mais nécessite des amplificateurs précis réglés sur les coefficients et des circuits de retard précis, et a une énorme augmentation du matériel lors de l'augmentation du nombre de prises. Le plus souvent, ces filtres sont implémentés dans des DSP, où les opérations sont exécutées sur des signaux numériques d'une manière beaucoup plus facile.

Donc, pour répondre directement à votre question : le réglage des filtres numériques se fait simplement en fixant les coefficients à la réponse impulsionnelle discrétisée.

Mise à jour

OP a posé des questions sur la réponse par étapes et par impulsions; eh bien, comme l'ont dit Olin et Jon, la réponse impulsionnelle est la dérivée de la réponse échelon, et évidemment la réponse échelon est l'intégrale de la réponse impulsionnelle.

La réponse pas à pas est largement utilisée dans les systèmes de contrôle car elle montre les choses les plus importantes à leur sujet: la rapidité avec laquelle ils réagissent aux changements rapides de l'entrée, et s'ils sont stables et capables de minimiser l'erreur au fil du temps.

Mais la réponse impulsionnelle est très importante car elle peut être utilisée pour calculer ce que le signal d'entrée à un certain instant entraînera à la sortie, de sorte que le signal de sortie complet peut être obtenu en empilant le résultat de la réponse impulsionnelle multiplié par le signal d'entrée: ceci c'est la convolution, et c'est là que la magie opère. Oui, car la réponse impulsionnelle n'est autre que l'anti-transformée de Fourier de la fonction de transfert du régulateur.

C'est donc la puissance des filtres numériques: ils implémentent directement la réponse impulsionnelle et, que l'on veuille reproduire une réponse pas à pas (dans le cas d'un système de contrôle) ou une fonction de transfert (dans le cas d'un filtre) il suffit de dériver la réponse impulsionnelle et extraire les coefficients de la FIR.

clabacchio
la source
Très bonne réponse! Pour le terminer, pouvez-vous indiquer comment obtenir la réponse impulsionnelle de l'étape? (Je le vois dans la réponse de @ JonWatte.)
tyblu
4

La convolution est généralement un filtre FIR, pas un IIR comme vous obtenez avec des pôles et des zéros dans un filtre récursif traditionnel. Maintenant, si vous avez la réponse échelonnée, vous pouvez inverser ceci et pré-convoluer votre signal de réponse par cela. Le résultat final est que l'ensemble du système présente exactement une réponse échelonnée. Cependant, dans le cas général, cela introduit un retard de groupe, car vous devez "précharger" la réponse inverse. Dans un système de contrôle, cela peut entraîner une latence indésirable.

Jon Watte
la source
@JohWatte, un exemple?
Kortuk
1
Ou ce que j'ai fait, c'est d'appliquer un filtre passe-bas au signal de commande. Idéalement, une étape d'entrée donne une sortie, mais ce n'est pas physiquement possible car la sortie devrait aller à l'infini. Vous filtrez l'entrée de contrôle de sorte qu'une entrée pas à pas se transforme en quelque chose que vous pouvez réaliser, ce qui signifie que les valeurs de convolution ne dépassent jamais ce que votre lecteur de sortie est capable de produire. En particulier, les valeurs négatives ne sont souvent pas possibles. Par exemple, si vous réglez la température avec un élément chauffant résistif, vous ne pouvez pas produire de chaleur négative (avec un Peltier vous pourriez, et les valeurs peuvent alors être négatives).
Olin Lathrop
Comment inversez-vous la réponse par étapes? Le "signal de réponse" est-il la sortie souhaitée?
tyblu
En bref, si je me souviens bien: vous convertissez la réponse pas à pas en réponse impulsionnelle. Ensuite, vous soustrayez la réponse impulsionnelle (avec l'impulsion retirée) convolue avec le signal d'entrée du signal de sortie. C'est cette convolution qui ajoute un retard de groupe (latence). Je me souviens avoir vu de bonnes références il y a une douzaine d'années en relation avec la modélisation de microphone et de pièce en DSP audio.
Jon Watte
2

Je renverserais la situation et dirais que si vous avez la capacité de mesurer la réponse échelonnée de votre système, vous pouvez raccourcir une grande partie de la théorie et continuer à optimiser vos paramètres de contrôle. Plutôt que de mesurer la réponse en boucle ouverte et d'essayer de calculer les paramètres de contrôle idéaux (bien que cela soit utile pour trouver un bon point de départ pour l'optimisation), vous pouvez régler votre système en mesurant la réponse en boucle fermée.

L'idée principale est que la mesure de la réponse de l'étape vous permettra de voir (à peu près) si le système de contrôle est sous-amorti, sur-amorti ou critique (le cas idéal).

Si vous mesurez la réponse de l'étape et voyez la sonnerie, vous savez que vous êtes sous-amorti. Si vous mesurez la réponse pas à pas et que la sortie n'atteint que lentement la valeur finale, vous savez que vous êtes sous-amorti. Si vous pouvez régler le contrôleur tout en mesurant à plusieurs reprises la réponse de l'étape, vous pouvez simplement l'ajuster pour obtenir la réponse la plus rapide sans sonnerie et savoir que vous êtes proche de la meilleure réponse.

Vous pouvez commencer en utilisant simplement le terme P. Si les résultats ne sont pas satisfaisants, ajoutez les termes I et D. Le terme I permet de se débarrasser des queues longues dans la réponse, ou des cas où la sortie n'atteint jamais tout à fait la valeur souhaitée. Le terme D est utile pour accélérer la réponse en "prédisant" la prochaine entrée. (Je suppose, bien que je ne sois pas un expert des contrôles, que le terme P peut être optimisé en termes absolus, mais le meilleur choix de termes I et D dépendra non seulement de la réponse de votre système sous contrôle, mais aussi de les caractéristiques, comme le contenu en fréquence et l'amplitude, du signal d'entrée)

Une fois que vous avez obtenu la réponse la plus rapide que vous pouvez obtenir sans sonner, réglez-la sur légèrement sur-amortie afin qu'un changement de température ou tout ce qui n'ajuste pas le système en oscillation.

Le photon
la source