kramann.info
© Guido Kramann

Login: Passwort:










Robuste Systemintegration
1 Grundlagen
..1.1 Newton
....1.1.1 LinearSchwinger
....1.1.2 Daempfung
....1.1.4 ODE
....1.1.5 Saaluebung
..1.2 NewtonEuler
....1.2.1 Traegheitsmomente
....1.2.2 Modellgleichungen
....1.2.3 Einfachpendel
..1.3 Scilab
....1.3.1 Erste_Schritte
....1.3.2 Skripte
....1.3.3 Funktionen
..1.4 Laplace
....1.4.1 Eigenwerte
....1.4.2 PT1
..1.5 Regleroptimierung
....1.5.1 Guetefunktion
....1.5.2 Heuristiken
....1.5.3 Scilab
..1.6 Einstellregeln
....1.6.1 Totzeit
....1.6.2 Methode1
....1.6.3 Methode2
....1.6.4 Scilab
..1.7 Zustandsregler
..1.8 Polvorgabe
..1.8 Polvorgabe_alt
..1.9 Beobachter
....1.9.1 Haengependel
..1.10 Daempfungsgrad
..1.11 Processing
....1.11.1 Installation
....1.11.2 Erste_Schritte
....1.11.3 Mechatronik
....1.11.4 Bibliotheken
....1.11.5 Uebung
....1.11.6 Snippets
......1.11.6.1 Dateioperationen
......1.11.6.2 Bilder
......1.11.6.3 GUI
......1.11.6.4 Text
......1.11.6.5 PDF
......1.11.6.8 Maus
......1.11.6.10 Zeit
......1.11.6.13 Animation
......1.11.6.15 Simulation
....1.11.7 Referenzen
..1.12 Breakout
2 Beispiel
3 Beispielloesung
4 Praxis
5 javasci
6 Fehlertoleranz1
7 Reglerentwurf
..7.1 Sprungantwort
..7.2 Messdaten
..7.3 Systemidentifikation
..7.4 Polvorgabe
..7.5 Beobachter
..7.6 Robuster_Entwurf
..7.7 SIL
8 Systementwicklung
9 Arduino
..9.1 Lauflicht
..9.2 Taster
..9.3 Sensor
..9.12 Motor_PWM1
..9.13 Motor_PWM2_seriell
..9.14 Motor_PWM3_analogWrite
..9.15 Scheduler
..9.20 AV
..9.21 Mikrofon
..9.22 Universal
....9.22.1 Laborplatine
....9.22.2 LED_Leiste
....9.22.3 Motortreiber
....9.22.4 Sensoreingaenge
....9.22.5 Taster
....9.22.6 Tests
....9.22.7 Mikrofon
....9.22.8 Lautsprecher
....9.22.9 Fahrgestell
..9.23 Zauberkiste
..9.24 OOP
....9.24.1 Uebungen
..9.25 AVneu
....9.25.1 Tests
..9.26 DA_Wandler
..9.27 CompBoard
....9.27.1 Tastenmatrix
....9.27.2 ASCIIDisplay
..9.28 CTC
..9.29 Tonerzeugung
10 EvoFuzzy
..10.1 Fuzzy
....10.1.1 Fuzzylogik
....10.1.2 FuzzyRegler
....10.1.3 Uebung9
....10.1.5 Softwareentwicklung
......10.1.5.1 AgileSoftwareentwicklung
......10.1.5.2 FuzzyRegler
......10.1.5.3 Uebung
....10.1.6 Umsetzung
......10.1.6.1 FuzzyRegler
......10.1.6.2 Simulation
......10.1.6.3 Optimierung
......10.1.6.4 Uebung
....10.1.7 Haengependel
......10.1.7.1 Haengependel
......10.1.7.2 Simulation
......10.1.7.3 FuzzyRegler
......10.1.7.4 Optimierer
......10.1.7.5 Genetisch
....10.1.8 Information
....10.1.9 Energie
..10.2 Optimierung
....10.2.1 Gradientenverfahren
....10.2.2 Heuristiken
....10.2.3 ModifizierteG
....10.2.4 optim
..10.3 Genalgorithmus
..10.4 NeuronaleNetze
....10.4.1 Neuron
....10.4.2 Backpropagation
....10.4.3 Umsetzung
....10.4.4 Winkelerkennung
..10.5 RiccatiRegler
11 Agentensysteme
12 Simulation
20 Massnahmen
21 Kalmanfilter
..21.1 Vorarbeit
..21.2 Minimalversion
..21.3 Beispiel
30 Dreirad
31 Gleiter
..31.1 Fehlertoleranz
80 Vorlesung_2014_10_01
81 Vorlesung_2014_10_08
82 Vorlesung_2014_10_15
83 Vorlesung_2014_10_22
84 Vorlesung_2014_10_29
kramann.info
© Guido Kramann

Login: Passwort:




Modellierung des linearen Schwingers mit dem ODE-Solver von Scilab

  • ODE steht für Ordinary Differential Equation - Gewöhnliche Differentialgleichung
  • Mit der Funktion ODE in Scilab ist es möglich System von Gewöhnlichen Differentialgleichungen zu integrieren.
  • Die Differentialgleichung für den linearen Schwinger haben wir gerade so umgeformt, dass sie mit dem ode-solver lösbar ist.
  • Sie besteht nun aus mehreren Gleichungen der Form:
  • dy/dt = f(y,t)
  • Die linke Seite dieses linearen Differentialgleichungssystems ist die erste zeitliche Ableitung des Vektors mit den Zustandsgrößen des Modells.
  • Bei unserem Seerosenteich wäre die Zustandsgröße die Seerosenteichfläche und die zeitliche Ableitung dA/dt
  • Bei dem Schwinger sind es die Geschwindigkeit v und der Weg y jeweils nach der Zeit abgeleitet.
  • Der ODE-Solver macht das gleiche, mit LDGLS, was wir mit Hilfe der Euler-Integration für die einfache DGL des Seerosenteiches gemacht haben:
  • Er integriert das LDGLS numerisch und liefert hier den Zeitverlauf für Weg und Geschwindigkeit.

Der Quellcode in Scilab

  • Die rechte Seite wird in einer Funktion definiert.
  • Sie heißt hier "rechteSeite" und wird dem Solver übergeben.
  • Die Funktion und die Anfangsbedingungen y0 bestimmen gemeinsam vollständig das LDGLS.
  • Daneben wird noch mit t0 und t dem Solver mitgeteilt, in welchen Zeitschritten er den Zeitverlauf bestimmen soll.
  • Gestartet wird das Skript mit exec schwingerode.sce im Scilab-Fenster.
m = 1.0;
C = 1.0;

function f = rechteSeite(t,y)
    A = [[0,-C/m];[1,0]];
    f = A*y; 
endfunction

t = linspace(0,30,3000);
y0 = [0,1]';
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

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

 

Code 0-1: Modell mit Scilab integriert, Skript-Programm im File schwingerode.sce

m = 1.0;
C = 1.0;

function f = rechteSeite(t,y)
    x = y(1,1);
    v = y(2,1);
    f(1,1) = v;
    f(2,1) = -(C/m)*x;
endfunction

t = linspace(0,30,3000);
y0 = [1,0]';
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

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

 

Code 0-1: Modell mit Scilab integriert, Variante ohne Matrixschreibweise vom 19.11.2013 - ACHTUNG: Reihenfolge der Gleichungen gegenüber oben vertauscht!

Modell und Integration mit Scilab: schwingerode.zip
Plot: x und v.

Bild 0-3: Plot: x und v.