kramann.info
© Guido Kramann

Login: Passwort:










Regelungssysteme
1 day_by_day
2 Heizregelkreis
3 Verzoegerungsglieder
4 Laplace
..4.1 Eigenwerte
..4.2 PT1
..4.3 PRegler
..4.4 Scilab
5 Regleroptimierung
..5.1 Guetefunktion
..5.2 Heuristiken
..5.3 Scilab
..5.4 Gradientenverfahren
..5.5 ModifizierteG
..5.6 Gleichstrommotor
..5.7 Stoerverhalten
6 Javaanwendung
..6.1 PIDgeregelterAntrieb
..6.2 RungeKuttaIntegrator
..6.3 Gradientenverfahren
7 Einstellregeln
..7.1 Totzeit
..7.2 Methode1
..7.3 Methode2
..7.4 Scilab
..7.5 Daempfungsgrad
..7.6 Uebung
8 Polvorgabe
9 Beobachter
10 AutonomerHackenprosche
..10.1 Herleitung
..10.2 Scilab
..10.3 Modellerweiterung
..10.4 Scilab
..10.5 Modellgueltigkeit
..10.6 java
11 Stabilitaet
..11.1 Beispiele
..11.2 Nyqusitkriterium
..11.3 Windup
..11.4 Bode
12 Adaptiv
..12.1 Definition
..12.2 Einachser
..12.3 Auswertung
..12.4 Identifikation
..12.5 Regleroptimierung
..12.6 Zustandsregler
..12.7 Beobachter
13 Analyse
..13.1 Linear
..13.2 Nichtlinear
14 Kalmanfilter
15 Ue_04_2014
..15.1 Geschwindigkeit
..15.2 Richtung
..15.3 Gesamtsystem
..15.4 RiccatiUSW
..15.5 TdOT
16 Inverses_Pendel
17 Einachser
..17.1 Mechanik
..17.2 Uebung8
18 Fuzzy
..18.1 Fuzzylogik
..18.2 FuzzyRegler
..18.3 Uebung9
..18.5 Softwareentwicklung
....18.5.1 AgileSoftwareentwicklung
....18.5.2 FuzzyRegler
....18.5.3 Uebung
..18.6 Umsetzung
....18.6.1 FuzzyRegler
....18.6.2 Simulation
....18.6.3 Optimierung
....18.6.4 Uebung
..18.7 Haengependel
....18.7.1 Haengependel
....18.7.2 Simulation
....18.7.3 FuzzyRegler
....18.7.4 Optimierer
....18.7.5 Genetisch
..18.8 Information
..18.9 Energie
21 Beispiel1
98 day_by_day_WS2021_SoSe21
99 day_by_day_SoSe2018
kramann.info
© Guido Kramann

Login: Passwort:




Umsetzung des autonomen Hackenporsche mit Scilab

(EN google-translate)

(PL google-translate)

Zunächst werden als Antrieb konstante Kräfte gesetzt:

l=1.0;
b=0.6;
c=0.5*b;
m=10.0;
J=(1/12)*m*(l*l+b*b);
D=1;

global l,b,c,m,J,D;

function f = rechteSeite(t,y)
//Reihenfolge y: xx,vxx,yy,vyy,phi,omega
    xx    = y(1,1); //Schwerpunt in I
    vxx   = y(2,1);
    yy    = y(3,1); //Schwerpunt in I
    vyy   = y(4,1);
    phi   = y(5,1); //Drehung von Quader in I
    omega = y(6,1);

    TT = [cos(phi),-sin(phi);sin(phi),cos(phi)];
    dTT = [-omega*sin(phi),-omega*cos(phi);omega*cos(phi),-omega*sin(phi)];

    oPPstrich = [0;c];
    oQQstrich = [0;-c];

    oPP = [xx;yy] + TT*oPPstrich; //Ortsvektor nach Punkt P in I
    oQQ = [xx;yy] + TT*oQQstrich; //Ortsvektor nach Punkt Q in I

    voPP = [vxx;vyy] + dTT*oPPstrich; //Ortsvektor-Geschw. von Punkt P in I
    voQQ = [vxx;vyy] + dTT*oQQstrich; //Ortsvektor-Geschw. von Punkt Q in I

    rPP = TT*oPPstrich; //Verbindungsvektor von Punkt S nach P in I
    rQQ = TT*oQQstrich; //Verbindungsvektor von Punkt S nach Q in I


//Vorwärts in X-Richtung:
//    skalarF1 = 10;
//    skalarF2 = 10;

//Drehen:
    skalarF1 = -10;
    skalarF2 = 10;

    F1 = TT*[skalarF1;0];
    F2 = TT*[skalarF2;0];

    FR1 = -D*voPP;
    FR2 = -D*voQQ;

    M1 = rPP(1,1)*F1(2,1) - rPP(2,1)*F1(1,1); //rPP x F1
    M2 = rQQ(1,1)*F2(2,1) - rQQ(2,1)*F2(1,1); //rQQ x F2

    MR1 = rPP(1,1)*FR1(2,1) - rPP(2,1)*FR1(1,1); //rPP x FR1
    MR2 = rQQ(1,1)*FR2(2,1) - rQQ(2,1)*FR2(1,1); //rQQ x FR2

    f(1,1) =  vxx;
    f(2,1) =  ( F1(1,1) + F2(1,1) + FR1(1,1) + FR2(1,1) )/m ;
    f(3,1) =  vyy;
    f(4,1) =  ( F1(2,1) + F2(2,1) + FR1(2,1) + FR2(2,1) )/m ;
    f(5,1) =  omega;
    f(6,1) =  ( M1 + M2 + MR1 + MR2 )/J ;
endfunction

t = 0:0.01:30;
y0 = [0,0,0,0,0,0]';
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

//plot(t,y(2,:)');
//plot(t,y(1,:)');
//plot(y(1,:)',y(3,:)');

plot(t,y(6,:)');

Code 0-1: Scilab-Code

Übung
simulation015_data.zip - ergänzendes Material (16.05.2012).

hackenporsche_optimiert_save.zip - ergänzendes Material (20.05.2012).

Aufgabe 1

  • Bauen Sie in das Modell einen PID-Regler für die Geschwindigkeit in X-Richtung ein.
  • Auf die Möglichkeit, in der zweidimensionalen Ebene zu fahren wird hier zunächst verzeichtet.

Aufgabe 2

  • Implementieren Sie nun den Markerpunkt MP, der dem Fahrzeug vorausfahren soll.
  • Der Markerpunkt MP soll eine Kreisfahrt von 1m Radius mit einer Geschwindigkeit von 2m pro Sekunde um den Koordinatenursprung vollführen.
  • Entwickeln Sie nun ein Regelungskonzept, bei dem das Fahrzeug dem Markerpunkt versucht in 0,1m Abstand zu folgen.

Aufgabe 3

  • Versuchen Sie zu Aufgabe 1 einen Zustansregler umzusetzen.
  • Dazu muß das Modell linearisiert werden.

Aufgabe 4

  • Läßt sich auch zu dem Konzept aus Aufgabe 2 alternativ ein Zustandsregler realisieren?

Aufgabe 5

  • Übertragen Sie eines der Regelungskonzepte nach Java und lassen Sie den Regler automatisch optimieren.

Aufgabe 6

  • Schreiben Sie mit einer Programmiersprache Ihrer Wahl ein Animationsprogramm für den "autonomen Hackenporsche".