Forum: Digitale Signalverarbeitung / DSP / Machine Learning Regelkreis simulieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Dietmar M. (dietmar_m993)


Lesenswert?

Hallo!
Ich habe schon viel anhand dieses Forums lösen können. Nur diesmal finde 
ich keine Lösung.

Ich habe einen PID Regler in einem Arduino integriert. Nun möchte ich 
eine Hardware simulieren. Am besten mit einem anderen Arduino.
Ich hab da schon einige Dinge gefunden mit elektronischer Schaltung, 
Programmen usw.
Gibt es vielleicht eine Lösung das man einen Code in den Arduino lädt 
der die Hardware simuliert?

So wie auf dieser plattform z.B. 
http://www.grauonline.de/alexwww/ardumower/pid/pid.html

Das muß nicht perfekt die tatsächliche Hardware simulieren. Mir gehts da 
nur um irgendwas damit ich mit meinem Programm automatisiert 
weiterkomme.

Es wäre super wenn mir da jemand weiterhelfen könnte!

Danke!
Dietmar

von Christian S. (roehrenvorheizer)


Lesenswert?

Dietmar M. schrieb:
> eine Hardware

Hallo,

dazu müßtest Du die Wirkung besagter Hardware in regelungstechnische 
Grundglieder zerlegen und diese in Arduino-Programmcode 
abbilden/umformulieren. Dann ließe sich aus den beiden Schaltungen 
wunderbar ein Regelkreis aufbauen mit Führungsgröße am Eingang, 
Störgröße und Ausgangsgröße.

mfG

von Dietmar M. (dietmar_m993)


Lesenswert?

Wie gesagt, es muß nicht die spätere Hardware simulieren, denn es wird 
sowieso dann an unterschiedlicher Hardware genutzt.
Falls also jemand schon sowas hat, für welche Zwecke auch immer, wäre 
das sehr hilfreich.

von Noname (Gast)


Lesenswert?

Welche Regelstrecke möchtest du simulieren?

von Dietmar M. (dietmar_m993)


Lesenswert?

Welche hast du?

von Noname (Gast)


Lesenswert?

Ich habe keine, finde aber das Projekt interessant. Das Programm für die 
Simulation einer einfachen Strecke wie z.B. PT1 dürfte nicht so 
schwierig sein. Wenn ein zweiter Arduino die Strecke simulieren soll 
muss erst mal die Schnittstelle definiert werden. Welche Abtastrate hat 
momentan dein PID-Regler? Hast du auf dem Arduino noch eine 
Schnittstelle frei um die Daten mit dem Streckensimulationsarduino 
austauschen zu können? Welche Baudrate wäre dann möglich?

von Christoph M. (mchris)


Lesenswert?

>Ich habe einen PID Regler in einem Arduino integriert. Nun möchte ich
>eine Hardware simulieren. Am besten mit einem anderen Arduino.
>Ich hab da schon einige Dinge gefunden mit elektronischer Schaltung,
>Programmen usw.

Zuerst musst du dir ein Modell für deine Hardware (Regelstrecke) 
überlegen.
Wenn die Hardware z.B. ein Ofen ist, könnte das Modell für den Ofen ein 
einfacher Tiefpass sein. Man gibt Energie in den Ofen hinein und dieser 
wird dann langsam warm.

von Purzel H. (hacky)


Lesenswert?

Was spricht denn dagegen, alles auf dem PC zu simulieren ? Denn sonst 
muss man die Regler und die Streck ja beide kommunizierend gestalten und 
auch anschliessen.
Dabei laesst sich dann auch zeigen, dass ein PID fuer eine Heizung nicht 
optimal ist.

von Raspi Fan (Gast)


Lesenswert?

