INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PID-Regler Drehzahlregelung
11.05.2015, 19:28
Beitrag #1
PID-Regler Drehzahlregelung
Hallo zusammen,

ich bin neu und hätte gleich mal ein Frage.
Ich soll eine Drehzahlregelung von einem Gleichstrommotor mit einem PID-Regler machen.
Ich verstehe nur noch nicht wie man einen PID-Regler im arduino Programmiert.
Habe mir auch schon Beispiel Programme angeschaut, aber verstehe es immer noch nicht.

Kann mir jemand bitte das mal anhand einem Beispiel erklären.

Danke schon mal im vorraus.

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2015, 20:40
Beitrag #2
RE: PID-Regler Drehzahlregelung
Hallo,

an diesem Beispiel versuche ich mich zu verstehen

Code:
#include <PID_v1.h> //PID-Bibliothek

double Input, Output, Setpoint;

PID myPID(&Input, &Output, &Setpoint,Kp,Ki,Kd, DIRECT);

void setup()
{

  Input = analogRead(0);
  Setpoint = 100;

  myPID.SetMode(AUTOMATIC);
}

void loop()
{
  Input = analogRead(0);
  myPID.Compute();
  analogWrite(3,Output);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2015, 14:30
Beitrag #3
RE: PID-Regler Drehzahlregelung
(11.05.2015 20:40)knoddelpush88 schrieb:  ...
an diesem Beispiel versuche ich mich zu verstehen
...

Ich kann mich manchmal auch nicht verstehen. Big Grin
Aber ein paar Tipps zum verstehen der Problematik einer Drehzahlregelung kann ich geben. Smile

Wichtig: Es gibt grundlegende Unterschiede zwischen einer Steuerung und einer Regelug.
Das im Eingangspost gezeigte Bild erfüllt auf den ersten Blick schematisch betrachtet alle Anforderungen an eine Steuerung.
Der im 3. Beitrag gezeigte Code erfüllt auf den ersten Blick alle Anforderungen an eine Regelung.

Bild und Code passen also nicht zusammen.
Kleiner zielführender Hinweis sei die folgende Codezeile:
Code:
Input = analogRead(0);

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2015, 18:36
Beitrag #4
RE: PID-Regler Drehzahlregelung
Hallo,

wo werden die Wert für Kp, Ki, Kd zugewiesen?
Code:
PID myPID(&Input, &Output, &Setpoint,Kp,Ki,Kd, DIRECT);

Werden die vor der Zeile mit
Code:
double Kp=4, Ki=0.2, Kd=1;
oder danach?
Egal wo ich die hinschreibe ob davor oder danach bringt er eine Fehlermeldung.
Oder kann man statt Kp,Ki,Kd einfach auch Werte eintragen?

Für was ist Setpoint bzw. was macht das?
Code:
Setpoint = 100;

In dieser Zeile Schaltet er den Regler an?
Code:
myPID.SetMode(AUTOMATIC);


Und schliest er hier die Messung ab?
Code:
myPID.Compute();
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2015, 19:05
Beitrag #5
RE: PID-Regler Drehzahlregelung
(12.05.2015 18:36)knoddelpush88 schrieb:  Oder kann man statt Kp,Ki,Kd einfach auch Werte eintragen?
Ja.

Zitat:Für was ist Setpoint
Das ist der Sollwert.

Zitat:Und schliest er hier die Messung ab?
Code:
myPID.Compute();
Jedesmal, wenn das aufgerufen wird, rechnet der Regler einen neuen Output-Wert aus.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2015, 18:39
Beitrag #6
RE: PID-Regler Drehzahlregelung
Hallo,

vielen Dank für die Hilfe.

Das heißt wenn ich den Sollwert (Setpoint) über einen Analogeneingang vorgebe
und den Istwert (Input) über einen weitern Analogeingang erfasse, müsste ich das dann so schreiben:
Code:
#include <PID_v1.h> //PID-Bibliothek

double Input, Output, Setpoint;

PID myPID(&Input, &Output, &Setpoint,Kp,Ki,Kd, DIRECT);

void setup()
{

  Input = analogRead(A0);
  Setpoint = analogRead(A1);

  myPID.SetMode(AUTOMATIC);
}

void loop()
{
  Input = analogRead(A0);
  Setpoint = analogRead(A1);
  myPID.Compute();
  analogWrite(3,Output);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2015, 18:43
Beitrag #7
RE: PID-Regler Drehzahlregelung
Ja, so in etwa kann das funktionieren.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.05.2015, 15:12
Beitrag #8
RE: PID-Regler Drehzahlregelung
Hallo, habe vor kurzem ebenfalls so ein Projekt gemacht, daher interessiert mich, wie du die Motordrehzahl erfasst?
lg
Retian
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Rx - Board - Regler/Servo (PWM) luto92 3 1.178 19.02.2015 15:23
Letzter Beitrag: Thorsten Pferdekämper
  Regler-Test Cray-1 0 904 03.01.2015 15:48
Letzter Beitrag: Cray-1
  Arduino-PID-Regler Cray-1 0 2.309 07.12.2014 12:23
Letzter Beitrag: Cray-1
  P-Regler "Drive" in PWM umwandeln Cray-1 2 1.186 29.09.2014 14:38
Letzter Beitrag: Thorsten Pferdekämper
  Dynamischer Setpoint möglich beim Arduino Regler? Cray-1 0 1.228 05.09.2014 17:08
Letzter Beitrag: Cray-1

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste