Biodiesel/RME/PME - ALDiesel/Poel/SVO - TDI/PD/CDI/JTD/HDI-Technik

[ Home ]

[46487]

Date: February 03, 2008 at 15:59:21
From: Joachim S, [p5b017daf.dip.t-dialin.net]
Subject: Wie programmiert man einen PD-Regler? (Werner z.B)

Tach zusammen,

natürlich ist nicht nur Werner angesprochen.

Ausgangslage:

Der PRG macht einen neuen Versuch mit einem VTG-Lader. Diesmal eine Nummer größer, aus einem BMW 330D.

Anscheinend das Größte, was es in der Richtung zu kaufen gibt. Da wir mittlerweile die Abgastemperatur im Griff haben, glaub ich, das Dingen hat ne Chance...

Der Lader hat eine elektrische Ansteuerung, das Ding wird PWM-gesteuert, die grundsätzliche Ansteuerung ist geklärt, das Signal kann ich erzeugen. Es hat ein Verhältnis von 10-90%.

Ins Auto kommt ein Rechner auf PC-Basis, festplattenlos.

Ich habe eine Procedure, nennen wir sie einfach mal PD_Regler_Proc

Die wird von der darüberliegenden Programmstruktur zyklisch aufgerufen, etwa im Takt von 2 Millisekunden, recht stabil.

Als Eingangsgrößen habe erstmal nur den Istladedruck (später noch die Drehzahl und die Gaspedalstellung und was sonst noch von Interesse sein könnte, aber ich will mal klein anfangen).

Vorgehensweise:

Ich bestimme einen Sollwert, der ist erstmal fest vorgegeben, könnte später aber noch abhängig gemacht werden von weiteren Eingangsgrößen.

Ich bilde die Differenz zum Solldruck und nehme diese mit dem (einstellbaren) sogenannten k-Faktor mal. Das Ergebnis beschneide ich ggfs. In diesem Falle z.B. auf 40

Ausgehend vom festen mittleren Taktverhältnis (50%) addiere ich nun diese Abweichung und das Ergebnis ergibt das neue Taktverhältnis, welches ich nun ans Stellwerk schicke.

Soweit richtig für einen schlichten P-Regler?

Jetzt der Differenzial-Anteil, von dem ich mir schnellere Reaktion und weniger Überschwinger verspreche:

Ich schreibe die Reglerabweichung sagen wir mal für die letzten 5-10 Aufrufe der Prozedur mit und mittlere darüber, weil ich sonst wahrscheinlich nur wilde Schwingungen erhalte. Bei jedem neuen Aufruf der Proc kommt ein neuer Wert hinzu, der alte fällt hintenüber. Der Mittelwert der Reglerabweichung wird mit dem letzten Mittelwert verglichen. Hab ich eine Abweichung, wird diese wieder mit einem Faktor malgenommen und auf die Stellgröße addiert (die natürlich wieder beschnitten werden muss).

Soweit richtig, oder mache ich einen Denkfehler? Möglicherweise muss ich die Regelabweichung auch für den P-Anteil schon glätten?

Kommen weitere Informationen hinzu (Drehzahl) so hat die nur Einfluss auf die Sollgröße, ansonsten bleibt die Proc unverändert?

Hat jemand da mehr Erfahrung als ich? Einwände?

Gruss Jo

Responses:
[
46507] [46511] [46514] [46521] [46516] [46513] [46515] [46520] [46523] [46530] [46533] [46543] [46508] [46502] [46489] [46491] [46494] [46498] [46490] [46505]
[46507]

Date: February 04, 2008 at 11:28:03
From: Werner, [p5088513d.dip.t-dialin.net]
Subject: Re: Wie programmiert man einen PD-Regler? (Werner z.B)

Moin,

Ist-Wert-Dämpfung durch Mittelwertbildung ist absolut Standard und würde ich auch empfehlen. Der Rechner rechnet sonst Peaks aus, die man gar nicht mitkriegt und die gleich die gelbe Lampe anmachen - sofern programmiert.

Wenn die Parameter für eine reine Steuerung alle stehen, ist das keine schlechte Lösung. Der "Regler" ist in dem Falle der Jo selber, der seinem Schätzchen allmählich beibiegt, was es wann zu tun hat. Das ist nicht nur von der Geschwindigkeit unschlagbar, sondern auch übersichtlicher - sofern man als Betreiber den Überblick hat.

Die früheren Motorsteuerungen von VW (Volksporsche etc.) waren alle so. Richtig eingestellt, waren sie gut. Verstellt wurden sie zum Übel, weil niemand nachgeregelt hat. Für Otto-Normalangeber also undiskutabel.

