Eigenbau: PID Regler an Chinaböller

  • Hallole,


    habe mir über die Feiertage mal ein paar warme Gedanken über die Drehzahlregelung (Leerlauf) meines 1 Zylinder Chinesen gemacht. Meine Grundüberlegung war, daß ich nach jedem Verbrennungstakt (2 Kurbelwellenumdrehungen) die Drehzahl erfasse und mir meine Stellgröße berechne. Nun hat sich bei den ersten Testläufen gezeigt, daß die Drehzahl völlig über- und unterschwingt. Der Steller rudert von MIN bis MAX und umgekehrt aber die Drehzahl ist nicht stabil zu bekommen. Die ganze Chose mit dem Schwungrad ist einfach sehr träge. Habe ich jetzt noch nicht ausprobiert aber wenn ich den P-Faktor nochmals runter nehmen sollte dann wird mir meine verbleibende Regelabweichung noch höher (liegt derzeit schon bei theoretischen 200Hz) ;-(
    Habe im 2. Versuch mal probiert nicht jeden "Volltakt" zu erfassen/stellen und stellen sondern nur jedes 8. mal. Das Verhalten ist deutlich stabiler allerdings immer noch nicht zufriedenstellend da immer noch mit sehr hoher Regelabweichung verbunden.


    Gibt es hier jemanden der ähnliche Probleme mit dem Einzylinder hat(te)? Hast Du mit fixem Abtastzeitintervall oder mit drehzahlabhängiger Abtastung/Stellung gearbeitet? Mit welcher internen Drehzahlauflösung arbeitet ihr?


    Grüßle,


    Butze

  • Gesundes Neues,bei meinen Einzylinder(1H65)erfolgt die Drehzahlreglung über den Motorregler.
    Drehzahlverstellung---Regelfeder wird vorgespannt---Drehzahl läuft hoch---wenn Kraft der Fliehgewichte und Gegenkraft der Regel-
    feder gleich sind, ist vorgewählte Drehzahl erreicht.Bei Lastwechsel stellt sich das System immer wieder neu ein.
    Ist zwar alles mechanisch haut aber hin.Wurde schon bei den ollen Dampfmachinen angewendet.
    Nach Deiner kurzen Beschreibung scheint alles eltr/elktron abzulaufen.Beschreib mal die Reglung genauer.


    Im rechten Bild ist Bauteil 4 zweimal vorhanden,es sind die Fliehgewichte,diese wirken auf die Regelwelle welche wiederum von der Regelfeder betätigt wird.

  • Wenn ich so drüber nachdenke sollte ich die starke Regelabweichung im reinen "P" Betrieb einfach hinnehmen und mit dem "I" Teil eleminieren



    Genau das würde ich Dir auch vorsichtig empfehlen. Wie hast Du den Deine Regelparameter bestimmt?


    Gruss, KWK

  • Habe im 2. Versuch mal probiert nicht jeden "Volltakt" zu erfassen/stellen und stellen sondern nur jedes 8. mal. Das Verhalten ist deutlich stabiler allerdings immer noch nicht zufriedenstellend da immer noch mit sehr hoher Regelabweichung verbunden.

    Mir ist nicht klar geworden, was Du genau erfasst. Vielleicht kannst Du das noch etwas ausführen.


    In jedem Fall halte ich die "Streckung" der Erfassung nicht für hilfreich. Günstigstenfalls macht sie es nicht schlechter. Unter dem Strich ist es halt regelungstechnisch eine "Totzeit" und die ist nie positiv. Wenn das bei Dir was bringt, dann ist das Zufall und liegt daran, dass das System in sich nicht stimmig ist.


    Vor allem die Sache mit der Abtastung. Ich bin mir nicht sicher ob das der optimale Weg ist die Abtastung an die aktuelle Drehzahl zu hängen oder ob nicht doch eine Abtastung mit immer gleichem Intervall sinnvoll wäre.....

    Gleiche Zeitintervalle werden nix bringen, können aber schaden. Da der Motor auf jeden Fall eine gewisse "Unrundheit" im Lauf hat, ist es sicher besser, immer unter gleichen Bedingungen zu messen, sprich zum gleichen Zeitpunkt bzw. zur gleichen Winkelstellung bezogen auf den Gesamtzyklus.



    Wesentlich zum Verständnis wäre auch, was Du eigentlich regeln willst. Was ist Deine Soll / Ist-Größe und was Deine Stellgröße ? Stellgröße soll vermutlich der Gashebel sein, die Frage ist: gibst Du über den Schrittmotor nur "Differenzschritte" aus oder kennst Du die Position ?


    Ein Tipp (insbesondere bei so trägen Regelungen): Man kann den P - Anteil ganz oder Teilweise "aus dem Gedächtnis" ersetzen.


    Grobe Richtung wie ich das machen würde:
    Ich würde als Ist-Wert die reale absolute el. Leistung (ohne Blindleistung) erfassen und als Soll-Größe die gewünschte el. Leistung nehmen.
    Dazu kann man sich auf verschiedenem Weg (Tabelle, Kurve aus mehreren Punkten, einfache Gerade) die zugehörige Gasstellung abspeichern.).


    Zur Regelung wird der P-Anteil ( ganz oder teilweise) aus diesem Speicher genommen und nur der I & D Anteil dynamisch errechnet. Evtl. auch im laufenden Betrieb die P-Tabelle nachkorrigieren

    Lesen gefährdet die Dummheit! Denken gefährdet Vorurteile!
    Der geistige Horizont mancher Menschen hat einen Radius von NULL. Das nennen sie dann Standpunkt.

  • Ich würde als Ist-Wert die reale absolute el. Leistung (ohne Blindleistung) erfassen und als Soll-Größe die gewünschte el. Leistung nehmen.

    Jetzt hab' ich mir sagen lassen müssen, dass ich einen Heidenschmarren erzählt hätt.
    Stimmt ein Stück weit weil nur halb duchdacht.


    Wenn ich mal annehme, dass das im Inselbetrieb tun soll, dann muss natürlich die Drehzahl einfließen. Mein Vorschlag deshalb:
    Aus der Leistungsmessung + Gedächtnis den größeren Teil des P-Anteils ermitteln und addieren zur PID-Regelung nach der Drehzahlabweichung.

    Lesen gefährdet die Dummheit! Denken gefährdet Vorurteile!
    Der geistige Horizont mancher Menschen hat einen Radius von NULL. Das nennen sie dann Standpunkt.

  • Wesentlich zum Verständnis wäre auch, was Du eigentlich regeln willst. Was ist Deine Soll / Ist-Größe und was Deine Stellgröße ? Stellgröße soll vermutlich der Gashebel sein, die Frage ist: gibst Du über den Schrittmotor nur "Differenzschritte" aus oder kennst Du die Position ?

    Ja, Steller ist der Gashebel. Im Moment möchte ich nur Drehzahl regeln (ohne Generatorlast). Ich kenne die Absolutposition (Referenzfahrt bei Startup) verwende allerdings derzeit nur ein "+" und "-".






    Vielen Dank für die Anmerkungen. Habe mal den P Anteil nochmals reduziert und die Drehzahlerfassung/Gasstellung wieder an den "Motortakt" gekoppelt. Ohne große Drehzahlsolländerungen ist die Chose recht stabil. Die Dimensionierung des I-Anteils muß ich mir wohl nochmals genauer anschauen. Sobald ich den I-Teil aktiviere saut mit der Steller gegen MIN oder MAX. Aber das wird sich sicherlich auch noch finden :@@-(


    Vielen Dank euch für die Anregungen nochmals!


    Gruß

  • Morgen,



    ich habs nicht so mit Regeltechnik, aber soviel: Versuch immer mit so wenig Regler wie möglich aus zu kommen.
    D.h. du fängst mit dem P-Regler an und versuchst rauszuholen was geht. Und nur wenn die kontinuierliche Abweichung zu groß ist packst du einen I-Anteil dazu!
    Sollte die Regelstrecke selbst ein I-Verhalten haben (dazu würde ich diesen Fall zählen) erst mit dem D-Anteil arbeiten, da die Chose sonst zum Schwingen neigt.



    Einen Programmfehler möchte ich aber nicht ausschließen. Hast du den Regler im ATMEGA komplett selbst programmiert oder was fertiges eingebaut?



    mfg JAU

  • Sollte die Regelstrecke selbst ein I-Verhalten haben (dazu würde ich diesen Fall zählen) erst mit dem D-Anteil arbeiten, da die Chose sonst zum Schwingen neigt.

    Moin auch !
    Warum sollte hier die Regelstrecke selbst ein I - Verhalten haben ?


    Das Problem beim I + D - Regelanteil sind vor allem Totzeiten, und die sind hier üppig vorhanden. Man sollte sich deshalb schon etwas in die Regelungstechnik einlesen / einarbeiten.


    Butze
    Die Frage ist, was insgesamt erreicht werden soll. Lediglich für den Leerlauf eine bestimmte Drehzahl hätte ja sicher auch der mechanische gekonnt. Vielleicht beschreibst Du mal worauf es Dir ankommt ?


    Dabei ist es durchaus OK, wenn Du sagst, ich will einfach die Mechanik aus Hobby ersetzen.


    gruss
    bluwi

    Lesen gefährdet die Dummheit! Denken gefährdet Vorurteile!
    Der geistige Horizont mancher Menschen hat einen Radius von NULL. Das nennen sie dann Standpunkt.

  • Eigentlich wollte ich wieder längst auf der Baustelle sein. :rolleyes:



    Warum sollte hier die Regelstrecke selbst ein I - Verhalten haben ?


    Weil der Motor ohne Last nicht proportional reagiert? Wir haben genau den Effekt über den wir neulich schonmal gesprochen haben: "Durchgehen".


    Zitat

    Das Problem beim I + D - Regelanteil sind vor allem Totzeiten, und die sind hier üppig vorhanden. Man sollte sich deshalb schon etwas in die Regelungstechnik einlesen / einarbeiten.


    Jupp. Das war genau das was mir durchn Kopf ging als ich von "Programmfehler" sprach.



    mfg JAU

  • Einen Programmfehler möchte ich aber nicht ausschließen. Hast du den Regler im ATMEGA komplett selbst programmiert oder was fertiges eingebaut?


    Die Implementierung basiert auf der Applicationnote glaube 221 von Atmel. So generell sieht das schon sehr schlüssig aus nur denke ich ist die Berechnung des Stellers zu "agressiv" für die träge Regelstrecke (Selbst bei Faktor 1 von 32000). Wie schon geschrieben habe ich ja den "P" Anteil stark zurück genommen was sich dann mit einer hohen Regelabweichung bemerkbar macht. Wenn ich dann noch den Integrator scharf mache saut mir der Steller gleich weg da sich die hohe Regelabweichung mächtig aufsummiert. Da wollte ich gestern Abend noch ein bischen dran drehen wurde allerdings vor Vollendung aus dem Keller gepeitscht ;-(

    Da der Diesel gerade knappe 1.30 kostet hatte ich nicht vor das Ding ausschließlich im Leerlauf zu betreiben ;-) Mechanik finde ich doof und außerdem möchte ich später unter Last die Drehzahl auch variieren. Aber im Moment geht´s halt darum ein bischen Gefühl für den Regler und den Motor zu bekommen und dafür scheint mir die Leerlaufdrehzahlstabilisierung eine gute Übung!



    Grüßle,


    Butze

  • Aber im Moment geht´s halt darum ein bischen Gefühl für den Regler und den Motor zu bekommen und dafür scheint mir die Leerlaufdrehzahlstabilisierung eine gute Übung!

    Klar hat es was für sich, zuerst stehen zu können, bevor man zu laufen versucht :-) Du solltest Dir aber klar sein, dass dr eigentliche Anspruch darin besteht, Störgrößen (Lastschwankungen) auszuregeln.


    Die Implementierung basiert auf der Applicationnote glaube 221 von Atmel. So generell sieht das schon sehr schlüssig aus nur denke ich ist die Berechnung des Stellers zu "agressiv" für die träge Regelstrecke (Selbst bei Faktor 1 von 32000).

    Es macht sicher Sinn, mit sowas zu starten, aber diese Regelungen sind im allgemeinen für "schnelle" Anwendungen gemacht, z. B. einen Servomotor oder ähnliche Anwendung. Der denkt also bei 10.000 U/min über den soll und den ist Winkel nach, um dann nachzuregeln.
    Die sind also darauf getrimmt, aus der Rechenleistung des Prozessors möglichst viel rauszuholen. Die denken eher in Mikrosekunden als in Millisekunden. Da sind Totzeiten im Sekundenbereich Ewigkeiten.


    Vermutlich musst Du weniger am P-Anteil operieren, als vielmehr die Integrationsgeschwindigkeit des I-Anteils um den Faktor 100 oder 1000 reduzieren.


    Gruss
    bluwi

    Lesen gefährdet die Dummheit! Denken gefährdet Vorurteile!
    Der geistige Horizont mancher Menschen hat einen Radius von NULL. Das nennen sie dann Standpunkt.