- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 11

Thema: Drehzahlregelung PID mit AVR

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.707
    ... habe schon ganz viel über den PID Regler gelesen aber irgendwie verstehe ich es nicht ...
    Das ist nicht untypisch bei Regelungstechnik.

    Schritt 1 (für Dich) könnte es sein, mal den Abschnitt zu diesem Thema im RNW issen zu überfliegen - und die interessierenden Abschnitte etwas ausführlicher durchzugehen.

    Schritt 2 wäre mal eine Aufzeichnung der ganzen Regelstrecke, das habe ich z.B. so gemacht:

    .......Bild hier  
    ... und habe die Größen mit eigenen Bezeichnungen versehen, die ich später auch im Code verwende.

    Schritt 3 - Sprungfunktion bzw. Sprungantwort haben die Kollegen schon empfohlen. Hier habe ich dazu eine ganze Litanei geschrieben, insbesondere über Messaufbau zur Auslegung einer Geschwindigkeitsregelung (PID). Und dazu gibts hier und anderswo noch eigenen Code zur Regelung - damit Du mal ungefähr siehst, wie das geht (und mein MiniD0 läuft recht gut - 1 mm Abweichung auf 1 m Fahrstrecke).

    Danach könnte man soweit sein, dass man alle nötigen Werte zur Reglerauslegung besitzt - oder sich aus den Messungen ableiten kann.

    Sehr sinnvoll ist der Abschnitt zur Auslegung/Dimensionierung eines digitalen Reglers im RNWi ssen. Sehr lesenswert! War für mich eine ziemlich gute Anleitung für meine Anwendungen.

    Viel Erfolg.
    Geändert von oberallgeier (29.08.2017 um 18:31 Uhr)
    Ciao sagt der JoeamBerg

  2. #2
    Die üblichen verdächtigen auf microcontroller und RN-Wissen habe ich natürlich drurchgelesen.

    das problem war der tipp mit dem "erst p-anteil ausprobieren, dann i und d dazu"
    denn nur der p anteil schaltet einfach immer den motor aus, wenn die drehzahl richtung soll geht. (weil fehler kleiner wird, wird ausgang auch kleiner)

    der I anteil ist für die regelung wichtig, und dann geht es auch....

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    74
    Beiträge
    11.077
    Ja, so wäre es dann optimal, also PI-Regler, damit der Motor auch bei 0 Differenz dfeht. Aber das D Anteil ist sicher überflüssig.

    Möglicherweise einfacher wäre Zweipunktregler mit Hysterese: http://de.wikipedia.org/wiki/Zweipunktregler .
    Geändert von PICture (30.05.2014 um 15:07 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Hi,

    @PICture: Möglicherweise einfacher wäre Zweipunktregler mit Hysterese - Die Platte möcht ich dann nicht wirklich hören.
    @scrap01: aber aufgrund der hohen Masse schwingt es nur sinnlos. Mal probieren: p-Anteil reduzieren, bis Schwingen aufhört.
    Den enstehenden grossen Fehler zwischen Soll und ist mit I-Anteil korrigieren, um diesen zu kompensieren.
    Analoge Ansteuerung des Motors ist auch nicht gerade vorteilhaft, bei niedrigen Werten zeigen DC-Motoren Nichtlinearitäten,
    die auszuregeln nicht ganz easy ist, PWM ist sicher besser (kommt jetzt sicher der Einwand, dass analoge Ansteuerung
    in einem Audio-Teil besser ist, aber Du hast je eh einen µC "an Bord", der die "audiophile Luft verschmutzt")
    mfg
    Achim

  5. #5
    der motor soll in niedrigen drehzahlen eh ungeregelt sein, damit man den mit der hand anhalten kann.

    pwm wollte ich nciht aufgrund der lediglich 10bit auflösung, wobei ich mir im nachhinein überlegt habe, dass mit fastpwm auch 16bit drin wären, ist aber bisher ungetestet.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.707
    der motor soll in niedrigen drehzahlen eh ungeregelt sein, damit man den mit der hand anhalten kann ...
    Ist doch kein Problem. Bei mir wird die Regelungsroutine in einem präzisen Takt aufgerufen und in der Routine selbst wird zuerst geprüft, ob überhaupt geregelt werden soll. Und bei mir wird auch bei kleinen Sollwerten komplett abgeschaltet, das wäre bei Dir nicht sinnvoll, ist aber leicht entsprechend programmierbar. Insgesamt sind eben digitale Regler problemlos und easy anpassungsfähig, ein- und auszuschalten etc.

    Code:
    // ============================================================================= =
    // ===  Regelungsroutine für Motor 12
    // Die gemessene Zeitdifferenz Iz_diff0 zwischen zwei Encoderinterrupts
    //   wird zur Regelung verwendet
    //      Regelungkennwerte regel12/-34 und OCR1A/-B werden
    //        in der ISR(TIMER2_COMPB_vect) sekündlich in den i2c-speicher geschrieben
    // ============================================================================= =
      void rgl_12(void)          // Regelung für Motor 12 mit 2 Interr pro Umdr.
    {                                 
      if ( !regel12 ) return;       // Regelung ist aus bei regel == 0
                                    //
      if (sspeed12 <= 3)            // Soll überhaupt gefahren werden?
      {                             //
        OCR1A = 0;                  // Unter x mm/s soll nicht gefahren werden
        return;                     //
      }                             //
    ... ...
    Der Flag regel12 wird irgendwo gesetzt oder nicht . . . aber vermutlich reicht bei Dir sogar eine ähnliche Abfrage wie die (bei mir ebenfalls vorhandene) Sollspeed-Abfrage und entsprechende Reaktion bei kleinen Drehzahlen. Wer dann noch unbedingt scratchen können möchte, kann die Regelung bei hohen Stellwerten, sprich: bei großen Abweichungen vom Sollwert *ggg*, auch abbrechen oder ganz ausschalten. Von Spezialnadel etc jetzt mal abgesehen.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    10 bit PWM reicht auf jeden Fall, bei ausreichend hoher Abtastrate wird das minimale "Restschwingen" und der Restfehler
    durch die Massenträgheit Deines Plattentellers kompensiert (wirkt quasi wie ein zusätzlicher I-Anteil)
    mfg
    Achim

Ähnliche Themen

  1. Drehzahlregelung mit Poti
    Von johndost im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 14.09.2011, 06:43
  2. verbesserung Drehzahlregelung I- zu PI-, PID-Regler ???
    Von Lieber_Gott im Forum Robby RP6
    Antworten: 9
    Letzter Beitrag: 09.10.2009, 08:07
  3. Antworten: 11
    Letzter Beitrag: 22.08.2009, 22:37
  4. PID Regler für den AVR auf C implementiert
    Von cumi im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 31.08.2006, 11:49
  5. Antworten: 1
    Letzter Beitrag: 30.12.2004, 15:07

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress