Was ist der Vorteil einer aus einer Z-Transformation abgeleiteten PID-Implementierung?

29

Ich habe gesehen, dass viele PID-Artikel wie dieser eine Z-Transformation der generischen PID-Gleichung verwenden, um eine verrückte Differenzgleichung abzuleiten, die dann in Software (oder in diesem Fall in einem FPGA) implementiert werden kann. Meine Frage ist, was der Vorteil einer solchen Implementierung gegenüber der herkömmlichen und viel intuitiveren PID ohne Promotion istTyp Implementierung? Die zweite scheint einfacher zu verstehen und umzusetzen. Der P-Term ist eine gerade Multiplikation, das Integral verwendet eine laufende Summe und die Ableitung wird durch Subtrahieren der vorherigen Stichprobe von der aktuellen Stichprobe geschätzt. Wenn Sie eine Funktion wie den Integral Windup-Schutz hinzufügen müssen, ist dies eine einfache Algebra. Der Versuch, einem Algorithmus vom Typ "Differenz", wie oben verlinkt, einen Integral Windup-Schutz oder andere Funktionen hinzuzufügen, scheint viel komplizierter zu sein. Gibt es einen Grund, eine solche Implementierung zu verwenden, außer den damit einhergehenden "Ich bin ein schlechter Esel, der gerne Z-Transformationen zum Spaß ausführt"?

BEARBEITEN: Die PID ohne einen von mir verknüpften PHD-Artikel ist ein Beispiel für die einfachere Implementierung, bei der eine laufende Summe für den Integralterm und die Differenz zwischen aufeinanderfolgenden Abtastwerten für den abgeleiteten Term verwendet wird. Es kann deterministisch mit Festkomma-Mathematik implementiert werden und kann bei Bedarf Informationen über Echtzeitkonstanten in die Berechnung einbeziehen. Grundsätzlich suche ich einen praktischen Vorteil gegenüber der Z-Transformationsmethode. Ich kann nicht sehen, wie es schneller sein oder weniger Ressourcen verbrauchen könnte. Anstatt eine laufende Summe des Integrals zu behalten, scheint die Z-Methode die vorherige Ausgabe zu verwenden und die vorherigen P- und D-Komponenten zu subtrahieren (um die Integralsumme durch Berechnung zu erhalten). Wenn also niemand auf etwas hinweisen kann, das mir fehlt, akzeptiere ich den Kommentar von AngryEE, dass es im Wesentlichen dasselbe ist.

FINAL EDIT: Danke für die Antworten. Ich denke, ich habe etwas über jedes gelernt, aber am Ende denke, Angry hat insofern Recht, als es nur eine Frage der Präferenz ist. Die zwei Formen:

e(k-2)=e(k-1),

