Regelung eines inversen Pendels
(EN google-translate)
(PL google-translate)
In der Vorlesung vom 26.05.2014 wurde das Modell eines inversen Pendels hergeleitet.

Bild 0-1: Animation des invertierenden Pendels (Schlitten blau, Pendel rot),
Nachfolgend ist das entsprechende Scilab-Modell realisiert:
clear; clc; clearglobal; //Drot = 0.01; Drot = 1.0; m2 = 1.0; l = 1.0; h = l/2; r = 0.01; J = 0.25*m2*r*r + (1/12)*m2*l*l; m1 = 1.0; FA = 0.0; g = 9.81; function f = rechteSeite(t,y) x1 = y(7,1); //Weg Schlitten vx1 = y(8,1); x2 = y(1,1); //Weg Pendel y2 = y(2,1); phi = y(3,1); vx2 = y(4,1); vy2 = y(5,1); omega = y(6,1); //Zwangskräfte Fx und Fy bestimmen: //QQ*F=q => F = inv(QQ)*q q = [-FA/m1-(1/J)*h*cos(phi)*Drot*omega-h*omega*omega*sin(phi); -(1/J)*h*sin(phi)*Drot*omega+h*omega*omega*cos(phi)-g]; QQ = [(1/m1)+(1/J)*h*h*cos(phi)*cos(phi)+(1/m2), (1/J)*h*h*sin(phi)*cos(phi); (1/J)*h*h*sin(phi)*cos(phi) , (1/J)*h*h*sin(phi)*sin(phi) + (1/m2)]; F = inv(QQ)*q; Fx = F(1); Fy = F(2); //Pendel: f(1,1)=x2; //Newton x Substitutuion x2 f(2,1)=y2; //Newton y Substitutuion y2 f(3,1)=omega; //Euler Substitutuion phi f(4,1)=-Fx/m2; //Newton dx2/dt f(5,1)=-Fy/m2-g; //Newton dy2/dt f(6,1)=(-Drot*omega - h*sin(phi)*Fy -h*cos(phi)*Fx)/J; //Euler omega //Schlitten: f(7,1)=vx1; //Newton x Substitutuion x1 f(8,1)=FA/m1 + Fx/m1; //Newton dx1/dt endfunction t = 0:0.01:5; t0=0.0; y0 = [0,0,%pi*0.5, 0,0,0, 0, 0]'; y = ode(y0,t0,t,rechteSeite); plot(t,y(3,:)); //phi //plot(t,y(8,:)); //vx1 //plot(t,y(7,:)); //x1
Code 0-1: Modell für ein invertierendes Pendel (Schlitten mit Körperpendel), Datei einachser.sce.
Es wurde auch eine entsprechende Simulation und Animation mit Processing realisiert:

Weiteres Vorgehen
Um einen Regler nach "linearer Theorie" aufzubauen, sollte das System um den Punkt φ=0 linearisiert werden und hierfür ein passender Regler umgesetzt werden.
Das Verhalten um diese Ruhelage herum sollte durch Vergleich des linearisierten mit dem nicht linearisierten Modell verifiziert werden.