2009-03-23 3 views
-1

Ich möchte implementieren, ich denke, ist eine ziemlich Standard-Feedback-Schleife, aber es ist viele Jahre her, seit ich Kontrolle-Theorie betrachtet habe und habe Probleme beim Verständnis der Konzepte und die Suche nach Implementierungsbeispielen. Ich hatte gehofft, dass jemand in einfachen Worten erklären könnte, was passiert und vielleicht auf einige Ressourcen verweisen würde, die ich verwenden könnte, um eine Lösung zu implementieren. Alle Informationen, die ich zu diesem Thema gesehen habe, ertrinken normalerweise in der Mathematik.Einfache Feedback-Kontrolle Ressourcen/Beispiele

Also hier ist, was ich versuche zu erreichen:

  • ich den Strom einer elektronischen Schaltung steuern will, sagen, ich will es immer 0,75A ziehen.
  • Der Strom variiert natürlich im Laufe der Zeit, je nachdem, was andere Teile der Schaltung tun. Aber ich habe etwas Hardware, die mehr oder weniger Strom zieht, wie durch eine Spannung kontrolliert, die ich an DAC übergebe.
  • Ich habe auch einen ADC, der mir eine Spannung gibt, die proportional zu dem Strom ist, der vom System gezogen wird.

Ich muss Ramping und auch Oszillationen innerhalb einiger Schwellen behandeln. Ich arbeite auch in C.

Dank, Richard

Antwort

6

Ok, wenn ich Sie verstehe, ist die gesamte Hardware schon fertig?

So hat Ihr System einen Befehlseingang, der eine aktuelle Ebene in Ampere ist (durch eine Fließkommazahl mit doppelter Genauigkeit in der Software angegeben) und die Ausgabe des Controllers ist eine Spannung, die Hardware steuert, die Ihre Anlage anzieht ist die Schaltung und die Rückmeldung ist wahrscheinlich eine 8, 10 oder 16 Bit-Nummer - entweder signiert oder unsigniert, abhängig von Ihrer A/D.

So sieht Ihr System wie folgt aus:

alt text http://steves-wiki.wikispaces.com/file/view/control_diagram.jpg/64043668

Ihre schnellste und schmutzigsten Ansatz ist wahrscheinlich PID-Regelung. Sie können die Grundlagen mit this Wikipedia article auffrischen und es gibt einige Hinweise zur Implementierung in diesem embedded.com article.

Kurz gesagt, Sie möchten den Fehler des Systems berechnen, der in Ihrem Beispiel der Befehl Current ist. Stellen Sie sicher, dass alles in den gleichen Einheiten ist, hoffentlich Ampere. Dann, nachdem Ihr Fehler berechnet wurde, müssen Sie es mit einem Befehl korrigieren. In Ihrem System ist dies der Spannungsbefehl an Ihre spannungsgesteuerte Stromquelle. Mit PID wird der Befehl berechnet, indem der Fehler, das Integral des Fehlers und die Ableitung des Fehlers mit Verstärkungen multipliziert und das Ergebnis summiert wird. Die Gewinne sind der schwierige Teil. Die anderen kniffligen Teile sind: Stellen Sie sicher, dass Ihre Einheiten konsistent sind, stellen Sie sicher, dass das Timing korrekt ist, und die korrekte Integration/Ableitung Berechnung.

In Ihrem System haben Sie viele Einheiten: Fehler ist Ampere, der Befehl ist Volt, die in Ampere wird, dann ist die aktuelle Verwendung Amps, die als Volt gemeldet wird, die entweder in eine vorzeichenbehaftete oder vorzeichenlose Ganzzahl umgewandelt wird zurück in Ampere skaliert werden, um den Fehler richtig zu machen. Sie werden viele Variablen haben, stellen Sie sicher, dass Sie verfolgen können, welche physikalische Einheit für jede gilt.

Der Steuerungsalgorithmus ist hard-real-time und muss mit einer dedizierten Rate ausgeführt werden. Ich würde mindestens 100Hz empfehlen (Berechnungen alle 10ms). Elektronische Schaltungen bewegen sich schnell - nicht wie elektromechanische Systeme. Sie benötigen möglicherweise eine höhere Rate, um oben auf Sachen zu bleiben. Aber es muss harte Echtzeit sein - das heißt konsistent. Sie können vielleicht nicht einmal mit Software-Timern davonkommen.

Integration und Ableitung Berechnungen sind schwierig, aber es gibt nur so viele Möglichkeiten, sie zu tun. Der grundlegendste Algorithmus ist die Rechteck-Regel - es ist dumm, aber es wird wahrscheinlich funktionieren. Wenn Sie präziser sein müssen, verwenden Sie die Trapezregel. Überprüfen Sie die Algorithmen aus here. Höchstwahrscheinlich werden Sie keine abgeleitete Kontrolle verwenden - es neigt dazu, Dinge instabil zu machen und wird in den meisten Systemen nicht benötigt. Sie sollten mit integraler + proportionaler Kontrolle in Ordnung sein.

Es gibt viele Fallstricke, aber das sollte Ihnen den Anfang machen. Wenn Sie einen Hintergrund in der Kontrolltheorie hatten, dann sollte alles auf Sie zurückkommen. Sobald das Framework eingerichtet ist, werden Sie eine Menge Zeit damit verbringen, die proportionalen und integralen Gewinne abzustimmen - das ist das Fleisch des Jobs. Wenn Ihnen das immer noch zu viel Mathe vorkommt, tut mir leid - das ist so einfach wie es für Steuerelemente ist.

+0

Gute Zusammenfassung. Wie Sie schon sagten: Verschrotten Sie den D-Begriff; Sie verwenden es fast nie außer bei Temperaturreglern. –

+0

Große Antwort !! Ein kleines Problem, die Hälfte des Textes wird von Anzeigen in meinem Browser abgedeckt. Aber ansonsten vielen Dank, ich schaute auf die PID, aber war ein wenig verloren mit der Terminologie, hilft Ihr Diagramm viel. Danke noch einmal! – Richard

+0

Oh ja, die Hardware ist schon eingestellt. – Richard

0

Es wäre schwierig, Software-Steuerung Ihres Systems konstanten Strom zu ziehen. Dies ist besser mit dedizierter Hardware möglich, die sofort auf aktuelle Änderungen reagieren und die Feedback-Schleife implementieren kann, die Sie nicht verstehen.

Wenn Sie es mit Software machen wollen, dann müssen Sie wahrscheinlich eine Form eines "fuzzy-logic" Controllers implementieren. Ihr Problem ist analog zu einem Lüfter, der die Temperatur steuert. Sie haben eine Eingangsvariable (Spannung proportional zum Strom) und eine Ausgangsvariable (Spannungspegel zum DAC).

+0

?! Fuzzy-Logik ist eine schwarze Kunst mit weit weniger Theorie als Regelkreise. Ich habe die Kontrolle über die Software übernommen. Sie müssen es schnell tun, wenn Sie möchten, dass die Bandbreite anständig ist. Aber du kannst es tun. –

+0

Wie schnell musst du sein? Nehmen wir an, Sie nehmen alle 1 ms Proben. Dies bedeutet, dass Sie Signale bis zu 1KHz/2 = 500Hz richtig abtasten können. So können Sie beispielsweise keine 1KHz-Spitzen bewältigen. Ein Software-Regelkreis kann nur für niederfrequente Signale arbeiten. Auch Fuzzy Logic und AI werden von vielen Theorien unterstützt – kgiannakakis