Die aktuellen Steuerungen von VW setzen auch die Werte sofort und vergleichen über die Zeit mit dem Signal der Lambda-Sonde. Ein paar Mal rauf und runter, und der Algorithmus ist neu gesetzt. Beschleunigungsanreicherung (beim Benziner) z.B. wäre als Regelung viel zu träge. Da muß schon was kommen, ehe der Auspuff was gemerkt hat.

Alles, was als Parameter nicht erfaßt wird, setzt die Steuerung blind. Wenn ich also meinen Rennpolo abends in den Alpen parke, setzt er den letzten Wert so, daß er morgens auch wieder mit dem magereren Gemisch anspringt. Hätte er eine Höhendruckdose - wie Porsche - dann würde er danach setzen + den unvermeidlichen Korrekturwert. Wenn ich also am nächsten Morgen die Alpen ohne Motor wieder runterrolle, säuft er mir erstmal ab. Mit Höhendose trifft er es besser.

Tanke ich statt Schnaps wieder Superbenzin, dann merkt er das und setzt die Parameter wieder neu. Ich merke das beim Beschleunigen die ersten drei Male und dann wirds wieder normal. Woran die Umstellung liegt, weiß die Steuerung nicht, sie nimmt es einfach hin.

Bei Stetiglast wird der Lambda-Regler ganz normal drübergeschaltet. Das ist dann eine echte Regelung, die aber auf gesetzten Grundwerten basiert. Da die Sonden sowieso nur 1 oder 0 auswerten, muß der Regelungsalgorithmus ziemlich getüftelt sein, damit der Fahrer nicht merkt, daß die Steuerung um den Betriebspunkt pendelt. Bei den älteren Opels war das nicht so gut geglückt. Da hat man es gemerkt.

- - - -

Übertragen auf den PRG kann man das genauso machen. Der Speicher ist in dem Fall Jos Hirn, bzw. ein Bierdeckel, wo die Werte drauf stehen. Wenn die Rallye dann man im feuchtheißen Gebiet in der Dschungelhochebene stattfindet oder in frostiger Kälte am Pol, muß halt eine Probefahrt vorher erbringen, daß die Werte neu gesetzt werden. Das ist so kein Hexenwerk und die Übersicht bleibt erhalten.

Wird das alles zu treuen Händen einem PID-Regler übergeben, kommt schon nach spätestens einer halben Stunde die Frage auf: "mit welchem Ausgang regelt der jetzt eigentlich?"

Das kann man sich natürlich alles anzeigen lassen. Die Praxis zeigt aber, daß man dann mehr über das Display gebeugt ist, als sein Rennen zu fahren.

Soweit ich das beurteilen kann, wird der Rallyemotor eh ständig mit Lastwechseln gefahren. Der stationäre Zustand auf dem Prüfstand, wo die Regelung mal so richtig einjustieren kann, ist eher die Ausnahme. Vielleicht mal eine Vollgaspassage - ok. Aber das kriegt man auch ohne Regelung hin.

Der Stellausgang für den Ladedruck ist vermutlich das sensibelste Teil. Trotzdem würde ich es durchaus mal versuchen, diesen Ausgang einfach nur zu steuern. Drehzahl 2000/min, Gasstellung 40%, Stellausgang xxxProzent und paßt. Bei geregeltem Ladedruck kurbelt sich die Turbine theoretisch etwas schneller auf Arbeitspunkt, aber durch den P-Anteil kann man sich das auch wieder versauen. Im Lastbereich hoher Leistungen sind die Massenträgheiten des Turboläufers eh klein gegenüber den herrschenden Gasmächten.

Wenn der Fahrer die Grenzen im Auge behält (Überladung etc.) und eine Knopf fürs Notprogramm hat, dann sollte das beherrschbar bleiben. Bei Porsche ist mal ein Lader mit über 200.000/min geknallt. Da hat man den Punkt nicht beachtet :-)).

- - - -

Die ganzen Tuner mit ihren Einspritzungen für schnelle Boote, alte Corvettes und so weiter arbeiten alle so. Der eine Fahrer mag es lieber sanft, der andere will aus dem Stand das Reifengummi aufwickeln. Gassannahme ist viel subjektiver, als gemeinhin angenommen. Ich habe hier bei uns am Rhein schon gesehen, wie der Tuner eines V8-Bootes ein langes Gesicht gemacht hat, weil dem Betreiber die Superhart-Gassannahme nicht gefallen hat. Er hat ihm dann den Übergang magerer gestellt, aber einen ziemlichen Flunsch gezogen.

