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


von Bernd (Gast)


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)
1
while (1) {
2
    SollPosition = 0;
3
    IstPosition = 10;
4
    Steuerungsignal = Soll - Ist;
5
}
6
[c/]
7
8
Mir fällt jetzt nur eine simple Mittelwertbildung ein
9
10
[c]
11
    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

von pfft... (Gast)


Lesenswert?

Moeglicherweise ist das system Nichtlinear, dann sollte man erst 
linearisieren.

von Bernd (Gast)


Lesenswert?

Hi,

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

Viele Grüße

von Karl H. (kbuchegg)


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 );

von Oliver (Gast)


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.
1
   Steuerungsignal = Soll - Ist;

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

Oliver

von Karl H. (kbuchegg)


Lesenswert?

Noch nie ausprobiert.

Was passiert eigentlich, wenn man das tatsächliche Stellsignal dem 
errechneten STellsignal langsam nachführt?
1
 while (1) {
2
    SollPosition = 0;
3
    IstPosition = 10;
4
    Steuerungsignal = Soll - Ist;
5
6
    if( Steuerungsignal > Steuerung )
7
      Steuerung++;
8
    else if( Steuerungsignal < Steuerung )
9
      Steuerung--;
10
11
    // mit Steuerung gehst du dann auf das Stellglied
12
}

von Philipp B. (philipp_burch)


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 ;)

von Karl (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.