u(k)=u(k-1)+Kp(e(k)-e(k-1)+KichTiche(k)+KdTich(e(k)-2e(k-1)+e(k-2))
u ( k - 1 ) = u ( k )
e(k-2)=e(k-1),e(k-1)=e(k)
u(k-1)=u(k)

oder

u ( k ) = K p e ( k ) + K i T isum + K d

Summe=Summe+e(k)
e(k-1)=e(k)
u(k)=Kpe(k)+KichTichSumme+KdTich(e(k)-e(k-1))
e(k-1)=e(k)

wird im Wesentlichen die gleiche Sache bewerten. Einige erwähnen, dass der erste in einem DSP oder FPGA schneller implementiert werden kann, aber ich kaufe das nicht. Entweder könnte vektorisiert werden. Das erste erfordert zwei Nachoperationen, das zweite erfordert eine Vor- und eine Nachoperation, sodass es ausgeglichen zu sein scheint. Das erste erfordert auch 1 weitere Multiplikation in der tatsächlichen Berechnung.

bt2
quelle
Meinten Sie "Differentialgleichung"?
Kevin Vermeer
Ich muss Ihre Kommentare missverstanden haben, basierend auf diesem Feedback, das ich zumindest gemacht habe. Ich werde meinen Kommentar entfernen!
Kortuk
1
Bitte gehen Sie zu dsp.stackexchange.com
Jason S

Antworten:

7

Sie werden von der ganzen Fantasie der Z-Transformation verwirrt. Die beiden Ansätze sind grundsätzlich gleich - der PID ohne PHD-Ansatz hat nur weniger Indizes. Sie führen die gleiche Grundfunktion aus und verwenden die gleiche Grundmathematik.

Der einzige wesentliche Unterschied zwischen den beiden ist, dass die PID ohne PHD die Abtastzeit nicht berücksichtigt. Für alles, was instabil sein könnte, ist die Abtastzeit ein sehr wichtiger Gesichtspunkt. Der Vorteil des Z-Transformations-Ansatzes besteht in diesem Fall darin, dass Sie ihn nicht ohne Berücksichtigung der Abtastzeit verwenden können. Er zwingt Sie dazu, Ihre Arbeit zu zeigen und hilft Ihnen beim Entwerfen eines stabileren Systems.

Es sieht auch so aus, als ob die Fallstudie, die Sie bei der Implementierung des Z-Transformations-Ansatzes gefunden haben, sehr deterministisch angelegt war. Dies erklärt die Verwendung von FPGAs - die Berechnungen dauern immer gleich lange. Die PID ohne PHD-Implementierung ist entschieden nicht deterministisch. Die Verwendung von Doubles als Variablen anstelle einer Festkommaimplementierung führt auf jedem Mikrocontroller ohne Gleitkommaeinheit (und wahrscheinlich auch auf UCs mit einer FPU) mit Sicherheit zu einem nicht deterministischen Verhalten. Die Fallstudie befasst sich mit einem ganz anderen Komplexitätsgrad als der PID-Ansatz ohne PHD.

Der mathematische Ansatz und der Kontrollansatz sind also im Wesentlichen identisch, der Fallstudien- / Z-Transformationsansatz ist jedoch strenger und theoretisch fundierter. Der PID-Ansatz ohne PHD funktioniert nur für sehr einfache, nicht zeitkritische Systeme, die relativ stabil sind.

AngryEE
quelle
Die PID ohne einen PHD-Artikel ist nur ein Beispiel für die einfachere Implementierung, bei der eine laufende Summe für das Integral und die Differenz zwischen aufeinanderfolgenden Abtastwerten für die Ableitung verwendet wird. Der Artikel besagt, dass die Abtastzeit konsistent sein sollte. Die Abtastzeit kann leicht zu den I- und D-Berechnungen hinzugefügt werden, wird jedoch in den meisten Fällen nicht in der tatsächlichen Berechnung durchgeführt. Die GUI (oder eine andere Schnittstelle) des Controllers zeigt dem Benutzer die I- und D-Terme in Sekunden an, basierend auf der Schleifenzeit.
BT2
@ bt2 es hört sich so an, als hätten Sie einen ganz bestimmten Fall, in dem die PID ohne Promotion der beste Ansatz ist. Die meisten Systeme verfügen in keiner Weise über eine Anzeige der I- und D-Terme. Es ist das Ergebnis des PID-Reglers, das einige Änderungen am gesamten System aufweist, die dann auf sich selbst zurückgeschleift werden. Wenn Sie nur einem Benutzer anzeigen, gibt es eigentlich keinen Grund, sich um die Stabilität Sorgen zu machen.
Kellenjb
"Die PID ohne PHD-Ansatz funktioniert nur für sehr einfache" - ich bin anderer Meinung. Mit der Z-Transformations-Analyse können Sie digitale Steuerungssysteme definitiv optimieren, aber die Kehrseite ist, dass Sie sich so genau in die Modellierung Ihres Systems vertiefen können, dass Sie den Wald vor lauter Bäumen verpassen.
Jason S
10

Die Z-Transformationsmethode zum Entwerfen des PID-Reglers wird schließlich zu einer viel effizienteren Implementierung führen. Dies ist wichtig, wenn Sie den kleinsten FPGA / DSP / Microcontroller für Ihre Anwendung entwickeln.

Die erwähnte "PID ohne PHD" ist wahrscheinlich der einfachste Ansatz zur Implementierung einer PID-Regelung in Software, wird jedoch bei höheren Abtastraten umständlich.

Darüber hinaus eignet sich die Z-Transformation besser zum Entwerfen in einer diskreten (digitalen) Domäne. Die traditionelle Entwurfsmethode (Laplace-Transformation) ist eher für kontinuierliche Zeit gedacht. Es gibt mehrere Arten der Konvertierung zwischen den beiden (Null-Ordnung-Halten, Lineare Interpolation, Polplatzierung, Bilinear / Tustin), wobei jede ihre Stärken und Nachteile in Bezug auf die Stabilität und das Ansprechverhalten des Systems aufweist. Im Allgemeinen ist es einfacher, das gesamte Design in der diskreten Domäne durchzuführen.

Kurz gesagt, wenn Sie ein relativ "langsames" System verwenden (alle wichtigen Verhaltensweisen treten deutlich unter 100 kHz auf), ist das erste Design wahrscheinlich in Ordnung. Sie können es auf einem Mikrocontroller oder PC implementieren und damit fertig werden. Wenn die Systeme schneller werden, müssen Sie möglicherweise die Z-Transformationsmethode verwenden, um die von Ihnen benötigten Geschwindigkeiten zu erhalten (in dem Artikel werden 9,5 MHz erwähnt, vorausgesetzt, Sie verfügen über A / D- und D / A-Wandler, die mithalten können).

mjcarroll
quelle
1
Gleiche Anzahl von Rechenoperationen, unterschiedliche Darstellung von Zahlen. Doubles sind eine viel komplexere Darstellung von Zahlen als die in der Fallstudie verwendete Festkommamethode. Weniger komplex bedeutet weniger Operationen (auf dem Silizium).
AngryEE
2
@ bt2, ich würde sagen, effizienter in dem Sinne, dass DSP-Chips für SIMD-Befehlssätze (Single Instruction, Multiple Data) eingerichtet sind. Während es sich um die gleiche Anzahl von mathematischen Operationen handelt, können Sie mit der Z-Transformation alle Multiplikationen in einem Befehlszyklus ausführen und dann alle Elemente des resultierenden Vektors in einem Zyklus summieren (plattformabhängig). Während die Mathematik dieselbe ist, ist die Zeitkomplexität bedeutend geringer, was zu höheren Beschleunigungen führt.
mjcarroll
1
@ bt2 Die Z-Form eignet sich zur Implementierung als Differenzgleichung, die nur von früheren Ausgaben und der aktuellen Eingabe abhängt, ohne dass eine laufende Summe erforderlich ist, die irgendwann überläuft (oder unterläuft). DSPs sind so konzipiert, dass sie eine effiziente Implementierung digitaler Filter über den Differenzengleichungsansatz ermöglichen. Siehe en.wikipedia.org/wiki/Digital_filter esp. Direktformen - dafür sind DSPs optimiert.
Freiraum
1
Ich glaube, dir fehlt etwas. Die laufende Summe wird unter normalen Umständen niemals überlaufen. IIR-Filter sind nicht immer gesättigt, und im Fall einer PID-Regelung ist dies normalerweise nicht der Fall. Es ist falsch zu sagen, dass dies bei einem Algorithmus der Fall ist, bei einem anderen jedoch nicht. Die laufende Summe basiert ebenfalls auf vorherigen Ausgaben. Wenn einer einen Überlauf verursacht, werden beide überlaufen. Stellen Sie es sich so vor, die 2. Implantation IST die erste, wobei einige mathematische Faktoren herausgerechnet werden ... u (k-1) - kp (e (k-1) - kd / Ti (e (k-1) - e ( k-2) == (laufende Summe)
bt2
1
-1: Z-Transformationen bieten keine effizientere Implementierung. Wenn Sie einen 1-poligen Tiefpassfilter mit der "naiven" digitalen Methode mit einem 1-poligen Tiefpassfilter mit der bilinearen Transformation vergleichen, erhalten Sie mit diesem Ansatz eine etwas weniger effiziente Implementierung. Unabhängig von der Filterableitung ist die gleiche Anzahl von Zustandsvariablen ungefähr die gleiche Effizienz der Implementierung. Dies ist größtenteils eine unabhängige Größe von der Art und Weise, wie der Filter konstruiert wurde.
Jason S
5

Nach meiner Erfahrung ist hier der Deal:

  • Z-Transformationen helfen bei der Analyse: Die Theorie zeitdiskreter Systeme lässt sich am besten mit Z-Transformationen modellieren.
  • Der Entwurf von PID-Reglern oder Tiefpassfiltern kann sowohl über Z-Transformationen als auch über klassische Analysen erfolgen, wobei eine von mehreren Näherungen verwendet wird, um Ableitungen / Integrale von einer kontinuierlichen Zeit zu einer diskreten Zeit zu transformieren. Wenn Ihre Pole und Nullen im Vergleich zur Abtastrate niedrig sind, spielt dies keine Rolle. Halten Sie sich an den Ansatz, mit dem Sie sich am sichersten fühlen.
  • Die Z-Transformationsableitung von Filtern und Reglern verschleiert häufig die physikalische Bedeutung der Parameter dieser Filter und Regler. Wenn ich eine PID-Schleife mit einer Integralverstärkung, einer Proportionalverstärkung und einer Differenzialverstärkung habe, weiß ich, was jeder dieser Parameter direkt bewirkt. Wenn ich Z-Transformationen verwende, sind das nur Zahlen, die ich irgendwie ableiten musste.
  • Die Implementierung von Filtern und Steuerungen kann die physikalische Bedeutung der Parameter dieser Filter und Steuerungen verdecken oder nicht . Diese Qualität ist weitgehend unabhängig vom vorherigen Punkt: Wenn ich ein Z-Transformation-basiertes Design habe, kann ich es in eine klassisch aussehende Implementierung umwandeln und umgekehrt. Ihr Beispiel unter FINAL EDIT ist gut, da die zweite Implementierung den Integrator (" sum") in seiner eigenen Statusvariablen getrennt hält. Diese Zustandsvariable hat Bedeutung. Die erste Implementierung behält die Statusvariable als vergangenen Verlauf des Fehlers bei. das hat bedeutung, aber es gibt meiner meinung nach weniger einblick.

Schließlich gibt es noch andere Probleme im Zusammenhang mit Nichtlinearität oder Analyse, die Sie oft dazu bringen, eine Implementierung einer anderen vorzuziehen (für mich ist dies immer der klassische Ansatz für Controller, für FIR-Filter die Z-Transformation und für 1- oder 2-polige IIR-Filter in der Regel der klassischer Denkansatz):

  • Für Steuerungen behalte ich immer einen Integrator als Statusvariable und nicht frühere Fehlerbeispiele. Der Grund dafür ist, dass in realen Systemen häufig ein Anti-Windup erforderlich ist, bei dem das Integral nicht zu positiv oder zu negativ geklemmt werden muss. (Und wenn Sie in Festkomma implementieren, müssen Sie dies trotzdem tun, da die Umgehungsbedingung, wenn Sie auf Überlauf klicken, negative Auswirkungen auf das Verhalten Ihres Regelkreises hat.)

  • Aus dem gleichen Grund berechne ich den Integrator auch immer ausgabebezogen: zB sum += Ki*error; out = stuff + sumstatt sum += error; out = stuff + Ki*sum. Wenn Sie beim zweiten Ansatz die Verstärkung Ki ändern, wird der Effekt des Integrators auf den Ausgang nach oben und unten skaliert, was wahrscheinlich nicht Ihren Wünschen entspricht, und die Grenze ändert sich in Abhängigkeit von der Verstärkung. Wenn Sie den Fehler vor dem Integrieren mit Ki multiplizieren, stimmen Ihre Einheiten des Integrators mit den Einheiten des Regelkreisausgangs überein und haben eine offensichtlichere physikalische Bedeutung.

(Update: Ich habe einen Blogeintrag zu diesem Thema ausführlicher verfasst.)

Jason S
quelle
4

Bearbeiten :

Die Verwendung der Z-Transformation erleichtert das Kombinieren und Vereinfachen von LTI-Systemen für die Analyse . Beispielsweise wird eine kaskadierte Serie von k LTI-Systemen mit den Übertragungsfunktionen H1, H2, ..., Hk als einfaches Produkt kombiniert H = H1*H2*...*Hk. Auch die Übertragungsfunktion einer Gegenkopplungsschleife ist T = G/(1 + G*H), wo H auf dem Rückkopplungspfad liegt. Sobald Sie eine Gesamtübertragungsfunktion haben, können Sie die Stabilität (Position der Pole) und die Leistung (Transienten, Fehler im eingeschwungenen Zustand) analysieren und zusätzliche Filter und Rückmeldungen hinzufügen, um das Design zu optimieren.

Bei Subsystemen höherer Ordnung können Sie die Systemfunktion partitionieren und als eine Reihe von kaskadierten Biquads implementieren (dh durch Paare von Nullen und Polen, wie komplexe Konjugate oder wiederholte Wurzeln), wodurch die durch Quantisierung verursachte Instabilität verringert wird. Ein Biquad in kanonischer Form:

Biquad-Bereich

Eryk Sun.
quelle
Ihre Antwort klingt beeindruckend, aber ich habe so gut wie keine Ahnung, was Sie gesagt haben. Was ist zum Beispiel die Quantisierungsstabilität und wie ist sie für eine Form der Gleichung besser als für die andere?
bt2
1
Die Übertragungsfunktion H (z) ist eine rationale Funktion B (z) / A (z). Jedes Polynom in z ist ein Faktor von N Nullen für ein System N-ter Ordnung. Die Nullen von A (z), die Einsen im Nenner, werden als Pole bezeichnet (dies ist der Rückkopplungspfad). Bei einem konstanten Skalierungsfaktor wird ein LTI-System (Linear Time Invariant) durch seine Nullen und Pole beschrieben.
Eryk Sun
1
Ein zeitdiskretes LTI-System ist stabil, wenn sich alle seine Pole innerhalb des Einheitskreises in der z-Ebene befinden. Die Quantisierung mit endlicher digitaler Präzision führt jedoch zu Rauschen, das dazu führen kann, dass ein System geringfügig stabil ist, instabil wird oder mit der Zeit instabil wird. Durch Zerlegen von H (z) in Produktbiquadrate (Biquads) wird diese Art von Fehler minimiert.
Eryk Sun
2
Ein Biquad ist die bevorzugte minimale Partition, da die Nullstellen eines Polynoms mit reellen Koeffizienten entweder reell oder in Paaren komplexer Konjugate sind. Der Biquad B (z) / A (z) ist (b0 + b1z ^ -1 + b2z ^ -2) / (a0 + a1z ^ -1 + a2z ^ -2).
Eryk Sun
Ich habe ein Beispiel für das Quantisierungsrauschen hinzugefügt und dann entfernt, das ein kaskadiertes Quadrat mit einem direkten Poly 4. Ordnung vergleicht. Aber es war zu viel. Ich muss etwas schlafen. Entschuldigung, Tyblu.
Eryk Sun
3

Der schwierige Teil eines PID-Reglers ist nicht der Code selbst. Die Probleme treten auf, wenn versucht wird, den Controller zu optimieren. Sicher, Sie können Trial-and-Error machen und erhalten einen recht ordentlichen Controller, aber einige Systeme sind viel zu komplex, als dass eine Trial-and-Error-Methode einfach durchzuführen wäre. Dieselben Systeme benötigen in der Regel einen sehr guten Controller anstatt nur einen anständigen. In diesem Fall ist die Z-Transformation viel einfacher zu analysieren.

Eine andere Sache, über die man nachdenken sollte, ist die Stabilität eines Systems. Möglicherweise haben Sie es mit einem System zu tun, das nur schwer instabil werden kann, oder selbst wenn dies der Fall ist, schadet es nichts. Es gibt jedoch viele Systeme, die katastrophale Folgen haben können, wenn sie vom Controller instabil werden. Die Z-Transformation ist ein weiterer Ort, an dem es viel einfacher ist, festzustellen, ob es Probleme gibt.

Und 1 Schlussnote. Wenn Sie ein System als Ganzes analysieren, müssen Sie Gleichungen für alle Komponenten in Ihrem System erhalten. Sicher können Sie es von der PID ohne Promotion erhalten, aber wenn Sie bereits mit der Z-Transformationsmethode gearbeitet haben, müssen Sie weitaus weniger hin und her arbeiten.

Aus persönlichen Gründen verwende ich jetzt immer die PID ohne PhD-Methode. Das liegt nur daran, dass ich nur Mikrocontroller mit Systemen verwende, die nicht so sehr vom Controller abhängig sind.

Kellenjb
quelle
2

Es gibt mehrere Gründe, warum die Z-Transformationsform eine höhere Nützlichkeit hat.

Fragen Sie jeden, der für den zeitbasierten / einfachen / PHD-freien Ansatz wirbt, wie der Kd-Begriff lautet. Sie antworten wahrscheinlich mit "Null" und sie sagen wahrscheinlich, dass D instabil ist (ohne Tiefpassfilter). Bevor ich erfuhr, wie das alles zusammenkommt, hätte ich solche Dinge gesagt und getan.

Das Einstellen von Kd ist im Zeitbereich schwierig. Wenn Sie die Übertragungsfunktion (die Z-Transformation des PID-Teilsystems) sehen, können Sie leicht erkennen, wie stabil sie ist. Sie können auch leicht sehen, wie sich der D-Term auf den Regler im Verhältnis zu den anderen Parametern auswirkt. Wenn Ihr Kd-Parameter 0,00001 zu den Z-Polynom-Koeffizienten beiträgt, Ihr Ki-Term jedoch 10,5 einfügt, ist Ihr D-Term zu klein, um eine echte Auswirkung auf das System zu haben. Sie können auch das Gleichgewicht zwischen den Begriffen Kp und Ki anzeigen.

DSPs dienen zur Berechnung von Finite-Differenzen-Gleichungen (FDE). Sie haben Op-Codes, die einen Koeffizienten multiplizieren, zu einem Akkumulator summieren und einen Wert in einem Puffer in einem Befehlszyklus verschieben. Dies nutzt die Parallelität der FDE aus. Wenn der Maschine dieser Op-Code fehlt ... ist es kein DSP. Embedded PowerPCs (MPC) verfügen über ein Peripheriegerät zur Berechnung von FDEs (sie nennen es die Dezimationseinheit). DSPs sind so konzipiert, dass sie FDEs berechnen, da es trivial ist, eine Transferfunktion in eine FDE umzuwandeln. 16 Bit reichen nicht aus, um die Koeffizienten leicht zu quantisieren. Viele frühe DSPs hatten aus diesem Grund tatsächlich 24-Bit-Wörter (ich glaube, 32-Bit-Wörter sind heutzutage üblich).

IIRC, die sogenannte bilineare Transformation, übernimmt eine Übertragungsfunktion (eine z-Transformation eines Zeitbereichs-Controllers) und wandelt sie in eine FDE um. Es ist trivial, zu beweisen, dass es schwierig ist, daraus ein Ergebnis zu erhalten - Sie brauchen nur die erweiterte Form (multiplizieren Sie alles aus) und die Polynomkoeffizienten sind die FDE-Koeffizienten.

Ein PI-Regler ist kein guter Ansatz - ein besserer Ansatz besteht darin, ein Modell für das Verhalten Ihres Systems zu erstellen und PID zur Fehlerkorrektur zu verwenden. Das Modell sollte einfach sein und auf der Grundphysik Ihrer Arbeit basieren. Dies ist die Vorwärtskopplung in den Steuerblock. Ein PID-Block korrigiert dann den Fehler anhand der Rückmeldung des gesteuerten Systems.

Wenn Sie normalisierte Werte [-1 .. 1] oder [0 ... 1] für den Sollwert (Referenz), die Rückkopplung und die Vorwärtskopplung verwenden, können Sie einen 2-poligen 2-Null-Algorithmus in implementieren optimierte DSP-Baugruppe und Sie können damit jeden Filter 2. Ordnung implementieren, der PID und den grundlegendsten Tiefpass- (oder Hochpass-) Filter enthält. Aus diesem Grund haben DSPs Op-Codes, die normalisierte Werte annehmen, z. B. einen, der eine Schätzung der Quadratwurzel für den Bereich ausgibt (0..1]. Sie können zwei 2p2z-Filter in Reihe schalten und einen 4p4z-Filter erstellen Sie können Ihren 2p2z-DSP-Code nutzen, um beispielsweise einen 4-Tap-Tiefpass-Butterworth-Filter zu implementieren.

Bei den meisten Implementierungen im Zeitbereich wird der dt-Term in die PID-Parameter (Kp / Ki / Kd) eingebrannt. Bei den meisten Implementierungen von Z-Domains ist dies nicht der Fall. dt wird in die Gleichungen aufgenommen, die Kp, Ki und Kd nehmen und in einen [] & b [] -Koeffizienten umwandeln, sodass Ihre Kalibrierung (Abstimmung) des PID-Reglers jetzt unabhängig von der Regelrate ist. Sie können es zehnmal schneller laufen lassen, die a [] & b [] -Mathematik herausdrehen und der PID-Regler wird eine konsistente Leistung haben.

Ein natürliches Ergebnis der Verwendung von FDE ist, dass der Algorithmus implizit "störungsfrei" ist. Sie können die Zuwächse (Kp / Ki / Kd) im laufenden Betrieb ändern, und das Verhalten ist gut - abhängig von der Implementierung im Zeitbereich kann dies schlecht sein.

In der Regel wird viel Aufwand für PID-Regler im Zeitbereich aufgewendet, um ein integrales Aufziehen zu verhindern. Mit dem FDE-Formular gibt es einen einfachen Trick, mit dem sich die PID gut verhält. Sie können ihren Wert im Verlaufspuffer festhalten. Ich habe nicht nachgerechnet, wie sich dies auf das Verhalten des Filters auswirkt (in Bezug auf Kp / Ki / Kd-Parameter), aber das empirische Ergebnis ist, dass es "glatt" ist. Dies nutzt die „Störungsfreiheit“ des FDE-Formulars aus. Ein Feed-Forward-Modell trägt dazu bei, ein integrales Aufziehen zu verhindern, und die Verwendung des D-Terms hilft, den I-Term auszugleichen. PID funktioniert wirklich nicht wie beabsichtigt mit einer D-Verstärkung. (Drehsollwerte sind ein weiteres wichtiges Merkmal, um übermäßiges Aufziehen zu verhindern.)

Schließlich sind Z-Transformationen ein untergeordnetes Thema, nicht "Ph.D." Sie sollten alles über sie in Complex Analysis gelernt haben. Hier können die Universität, der Dozent und die Mühen, die Sie in die Mathematik und den Umgang mit den verfügbaren Werkzeugen gesteckt haben, Ihre Leistungsfähigkeit in der Industrie erheblich verbessern. (Meine Klasse für komplexe Analysen war schrecklich.)

Das defacto-Industrie-Tool ist Simulink (dem ein Computer-Algebra-System, CAS, fehlt, sodass Sie ein anderes Tool benötigen, um allgemeine Gleichungen aufzustellen). MathCAD oder wxMaxima sind symbolische Löser, die Sie auf einem PC verwenden können, und ich habe gelernt, wie man sie mit einem TI-92-Rechner ausführt. Ich denke, der TI-89 hat auch ein CAS-System.

Sie können Z-Domain- oder Laplace-Domain-Gleichungen auf Wikipedia nachschlagen, um PID- und Tiefpassfilter zu finden. Es gibt hier einen Schritt, den ich nicht befürchte. Ich glaube, Sie benötigen die zeitdiskrete Domänenform des PID-Reglers und müssen dann die Z-Transformation durchführen. Die Laplace-Transformation sollte der z-Transformation sehr ähnlich sein und wird als PID {s} = Kp + Ki / s + Kd · s angegeben. Ich denke, die z-Transformation würde die Dt in den folgenden Gleichungen besser erklären. Dt ist delta-t [ime], ich verwende Dt, um diese Konstante nicht mit einer Ableitung 'dt' zu verwechseln.

b[0] = Kp + (Ki*Dt/2) + (Kd/Dt)
b[1] = (Ki*Dt/2) - Kp - (2*Kd/Dt)
b[2] = Kd/Dt

a[1] = -1
a[2] = 0

Und das ist die 2p2z FDE:

y[n] = b[0]·x[n] + b[1]·x[n-1] + b[2]·x[n-2] - a[1]·y[n-1] - a[2]·y[n-2]

DSPs hatten normalerweise nur ein Multiplizieren & Addieren (kein Multiplizieren & Subtrahieren), so dass Sie die Negation in die a [] -Koeffizienten gerollt sehen können. Fügen Sie mehr B für mehr Pole hinzu, fügen Sie mehr A für mehr Nullen hinzu.

Shannon G. Barber
quelle
1

Es ist besser, die Z-Transformationsmethode im Allgemeinen zu verwenden, da Sie auf diese Weise das genaue Verhalten des entsprechenden analogen Systems beibehalten. Es gibt bekannte Abstimmungsmethoden wie Ziegler-Nichols, die im analogen Bereich genauso funktionieren wie veröffentlicht. Wenn Sie die Z-Transformationsmethode verwenden, haben Sie eine mathematisch strenge Erwartung, dass Ihr resultierender Controller das Gleiche für die gleichen Werte der P-, I- und D-Verstärkungen tut, wie dies im analogen Bereich unter Berücksichtigung dieser Verstärkungen der Fall ist. Außerdem können Sie einen diskreten Root-Locus für das System zeichnen und die Stabilität für einen bestimmten Satz von Zuwächsen vorhersagen, was nicht möglich ist, wenn Sie einen Ad-hoc-Controller direkt im Code erstellen.

Frank Rudolph
quelle