www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Logik gesucht - Impulse abrunden - Regelungstechnik ("weicher P Faktor")


Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich hab grade eine Lageregelungssystem mit P und I Faktor.
("Balancing Bot")

Den I Faktor kann ich ja wunderbar mit Steigung (wenn größer soll dann 
minus Faktor 10 etc.), Begrenzung (laufe bis 4000) beinflussen, neben 
natürlich der Gewichtung zum P Faktor.

Der P Faktor ist viel simpler, einfaches Plus / Minus dem Soll.

Mit zunehmende P Faktor ist das Ergebnis auch zunehmend stabiler, wird
aber wackeliger um die 0 Position herum. Fängt dann an zu zittern,
steht aber zitternd wie eine Eins :)

Da ist die Frage, ob man nicht den P Faktor etwas weicher gestalten 
kann.
so das ich ohne Wackeln einen höheren P Faktor einsetzen kann. Also, so
ist jetzt der P Regler (ohne I-Faktor)
while (1) {
    SollPosition = 0;
    IstPosition = 10;
    Steuerungsignal = Soll - Ist;
}
[c/]

Mir fällt jetzt nur eine simple Mittelwertbildung ein

[c]
    Steuerungsignal = ((Soll - Ist) + Steuerungsignal_alt) / 2;

Hat noch jemand eine bessere Idee, wie man Signale abrunden, weicher
gestalten kann etc.

Über einen Tip würde ich mich sehr freuen.

Viele Grüße
Bernd

Autor: pfft... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moeglicherweise ist das system Nichtlinear, dann sollte man erst 
linearisieren.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

linear, versteh ich nicht ganz....
Du meinst, Soll & Ist-Werte sind unterschiedlich gewichtet?

Viele Grüße

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd schrieb:

> Hat noch jemand eine bessere Idee, wie man Signale abrunden, weicher
> gestalten kann etc.

<Leise vor sich hinmurmelnd>
Indem man den Faktor mal auf kleiner 1 setzt?

    Steuerungsignal = Faktor * ( Soll - Ist );

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Moeglicherweise ist das system Nichtlinear,

ROTFL

Das ist so ziemlich das nichtlinearste, was man sich vorstellen kann.

Versuch doch erst einmal herauszufinden, warum das System schwingt. 
Messstörungen, -diskretisierung, Stellgrößendiskretisierung, 
Regelschwingungen, etc.
   Steuerungsignal = Soll - Ist; 

a) Wo ist denn da der Faktor?
b) Das sind ja hoffentlich keine Integer...

Oliver

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch nie ausprobiert.

Was passiert eigentlich, wenn man das tatsächliche Stellsignal dem 
errechneten STellsignal langsam nachführt?
 while (1) {
    SollPosition = 0;
    IstPosition = 10;
    Steuerungsignal = Soll - Ist;

    if( Steuerungsignal > Steuerung )
      Steuerung++;
    else if( Steuerungsignal < Steuerung )
      Steuerung--;

    // mit Steuerung gehst du dann auf das Stellglied
}

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hast du den netten Effekt, dass die Regelung bei langsamer 
Laständerung funktioniert aber bei einem schnellen Lastwechsel erstmal 
noch ziemlich wegfährt. Hatte ich mal bei einer 
Einfachst-Drehzahlregelung, ist noch lustig zum spielen ;)

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal abgesehen davon, dass es eine krasse Nichtlinearität ist, verursacht 
das eine Phasenverschiebung und macht das System in der Theorie 
instabiler.

Die angesprochene Mittelwertbildung ist ein ziemlich dämlicher FIR 
Tiefpass (wenn man einen haben will ;)) mit konstanter Laufzeit -> 
Phasenverschiebung -> instabil.

Wilkommen im real live! Regelungstechnik zum anfassen. Das System 
scheint ja nicht instabil zu sein, sondern "nur" nervös, oder schwingt 
das ganze um den Sollwert? Kann bei Stellgrößenbeschränkung (bei JEDEM 
mechanischen System vorhanden) schon mal vorkommen.

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.