Es gibt tatsächlich Möglichkeiten, einen Arduino zu verwenden, um eine 
Hardware-Simulation durchzuführen. Eine Möglichkeit wäre, einen Arduino 
als sogenannten "Simulator-Arduino" zu verwenden, der Daten generiert 
oder emuliert, die von einem "Haupt-Arduino" verarbeitet werden. Eine 
andere Möglichkeit wäre die Verwendung von Arduino-Simulatoren wie 
Proteus, in denen die Schaltung virtuell simuliert werden kann. Es gibt 
auch spezielle Libraries für Arduino, die es ermöglichen, eine 
Simulation durchzuführen, wie z.B. der Arduino Simulator Library.
Wichtig ist das du beachtest das es auf die spezifische Anwendung 
ankommt und welche Art von Simulation du erstellen möchtest. Einige 
Simulationen können einfach mit einer Softwarelösung erstellt werden, 
während andere möglicherweise eine spezielle Hardware oder Schaltung 
erfordern.

von Dietmar M. (dietmar_m993)


Lesenswert?

Das ist sowas was ich suche.
Es geht darum an meine Steuerung eine externe Hardwaresimulation 
anzuhängen. Also einen Simulationsarduino.

Weil ich hier des öfteren lese ich muß den Regelkreis wissen. Also so 
wie ich bisher den PID Regler verstanden habe passt der für jeden 
Regelkreis. Es geht dann nur um die Parametereinstellung. Ob ich D 
überhaupt nutze usw.
Warum sollte ich also den Regelkreis wissen wenn es mir nur um die 
Funktion des Reglers innerhalb eines Ablaufs geht? Wenn ich also eine 
xbeliebige Simulation eines Regelerkreises bekomme und deren Parameter 
dazu kann ich den Automatikablauf meines Programms damit testen. Oder 
was verstehe ich da falsch daran?
Ich stelle mir so eine Simualtion als eine einzige Formel vor. Die sich 
mir aber gerade nicht erschliesst. Dafür bin ich zulange weg von der 
Schulmathematik. Vielleicht ist das jetzt der Fall wo der Proffessor 
sagte - Irgendwann im Leben brauchst du das. :-)

ich les mich mal in die Arduino Simulator Library ein.

von Sebastian (Gast)


Lesenswert?

>Weil ich hier des öfteren lese ich muß den Regelkreis wissen. Also so
>wie ich bisher den PID Regler verstanden habe passt der für jeden
>Regelkreis. Es geht dann nur um die Parametereinstellung. Ob ich D
>überhaupt nutze usw.

Nein, ein PID-Regler passt nicht für jeden Regelkreis und die 
Einstellungen eines PID-Reglers hängen vollständig von der Regelstrecke 
ab.

Tu dir mal etwas Theorie an, sonst kommst du nicht weiter:

https://www.youtube.com/watch?v=pzxe56mk8LE

von Dietmar M. (dietmar_m993)


Lesenswert?

Ich sag dir mal was Sebastian!
Wenn du nichts konstruktives zu sagen hast, dann verhalte dich einfach 
ruhig!

Ich habe um einen Reglerkreis gebeten, oder die Möglichkeit einen zu 
erstellen, um einen Ablauf zu testen der einen PID Regler (aus der 
Arduino Bibliothek) enthält. Nicht um einen Link um einen PID Regler 
perfekt zu verstehen oder welche Reglerkreismöglichkeiten es gibt. Das 
ist nicht meine Aufgabenstellung und nicht die Aufgabenstellung dieses 
Beitrags! Genau wegen solchen unkonstruktiven Schlaubergern wie dir muß 
man sich bei jeder Suche in Foren durch unsinnige Beiträge arbeiten.

von A. Z. (donvido)


Lesenswert?

Dietmar M. schrieb:
> Ich sag dir mal was Sebastian!
> Wenn du nichts konstruktives zu sagen hast, dann verhalte dich einfach
> ruhig!

Also wenn das nicht konstruktiv war, dann weiß ich auch nicht.
Es gibt nunmal nicht DIE Regelstrecke für einen PID.
Wir könnten dir hier ein Streckenmodell liefern, mit dem deine 
"Simulation" funktioniert. Sobald du dann aber an die reale Anwendung 
gehst, funktioniert nichts mehr, ganz egal wie du den PID parametrierst.
Deshalb wäre es sinnvoll zu spezifizieren, ob du später eine Heizung 
oder ein Segway regeln möchtest.

von Gas Gerd (Gast)


Lesenswert?

Ich finde es auch konstruktiv, aber wenn du kein YouTube magst, hier 
einmal eine sehr grobe Erklärung.

