mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PI-Regler für GS-Motor; immer noch Fragen


Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich weiß, ich nerv mittlerweile, aber ich bin fast am Ziel und komm 
nicht wirklich weiter. Zur Erinnerung: ich regel einen GS-Motor mit 
einem PI-Regler. Angetrieben von PWM.
Soll- und Istwert ist eine Geschwingigkeit in U/min.
Was stellt denn meine Stellgröße dar, welche Einheit hat sie? Ich hab 
schon viele verschiedene Möglichkeiten gehört, welche ist denn jetzt 
richtig?
Ist die Stellgröße eine Geschwindigkeit oder die PWM-Pulsbreite?
Hilft mir, ich bin am Verzweifeln....

Autor: gast :-) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das kannst du dir eigentlich aussuchen, ggf musst du die werte 
umrechnen...

vergiss aber dabei nicht das umrechnungen idr immer ne gewisse 
abweichnung haben.
ich mein damit das wenn du zb pwm nach u/min umrechnest, das du ja 
bestimmt ein pi dabei. dadurch wird dein ergebnis idr auf/abregundet.

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kapier ich eben nicht, wieso ich mir das aussuchen kann, ich hab 
doch eine feste Formel. Meine schaut so aus:

pi_r.Stellwert = pi_r.Kp*pi_r.Regelabweichung + 
(pi_r.Ki*pi_r.I_Anteil)/100;

Regelabweichung ist eine Drehzahldifferenz, z.B 2000-1950 = 50
Der I-Anteil ist die Summe aller Abweichungen, z.B 10
Kp = 18; Ki = 60

also alles feste Größen, bei dieser Konstellation bekomme ich 906 raus.
Und was sagt mir die Zahl????????

Autor: Michael K. (mmike)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die musst Du dann umrechnen...

Deine Stellgröße ist die Größe, mit der Du Deinen Motor "stellen" also 
steuern kannst. Das sollte Dein PWM Verhältnis sein. Du hast mal 
geschrieben bei 50% PWM Tastverhältnis steht der Motor.

Mach doch einfach mal ein Diagramm. Trag auf der x - Achse das PWM High 
- Low Verhältnis in Prozent auf und auf der y - Achse die Drehzahl. 
Wahrscheinlich ist das Ganze schön nichtlinear ... Stell das Diagramm 
dann mal hier rein, dann kann Dir konkreter geholfen werden !

Grüße,
Michael

Autor: Weinga-Unity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Stellgröße ist die mittlere Spannung, die der Motor beaufschlagt 
wird. D.h. bei 10V Versorgung gilt 90%PWM=9V, 10%PWM=1V, ...
Ein Zusammenhang Drehzahl<->PWM kann nicht gefunden werden, da dieser 
von Belastung usw. abhängt. Kann eigentlich leicht erklärt werden:
1) Motor steht und PWM=0%
2) jetzt PWM=50%
3) Motor steht immer noch und läuft erst gemütlich weg
-> PWM=50% würde somit Drehzahlen von n=0...xxx entsprechen->kein 
Zusammenhang.

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab vielleicht eine Möglichkeit gefunden, wie ich das eine in das andere 
umrechnen kann. Allerdings muss ich dafür die maximale Stellgröße 
wissen.
Die muss ich aus der Formel :
pi_r.Stellwert = pi_r.Kp*pi_r.Regelabweichung + 
(pi_r.Ki*pi_r.I_Anteil)/100;

berechnen können und dann kann ich das auf PWM umrechnen.
Also minimale Stellgröße =0 entspricht PWM=FE70 (Flankenwechselregister)
Maximale Stellgröße = ?? entspricht PWM=FFFF


Ich hab versucht, den max. Stellwert durch das Einsetzen der Werte zu 
bestimmen. Also für den Teil mit dem P-Anteil funktioniert das sehr gut: 
die max. Regelabweichung ist Maxdrehzahl-0U/min = 3000U/min. Mit Kp=60 
multipliziert = 54000. Wie ich das mit dem I-Anteil herausbekommen 
soll...keine Ahnung....Wenn ich das wüsste, dann hab ich zwei Bereiche:

0->400
0->Max.Stellwert

und kann die ineinander umrechnen!!

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich hab jetzt ein paar Werte aufgenommen.
Tastverhältnis in % -> Drehzahl in U/min

50% -> 0 U/min
60% -> 445 U/min
70% -> 1704 U/min
80% -> 1780 U/min
90% -> 2390 U/min
100% -> 2474 U/min

Das ganze ist wirklich schön unlinear.
Also wie soll ich jetzt meine Stellgröße skallieren?

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich würde kubische splines machen und dann eine lookup tabelle
aufbauen. bei vorgabe einer drehzahl würde ich in dieser tabelle
das benötigte tastverhältnis nachschlagen (for loop durchlauf mit break
wenn gefunden)
vielleicht nicht ideal aber pragmatisch gelöst

Autor: Michael K. (mmike) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier was zum einstellen der Verstärkungsfaktoren ...

http://de.wikipedia.org/wiki/Faustformelverfahren_...)

Autor: Kartoffel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
also ich hab jetzt ein Diagramm erstellt: Drehzahl in Abhängigkeit vom 
Tastverhältnis(siehe Anhang). Also wenn man interpoliert und zwei Augen 
zurdückt, dann kann man doch sagen, dass der Verlauf linear ist, oder?
Was sagt ihr???????????????????????????????

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich hab versucht eure Tipps in die Tat umzusetzen. Hab die 
Stellgröße auf den richgigen Bereich skaliert von 0->65535 auf (0->400).

Nochmal der Regler:
  pi_r.Stellwert = pi_r.Kp*pi_r.Regelabweichung + pi_r.Ki*pi_r.I_Anteil)/100;

Skalierte Stellgröße: (pi_r.Stellwert*400)/65535

Da meine Stellgröße sich im Bereich zw. 400 bis 800 bewegt sieht die 
entgültige Stellgröße so aus:

Stellgröße_entg= 400 + skalierte Stellgröße

Hab versucht, das anhand von 2 Werten zu überprüfuen.
v_soll = 1500U/min
v_ist = 1300U/min

Nach dem Anwenden aller Formeln bekomme ich Stellgröße_entg = 423

Das kann doch nicht sein....
Denn 423 entspricht einer sehr niedrigen Drehzahl (unter 80 U/min).
Ich möchte aber von 1300 auf 1500 und nicht auf 80 runter!!!!!
Hab ich nen Denkfehler????

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß denn niemand Rat?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.