Bei den Exclusiv-Teilen geht das ja auch. Da kümmert sich fachkundige Hand drum. Bei den normalen Autos muß die Steuerung das selbst hinkriegen.

Wenn Du die Verstellgeschwindigkeit des Gasstellers mit abnimmst, dann laß den Turbo etwas voreilen. Der höhere Staudruck beim Drauftreten wird durch das schnellere Erreichen des Drucks wieder wettgemacht. Überhaupt würde ich den Motor in Teillastbereichen eher etwas zurücknehmen, damit der Luftanteil da nicht zu groß wird.


Gruß

Werner

  • View the previous message in this thread
  • Go to the top of this thread

    [46511]

    Date: February 04, 2008 at 17:12:43
    From: Joachim S, [212.23.103.37]
    Subject: Fazit (@ alle)

    Tach zusammen,

    also, den Regler krieg ich jetzt programmiert. Da ist offenbar weiter kein Geheimnis dabei.

    Wenn der Regler läuft, dann sammelt er im Hintergrund Daten.

    So nach dem Motto, wir haben Vollgas, 3000 Touren, der Ladedruck ist im grünen Bereich, und mein Ausgang ist auf 67%. Eine gute Gelegenheit, mal einen Datenpunkt zu speichern.

    Das sammelt er gemütlich vor sich hin. So ein Datenpunkt merkt sich dann, wie oft er schon erreicht wurde, und korrigiert sich dann weiter über Mittelwertbildung.

    Und wenn er dann ganz schlau ist, nimmt er diese Datensammlung als Grundlage, über die der Regler dann nur noch zart drübermuss.

    Klingt doch nach einem guten Plan.

    Aber wie gesagt, erstmal weiss ich mit Glück noch die Drehzahl, die Gasstellung ist noch nicht sensorisch erfasst. Da macht eine Steuerung noch keinen Sinn. Also erstmal die Hardware mit einem schlichten Regelalgorithmus ans Kacken kriegen.

    Der 1. März ist Deadline, da muss das funzen...

    Gruss Jo

  • View the previous message in this thread
  • Go to the top of this thread

    [46514]

    Date: February 05, 2008 at 01:44:01
    From: Rhanie, [620_acl1.gw.smartbro.net]
    Subject: Re: Fazit (@ alle)

    Hi JO!

    >Das sammelt er gemütlich vor sich hin. So ein Datenpunkt merkt sich dann, wie oft er schon erreicht wurde, und korrigiert sich dann weiter über Mittelwertbildung.

    Sach ma, meinste nicht, das der sich dann dein "Normales" Fahrprofil merkt, anstatt sich die Rennerfordernisse zu merken?

    Oder willste da jetzt 2 (oder mehr) Kennlinien basteln?

    Gruß Rhanie.
    (Am besten währs wohl, du sammelst die Daten im Bulli und überträgst dann nur.... ;) )

  • View the previous message in this thread
  • Go to the top of this thread

    [46521]

    Date: February 05, 2008 at 09:12:14
    From: Joachim S, [p5b0172f6.dip.t-dialin.net]
    Subject: Re: Fazit (@ alle)

    Hi Rhanie,

    ich schätze, die Rennbetrieb-Kurven sind sogar einfacher aufzunehmen. Da ist wenigstens ein Parameter weitgehend fest (Vollgas oder gar kein Gas).

    Zwei Kennlinien? Tja, wenn das mit der Steuerung weitergeht, sind zumindest zwei verschiedene Betriebsmodi vorgesehen.

    Macht keinen Sinn, auf Verbindungsetappen mit 2 bar Ladedruck und Förderbeginn ungefähr einen Kolbenhub vor OT rumzugurken...

    Schaun wa mal, sowas wächst ja langsam. Am Anfang plant man noch viel, aber meistens kommt es anders...

    Gruss Jo

  • View the previous message in this thread
  • Go to the top of this thread

    [46516]

    Date: February 05, 2008 at 02:17:01
    From:
    Funman, [ip-160-17.travedsl.de]
    Subject: Daten

    Hallo Rhanie,

    der sammelt, wenn korrekt gemacht, schon
    sinnvolle Daten. Er sammelt ja nicht Daten
    des Fahrprofils, sondern der Betriebszustände.
    Möglicherweise sind die Daten nicht genau in
    den Bereichen, die fürs Rallyefahren oft benötigt
    werden, aber besser als nix ist es allemal.

    Tschüß, Hajo

  • View the previous message in this thread
  • Go to the top of this thread

    [46513]

    Date: February 04, 2008 at 22:18:06
    From: Joachim S, [212.23.103.65]
    Subject: Bin am Spielen...

    Nabend zusammen,

    so, hab mal was zusammenprogrammiert... War im Grunde ja einfach.

    function PD_Regler_Ladedruck :single;
    // Ausgang an Stellwerk 10-90%
    // Großer Wert (90%) -> Lader macht zu = mehr Ladedruck
    var
    AktRegelAbweichung, BeitragP, BeitragD :Single;
    begin
    // LadedruckSoll ist ein Funktionsaufruf, der ggfs. den Ladedruck
    // aus Betriebsparametern holt
    AktRegelAbweichung := LadedruckSoll - IstLadedruck;
    BeitragP := AktRegelAbweichung * kFaktorLadedruck;
    BeitragD := (LastRegelAbweichung - AktRegelAbweichung) * (-dFaktorLadedruck);
    LastRegelAbweichung := AktRegelAbweichung;

    Result := VorgabeLadedrucksteller + BeitragP + BeitragD;
    // VorgabeLadedrucksteller ist erstmal 50, später aus Kennfeld...
    if Result > 90 then Result := 90;
    if Result < 10 then Result := 10;
    end;


    Und kaum hat man auch nur 5 Minuten damit rumgespielt, merkt man, dass da doch viel Tücke im Detail steckt.

    Erstmal: Ohne Begrenzung gehts prinzipiell ja nicht. Wenn das Stellwerk unter 10% oder über 90 kommt, steigt es ja aus.

    Ich hab jetzt den Solldruck mal auf 1,7 stehen, und simuliere den Istdruck mittels eines Schiebereglers auf der Programmoberfläche.

    Der P-Anteil ist völlig einfach nachzuvollziehen. Ich mache ihn einfach so groß, dass das Stellwerk z.B. bei 0,2 bar Abweichung in die Endlagen geht, und dazwischen arbeitet. Funzt einwandfrei.

    Der D-Anteil ist dann schon tückischer. Erstmal hängt er stark von der Aufrufhäufigkeit der Prozedur ab. Es macht keinen Sinn, sie zu schnell aufzurufen, das muss in einem halbwegs sinnigen Verhältnis zum Tempo des Stellwerks stehen. Ruft man sie in zu schnellem Takt auf, gibt der D-Anteil nur kurze Peaks aus.

    Wählt man alles einigermaßen passend, so sieht man ihn arbeiten. Lasse ich den Istladedruck z.B. schnell von 0,8 auf 1,2 bar ansteigen, hält er brav etwas gegen, obwohl der Soll-Ladedruck nicht erreicht ist.

    ABER! Tu ich das von 0,1 auf 0,5 passiert nix. Logisch, der P-Regler ist soweit aus dem Bereich, dass er massiv gegenhält.

    Vielleicht ist das OK, vielleicht wäre es aber besser, beide Anteile erst zu begrenzen, dann zu summieren, und die Summe dann nochmal zu begrenzen. Und schon gibts mal locker 4 Freiheitsgrade mehr...

    Mal schaun, wird Zeit das am Auto auszuprobieren. Wie gesagt, mehr Tücke im Detail als es zunächst den Anschein hat.

    Gruss Jo

  • View the previous message in this thread
  • Go to the top of this thread

    [46515]

    Date: February 05, 2008 at 02:11:23
    From:
    Funman, [ip-160-17.travedsl.de]
    Subject: Laß das mit der Begrenzerei............Gruß, owt

    asfa

  • View the previous message in this thread
  • Go to the top of this thread

    [46520]

    Date: February 05, 2008 at 08:35:51
    From: Joachim S, [p5b0172f6.dip.t-dialin.net]
    Subject: Re: Laß das mit der Begrenzerei............Gruß, owt

    Hi Hajo,

    im Sinne von "brings ans Laufen" geb ich dir recht.

    Aber ich vermute (ohne es zu wissen), dass genau das hinter den ominösen Fuzzi-Reglern steckt. Nicht einfach eine multiplizierte Konstante, sondern etwas nach aussen abflachendes.

    Auch eine Wurzelfunktion könnte schon interessant sein... Also P-Anteil = KP * Wurzel(Regelabweichung).

    Gruss Jo, der gerade 200 Jahre Regeltechnik in Frage stellt ;-)

  • View the previous message in this thread
  • Go to the top of this thread

    [46523]

    Date: February 06, 2008 at 10:20:35
    From: Werner, [p508853bd.dip.t-dialin.net]
    Subject: Eine Lanze für den PID-Regler

    Moin Jo,

    Du hast schon Recht mit Deinen Belangen, aber eine Motorsteuerung ist auch keine Aufgabe für die klassische Regelungstechnik.

    Sinn und Zweck eines klassischen Regler ist, einen (veränderlichen) Sollwert anzunähern und den möglichst stabil zu halten. Dabei sind die Störgrößen eben NICHT vorher bekannt, sondern müssen nach bestimmten Algorithmen so behandelt werden, daß trotz der nicht gemessenen Nebeneinflüsse die Sache arbeitet.

    In der Regelungstechnik sind in den letzten 20 Jahren auch einige Bemühungen gemacht worden, eine "neue" Regelungstechnik zu schöpfen. Wir sind inzwischen wieder am Anfang. Füllen brav lange Listen aus, in denen die Parameter für P, I und D stehen. Was wir können, steuern wir auch. Z.B. geht in unserer Anlage demnächst ein 2,5 MW Verdichter in Betrieb, dessen Hochfahrzyklus so genau bekannt ist, daß er 90% gesteuert und nur noch ein wenig in den Extremwerten begrenzt hochläuft.

    Eine Betriebsmannschaft muß auch Bescheid wissen in so einer Anlage. Da gibts zwar auch Rallye-Fahrer, die in Zeiten von wenig Arbeit die Werkshalle für Umbauten nutzen :-), aber letzlich merkt sich doch jeder die PID-Anteile und operiert damit - auch die Youngster, die auf dem PC Klavier spielen können.

    Das wird in den nächsten 200 Jahren auch so bleiben, denke ich.


    Gruß

    Werner

  • View the previous message in this thread
  • Go to the top of this thread

    [46530]

    Date: February 06, 2008 at 20:38:31
    From: baffe, [pd9e7f2e6.dip.t-dialin.net]
    Subject: Auch wenns D meistens nix tut...

    Hi!

    Bei genauerer Betrachtung regeln die meisten PID fast nur PI.

    2,5MW klingt gut Werner. Klingt aber auch so als ob man nicht so einfach einen "Sprung" machen kann um Regelparameter zu ermitteln.

    ! da baffe

  • View the previous message in this thread
  • Go to the top of this thread

    [46533]

    Date: February 06, 2008 at 22:16:33
    From: Werner, [p508853bd.dip.t-dialin.net]
    Subject: Bei uns wohl

    Moin baffe,

    so ganz allgemein kann man das nicht sagen. In der Erdgasverflüssigung gibt es Parameter, die laufen dir dermaßen von was ausm Ruder, daß Du schon ne Menge D brauchst, um keinen Temperaturabsturz zu kriegen.

    Aber prinzipiell hast schon Recht. Man versuchts mit reinem P-Anteil und schiebt noch etwas I nach. Aber nur wenn es langweilig wird auf der Nachtschicht. Wenn dann der Regler endlich richtig funzelt und alles stabil läuft, wird es halt noch langweiliger, aber so sindse, die Leut.

    Wir haben Ende 70er/Anfang 80er viele gute Bücher aus der DDR gekauft. Die waren billig und gut für den werdenden Ingenieur. Bei dem Regelungstechnik buch erinnere ich mich, daß erst ein langer Vortext kam über die Moral der Regelungstechnik, die ja Leute und Arbeit wegrationalisieren kann. Die haben sich echt einen abgebrochen an dem Text, als wärs ne verbotene Wissenschaft :-).


    Heute war wieder Besprechung wegen IBN Verdichter. Hauen und Stechen. Ich werd einfach nachts mal den Knopf drücken und gucken, obs im Dorf dunkel wird :-)).


    Gruß

    Werner

  • View the previous message in this thread
  • Go to the top of this thread

    [46543]

    Date: February 07, 2008 at 19:04:41
    From: baffe, [pd9e7f316.dip.t-dialin.net]
    Subject: Klaro, wat mut datt mut...

    Hi!

    Wens das D braucht, dann ist das so.

    Aber bei vielen Anwendungen wird mit Gewalt PID reingewürgt und hinterher schaukelt die ganze Chose wie ein Auto ohne Stoßdämpfer.

    Es muß halt optimiert werden. Wobei die klassischen Geschichten (Ziegler&Nichols, Chien&Hrones&Reswik) bei mir nicht immer zielführend waren.

    Machmal ist es gut einfach zu spielen. Nicht plan- und ziellos, aber schon aus dem Urin.

    Gut wenn die Regelkreise dann eigensicher sind.

    ! da baffe

  • View the previous message in this thread
  • Go to the top of this thread

    [46508]

    Date: February 04, 2008 at 11:54:55
    From: Werner, [p5088513d.dip.t-dialin.net]
    Subject: Sorry, kleiner Fehler

    Hi,

    hab geschrieben: "aber durch den P-Anteil kann man sich das auch wieder versauen."

    Ich meinte natürlich den D-Anteil.

    Gruß

    Werner

  • View the previous message in this thread
  • Go to the top of this thread

    [46502]

    Date: February 04, 2008 at 00:27:38
    From:
    Funman, [ip-238-20.travedsl.de]
    Subject: Regler

    Hallo Joachim,

    zu stellen vs. regeln: Schon sehr richtig, Du solltest
    soviel wie möglich stellen, also aus vorprogrammierten
    Werten ausgeben, und so wenig wie möglich nachregeln.
    Je besser das klappt, desto genauer und schneller ist
    die Geschichte.

    Allgemeine Faustregel: der Regelkreis macht das
    Gegenteil dessen, was Du denkst. Wenn Du eine
    Glättung einbaust, wird er mehr schwingen. Wenn
    Du differenzierst, wird er langsamer, wenn Du
    begrenzt, überschwingt er noch mehr usw...

    Zum P-Regler: richtig, so gehts. Der P-Regler hat
    eine Verstärkung, den K-Faktor. Wenn der zu groß ist,
    dann schwingt der Regler, ist er zu klein, ist das
    Ergebnis zu wenig genau. Bei einem P-Regler
    kannst Du das noch einfach ausprobieren. Mach mal.
    Du wirst vermutlich feststellen, daß es schon gut
    tut. Mach die Verstärkung so, daß er beginnt,
    Überzuschwingen. Eine Begrenzung ist schädlich,
    solltest Du lassen. Ist auch nicht nötig. Wenn doch,
    ist die Verstärkung viel zu hoch.

    Beispiel: 5% Abweichung vom Sollwert machen 50%
    Stellweg. Das ist schon eine ganze Menge.

    Verstärkung heißt, wieviel verstellt er am Ausgang
    bei welcher Abweichung am Eingang.

    Jede Art von Verzögerung, also Glättung, ist schädlich.
    Ich würde erstmal alles sowas weglassen. Der Sensor
    sollte so schnell wie möglich sein und eben nicht viel
    Müll raustun. Wenn es nicht unerträglich müllt, dann
    glättet der Regelkreis schon von alleine. Das ist nicht
    kritisch. Auch mit etwas Müll gibts noch ein gutes Ergebnis.
    Glätte nicht mehr als 1 Digitalisierungstakt, also, als
    für die digitalisierung eh notwendig ist.

    Aus Deiner Beschreibung kann ich keinen D-Regler erkennen.
    Ein D-Anteil funktioniert "zu Fuß" so: Du vergleichst den
    aktuellen mit dem letzten Wert, bildest also die Differenz,
    (aktueller Wert) - (letzter Wert), multiplizierst das mit
    der Verstärkung des D-Anteils, das ist die sog. Stufentiefe,
    ein eher experimenteller Wert, und gibst es auf den Ausgang
    bzw. das P-Signal additiv drauf. Gute Werte für die Stufentiefe
    sind 2 bis 10, mehr nicht.

    Der D-Regler stabilisiert den Regelkreis und macht ihn
    erstmal langsamer. Da er aber stabiler ist, kannst Du
    die Verstärkung des P-Anteils weiter aufdrehen. In Summe
    wird es schneller als ohne D-Anteil, ein bißchen zumindest.
    Und etwas genauer.

    Zur Auflösung: wenn Du zu schnell digitalisierst, dann
    bekommst Du entsprechend mehr Rundungsfehler und Rauschen.
    Du solltest den Takt so langsam wählen, daß er gerade nicht
    schadet. Also z.B. Faktor 10 schneller als der Stellmotor
    oder der Sensor, keinesfalls mehr. Wenn Du zu selten
    digitalisierst, dann gibts wieder mehr Überschwingen. Probier
    es aus und geh dann etwas zurück.

    Die Formeln von Baffe sind zwar richtig, haben nur 1 Problem:
    Du weißt die Größen nicht,
    die Du einsetzen mußt, also Tn und Tv z.B.

    Dann möchte ich noch darauf hinweisen, daß man normalerweise
    ein paar Semester studiert, bis man das weiß....

    Der normale Weg für einen analogen Regler ist: Ausmessen, was
    Dein System tut, also Sprünge oder gewobbelte Frequenzen
    draufgeben und die Reaktion beobachten. Daraus ein Modell
    bestimmen. Das ist die sog. Identifikation. Mit diesem Modell,
    das einige signifikante Zahlen enthält, kann dann ein
    Regler ausgelegt werden, auch simuliert werden. Bei dieser
    Auslegung kommen die Tn und Tv und K usw. aus Baffes Formeln
    raus. Für die Auslegung gibt es verschiedene Verfahren. Das
    Ergebnis wird dann gebastelt, mit einem OP z.B.

    Ein digitaler Regler ist ein digitales Filter. Es besteht
    aus einer Verzögerungskette, also einem FIFO, und einem
    Satz Multiplizierer und Addierer. Die Regel sieht dann etwa
    so aus, nimm den letzten Wert mal +0,5, den vorletzen mal -0,25
    und den vorvorletzten mal +0,05 und addiere das auf. Auf diese
    Koeffizienten kommt man auch mit einer Auslegung. Ein
    Ausprobieren ist in der Regel zum Scheitern verurteilt.
    Das heißt, Messen, Rechnen, simulieren ist angesagt.

    Das was Du vorhast ist ein digital simulierter Analogregler.
    Bis zu drei Zweigen, PID also, ist das noch möglich.
    Ich habe mit gutem Erfolg reine Integratorregler nach
    diesem Prinzip für die Geschwindigkeitsstabilisierung
    eines Scanners auf einem µC programmiert. Scanfrequenz
    200 Hz, 50 Abtastungen pro Scan, nicht mehr, Eingang ist die
    Geschwindigkeit, Ausgang auch. Das Ausgangssignal wird
    dann analog integriert, um aus der Geschwindigkeit die
    Position für die Ansteuerung des Scanners zu machen.
    Auch da macht der Regler aber nur +-10% des Bereiches,
    der Rest wird vorgegeben. Der Regler stabilisiert die
    +- 10% auf etwa +- 0,1%.

    Tschüß, Hajo







  • View the previous message in this thread
  • Go to the top of this thread

    [46489]

    Date: February 03, 2008 at 17:43:03
    From: baffe, [pd9e7ef06.dip.t-dialin.net]
    Subject: Könnte klappen

    Hi Jo!

    Soweit ich das überreiße haut das hin.

    Was natürlich stört sind Interrupts oder Peripheriezugriffe die gerade bei der PC-Architektur das Timing gerne verhageln.

    Wenn Du das ausschließen kannst, daß es da holpert sollte es so tun wie Du beschreibst.

    Auch wenn die Regler die ich kenne etwas anders programmiert waren.

    Das mit der Mittelung würde ich erstmal weglassen. Wenn die Sensorsignale sauber und glatt sind, was sie im Ansaugrohr von Haus aus sicher nicht sind würde ich die erstmal glätten und dann mit dem Algorithmus drauf losgehen sonst machst ein Faß auf.

    Eigentlich bringst mit der Mittelung in den D Teil ja eine Verzögerung rein. Hmmm, würd ich vermeiden wenns geht. Kann das jetzt nicht schlüssig begründen warum mir das nicht schmeckt, das kommt aus dem Urin...

    ! da baffe

  • View the previous message in this thread
  • Go to the top of this thread

    [46491]

    Date: February 03, 2008 at 18:17:24
    From: baffe, [pd9e7ef06.dip.t-dialin.net]
    Subject: Hab noch einige Algorithmen für Dich

    Hi!

    Zunächst der Differenzierer:

    Y(n)=(X(n)-X(n-1))*TD/TA

    Dabei ist Y(n) der Ausgang des Differenzierers beim n-ten Schleifendurchlauf X(n) der Eingang beim nten Durchlauf und X(n-1) der vom letzten Durchlauf.

    TD ist die Differenzierzeitkonstante und TA die Abtastzeit wenn man sie denn verwursten möchte. Ansonsten eben 1 setzen und nur mit TD spielen.

    Der Proportionalregler:

    Y=KP*(W-X)

    Eher banal. W=Istwert (Begriff veraltet ich weis) X=Sollwert (Dito)

    Beide Regler lassen sich in der Parallelstruktur programmieren. Die beiden Ausgangswerte werden dann einfach addiert. Als Eingangsgröße wird dabei die selbe Variable verwendet.

    Dann hab ich noch einen Algorithmus für PI:

    Y(n)=Y(n-1)+KP((1+TA/TN)*YE(n)-YE(n-1)

    YE ist dabei der Reglereingang also die Regelabweichung=Sollwert-Istwert. Indiziert nach aktuel (n) oder letzter Wert (n-1).

    TN ist die Nachstellzeit des Integrators.

    Ob das durchschaubar ist was da schrieb? Hab ich mir nicht aus den Fingern gesogen sondern nur abgeschrieben.

    ! da baffe, der noch Einige Algorithmen hat aber bei genauer Durchsicht festgestellt hat, daß er mit D-Reglern noch wenig zu tun hatte. Machen ja auch meist Theater und "Schmutz"



  • View the previous message in this thread
  • Go to the top of this thread

    [46494]

    Date: February 03, 2008 at 18:56:11
    From: Joachim S, [p5b017daf.dip.t-dialin.net]
    Subject: Re: Hab noch einige Algorithmen für Dich

    Hallo nochmal,

    klingt soweit logisch und ist genau was ich meinte...

    Das einzige, womit ich nicht ganz glücklich bin, ist, dass ich den Reglerausgang auf meine ominösen 50% Grundstellung draufrechnen will.

    Schlauer wäre, wenn man eine für die Betriebsumstände passende Grundstellung hätte, und auf die noch den Regler legt. So sagts zumindest mein Gefühl.

    Beispiel: Der Regler weiss aus langjähriger Erfahrung, bei Vollgas und 2000 Touren brauch ich 80% Taktverhältnis für die gewünschten 1,5 bar. Sobald dieser Betriebszustand also anliegt, springt er da schonmal hin. Und der Regler "zieht nur nach was noch nicht passt".

    Selbstlernend und so.

    Aber erstmal muss das überhaupt laufen lernen. Dann kommt erst das Hüpfen auf einem Bein.

    Gruss Jo

  • View the previous message in this thread
  • Go to the top of this thread

    [46498]

    Date: February 03, 2008 at 19:04:37
    From: baffe, [pd9e7ef06.dip.t-dialin.net]
    Subject: Feintuning mit Kennfeldern kommt später...

    ReHi Jo!

    Die Algorithmen beziehen sich auf eine Nullage von Null.

    Abweichungen müssen zumindest in den Werten nach +/- möglich sein.

    Zwischenergebnisse können bei verwustelten Strukturen ja auch negativ sein wenn der Ausgang im + Bereich liegt.

    Gerechnet wurde auch immer mit Integern also +/- 16xyz als Wertebereich.

    ! da baffe

  • View the previous message in this thread
  • Go to the top of this thread

    [46490]

    Date: February 03, 2008 at 18:06:30
    From: Joachim S, [p5b017daf.dip.t-dialin.net]
    Subject: Re: Könnte klappen

    Hi Baffe,

    ja, der Zyklus läuft schon ganz brauchbar.

    Ich nutzte da einen Multi-Media-Timer, das lässt sich bis runter auf 1 Millisekunde treiben und läuft recht hart.

    Solange nicht irgendwelche Treiber den Rechner blockieren. Aber da läuft sonst eigentlich nichts auf dem Rechner, was Ärger machen könnte.

    Unsere Robbis laufen auch so, das tut. Da kommen wir aber locker mit 10ms-Takt hin.

    Glättung, tja. Wenn ich glätte wirds langsamer. Führt zu Überschwingern. Glättet man garnicht, dann wirds wahrscheinlich fast nur sinnlos rappeln. Ausprobieren...

    Die Glättung ist ja leicht einstellbar, einfach über die Zahl der zur Mittelwertbildung herangezogenen Takte.

    Der Drucksensor ist so ein Profiteil aus dem Industriebereich, hat Cheffe springen lassen. Mit CAN-Ausgang.

    Der kann auch selbst einstellbar glätten, vielleicht sollte ich lieber nur damit arbeiten. Dann wird der Algorithmus nicht so überfrachtet... Aber prinzipiell kann der doch auch nicht mehr tun, als gleitend über die letzten Messwerte mitteln? Also genauso eine Verzögerung.

    Gruss Jo

  • View the previous message in this thread
  • Go to the top of this thread

    [46505]

    Date: February 04, 2008 at 03:14:23
    From: Rhanie, [620_acl1.gw.smartbro.net]
    Subject: Re: Könnte klappen

    Hi JO!

    Wenn der selber glättet würd ichs dem machen lassen, 1) hat er nix anderes zu tun, 2) isser verm. drauf optimiert (warum Gehirnschmalz verbrauchen für etwas was andere schon hinbekommen haben?) 3) macht er das verm. noch Analog, das würde ich dann eh vorziehen.

    Gruß Rhanie.

  • View the previous message in this thread
  • Go to the top of this thread

      Generated by UFORUM version 1.00
         Last Updated: 17-Jan-2018 20:23:24, 79314 Bytes
         Author: ulinux