Ein PID-Regler ist ein Regelungsverfahren, das auf drei Regelgrößen 
(Proportionalität, Integral und Derivat) basiert. Es wird hauptsächlich 
in der industriellen Automatisierung verwendet, um Prozesse zu steuern 
und zu regulieren.

Die Proportionalitätsregelung sorgt dafür, dass die Ausgangsgröße des 
Reglers proportional zum Fehler ist. Der Integralteil berechnet den 
Fehler über die Zeit und passt die Ausgangsgröße entsprechend an. Der 
Derivatenteil berücksichtigt die Änderungsrate des Fehlers und passt die 
Ausgangsgröße entsprechend an.

Eine Regelstrecke besteht aus einem Prozess, der gesteuert werden soll, 
und einer Regelungseinheit, die den Prozess steuert. Der Prozess kann 
eine Maschine, ein Produktionsverfahren oder ein physikalisches System 
sein. Das Ziel der Regelung ist es, die Ausgangsgröße des Prozesses auf 
einen gewünschten Wert zu halten oder ihn in eine gewünschte Richtung zu 
ändern. Ein PID-Regler wird oft als Regelungseinheit verwendet, um die 
Ausgangsgröße des Prozesses zu regulieren.

von StefG (Gast)


Lesenswert?

Ich verwende gerne einen Zementwiderstand gekoppelt mit pt100 um 
Heizregler zu simulieren. Braucht keinen Arduino und geht trotzdem...

von Alf (Gast)


Lesenswert?

Gas Gerd schrieb:
> Die Proportionalitätsregelung sorgt dafür, dass die Ausgangsgröße des
> Reglers proportional zum Fehler ist.
... dass die Ausgangsgröße proportional zum Sollwert ist.

von -gb- (Gast)


Lesenswert?

Dietmar M. schrieb:
> Ich habe um einen Reglerkreis gebeten, oder die Möglichkeit einen zu
> erstellen, um einen Ablauf zu testen der einen PID Regler (aus der
> Arduino Bibliothek) enthält. Nicht um einen Link um einen PID Regler
> perfekt zu verstehen oder welche Reglerkreismöglichkeiten es gibt.

Wahrscheinlich wirst du dich aber damit befassen müssen wenn du 
"Regelkreise simulieren" möchtest.

Wenn du nur eine Regelung nutzen willst:

Messung der Temperatur und Vergleich mit Einstellung (z.B. 1...10).

If  (Temperatur/°C - 1) / 5 > Einstellwert dann Heizung aus.
Elsif (Temperatur/°C + 1) / 5 < Einstellwert -> dann Heizung aus.
Else -> lass es wie es ist

Das gibt einen 2-Punkt-Regler mit 2 Grad Hysterese.
Die Temperatur über 2-3min mitteln, damit auf 0.5°C genau

von Purzel H. (hacky)


Lesenswert?

Nur die einfachen Regelstrecken koennen mit einem PID geregelt werden. 
Oft, resp meistens ist eine Regelstrecke nicht linear, oft aendern sich 
die Parameter der Regelstrecke mit externen Bedingungen, oft hat man 
Zeit Vorgaben, muss also viel schneller sein, wie mit einem PID 
ueberhaupt moeglich waere.
Deswegen ist ein Regler auch keine einfache Gleichung. Oft muss man 
mehrere Sensoren verarbeiten, (auch) weil ein Sensor alleine zuviele 
Freiheitsgrade erlauben wuerde.
Stellen wir uns ein Flugzeug vor, welches von Nord- auf Westkurs gehen 
soll.

von A. Z. (donvido)


Lesenswert?

Alf schrieb:
> Gas Gerd schrieb:
>> Die Proportionalitätsregelung sorgt dafür, dass die Ausgangsgröße des
>> Reglers proportional zum Fehler ist.
> ... dass die Ausgangsgröße proportional zum Sollwert ist.

...dass die Ausgangsgröße des Reglers proportional zum Fehler ist.

von Mann Fred (Gast)


Lesenswert?

Purzel H. schrieb:
> Nur die einfachen Regelstrecken koennen mit einem PID geregelt werden.

Du kannst mehrere hinter einander schalten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.