- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: Heizungsregelung mit PID

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.05.2008
    Ort
    Korntal-Münchingen
    Alter
    43
    Beiträge
    15
    Danke Dir für die Antwort erstmal.

    Zitat Zitat von Holomino Beitrag anzeigen
    1. PID-Reglern einfach den kompletten Regelparametersatz vor die Füße zu schmeißen und auf ein gutes Ergebnis zu hoffen, funzt in der Regel nicht. Setz mal iGain und dGain zuerst auf 0 und erhöhe pGain langsam, bis Ist möglichst nahe am Soll landet und nicht überschwingt.
    2. Der Tausch von Ist und Soll bei der Übergabe tauscht zwar das Vorzeichen von "error", für "position" wird dann allerdings der Sollwert weiter verwendet. Zumindest der dTerm wird damit zum Quatsch.
    3. Auch ohne Verständnis der ganzen Mathematik eines PID sollte man zumindest mal grob abschätzen, was der Code treibt.
    Den Code habe ich so aus einem anderen Lambdaprojekt übernommen und bin davon ausgegangen, dass es so tut... eine sehr kühne Annahme, wie man jetzt merkt.

    Ich werde das fettmarkierte heute Abend mal umsetzen und schauen, was er da treibt. Es ist das erste Projekt mit einem PID-Regler...

    Zitat Zitat von Holomino Beitrag anzeigen
    Mit
    pGain=120,
    referenceValue=x
    measuredValue = x+/-2
    hängt Deine PWM bereits bei einem error=+/-2 voll am jeweiligen Anschlag pwmMin/pwmMax.

    Also: Zuerst einmal den Debugger/Simulator mit Testwerten bemühen und daran testen, ob die Funktion auch das zurückgibt, was Du erwartest/ selber errechnet hast. Ansonsten siehst Du den Wald vor lauter Bäumen nicht.
    Ja, das habe ich gemacht. Ich habe die Berechnung so in ein VS-Projekt übernommen und sie mit Zahlen (also den IST-Werten) gefüttert, das Ergebnis war genau wie bei Dir (mit +-2), dass er direkt an den Anschlag geht.

    Zitat Zitat von Holomino Beitrag anzeigen
    Nachtrag: Diese Richtungsdreherei passt man üblicherweise durch Wechsel der Vorzeichen in den Regelparametern an.
    In der Realität ist, wenn Ist<Soll, der Fehler negativ (z.B. ich liege um -10° am Soll vorbei). Wenn die Stellgröße jetzt aufgedreht werden müsste, ginge das nur über negative Regelparameter (z.B. iGain=-0.8 ).
    Es ist jetzt nicht so, dass es den Quellcode stört, wenn sämtliche Berechnungen und Parameterangaben, wie oben angewendet, im Vorzeichen getauscht werden. Zur Klarheit der Sache trägt diese Optimierung allerdings nicht bei.
    Ich könnte dann doch im Code die Stellen, wo pidController.pGain, pidController.iGain und pidController.dGain verwendet werden, einfach mit einem Vorzeichen versehen, also beim Berechnen und nicht die Faktoren an sich. Oder alternativ einen Parameter verwenden, der Aussagt, dass invertiert gerechnet werden soll, dann sieht man direkt.

    Werde ich auf jeden Fall heute Abend mal ausprobieren, danke nochmal.
    Geändert von Hemi (08.09.2022 um 15:03 Uhr)

Ähnliche Themen

  1. Mega 32 Heizungsregelung
    Von motch im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 04.12.2005, 16:23

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress