Sie sind auf Seite 1von 162

Simulationstechnik 2

Fortgeschrittene Simulationstechniken an Fallstudien Alternative Systembeschreibungen Aufgaben Anhang Peter Junglas 8. 9. 2011

Inhaltsverzeichnis
bersicht Fortgeschrittene Simulationstechniken an Fallstudien Schwingungsanalyse Aufgabenstellung Fourieranalyse Anwendung im Beispiel Digitaltechnik Grundschaltungen Interaktive Ein- und Ausgabe-Elemente Steuerung eines Frderbands Einsatz klassischer und Fuzzy-Regler Simulation von Regelkreisen Prinzip der Fuzzy-Regelung Fuzzy-Regler zur Positionierung einer Verladebrcke Alternative Systembeschreibungen Bondgraphen Einleitung Grundlegende Elemente Entwicklung von Bondgraphen Ableitung der Zustandsgleichungen Simulation von Bondgraphen System-Dynamics-Diagramme Simulation mit Simile Beispiel Ruber-Beute-Beziehung Beispiel Fertigungsstrae Objektorientierte Darstellungen Objekte in MapleSim Arbeiten mit MapleSim Simulation eines einfachen Fahrzeug-Antriebsstrangs Motormodell als Subsystem Erweiterung der Modelle fr Kupplung und Getriebe Differenzialgetriebe als neuer Typ Systemgrenzen im Modell Aufgaben Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 4 Aufgabe 5 Aufgabe 6

Aufgabe 7 Aufgabe 8 Aufgabe 9 Aufgabe 10 Aufgabe 11 Aufgabe 12 Aufgabe 13 Aufgabe 14 Aufgabe 15 Aufgabe 16 Aufgabe 17 Aufgabe 18 Aufgabe 19 Aufgabe 20 Aufgabe 21 Aufgabe 22 Anhang Literatur- und Quellenverzeichnis Herleitung der Bewegungsgleichungen der Verladebrcke Matlab-Beispiele schwingungsanalyse.m setcolor.m taste.m Simulink-Beispiele MapleSim-Beispiele Prfungsleistung Themenvorschlge Antriebsregelung fr ein Hybridfahrzeug Steuerung eines Frderbands Lsung der Aufgaben aus Simulationstechnik 2 Regelung eines dreiachsigen SCARA-Roboter Realistische Reibungsmodellierung eines Magnetschwebe-Systems Vertikalschwingungen eines LKWs Modul-Synthesizer mit VCF Triebstrang eines PKWs mit MapleSim Signaturen mit dem MD5-Verfahren Ausbreitung von Infektionskrankheiten Blcke zur graphischen Ein- und Ausgabe Bisher bearbeitete Themen

Fortgeschrittene Simulationstechniken an Fallstudien


Schwingungsanalyse Digitaltechnik Einsatz klassischer und Fuzzy-Regler

Schwingungsanalyse
Aufgabenstellung Fourieranalyse Anwendung im Beispiel

Aufgabenstellung
Problem: schwingfhiges System wird durch externe Schwingungen angeregt System schwingt bei Resonanz mit groer Amplitude mit kann Funktion des Systems stren oder gar System selbst zerstren Beispiel Fertigungsmaschine angeregt durch Bodenschwingungen Ursache: Schwingungen benachbarter Maschinen, etwa durch Unwuchten Abhilfe z.B. durch Dmpfung beim Verursacher dazu Analyse des Strsignals ntig Beispiel: Modell

Ergebnis

woher kommt das Aufblhen? Zeitmessung der erzwungen Schwingung liefert f 8 Hz

entspricht Eigenfrequenz des Schwingers 0 = 2 f 50/s Anregung hat zwei offensichtliche Frequenzen ( 1 = 8/s , 2 = 2/s) Frequenzen liegen weit unterhalb der Eigenfrequenz 0 = 50/s!

Fourieranalyse
Fourierreihe: Zerlegung eines periodischen Prozesses mit Schwingungsdauer T in Sinus- und Kosinus-Schwingungen

mit := 2 /T Berechnung der Koeffizienten durch

Zusammenfassung als komplexe e-Funktion

Berechnung der komplexen Koeffizienten

Fouriertransformation: bei nicht-periodischen Vorgngen Nherung: T sehr gro whlen Grenzwert T Summe wird Integral Frequenzen werden kontinuierlich Koeffizienten c n werden Funktion F()

Berechnung der Fouriertransformierten F()

Diskrete Fouriertransformation: Ausgangspunkt sind N Funktionswerte x n , n = 0, .. N - 1 (in festen Zeitabstnden) Berechnung der diskreten Fouriertransformierten X(k) mit

Rcktransformation

Fast Fourier Transform (FFT) Summen durch geschicktes Zusammenfassen sehr schnell berechenbar klappt am besten, wenn Zahl der Punkte eine Zweierpotenz ist Matlab-Funktionen fft und ifft mit Vektoren x und X X = fft(x) x = ifft(X) Achtung: Indizes in Matlab starten bei 1! Berechnung der Fouriertransformation in Matlab: gegeben sei Funktion f(t), z.B. f = @(t) 2 + sin(2*t) + 0.5*sin(6*t); Zeit-Intervall T und Anzahl der Punkte N (als Zweierpotenz) whlen damit Funktionswerte an diskreten Stellen bestimmen, z.B. T = 100; N = 1024; Delta_t = T/(N-1); t = [0:N-1]*Delta_t; x = f(t);

Verfahren liefert richtige Frequenzanteile nur fr Frequenzen unterhalb der Nyquist-Frequenz f max

Schwingungen hherer Frequenzen von niedrigen nicht unterscheidbar tauchen im Spektrum bei falschen (zu niedrigen) Frequenzen auf

FFT mit Matlab X = fft(x); X ist komplex, hufig nur Betrag interessant (Amplitudenspektrum) Darstellung des Leistungsspektrums nur bis zur zulssigen Maximalfrequenz x-Achse in richtigen Einheiten (z.B. in Hz) Indizes um 1 verschieben (Frequenzen fangen bei 0 an!) Beispiel in Matlab F = abs(X(1:N/2))/N; freq = [0:(N/2)-1]/T; plot(freq, F);

Aufgaben: Aufgabe 1

10

Aufgabe 2 Aufgabe 3

11

Anwendung im Beispiel
Analyse des Spektrums mit Block Power Spektral Density Modell

in Blocksets & Toolboxes/Simulink Extras/Additional Sinks Parameter Sample Time Abstand der Messpunkte T fr Spektralanalyse Analyse bis mindestens f max = 10 Hz T 0.05 andere Parameter hier nur fr Bufferlnge = Zahl der Punkte fr FFT mglichst Zweierpotenz mglichst gro hohe spektrale Auflsung sinnvoller Maximalwert: (Tmax - Tmin)/T also hier 2048 Ergebnis

12

13

zwei Sinusse im Eingang 1 = 2/s, 2 = 8/s offensichtliche Eigenschwingung bei 0 = 50/s genaueres Spektrum mit Matlab-Funktionen erzeugen Exkurs: Strukturen in Matlab Structure = Zusammenfassung von Daten verschiedener Typen in einer Variablen direkte Eingabe des Variablennamens liefert Namen und Typen der Felder der Struktur bei ScopeData

ScopeData.time ScopeData.signals ScopeData.blockName

Array der Zeitwerte Array von zwei Strukturen (bei zwei Kurven) Name des erzeugenden Blocks

ScopeData.signals(1).values Array der Werte

Abspeichern zum leichteren Weiterverarbeiten t = ScopeData.time;

14

s_in = ScopeData.signals(1).values; s_out = ScopeData.signals(2).values; Ansehen etwa mit plot(t, s_in, t, s_out) Genauere FFT-Analyse des Ergebnisses: Werte der Simulation mit Osci nach Matlab exportieren analysieren mit Matlab-Programm schwingungsanalyse.m Werte aus Struktur holen gleichmige Sample erzeugen FFT berechnen, auf richtige Frequenz beziehen Herauszoomen des interessanten Bereichs Ergebnis

Eingangssignal enthlt schwache Anregungen bei = 50/s, mit Wiederholungen um 2/s versetzt woher? Weitere Analyse des Eingangssignals: starke Sinusse berlagern den schwachen Anteil Idee: durch Hochpassfilter wegschneiden

15

ausgefeilte Theorie der Filter Matlab-Funktion butter in Signal Processing Toolbox gibt Koeffizienten von Zhler- und Nennerpolynom der bertragungsfunktion in Block Transfer Fcn eintragen konkret fr Grenzkreisfrequenz g = 25 1/s omega_g = 25; [B, A] = butter(5, omega_g, high, s) Modell

16

Ergebnis spektral

strende Sinusse sind weggefiltert problematischer Anteil bei 50/s deutlich zu sehen

17

Ergebnis im Zeitbereich

abklingende Schwingungen von 50/s wiederholen sich mit Frequenz 2/s Interpretation periodische Schlge von Rotator bei 2/s regen internes Bauteil zu gedmpften Eigenschwingungen bei 50/s an Aufgaben: Aufgabe 4

18

Digitaltechnik
Grundschaltungen Interaktive Ein- und Ausgabe-Elemente Steuerung eines Frderbands

19

Grundschaltungen
RS-Flipflop: grundlegender Speicherbaustein (vgl. Simulationstechnik 1)

Verhaltenstabelle

S R Qn

!Q n

0 0 Q n-1 !Q n-1 1 0 1 0 1 0 1 1 0 0 1 0 verboten!

Aufbau aus einfachen Gattern war

Memory-Baustein durchbricht algebraische Schleife Nachteil: Verzgerung am Ausgang Modell ohne Verzgerung aus Simulink-Bibliothek

20

Memory nur in der Rckkopplung mit Q n Wahrheitstabelle incl. Rckkopplung

S R Q n Q n+1 !Q n+1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 verboten! verboten!

Block Combinatorial Logic ersetzt viele Gatter

Maske fr den Anfangswert

21

JK-Flipflop: nderungen nur bei Wechsel am Takteingang bei steigender Taktflanke = bei Wechsel von 0 auf 1 (positiv getriggert) bei fallender Taktflanke = bei Wechsel von 1 auf 0 (negativ getriggert) hier immer negativ getriggert Schaltbild

Besonderheit bei J = K = 1 beim Triggern Wechsel des Ausgangzustands Wahrheitstabelle (nderung nur beim Triggern!)

22

J K Q n Q n+1 !Q n+1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1

Aufbau als JK-Master-Slave

JK-Flipflop als getriggertes System: Aufbau mit Logikblock hnlich RS-Flipflop

getriggertes System enthlt den Trigger-Block

23

wird nur bei Auslsen des Triggers ausgefhrt Trigger kann auf steigende oder fallende Flanke (oder beides) reagieren Inport hat normalerweise aktuellen (neuen) Wert beim Triggern hat alten Wert als Latch input

Trigger-Eingang immer oben oder unten (bei ungedrehtem Block) wird durch Trigger-Symbol angezeigt Trick zur "normalen" Anzeige des JK-FF-Blocks wird noch einmal ein Subsystem

JK-Flipflop als Zhlerbaustein: Grundschaltung

24

J und K-Eingang auf 1 Ausgang Q springt bei jedem Taktwechsel Frequenz des Takteingangs wird halbiert Ausgang als neuen Takt mehrfache Frequenzteilung

25

Ausgangswerte als Binrziffern interpretieren Vorwrtszhler Schaltung mit "Handbetrieb"

manuelle Eingabe des Takts durch Doppelklick auf Schalter Anzeige als Dezimalzahl im Display andauernde Simulation durch fixed step mit sehr kleiner Schrittweite Binr-Dezimalwandler explizit

Anwendung Schieberegister: D-Flipflop getriggerter, einfacher Speicherbaustein bernimmt beim Triggerimpuls Eingangswert

26

Schieberegister bergibt bei Taktimpuls Signal an das nchste Flipflop Wandler zwischen seriellen und parallelen Signalen

Download Aufgaben: Aufgabe 5

27

Interaktive Ein- und Ausgabe-Elemente


Taste zur Eingabe digitaler Signale: einfacher manueller Eingabeblock Doppelklick ndert Wert zwischen 1 und 0 Aufbau normaler Constant-Block bei Edit/Block properties... unter Callbacks als OpenFcn eingetragen

bei Doppelklick wird eigene Matlab-Funktion taste aufgerufen Test der Taste: Modell testtaste.mdl

28

Problem nderung des Tastendrucks wird von Display nicht bemerkt neuer Wert im Display erst nach Edit/Update Diagram bzw. <Ctrl>-D oder Neuaufbau des Fensters Bild im Oszi ok

Daten im Workspace ok

Zugriff auf Modell-Elemente: Simulink-Blcke haben Vielzahl von Parametern fr Standard-Blockbibliothek im Simulink-Manual beschrieben Wert in Matlab lesen mit wert = get_param(blockname, parameter); Wert setzen mit set_param(blockname, parameter, wert); Beispiel: aktueller Wert der Taste (Constant-Block) get_param(testtaste/Taste, Value) Blockname in eigenen Blcken unterschiedlich bei Einsatz in verschiedenen Modellen

29

mit Standardfunktionen abfragbar gcb liefert Namen des aktuellen Blocks gcs liefert Namen des umgebenden Systems des aktuellen Blocks Achtung: alle Parameter (auch wert) sind Strings! Matlab-Funktion taste.m Funktion gcb liefert Namen des aktuellen Blocks (hier: testtaste/Taste) get_param(blk, Value) besorgt Wert des Constant-Blocks Taste set_param(blk, Value, sw) setzt Wert auf sw Farbige Anzeige ("LED"): zeigt binres Signal (0/1) durch Farbwechsel an Modell testled.mdl

reagiert unmittelbar auf die Taste! Farben knnen als Parameter gesetzt werden

Farbe = [rot, grn, blau], jeweils aus dem Intervall [0, 1] Zeichnen des Kreises geschieht in der Maske durch die Zeichenfunktion patch(sin([0:0.1:2*pi]), cos([0:0.1:2*pi]), [0.0, 0.2, 0.0]) Zeichenfunktion wird gendert durch innen liegenden Block mit S-Funktion

S-Funktion: Beschreibung eines neuen Simulink-Blocks in einer Programmiersprache (Matlab, C, C++, Fortran, Ada) i.f. nur fr Matlab (M-Files) Datei (z.B.) sfun_demo.m definiert Funktion der Form function sfun_demo(block)

30

Funktion sfun_demo beschreibt Verhalten des Blocks vollstndig wird bei einem Simulationsschritt mehrmals aufgerufen enthlt Hilfs-Funktionen fr die einzelnen Schritte Argument block komplizierte Struktur enthlt alle von sfun_demo bentigten Daten sammelt alle in sfun_demo definierten Informationen ber das Blockverhalten MathWorks liefert Templatefunktion mit (MATLABROOT/toolbox/simulink/blocks/msfuntmpl.m) Grundgerst einer S-Funktion: Hauptfunktion sfun_demo(block) (z.B.) ruft nur setup(block) auf Funktion setup(block) legt fest Zahl der Ein- und Ausgnge sowie Dialog-Parameter Eigenschaften der Ein- und Ausgnge Block-Samplezeit Callback-Funktionen fr alle weiteren Schritte wichtige Funktionen

Name

Festlegung von

PostPropagationSetup Gre und Eigenschaften der internen Zustandsvektoren InitializeConditions Outputs Update Derivatives Terminate Anfangswerte der Zustandsvektoren Werte der Ausgangssignale Werte der diskreten Zustnde Werte der Ableitungen der kontinuierlichen Zustnde Aufrumarbeiten am Schluss der Simulation

Einbinden einer S-Funktion: Block Level-2 M-file S Function unter User-Defined Functions Block-Parameter Name der S-Funktion (im M-File) Werte der (optionalen) Parameter, mit Komma hintereinander Ein- oder Ausgnge des Blocksymbols entsprechend der Anzahl in der S-Funktion Darstellung verbessern durch Maske, u.a. Parameter als einzelne Felder Funktionsweise des LED-Blocks: Maske definiert zwei Farben on_color, off_color zeichnet farbigen Kreis als Icon mit

31

patch(sin([0:0.1:2*pi]), cos([0:0.1:2*pi]), off_color) S-Funktion setcolor.m holt die Farben mit get_param von der Maske color_on_s = get_param(sysname, on_color); color_off_s = get_param(sysname, off_color); ndert komplettes Icon-Kommando der Maske abhngig vom Eingangswert set_param(sysname, MaskDisplay, icon); Problem stndiges Setzen des gleichen Wertes fhrt zu Flackern Lsung letzten Wert (an/aus) als Zustand speichern nur bei nderung des Zustands Icon-Kommando neu setzen Funktion setup definiert einen Eingang, keinen Ausgang Funktion DoPostPropSetup definiert einen diskreten Zustand Funktion Update holt Farbwerte aus dem Block prft, ob neu gezeichnet werden muss setzt ggf. Icon-Kommando neu (Parameter MaskDisplay) setzt ggf. Zustand auf neuen Wert Anwendung schieberegisterled.mdl

32

Steuerung eines Frderbands


Aufgabenstellung (nach [3]): Frderband zum Transport in zwei Richtungen Lichtschranke an jeder Seite Unterbrechung auf einer Seite Sperrgitter auf beiden Seiten fahren hoch Motor der anderen Seite luft an anschlieend Unterbrechung der anderen Seite kurze Auslaufphase zurck auf Start Unterbrechung auf beiden Seiten Warnlampe blinkt Subblock fr Steuerung

Aufbau der Steuerung mit Flipflops: taktgesteuert Zustnde Ruhe StartL, TransportR, AuslaufR StartR, TransportL, AuslaufL Warn Eingnge LiL, LiR Lichtschranken links/rechts Wert = 1 inaktiv Ausgnge Sperrgitter hoch Motor an (links/rechts)

33

Warnlampe an Zustandsdiagramm

einfache Umsetzung pro Zustand ein D-Flipflop Weiterschalten durch Logik gesteuert Ausgnge durch Kombination der Zustnde Eingangslogik: Wann wird der Zustand aktiv? Beispiel TransportL (StartR aktiv) oder (TransportL aktiv & LichtschrankeL aktiv) fertiges Modell (Download)

34

Anmerkung "richtiger" Schaltungsentwurf verwendet weniger Flipflops kompliziertere Logik Vorteil: "verbotene" Zustnde (etwa Ruhe & Start) unmglich Aufgaben: Aufgabe 6 Aufgabe 7

35

Einsatz klassischer und Fuzzy-Regler


Simulation von Regelkreisen Prinzip der Fuzzy-Regelung Fuzzy-Regler zur Positionierung einer Verladebrcke

36

Simulation von Regelkreisen


Aufbau eines Regelkreises: Grundstruktur

Regelstrecke = zu regelndes System Gren

x w e u

Regelgre Fhrungsgre Regeldifferenz Stellgre

aktueller Wert der zu regelnden Gre gibt Sollposition der Regelgre vor e=w-x Gre zur Manipulation der Regelstrecke

Verzgerungsglied als Regelstrecke (PT1): reagiert mit Zeitverzgerung T auf nderung der Stellgre Beispiele Temperaturanstieg durch Heizung Mengenanstieg durch Zufluss Systemgleichung

Reaktion auf Sprung der Stellgre im Modell

37

Gedmpfter Schwingkreis als Regelstrecke (PT2): Feder-Dmpfer-System mit uerer Anregung Systemgleichung

Lsung durch Laplace-Transformation

direkt umsetzbar mit Simulink-Block Transfer Fcn Parameter sind Koeffizienten des Zhler- und Nenner-Polynoms

Reaktion auf Sprung der Stellgre im Modell

38

Verladebrcke als Regelstrecke: Modell der Verladebrcke

Laufkatze der Masse M k am Seil der Lnge l hngt Last der Masse M l Position der Laufkatze x Winkel der Last Antriebskraft u des Motors Erdbeschleunigung g Systemgleichungen (Herleitung)

"Anti-Beispiel" der Regelungstechnik

39

keine Dmpfung, zweidimensional nicht-lineare Kopplungen Standard-Verfahren klappen schlecht Reaktion auf Sprung der Stellgre (s. bruecke.mdl)

Standard-PID-Regler: bildet Stellgre aus Regeldifferenz, deren Integral und Ableitung

"Arbeitspferd" der Regelungstechnik ausgefeilte Theorie fr lineare Regelstrecken schlecht geeignet fr manche nichtlinearen Systeme (z.B. Verladebrcke) einfacher Beispiel-Regelkreis mit (K p , K i , K d ) = (10, 20, 5)

40

Bibliothek mit Regler-Bausteinen: neu anlegen mit File/New/Library fertige Blcke hineinziehen und Bibliothek abspeichern

Blcke aus regler1 fr neue Modelle verwenden Modell enthlt Verweis (Link) auf Bibliotheksblock Bibliotheks-Blcke knnen markiert werden mit Format/Library Link Display/All

nderung eines Blocks in der Bibliothek: wird automatisch in Modelle bertragen beim nchsten Laden eines Modells bei Edit/Update Diagram Block in der Bibliothek gelscht Modell zeigt Block als "Bad Link"

41

funktioniert nicht mehr nderung eines Bibliothek-Blocks im Modell: Parameter in der Maske sind lokal (modellbezogen) nderung im Modell direkt mglich Werte in der Bibliothek nur Startwerte nderung in der Bibliothek ndert Modelle nicht andere nderungen im Modell nur mglich nach Disable Link alle nderungen bleiben lokal sptere nderungen in Bibliothek werden nicht weitergeleitet wieder mit Bibliothek synchronisieren Men-Eintrag Edit/Link options/Restore link entweder lokale nderungen verwerfen (Use library block) oder lokale nderung in Bibliotek bertragen (Update library) Bezug zur Bibliothek vllig aufheben mit Edit/Link options/Break link Aufgaben: Aufgabe 8

42

Prinzip der Fuzzy-Regelung


Grundidee: qualitatives Expertenwissen soll einflieen z.B. WENN Fllstand sehr klein DANN Ventil stark aufdrehen linguistische Regeln charakterisiert durch "unscharfe" Gren "viel" "sehr klein" "fast richtig" bertragung auf Reglerentwurf in drei Schritten Ersetzen kontinuierlicher Gren durch "unscharfe" Werte (Fuzzifizierung) Umsetzen der linguistischen Regeln in "unscharfe" Werte fr die Stellgren (Inferenz) Gewinnen einer genauen Stellgre aus den unscharfen Werten (Defuzzifizierung) Vorteil funktioniert oft auch bei nichtlinearen Strecken qualitatives Wissen fliesst ein Nachteil viele Parameter in der Detailumsetzung optimale Wahl schwierig Fuzzifizierung einer Gre: ersetze numerischen Wert x durch Bereich von qualitativen Gren (Fuzzy-Variablen) Beispiel "viel zu klein", "zu klein", "richtig", "zu gro", "viel zu gro" whle Zugehrigkeitsfunktion i der Fuzzy-Variablen i i (x) = Grad der Zugehrigkeit von x zur Variablen i Werte 0 i (x) 1 i (x) = 0 x gehrt gar nicht in die Kategorie i i (x) = 1 x gehrt vllig in die Kategorie i Zugehrigkeitsfunktionen hufig stckweise lineare Funktionen

43

Fuzzy-Variablen berdecken Wertebereich von x im einfachsten Fall alle Funktionen mit gleicher Breite etwa fr fnf Bereiche

Fuzzifizierung macht aus Wert den Zugehrigkeitsvektor, z.B. x = 1.0 [0, 0, 0.4, 0.6, 0] Inferenz: aus unscharfer Regeldifferenz unscharfe Stellgre ableiten bekommt Fuzzy-Vektor fr jede Einflussgre (Eingang) erzeugt Fuzzy-Vektor fr jede Stellgre (Ausgang) Basis: linguistische Regeln = WENN-DANN-Beziehungen zwischen Eingangs- und Ausgangsgren Vielfalt an Methoden, i.f. nur "SUM-PROD-Verfahren mit Singletons" Beispiel Abstandsteuerung von Pkws: Eingangs- und Ausgangsgren (E/A)

44

Name E1 E2 A

Bedeutung

Fuzzifizierung

Abstand vom Vorderwagen klein/mittel/gro Geschwindigkeit Beschleunigungskraft klein/mittel/gro Vollbremsung/Bremsen/Null/Gas/Vollgas

einige Beispielregeln WENN E1 klein UND E2 gro DANN A = Vollbremsung WENN E1 gro UND E2 mittel DANN A = Gas bersichtlich als Tabelle

E2 E1

klein

mittel

gro

klein Null mittel Gas

Bremsen Vollbremsung Null Bremsen Null

gro Vollgas Gas

Berechnung des Ausgangs-Vektors mit SUM-PROD-Verfahren suche in Tabelle zu Ausgangswert alle Paare von Eingangswerten multipliziere jeweils die beiden Eingangswerte eines Paares Ausgangswert = Summe ber die Produkte Beispiel Bremsen A.Bremsen = E1.klein * E2.mittel + E1.mittel * E2.gro konkrete Zahlen mit E = [klein, mittel, gro] E1 = [0.9, 0.2, 0.0] ("Abstand eher klein") E2 = [0.7, 0.3, 0.0] ("Geschwindigkeit eher klein") A.Bremsen = 0.9*0.3 + 0.2*0.0 = 0.27 ("nur wenig bremsen") insgesamt A = [0, 0.27, 0.69, 0.14, 0.0] ("leicht bremsen") Defuzzifizierung: erzeugt aus Fuzzy-Vektor f i scharfen Wert u fr die Stellgre einfachstes Verfahren: Schwerpunktmethode ordne unscharfen Werten f i Werte u i fr die Ausgangsgre zu berechne u durch Gewichtung der u i gem

Beispiel Abstandsregelung Krfte u i : [Vollbremsung,Bremsen,Null,Gas,Vollgas] [-50, -20, 0, 20, 50]

45

Fuzzy-Vektor sei f i = [0.0, 0.1, 0.3, 0.7, 0.2] scharfer Wert damit u = 16.9 Aufgaben: Aufgabe 9

46

Fuzzy-Regler zur Positionierung einer Verladebrcke


Regelkreis mit Fuzzy-Regler: Aufgabe Laufkatze soll an vorgegebene Position x fahren Last pendelt nicht (Winkel = 0) Standard-Regelkreis in Simulink

Regelgre (x, ), zweidimensional Sollgre auch zweidimensional (gibt x und vor) Sprungfunktion fr x ("gehe von 0 nach xw") Winkel konstant 0 Linguistische Regeln (vgl. [4]) unscharfe Gren Position x mit 5 Werten ("zu klein", "etwas zu klein", "richtig", "etwas zu gro", "zu gro") Winkel mit 3 Werten ("links", "mitte", "rechts") Motorantrieb u mit 3 Werten ("rck", "null", "vor") Formulierung von Regeln z.B. WENN x zu klein UND links DANN u vor WENN x etwas zu klein UND rechts DANN u vor WENN x etwas zu klein UND links DANN u null Tabellenform der Regeln

x links

zu klein etwas zu klein richtig etwas zu gro zu gro vor null vor vor rck null vor rck rck null rck rck rck

mitte vor rechts vor

Aufbau des Fuzzy-Reglers: benutzt die Blcke der Reglerbibliothek aus Aufgabe 9

47

zustzliches Vorzeichen, denn Eingang ist e = w - x Fuzzifizierung 5-Kanal-Fuzifizierung fr xd (genaue Positionskontrolle) 3-Kanal-Fuzzifierung fr d (nur Winkel 0 interessant) Breiten wx, wth werden Maskenparameter des Fuzzy-Regler-Blocks Inferenz ein Inferenzregelblock fr einen dreielementigen Ausgabevektor (rck, null, vor) Tabelle als Matrix eintragen (E1 ist theta!): [3 2 1 1 1; 3 3 2 1 1; 3 3 3 2 1] Defuzzifizierung Werte fr rck/null/vor: [-1 0 1] Verstrkungsfaktor Kp als Maskenparameter des Reglers Download Regelverlauf: Werte der Laufkatze

Werte des Reglers

48

Ergebnis enttuschend

auch mit anderen Reglerwerten kaum zu verbessern Ursache Trgheit der Katze zu gro Regler zu langsam Fuzzy-PID-Regler: Fuzzifizierung bisher nur fr Regeldifferenz e selbst (Fuzzy-P-Regler) schnellere/genauere Regler durch Einbeziehung von Ableitung/Integral von e als zustzlicher Eingangsgre dadurch viele Fuzzy-Gren komplizierte Interferenzregeln Erweiterung Neuro-Fuzzy = Parameter werden selbstttig gelernt mit neuronalen Netzwerken Aufgaben: Aufgabe 10

49

Alternative Systembeschreibungen
Bondgraphen System-Dynamics-Diagramme Objektorientierte Darstellungen

50

Bondgraphen
Einleitung Grundlegende Elemente Entwicklung von Bondgraphen Ableitung der Zustandsgleichungen Simulation von Bondgraphen

51

Einleitung
Grundidee: Strukturbilder universell verwendbar alle Signalwege explizit zu detailliert Bauteildarstellungen z.B elektrische oder pneumatische Schaltbilder leicht zu verstehen eingeschrnkter Anwendungsbereich (Bibliotheken) zu unflexibel Abstraktionsstufe dazwischen graphische Darstellung von Energieflssen Energiefluss hufig Produkt zweier "konjugierter" Gren, z.B. P = F v (mechanisch) P = U I (elektrisch) verknpft verschiedene physikalische Bereiche Mechanik (Translation/Rotation) Elektrotechnik Hydraulik/Pneumatik (Thermodynamik, Chemie) Struktur eines Bondgraphen: gerichteter Graph Knoten (Elemente) = Bauteile oder Verknpfungen Kanten (Bonds) = gerichteter Energiefluss

jede Kante beschreibt zwei Gren Effort e Flow f Energiefluss gegeben durch P=ef in konkreten Anwendungsbereichen

52

Energieform mechanisch (Translation) Kraft F mechanisch (Rotation) elektrisch hydraulisch

f Geschwindigkeit v

Drehmoment M Winkelgeschwindigkeit Spannung U Druck p Stromstrke I Volumenstrom

Richtung des Halbpfeils Richtung des Energieflusses bei positiven Werten fr e und f abhngig von Vorzeichenkonventionen hufig weitgehend flexibel handhabbar ndern der Richtung andere Vorzeichen der zugehrigen e- und f-Werte Kausaler Bondgraph: beschreibt Ursache und Wirkung im System ein Element legt e fest das andere Element legt f fest durch kleine Querstriche gekennzeichnet Querstrich auf der Seite, die f festlegt zwei Mglichkeiten A legt f fest, B legt e fest

A legt e fest, B legt f fest

lsst sich leicht in Signalflussdiagramm berfhren

53

Grundlegende Elemente
Quellen: beschreiben Wechselwirkung mit der Umgebung zwei Typen S e , legt e fest S f , legt f fest haben genau einen Port feste Kausalitt und (in der Regel) festes Vorzeichen

Werte knnen auch zeitabhngig sein Beispiele fr S e Spannungsquelle, externe Krfte oder Momente Beispiele fr S f Konstantstromquelle, vorgegebene Geschwindigkeit Kapazitt C (Capacity): speichert "potentielle" Energie grundlegende Beziehungen im linearen Fall

mit konstantem Wert C Mechanik: C Feder

mit Federkonstante 1/C Elektrotechnik: C Kondensator

mit Ladung Q und Kapazitt C bevorzugte Kausalitt und Vorzeichenkonvention f gegeben, Integrieren e auch nichtlinear mglich

54

mit Funktion c (z.B. Federkennlinie) Trgheit I (Inertia): speichert "kinetische" Energie grundlegende Beziehungen im linearen Fall

mit konstantem Wert I Mechanik: I Masse

mit Masse I Elektrotechnik: I

Induktivitt

mit Stromstrke i und Induktivitt I bevorzugte Kausalitt e gegeben, Integrieren f ebenfalls nichtlinear mglich Reibung R (Resistor): verbraucht Energie (d.h. wandelt sie in Wrme um) grundlegende Beziehungen im linearen Fall

mit konstantem Wert R Mechanik: R viskoser Dmpfer mit Dmpfung R Elektrotechnik: R Widerstand mit Stromstrke i und Widerstand R keine bevorzugte Kausalitt auch wieder nichtlinear mglich

55

Verknpfungen: Verbindungen zwischen Elementen sammeln oder verteilen Energie verlustlos zwei Typen: 0-Element, 1-Element

knnen beliebig viele Bonds haben

1 Bond keine Funktion, weglassen 2 Bonds einfacher Bond 0-Element: grundlegende Beziehung

durch Umdefinition von Pfeilen andere Vorzeichen

f1 = f2 + f3

f1 + f2 = f3 Elektrotechnik Parallelschaltung Spannungen gleich Strme addieren sich Mechanik Reihenschaltung von Elementen Krfte gleich Orte (und damit Geschwindigkeiten) addieren sich Kausalitt ein e als Eingang andere es liegen fest zwei fs als Eingang letztes f liegt fest Beispiele

unabhngig von Pfeilrichtungen

56

1-Element: grundlegende Beziehung

Elektrotechnik Reihenschaltung Strme gleich Spannungen addieren sich Mechanik Parallelschaltung von Elementen Orte (und damit Geschwindigkeiten) gleich Krfte addieren sich Kausalitt ein f als Eingang andere fs liegen fest zwei es als Eingang letztes e liegt fest Transformator TF: 2-Port-Element zur verlustlosen Umwandlung von Energie grundlegende Beziehung

Beispiele Hebel Zahnrad-Paar Wechselspannungs-Transformator auch zum Wechsel des Anwendungsbereich, z.B. Mechanik/Translation Mechanik/Rotation (Schubkurbelgetriebe) Kausalitt ein e bzw. f bestimmt das andere daher zwei Mglichkeiten

Gyrator GY: hnlich wie TF, aber vertauscht e und f

beschreibt z.B. Kreiseleffekte tritt auch auf bei Wechsel des Anwendungsbereich, z.B. Elektrotechnik Mechanik/Rotation (Elektromotor) Kausalitt

57

58

Entwicklung von Bondgraphen


Direktes Ablesen: bei einfachen Schaltungen der Elektrotechnik mit etwas bung auch in der Mechanik Beispiel

Vorgehen Reihenschaltung (1-Verknpfung) von U, R 1 und RestA RestA = Parallelschaltung (0-Verknpfung) von C 1 und RestB RestB = Reihenschaltung (1-Verknpfung) von R 2 und RestC RestC = Parallelschaltung von C 2 und L Ergebnis

Systematisches Vorgehen in der Elektrotechnik: 1. Schreibe eine 0-Verknpfung fr jede auftretende Spannung 2. Setze jedes 1-Port-Element (C, I, R, S e , S f ) an eine 1-Verknpfung, die mit den entsprechenden zwei 0-Verknpfungen verbunden wird. 3. Whle Richtungen der Bonds, wobei die Leistung durch die 1-Elemente "durchfliet"

4. Whle eine 0-Verknpfung als "Masse" (Spannung 0). Entferne sie und ihre anhngenden Bonds. 5. Ersetze "durchlaufende" Verknpfungen mit nur zwei Bonds durch einen einfachen Bond

Beispiel Wheatstone-Brcke: zu simulierende Schaltung

59

am Klemmenpaar AB wird Ausgangsspannung gemessen idealisierte Messung kein Strom zwischen AB 1. Schritt: Spannungen bei A, B, C, D

2. Schritt: 1-Port-Elemente

3. Schritt: Richtungen der Bonds Ausgangspunkt Spannungsquelle

4. Schritt: Punkt D wird "Masse"

60

5. Schritt: Vereinfachung und bersichtliche Anordnung

Systematisches Vorgehen in der Mechanik (Translation): 1. Schreibe eine 1-Verknpfung fr jede auftretende Geschwindigkeit 2. Setze jede Masse (I-Element) an ihren 1-Knoten. Setze die anderen 1-Port-Element an eine 0-Verknpfung, die mit den entsprechenden zwei 1-Verknpfungen verbunden wird. 3. Fhre ggf. TF-Elemente zwischen 1-Ports ein. 4. Whle Richtungen der Bonds, wobei die Leistung durch die 1-Elemente "durchfliet". 5. Entferne 1-Verknpfungen mit Geschwindigkeit 0 ("Bezugssystem") und ihre anhngenden Bonds. 6. Vereinfache den Graphen durch Ersetzen "durchlaufender" Verknpfungen mit nur zwei Bonds durch einen einfachen Bond Ersetzen zweier parallel wirkender Krfte durch ihre Summe

Beispiel 2-Massen-Schwinger: zu simulierendes System

61

Geschwindigkeiten der Wand und der zwei Massen

1-Port-Elemente einfgen und Richtungen der Bonds festlegen

Geschwindigkeit der Wand sei 0 Vereinfachung

Vereinfachung Schleifen mit parallelen Krften

Aufgaben: Aufgabe 11

62

Ableitung der Zustandsgleichungen


Kausale Analyse: fr jeden Bond kausale Marke einfgen (kleiner Querstrich auf der Seite, die f festlegt) immer Kausaleigenschaften der Elemente bercksichtigen

Element Se Sf 0 1 TF GY C I R e f

Festlegung

einmal f, sonst e einmal e, sonst f einmal e, einmal f zweimal e oder zweimal f bevorzugt e (integrale Kausalitt) bevorzugt f (integrale Kausalitt) egal

bei Simulationsprogramm 20sim automatisch bei Eingabe eines Bondgraphen manuell in folgenden Schritten 1. Whle eine Quelle, lege Kausalitt fest, verfolge ber alle Verbindungen und 2-Port-Elemente. Wiederhole fr alle Quellen. 2. Whle ein C- oder I-Element, gehe vor wie in 1, wiederhole fr alle C und I 3. Whle ggf. ein undefiniertes R, gehe vor wie in 1, wiederhole fr alle freien R, schlielich ggf. fr noch undefinierte Bonds. meistens nur Schritte 1/2 ntig (Standardfall) mgliche Schwierigkeiten Schritt 3 erforderlich C oder I mit differentieller Kausalitt algebraische Beziehungen zwischen Gren vgl. [9, Kap. 5] Beispiel 2-Massen-Schwinger: Ausgangsgraph

63

S e festlegen, anliegende 1 ist noch nicht festgelegt

whle I links unten, legt 1 darber fest

whle I rechts unten, legt alle Bonds an 1 fest, legt 0 fest, legt 1 darber fest, fertig

Zustandsgleichungen im Standardfall: alle Bonds durchnummerieren Gren e 1 , f 1 , e 2 , f 2 , ... Quellen-Elemente liefern Eingangsgren u i C- und I-Elemente liefern Zustandsgren durch Integration bei C Zustandsgre q mit

bei I Zustandsgre p mit

zusammengefasst zu Zustandsvektor x Relationen der den Zustandsgren konjugierten Gren aufschreiben (Koenergie-Variablen) bei C zugehriges e bei I zugehriges f Gleichungen fr Ableitungen der Zustandsgren Rckverfolgen der kausalen Beziehungen solange, bis nur noch Zustands- und Koenergiegren berbleiben schlielich Koenergie-Beziehungen einsetzen liefert Zustandsgleichung in der Form

64

Lsung mit Standardsolvern fr DGL-Systeme Beispiel 2-Massen-Schwinger: nummerierter kausaler Bondgraph

Eingangsgre u 1 (t) = e 1 Zustandsgren q5 , q9 , p2 , p8 Koenergie-Variablen e5 , e9 , f2 , f8 Beziehungen

Gleichung fr q 5 durch Rckverfolgen (in Klammern verwendetes Element)

analog fr die anderen Zustandsgren

65

Simulation von Bondgraphen


Bondgraph-Bibliothek BondLib.mo fr MapleSim: stark vereinfachte und an MapleSim angepasste Version der BondLib 2.3 von Cellier [13] Einbinden in MapleSim File/Import Modelica... Import Modelica models BondLib.mo auswhlen beliebiges Verzeichnis fr BondLib.msimlib auswhlen erscheint im Reiter Libraries Vorhandene Elemente: Bonds Bond: normal (waagerecht oder senkrecht) Bond45: um 45 gedreht Interfaces nur fr interne Zwecke Junctions J0, J1: 0- und 1-Verbindungen mit bis zu 4 Anschlssen J0large, J1large: Verbindungen mit bis zu 8 Anschlssen Passive C, I, R: Standard-1-Port-Elemente TF, GY: Standard-2-Port-Elemente Sensors Dp: gibt Wert der p-Zustandsgre als Signal weiter Dq: gibt Wert der q-Zustandsgre als Signal weiter Sources Se, Sf: konstante Quellen mSe, mSf: Quellen mit Signaleingang sinSe, sinSf: Quellen mit harmonischer Funktion Eingabe eines Bondgraphen: Elemente mit Drag-and-Drop aus der Bibliothek holen, plazieren und ggf. drehen oder spiegeln

66

Verbindungen hinzufgen immer Element Bond, Bond Element Tipp: Linien auerhalb der Elemente fhren ggf. dnne Verbindungslinien unsichtbar machen alles markieren Palettenfarbe ("Drawing outline") auf wei setzen Parameter eingeben: Element anklicken Parameter erscheinen im Inspector Werte von I, R, C jeweils 1 (ist schon voreingestellt) Frequenz bei Se von 1 Hz umstellen auf = 1 1/s, also freqHz = 1/(2*pi) Speichern nicht vergessen Simulation: Ziel: Ortskurven der Massen, d.h. state-Variable (q) der beiden I-Elemente dazu entsprechende Dq-Elemente einfgen und direkt mit I verbinden Messpunkte (Probes) an den Signalausgngen anbringen Probes umnennen zu m1/x bzw. m2/x

67

unter Settings Simulationszeit auf t f = 20 setzen bei Plots Show Window deselektieren, um Standardfenster zu unterdrcken mit -- Add Window -- neues Plotfenster beliebigen Namens (z. B. Plots) definieren Plot definieren mit Klick auf Eintrag Empty bei Primary Y-axis die Variable m1: x auswhlen mit Add Variable die Variable m2: x hinzufgen Simulation starten mit File/Simulate...

Gesamtmodell bondschwing2d.msim Aufgaben: Aufgabe 12

68

Aufgabe 13 Aufgabe 14

69

System-Dynamics-Diagramme
Simulation mit MapleSim Beispiel Ruber-Beute-Beziehung Beispiel Fertigungsstrae

70

Simulation mit MapleSim


Simulationen in Biologie, kologie oder konomie (vgl. [7, 8]): hochkomplexe Systeme Kausalzusammenhnge oft nur unzureichend verstanden Simulation als Mglichkeit, Ideen zu berprfen mathematische Formulierung in der Regel als Differentialgleichungen schreibbar fr Anwender hufig zu abstrakt funktionale Zusammenhnge oft empirisch gewonnen (Tabellen, Graphiken) graphische Modellierung mit System-Dynamics-Diagrammen stellt kausale Zusammenhnge in den Vordergrund wenige, sehr allgemeine Blcke mathematische Beziehungen bleiben versteckt, Gleichungen werden direkt als Parameter eingegeben Modellierungsprogramme z.B. Stella, Simile, Powersim, Dynasys Grundbausteine von System-Dynamics-Diagrammen: Speicher (Stock, Reservoir) entspricht einer Zustandsgre braucht Anfangswert Zufluss/Abfluss (Flow) positive/negative nderungsrate eines Speichers luft zwischen Zustandsgren oder von/zu externen Quellen/Senken ("Wlkchen") Gre wird gesteuert durch ein "Ventil" Zwischengre (Variable, Converter) externer Parameter oder Hilfsvariable wird aus anderen Gren berechnet konkrete Berechnungsformel im Diagramm nicht sichtbar Wirkungspfeil (Influence, Connector) gibt an, welche Gren andere beeinflussen liefert explizite Eingabegren fr Variablen graphische Darstellung

System-Dynamics-Bibliothek SystemDynamics.mo fr MapleSim: angelehnt an SystemDynamics 2.0 von Cellier [14] Design gendert (fr Oven etc.), stark vereinfacht und an MapleSim angepasst

71

Einbinden in MapleSim File/Import Modelica... Import Modelica models SystemDynamics.mo auswhlen beliebiges Verzeichnis fr SystemDynamics.msimlib auswhlen erscheint im Reiter Libraries Grundaufbau Bibliotheken Reservoirs, Flows und Converters fr jede Gleichung extra Block ntig hufig verwendete Gleichungen vordefiniert Erstellen neuer Blcke mit Modelica sehr einfach Einfaches Wachstumsmodell: einzige Zustandsgre Bevlkerungsgre Wachstum (Zustrom) durch "Ventilgre" Geburten Ratengre, d.h. Anzahl/Zeit wird beeinflusst durch feste Geburtenrate und Wert der Bevlkerungsgre Diagramm

Gleichung Geburten = Geburtenrate * Bevlkerungsgre Aufbau des Modells: Bausteine auswhlen und im Modellfenster hinzufgen aus Reservoirs: Stock, CloudSource aus Flows: Mult2Flow (y = u1*u2) aus Converters: ConstantConverter (y = k) Blcke verbinden Verbesserung der Optik: Flusslinien dicker darstellen (mit Drawing linestyle)

Eingabe der Parameter (im Inspector nach Klick auf entsprechendes Element) Anfangswert der Bevlkerungsgre (Stock S1): m0 = 10 Geburtenrate (ConstantConverter CC1): constValue = 0.03 Simulationslauf in MapleSim:

72

unter Settings Stopzeit t f = 100 eingeben Ausgabegren definieren Messpunkt (Probe) an Ausgang des Stocks Probe umnennen zu Bevlkerung.N

Starten des Modells mit File/Simulate... oder Run-Button liefert

73

Beispiel Ruber-Beute-Beziehung
Modellierung von Ruber- und Beute-Populationen Zustandsgren fr Anzahl Ruber und Anzahl Beute Zu- und Abflsse jeweils Geburten und Tode Flsse zunchst wie bei einfachem Wachstumsmodell konstante Geburten- und Sterberaten Zahl der Geburten bzw. Tode proportional zu Rate * Populationsgre

Wechselwirkung der Arten Fnge = Anzahl der geschlagenen Beutetiere abhngig von Zahl der Ruber und Beutetiere und einer Fangquote vergrert direkt die Todeszahl der Beutetiere verringert die Todeszahl der Ruber Bedarf = Zahl der Beutetiere (pro Zeit), die ein Ruber zum berleben braucht Beziehungen fr die Zwischengren Geburten_Beute = Geburtenrate_Beute*Beute Tode_Beute = Sterberate_Beute*Beute + Fnge Geburten_Ruber = Geburtenrate_Ruber*Ruber Tode_Ruber = Sterberate_Ruber*Ruber - Fnge/Bedarf Fnge = Fangquote*Ruber*Beute Gesamtmodell damit

74

Simulation des Modells: besondere Blcke Fnge: Mult3Converter (y = u1*u2*u3) Tode Beute: Mult2AddFlow (y = u1*u2 + u3) Tode Ruber: Mult2SubDiv2Flow (y = u1*u2 - u3/u4) Festlegung der Parameter Geburtenrate Beute = 0.2 Geburtenrate Ruber = 0.1 Sterberate Beute = 0.1 Sterberate Ruber = 0.2 Fangquote = 0.01 Bedarf = 2 Anfangswerte Beute = 300 Ruber = 10 Simulationsparameter Endzeit = 300 Messpunkte bei Stocks von Ruber und Beute fertiges MapleSim-Modell Ergebnis

75

Problem Zahl der Fnge pro Ruber ist proportional zur Zahl der Beutetiere kann beliebig gro werden sollte begrenzt werden dazu als Zwischenvariable einfhren

Funktionen in Form von Graphen: Sttigungskurve qualitativ definiert als lineare Interpolation von Sttzpunkten

76

ins Modell eingefhrt mit Block Mult2GraphConverter multipliziert Eingnge und wendet Interpolations-Funktion auf Ergebnis an Werte kommen aus faengeProRaeuber.csv Datei in MapleSim bekannt machen mit Project/Attachments/Data Sets/Attach File Block ist wegen Bug in MapleSim bisher nicht in SystemDynamics-Bibliothek enthalten mit Copy und Paste aus fertigem Modell entnehmen

Ergebnis der nderung: Simulationslauf bei 300 Beutetieren wie vorher

77

bei 3000 Beutetieren wird die Zahl der Beutetiere negativ! Ursache Zahl der Fnge wird grer als Zahl der Beutetiere Abhilfe Zahl der Fnge auf Zahl der Beutetiere begrenzen Fnge = MIN(FngeHyp, Beute) verwendet Block Min2Converter Fertiges Modell: MapleSim-Modell

Ergebnis erscheint sinnvoll

78

Beutetiere und Ruber sterben (fast) aus aber: bei Settings die engine Mark I einstellen ergibt

oder mit Mark II und Toleranzen 10 -4 (relativ und absolut)

Fazit: Modell ist numerisch instabil, Ergebnisse fragwrdig! zugrunde liegendes Problem: System hat (fr einige Parameterwerte) chaotisches Verhalten Aufgaben: Aufgabe 15

79

Beispiel Fertigungsstrae
Modell (vgl. [7, p. 351ff]):

Anlieferung von 2 Einheiten Rohmaterial pro Zeiteinheit landen im Eingangslager, Anfangsbestand = 7 Weg 2 schafft 2 Teile pro Zeit Maschine 1 bearbeitet 4 Teile auf einmal, braucht 2 Zeiteinheiten Band 12 bentigt 2 Zeiteinheiten fr den Transport Zwischenlager als Puffer, am Anfang leer Weg 5 schafft 2 Teile pro Zeit Maschine 2 bearbeitet 2 Teile auf einmal, braucht 1 Zeiteinheit Endlager sammelt fertige Produkte, anfangs leer Ziele: Endlager wchst nach Verzgerung um 2 Teile pro Zeiteinheit Zwischenlager mglichst klein gleichmiger Strom von 2 Teilen pro Zeiteinheit Frderband (Conveyor): in Stella eingefhrt als spezielles Speicherelement hier in MapleSim nachgebaut bernimmt Eingang gibt ihn nach Laufzeit (Transit time) an den Ausgang Beispiel rein = 5 (pro Zeiteinheit) Transit time = 3 raus: Eingang, um Transit time verzgert

Ergebnis

80

Achtung Simulation jetzt getaktet mit t S = 1 1. Schritt bei 0.99 dazu auch diskreten Speicher StockD Fertigungssttte (Oven): weiteres Speicherelement in Stella bzw. Nachbau in Simile Backblechmodell: Blech fllen, Backen, Ausladen Fllen Werte vom Eingang holen, bis Kapazitt (Capacity) erreicht ist maxin gibt Maximalwert an tatschlicher Eingangsfluss so, dass Kapazitt und Vorrat im Eingangslager nicht berschritten werden Ausgangsfluss = 0 Fertigen Verarbeitungszeit (Cook time) wird abgewartet Eingangsfluss = 0 Ausgangsfluss am Ende der Cook time = Kapazitt Beispiel mit maxin = 2 Capacity = 3 Cook time = 2

81

Ergebnis

Ergebnisse des Fertigungs-Modells: Bestnde der drei Lager

Problem Eingangslager wchst kontinuierlich an Ausgangslager wchst ungleichmig

82

durchschnittlicher Durchlauf: 1.5 Teile pro Zeiteinheit alle Einzelwerte erlauben aber 2 Teile pro Zeiteinheit! Ursache Verhalten bei Maschine 1

Weg 2 transportiert immer hchstens 2 kann whrend der Verarbeitungszeit nichts liefern beim Fllen werden dann vier Teile bentigt, aber nur zwei geliefert Lsung: Weg 2 muss 4 Teile pro Zeiteinheit transportieren knnen

83

fertiges MapleSim-Modell Aufgaben: Aufgabe 16 Aufgabe 17

84

Objektorientierte Darstellungen mit MapleSim


Objekte in MapleSim Arbeiten mit MapleSim Simulation eines einfachen Fahrzeug-Antriebsstrangs Motormodell als Subsystem Erweiterung der Modelle fr Kupplung und Getriebe Differenzialgetriebe als neuer Typ Systemgrenzen im Modell

85

Objekte in MapleSim
Zwei Arten von Zustandsgren: Flussvariable f sind Flsse (Zeitableitung) einer erhaltenen Gre addieren sich an Verbindungsknoten zu 0 (bei Richtungswahl "alle in die Knoten") in MapleSim "Through-Variable" Potentialvariable p haben an Verbindungsknoten einen gemeinsamen Wert in MapleSim "Across-Variable" hufig ist Produkt die bertragene Leistung P=fp Beispiel Mechanik f = Kraft (= Zeitableitung des Impulses) p = Geschwindigkeit anderes herum als bei Bondgraphen! alternativ wird auch p = Ort verwendet Beispiel Hydraulik f = Volumenstrom p = Druck zustzlich ("leistungslose") Signale zur Steuerung Grundtypen von Bauteilen: physikalisches Element hat beliebig viele Anschlsse (Multipol), jeweils mit f- und p-Variable stellt Beziehungen her zwischen f- und p-Gren kann zustzlich Signalanschlsse haben mechanische Beispiele: Masse, Feder, Dmpfer, Einspannung, Hebel Signalglied berechnet beliebige Ausgangssignale aus Eingangssignalen entspricht Simulink-Block Kopplung zwischen Signalen und Fluss-/Potentialgren Sensor wandelt Gren an einem Knoten in Signalgren um Krafteinleitung wandelt Signalgre in Kraft um Typen im berblick

86

Kausalitt: Festlegung, welche Gre woraus berechnet wird ergibt sich hier erst im Kontext des Gesamtmodells physikalische Elemente und Verbindungen definieren Gleichungen (x = y), keine Zuweisungen (x := y) Modell wird mathematisch durch implizite Gleichungen (DAEs) realisiert und mit DAE-Solver gelst Vielzahl an (hufig trivialen) Gleichungen zunchst algebraisch vereinfachen

87

Arbeiten mit MapleSim


Beispiel 2-Massen-Schwinger mit uerer Anregung: betrachtetes System

Modell in MapleSim

Modell-Aufbau: Objekte holen gewnschte Objekte aus Bibliothek (links) ins Modellfenster ziehen Modell verwendet Objekte aus 1-D Mechanical/Translational/Common und Signal Blocks/Sources/Real Objekte anpassen durch Verschieben positionieren Einspannung drehen mit Men <rechte Maustaste>/Rotate Counterclockwise Objekte verbinden Anschlusspunkte gekennzeichnet als grne Kstchen (mechanische Anschlsse) oder blaue Pfeile (Signalanschlsse) Maus ber Verbindungspunkt wird mit grnem Kreis markiert Mausklick darauf Beginn der Leitung Mausklick auf zweiten Anschluss Ende der Leitung Erzeugen von geknickten Leitungen durch Klick an den Zwischenstellen Anpassen der Parameter: Klick auf Objekt Parameter werden im Inspector-Fenster (rechts) angezeigt

88

Werte fr Massen (m) und Feder/Dmpfer (c, d) auf 1 setzen periodische uere Kraft (Sine Source) soll sin(3t) sein Wert des Parameters f auf 3 setzen Einheit von f von Hz auf rad/s ndern Parameter bezeichnet statt f Simulationsparameter durch Klick auf die Modellflche Endzeit t f auf 40 Zahl der Plotpunkte plot points auf 800 compiler auf false MapleSim-Modell zum Download Auswahl von Ausgabewerten: Hinzufgen von Mess-Sonden ("Probes") definiert anzuzeigende Gren auf Probe-Werkzeug klicken auf gewnschte Signalleitung klicken Probe-Symbol an gewnschte Stelle ziehen und durch weiteren Klick fixieren Konfigurieren der Mess-Sonden Probe-Symbol anklicken im Inspector-Fenster Name ndern (F, m1, m2) gewnschte Ausgabegren auswhlen (Real bzw. Length) und ihre Bezeichnungen anpassen (F:ext, m1:s und m2:s) Starten der Simulation mit File/Simulate oder Klick auf das Start-Symbol Konfiguration der Ausgabeplots: Standardeinstellung zeigt jeden Wert in eigenem Achsensystem zur Darstellung der drei gewnschten Werte in einem Achsensystem im Plots-Panel (rechts) die Standard-Plots ausschalten durch Deselektion von Show Window bei Auswahlbox (Default Plot Window) Menpunkt Add Window anwhlen und Namen eingeben auf Feld Empty klicken weitere Parameter werden angezeigt bei Primary Y-axis Variable F:ext auswhlen bei Secondary Y-axis mit Add Variable Variablen m1:s und m2:s hinzufgen Starten der Simulation erzeugt gewnschten Plot zur Nachbearbeitung

89

Plot m2:s durch Klick auf die Kurve auswhlen Farbe ndern mit Color/Blue Ergebnis

Aufgaben: Aufgabe 18 Aufgabe 19

90

Simulation eines einfachen Fahrzeug-Antriebsstrangs


Triebstrang: Antrieb eines Fahrzeugs vom Motor bis zu den Rdern MapleSim-Modell

Grundaufbau wie in [11, Abb. 3.3], Parameterwerte nach [1, Kap. D.2] Objekte berwiegend aus Bibliothek 1-D Mechanical/Rotational Beschriftungen mit Text-Werkzeug Bestandteile im einzelnen: Motor einfach konstantes Moment von 100 Nm Schwungmasse J m = 0.6 kg m 2 Anfangsdrehzahl von J m = 800 Upm (Bug in MapleSim4.5: umrechnen in rad/s !) Kupplung rotatorische Reibstelle mit Haft- und Gleitreibung Gleitreibungsmoment M g = 280 Nm, Losreimoment M h = 300 Nm MapleSim-Block verwendet andere Parameter, s.u. Getriebe Trgheitsmoment J g = 0.2 kg m 2 , Anfangsdrehzahl 0 = 0 feste bersetzung i = 2.5 ( 2. Gang) wie blich i = (Antrieb)/(Abtrieb) Gear-Element in MapleSim: r = (flange a )/(flange b ) flange a ist der dunklere Anschluss Antriebswelle (Kardanwelle) Steife 10000 Nm Dmpfung 1 Nms Differentialgetriebe Trgheitsmoment J d = 0.05 kg m 2 , Anfangsdrehzahl 0 = 0

91

bersetzung 3.27 addiert hier einfach die Radmomente keinerlei Radausgleich Seitenwellen Steife 7500 Nm keine Dmpfung Rder grob vereinfacht als starr bersetzung von rotatorischer auf translatorische Bewegung bersetzungsverhltnis = Rollradius 0.3 m wegen v=r Fahrzeugmasse Masse, die sich linear mit v bewegt Angriffspunkt fr externe Krfte (Luftwiderstand, Hangabtrieb) m F = 1200 kg, v 0 = 0 Kupplung in MapleSim: Eingang f in zwischen 0 und 1, skalierbar mit Parameter fn max Kennlinie () fr Reibungskoeffizienten als Funktion der Relativ-Winkelgeschwindigkeit Parameter pos enthlt Paare [, ()] pos = [0, 0.5] fr konstantes = 0.5 Geometriefaktor c geo bercksichtigt Plattengeometrie Gleitreibungsmoment damit M g = c geo () fn max f in Haftreibungsmoment mit Parameter peak M h = peak c geo (0) fn max f in fr Beispielwerte am einfachsten peak = M h / M g = 300/280 c geo = 2 M g = 560 Ergebnisse der Simulation: Solver-Engine auf Mark I umstellen (Bug in MapleSim 4.5) betrachten Motordrehzahl (bei J m ) Geschwindigkeit (bei Fahrzeugmasse)

92

Analyse konstantes Drehmoment lineare Zunahme von Drehzahl und Geschwindigkeit fr grere Zeiten vllig unrealistisch berlagerte Schwingungen des Triebstrangs Ausschnittsvergrerung Ausschnitt mit Skalierungs- und Verschiebewerkzeug whlen genauer mit Men Axes/Properties...

mit Point-Probe-Werkzeug Schwingungsdauer vermessen Triebstrangschwingungen von 3 Hz Verhalten fr kleine Zeiten

93

zunchst gleitet die Kupplung haftet ab t > 0.19 s direkt sichtbar mit Kupplung-Ergebnisgre Zustand der Reibstelle

94

Motormodell als Subsystem


Verfeinerung des Motors: Gaspedal als weiterer Eingang Werte zwischen 0 (kein Gas) und 1 (Vollgas) Eingangswerte zum Testen: in drei Stufen wird allmhlich Gas gegeben

Werte stehen als ASCII-Daten in gaspedal_3stufen.csv Motormoment abhngig von Drehzahl und Gaspedalstellung modelliert als Kennlinienschar

Werte stammen - wie alle Werte des Triebstrangs - aus [1] stehen als ASCII-Tabelle in in motorkennfeld.csv

95

Erstellen des Modells: Constant Torque-Block durch Torque-Block ersetzen weitere Blcke und Verkabelung wie im Bild

Tabellendaten zum Modell hinzufgen mit Attach File aus dem Kontextmen von Projects/Attachments/Data Sets Bei Motorkennfeld (2D Lookup Table) und Gaspedal (Time Lookup Table) entsprechenden Datensatz bei Parameter data auswhlen bei Gaspedal smoothness auf linare Interpolation setzen Gesamtmodell triebstrang2a Erzeugen des Motorsubmodells: Motorblcke markieren (Motormoment, Jm, Drehzahl, Motorkennfeld) Edit/Create Subsystem auswhlen und Namen ("Motor") angeben Submodell mit Doppelklick ffnen und Anschlsse verschieben (Tipp: dazu zwischendurch beim grid options tool die Option Snap to Connector deaktivieren)

Darstellung Icon-Werkzeug anklicken Fill-Werkzeug aktivieren, Bitmap motor.bmp laden und Image aktivieren Submodell in der Arbeitsflche entsprechend fllen Parameter Parameters-Werkzeug anklicken 2 Parameter eintragen bei Motor subsystem default settings

96

Name Default Value Jm om0 0.6 83.776

Description Motortrgheit Anfangsdrehzahl (rad/s)

im Motordiagramm Trgheit auswhlen, Parameter J auf Jm setzen, Initial Conditions: 0 auf om0 zurck ins Gesamtmodell durch Klick auf Main alle Gren nachtrglich nderbar nach Doppelklick auf Motor Gesamtmodell triebstrang2.msim: enthlt Icon fr Motor-Makro

Motorparameter im Inspector-Fenster

Analyse: Anzeigefenster fr Gas/Geschwindigkeit

97

Geschwindigkeit steigt mit Gas am Anfang starkes Ruckeln bei Vollgas Sttigung erreicht Geschwindigkeit sinkt langsam bei Gaswegnahme Anzeigefenster fr Motormoment/Motordrehzahl

fester Gang Drehzahl nahezu proportional Fahrzeuggeschwindigkeit Motormoment steigt bei sprunghafter Gaszufuhr sprunghaft kein Gas Motormoment sackt sehr schnell wird schlielich negativ (Bremsmoment)

98

Erweiterung der Modelle fr Kupplung und Getriebe


Kupplung: Kupplungspedal ndert Anpressdruck und damit Gleit- und Haftreibungsmomente einfaches Modell Kupplungspedal liefert Wert p K von 0 (nicht getreten) bis 1 (durchgetreten) Reibungsmomente ndern sich linear M reib = (1 - p K ) M reib,0 Eingang des Blocks Clutch dagegen direkt proportional Subsystem der Kupplung: Aufbau

Icon kupplung.bmp Parameter Gleitreibungsmoment Mg = 280 Nm Haftreibungsmoment Mh = 300 Nm Parameter in Clutch-Block eintragen Peak = Mh/Mg cgeo = 0.002 Mg fnmax = 1000 Schaltgetriebe: Eingang fr den Gang hat Werte -1 (Rckwrtsgang), 0 (Leerlauf), 1, 2, 3, 4, 5 zugehrige bersetzungen: -4.15, 0, 4.15, 2.52, 1.69, 1.24, 1 Tabelle in schaltgetriebe.csv Gesamttrgheit des Getriebes ndert sich durch die bersetzung antriebs- und abtriebsseitige Trgheiten einbauen Gear mit Eingang fr die bersetzung: neuer Block

99

beschrieben durch

Vorzeichenkonvention beachten! erstellen mit View/Create Attachment.../Browse/Component Templates/AlgebraicEquation.mw Maple-Sheet zur Definition ffnet sich Component Name: GearWithParameterInput Gleichungen (Component Equations) eq := [phia(t) = i(t)*phib(t), Ma(t) = -Mb(t)/i(t)] params := [] initialconditions := [] sys := DynamicSystems[AlgEquation](eq, inputvariable = [Ma(t),phib(t),i(t)], outputvariable = [Mb(t),phia(t)]) Anschlsse (Component Ports) Clear all Ports 3x Add Ports Port von unten nach oben mitte verschieben Anschluss links Port Type: Rotational Flange Angle: phia(t) Torque: Ma(t) Anschluss rechts Port Type: Rotational Flange Angle: phib(t) Torque: Mb(t) Anschluss oben Port Type: Signal Input Value: i(t) Generate MapleSim Block erscheint bei Project/Definitions/Components Subsystem fr Schaltgetriebe: Aufbau

100

Icon schaltgetriebe.bmp Parameter Getriebetrgheit Antrieb Jgi = 0.1 kg m 2 Getriebetrgheit Abtrieb Jgo = 0.1 kg m 2 Gesamtsystem triebstrang3

Ergebnisse einiger Simulationslufe: Auskuppeln bei Vollgas im 2. Gang Werte in gaspedal_3stufen.csv, kupplung_auskuppeln.csv

101

Motormoment bricht ein Drehzahl steigt auf Maximalwert Geschwindigkeit bleibt konstant (kein Luftwiderstand) Sanft einkuppeln und Durchstarten im 1. Gang Werte in gaspedal_anfahren.csv, kupplung_anfahren.csv

102

weicher Anstieg der Geschwindigkeit Triebstrang-Schwingungen bei Maximaldrehzahl (v = 57 km/h im 1. Gang!) dasselbe im 3. Gang

103

starkes Ruckeln beim Anfahren Endgeschwindigkeit bei 140 km/h Aufgaben: Aufgabe 20

104

Differenzialgetriebe als neuer Typ


Differenzialgetriebe: Aufgabe (vgl. [11]) Ausgleich von Drehzahlunterschieden der Rder keine Verspannungen im Triebstrang zustzliche bersetzung i schne Darstellung im Film Around the Corner von 1937 im bisherigen Modell Momente der Rder addieren sich werden an Jd und damit an Antriebswelle weitergegeben Modell bei Gipser [1, S. 200ff] Trgheiten Ji im Eingang und Jo in beiden Ausgngen ideal steif (bzw. Steifigkeiten angeschlossenen Wellen zugeschlagen) Idealisierung M l = M r bewirkt Abhngigkeit direkt von den Raddrehzahlen hier wegen Seitenwellen schlecht zu modellieren Modell bei Ammon [11, S. 39ff] Trgheiten Je, Ja wie bei Gipser Kausalitt

Beziehungen (ohne Differenzialsperre)

mit dem Gesamttrgheitsmoment (abtriebsseitig)

ideales kinematisches Modell Momente auf beiden Abtriebswellen gleich Antriebsmoment = Summe der Abtriebsmomente Antriebdrehzahl = Mittelwert beider Abtriebsdrehzahlen

105

Kinematisches Differenzial als neuer Typ: Maple-Sheet ffnen mit View/Create Attachment.../Custom Component Component Name: Differential Gleichungen (beachte: Anschlussvariable ist , nicht ) eq := [omi(t) = diff(phii(t), t), oml(t) = diff(phil(t), t), omr(t) = diff(phir(t), t), 2*omi(t) = oml(t)+omr(t), Mr(t) = Ml(t), Mi(t) = -2*Ml(t)] params := [] initialconditions := [] sys := DynamicSystems[DiffEquation](eq, inputvariable = [Mi(t), phir(t), phil(t)], outputvariable = [Mr(t), Ml(t), phii(t)]) 3 Anschlsse: 1 links, 2 rechts Port Type: Rotational Flange Angle: phii(t), phil(t), phir(t) Torque: Mi(t), Ml(t), Mr(t) abschlieen mit Generate MapleSim Differenzialgetriebe mit Trgheiten und bersetzung: Subsystem aufbauen

Icon differenzial.bmp Parameter: Trgheit im Antrieb Ji = 0.04 Trgheit im Abtrieb Jo = 0.05 (auf beiden Seiten gleich) bersetzung i = 3.27 Parameter im Subsystem eintragen Gesamtmodell triebstrang4

106

Testlufe: Gasgeben in drei Stufen im 2. Gang und Auskuppeln bei Vollgas Momente und Drehzahlen im Differenzialgetriebe

dasselbe bei Radradius rechts = 0.6 m

107

Aufgaben:

108

Aufgabe 21

109

Systemgrenzen im Modell
Wechselwirkungen mit der Umgebung: Hangabtriebskraft F H = - m g sin() Straenneigung als externe Gre Luftwiderstand F W = - 0.5 c W A v |v| quadratisch in v, aber Richtung ist v entgegengesetzt greifen beide an der Masse an Karosserie als Subsystem: Konstanten incl. Vorzeichen in Gain-Blcke Modell

Icon karosserie.bmp Anschlsse translatorischer Anschluss zum Triebstrang Signaleingang fr Straenneigung Parameter Fahrzeugmasse m = 1200 kg c W -Wert cW = 0.36 angestrmte Flche A = 2 m 2 Dichte der Luft rho = 1.293 kg/m 3 Gesamtmodell triebstrang5

110

Testlufe: in voller Fahrt auskuppeln

Geschwindigkeit nimmt jetzt ab Motorverhalten identisch zu Fall ohne Luftwiderstand - klar: der Motor ist abgekuppelt Sanft anfahren im 2. Gang bei 2 Straenneigung nahezu identisch zu vorher

111

Unterschied direkt am Anfang

112

Wagen rollt erst leicht zurck dasselbe im 3. Gang

113

der Motor qult sich merklich ab und im 4. Gang

114

er schafft die Steigung nicht und rollt rckwrts Aufgaben: Aufgabe 22

115

Aufgaben
Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 4 Aufgabe 5 Aufgabe 6 Aufgabe 7 Aufgabe 8 Aufgabe 9 Aufgabe 10 Aufgabe 11 Aufgabe 12 Aufgabe 13 Aufgabe 14 Aufgabe 15 Aufgabe 16 Aufgabe 17 Aufgabe 18 Aufgabe 19 Aufgabe 20 Aufgabe 21 Aufgabe 22

116

Aufgabe 1
Die Fourierreihe der Sgezahnfunktion

hat die Koeffizienten

berprfen Sie dies mit einem kleinen Simulink-Modell, das die ersten 10 Schwingungen addiert.

117

Aufgabe 2
Benutzen Sie die Matlabfunktion quadl zur Berechnung der ersten zehn Fourierkoeffizienten (a i , b i ) der Rechteckfunktion

berprfen Sie das Ergebnis, indem Sie die 10 Schwingungen in Matlab explizit addieren und plotten.

118

Aufgabe 3
1. Skizzieren Sie mit Matlab die Funktion

und bestimmen Sie ihr Leistungsspektrum. Whlen Sie die Zeitauflsung so gro, dass Frequenzen bis zu 6 Hz aufgelst werden knnen. 2. Addieren Sie Rauschen der Amplitude 2.5 mit Hilfe der Funktion rand. Vergleichen Sie die Ergebnisse mit a. 3. Experimentieren Sie mit Werten fr T und N. ndern Sie insbesondere die Zeitauflsung so, dass die Grenzfrequenz nur noch 3 Hz betrgt und interpretieren Sie das Ergebnis.

119

Aufgabe 4
Konstruieren Sie einen Simulink-Block, der die Erregerfunktion des Beispiels (schwingproblem.mdl) mglichst gut nachbildet.

120

Aufgabe 5
Nachteil des vorgestellten Zhlers ist, dass die Flipflops ihren Takt nacheinander (asynchron) bekommen, so dass sich Schaltungslaufzeiten addieren. Beim synchronen Zhler bekommen alle Flipflops denselben Takt, mit Hilfe von Gattern wird festgelegt, wann sie weiterschalten. 1. Erstellen Sie ein Modell eines synchronen 4-Bit-Vorwrtszhlers. 2. Erstellen Sie ein Modell eines synchronen 4-Bit-Rckwrtszhlers. 3. Kombinieren Sie beide Modelle zu einem 4-Bit-Vorwrts-Rckwrtszhler, dessen Zhlrichtung mit einem zustzlichen Steuereingang bestimmt wird.

121

Aufgabe 6
Erstellen Sie mit Hilfe einer S-Funktion einen RAM-Baustein (Schreiblesespeicher) mit folgenden Eigenschaften: eine Speicherstelle fasst 2 Byte, die Zahl der Speicherstellen betrgt 2 10 , Eingnge Data in: zu speichernde Daten als 16-Bit-Binrvektor Address: angesteuerte Adresse als 10-Bit-Binrvektor R/W: 0 = Lesen, 1 = Schreiben T: Takteingang, Zustand ndert sich nur bei negativer Flanke (1 0) Ausgang Data out: Daten als 16-Bit-Binrvektor Lesemodus Data out = gespeicherter Wert Schreibmodus Data out = 0

optional (Checkbox in der Maske) wird der Inhalt des Speichers beim Start aus einer Datei ram.in gelesen und am Ende in eine Datei ram.out geschrieben.

122

Aufgabe 7
Ergnzen Sie die Frderband-Steuerung um einen Nothalt-Eingang. Wird er aktiviert, bleibt ggf. der Motor stehen. Wird er wieder deaktiviert, geht der Transport (in gleicher Richtung!) weiter.

123

Aufgabe 8
Erstellen Sie die Regler-Bibliothek regler1.mdl mit einem PID-Regler-Block und Blcken fr die drei vorgestellten Reglerstrecken. Verwenden Sie Sorgfalt auf die Erstellung der Masken: vernnftige Parameter knappe, aber aussagekrftige Erklrungen Icon-Darstellungen mit Wiedererkennungswert

124

Aufgabe 9
Erweitern Sie die Regler-Bibliothek um folgende Blcke: 1. Fuzzifizierungsblcke mit 3 und 5 Bereichen jeweils alle Funktionen mit fester Breite Wert der Breite als Maskenparameter 2. Inferenzregelblcke, die aus zwei Eingngen einen Ausgangsvektor mit 2, 3, 4 oder 5 Komponenten berechnen, 3. einen Defuzzifizierungsblock. Versuchen Sie, alle Blcke mglichst allgemein verwendbar zu machen. Achten Sie auch auf eine sinnvolle Masken-Gestaltung.

125

Aufgabe 10
Erweitern Sie den Fuzzy-Regler der Verladebrcke zu einem Fuzzy-PD-Regler, der das Problem auch wirklich lst, indem Sie die Ableitung von x (also die Geschwindigkeit v der Laufkatze) als weitere Eingangsgre fuzzifizieren, die Fuzzifizierung des Motorantriebs um die Gren "stark vor" und "stark rck" erweitern, die bisherigen Inferenzregeln bernehmen, aber ergnzen durch WENN x positiv UND v positiv DANN "stark rck" WENN x negativ UND v negativ DANN "stark vor" den Gren "stark vor" und "stark rck" beim Defuzzifizieren einen (groen) Wert s zuweisen, der ber die Maske des Fuzzy-Regler-Blocks gesetzt wird. Als Beweis, dass dies wirklich mglich ist, hier der Regelungsverlauf eines entsprechend der Aufgabe erweiterten Reglers:

126

Aufgabe 11
Entwickeln Sie einen Bondgraphen fr einen von einer Gleichstromquelle angetriebenen Gleichstrommotor, der ber ein Getriebe eine Last antreibt gem dem Blockschaltbild

Die einzelnen Blcke werden folgendermaen spezifiziert: Die Stromquelle hat einen Kurzschlussstrom i 0 sowie Innenwiderstand R 1 und Kapazitt C

Der Motor hat einen Innenwiderstand R2 und eine Induktivitt L (alles in Reihe). Er erzeugt abhngig vom Strom i das Drehmoment M=ki Der Antriebsteil des Motors hat ein Trgkeitsmoment J m und einen Reibungswert b m (gegen Ruhe!), die Drehsteifigkeit der Antriebswelle betrgt c m . Das Getriebe sei ideal (keine Verluste) und habe ein bersetzungsverhltnis 1:N. Die Last hat ein Trgkeitsmoment J l .

127

Aufgabe 12
Bestimmen Sie smtliche Zustandsgleichungen beim Bondgraphen des 2-Massen-Schwingers. Zeigen Sie, dass sich daraus die blichen Bewegungsgleichungen 2. Ordnung herleiten lassen. Hinweis: Fhren Sie die physikalischen Bezeichnungen (m, b, c) wieder ein. Leiten Sie dann die Gleichungen fr 5 , 9 nach der Zeit ab und eliminieren Sie p 8 und p 2 .

128

Aufgabe 13
Entwickeln Sie eine "Bondgraph-Bibliothek" fr Simulink. Beachten Sie, dass Sie Simulink-Blcke fr die verschiedenen Richtungen des Energieflusses und der Kausalitt brauchen. Beschrnken Sie sich bei den 0- und 1-Verknpfungen auf 3-Port-Elemente. Ersetzen Sie im Bondgraphen des Zwei-Massen-Schwingers

das 4-Port-1-Element durch zwei 3-Port-Elemente. bertragen Sie den Graphen mit Hilfe der Bondgraph-Bibliothek in ein Simulink-Modell und berprfen Sie das Ergebnis eines Simulationslaufs. Modellieren Sie den 2-Massen-Schwinger in "normaler" Weise in Simulink und vergleichen Sie die Ergebnisse.

129

Aufgabe 14
Machen Sie den Bondgraphen des Systems aus Aufgabe 11 per Hand kausal. Simulieren Sie das Modell mit MapleSim fr einfache Parameterwerte.

130

Aufgabe 15
Erstellen Sie Simulink-Modelle, die die drei Ruber-Beute-Modelle nachbilden 1. mit der einfachen Formel fr die Fnge, 2. mit der graphischen Funktion, 3. inclusive der Beschrnkung auf positive Werte. Vergleichen Sie die Ergebnisse mit denen der Simile-Modelle.

131

Aufgabe 16
Beide Maschinen der Fertigungsstrae sollen nur von einer Person betreut werden. Dazu wird Maschine 2 so umgebaut, dass sie ebenfalls vier Teile in zwei Zeiteinheiten bearbeitet. Der Betreuer halte sich bei Maschine 1 auf, wenn sie gerade leer ist, sonst bei Maschine 2. Erweitern Sie das MapleSim-Modell um den Betreuer und vergleichen Sie das Ergebnis.

132

Aufgabe 17
Erstellen Sie ein Simulink-Modell, das die Fertigungsstrae (ohne Betreuer) nachbildet.

133

Aufgabe 18
Bauen Sie das 2-Massen-Schwinger-Modell aus MapleSim in Simulink nach, indem Sie Blcke erzeugen, die den MapleSim-Objekten entsprechen.

134

Aufgabe 19
Erstellen Sie ein Modell fr die Funktion einer Kupplung aus folgenden Teilen (vgl. [12, Kap. 3.3]): einer Coulomb-Reibstelle Gleitreibungsmoment = 190 Nm Haftreibungsmoment = 250 Nm einem motorseitigen Trgheitsmoment Trgheitsmoment = 1 kg m 2 Anfangsdrehgeschwindigkeit = 200 1/s einem abtriebseitigen Trgheitsmoment Trgheitsmoment = 5 kg m 2 Anfangsdrehgeschwindigkeit = 0 einem zeitlich vernderlichen Antriebsmoment folgender Form

Betrachten Sie die zeitliche Entwicklung der Drehzahlen beider Trgheiten. 1. Benutzen Sie MapleSim. Wie ndern sich die Eigenschaften des Reibstellen-Objekts beim bergang vom Gleiten zum Haften? 2. Erstellen Sie ein analoges Modell in Simulink. Verwenden Sie dafr, soweit mglich, MapleSim-artige Blcke fr Reibstelle, Trgheiten und Momente.

135

Aufgabe 20
Bilden Sie das Beispiel-Modell triebstrang2 in Simulink nach, wobei Sie wieder Subsysteme bilden, die den MapleSim-Objekten entsprechen.

136

Aufgabe 21
Zeigen Sie, dass das Modell fr das Differenzialgetriebe wirklich die Gleichungen aus [11] nachbildet. Hinweise: Schreiben Sie fr jeden Block die Gleichungen auf, die er implementiert, und eliminieren Sie innere Gren. Beachten Sie die unterschiedlichen Vorzeichenkonventionen.

137

Aufgabe 22
Erweitern Sie den Triebstrang 5 um folgendes Reifen-Modell (nach [1]): Die Umfangsgeschwindigkeit v r des Reifens und die Geschwindigkeit v des Fahrzeugs werden unterschieden. Der Schlupf in Prozent wird dann bestimmt aus

wobei der Nenner nach unten begrenzt wird, um numerische Instabilitten bei sehr niedrigen Fahrzeuggeschwindigkeiten bzw. beim Anfahren zu vermeiden. Aus dem Schlupf und dem Reibungsbeiwert F erhlt man die statische Reifenkraft F s nach der Formel von Pacejka

Die tatschliche Radkraft F baut sich durch die Radverformung etwas verzgert auf. Dieses Verhalten bildet man nach, indem man F aus F s mit Hilfe folgender Differentialgleichung ermittelt

Bercksichtigen Sie auerdem das Trgheitsmoment des Rades. Betrachten Sie Schlupf und Geschwindigkeit bei Anfahrvorgngen im 1. und 3. Gang.

138

Anhang
Literatur- und Quellenverzeichnis Herleitung der Bewegungsgleichungen der Verladebrcke Matlab-Beispiele Simulink-Beispiele MapleSim-Beispiele Prfungsleistung Themenvorschlge Bisher bearbeitete Themen

139

Literatur- und Quellenverzeichnis


1. M. Gipser, Systemdynamik und Simulation Teubner 1999, ISBN: 3-519-02743-7 2. The MathWorks Inc: Simulink/Matlab Handbcher 3. A. E. Prochaska: Digitaltechnik fr Ingenieure Oldenbourg 2003, ISBN 3-486-25969-5 4. B. E.-G. Feindt: Computersimulation von Regelungen Oldenbourg 1999, ISBN 3-486-24927-4 5. C. B. Brouer: Regelungstechnik fr Maschinenbauer Teubner, 2. Aufl. 1998, ISBN 3-519-16328-4 6. D. G. Schulz: Regelungstechnik Oldenbourg 2002, ISBN 3-486-25858-3 7. B. Hannon, M. Ruth: Dynamic Modeling Springer, 2. Aufl. 2000, ISBN: 0-387-98868-8 8. H. T. Odum, E. C. Odum: Modeling for All Scales Academic Press 2000, ISBN: 0-125-24170-4 9. D. Karnopp, D. Margolis, R. Rosenberg: System Dynamics Wiley, 3.Aufl. 2000, ISBN: 0-471-33301-8 10. Maplesoft: MapleSim-Handbuch 11. D. Ammon: Modellbildung und Systementwicklung in der Fahrzeugdynamik Teubner 1997, ISBN: 3-519-02378-4 12. H. E. Scherf: Modellbildung und Simulation dynamischer Systeme Oldenbourg 2003, ISBN: 3-486-27285-3 13. Franois E. Cellier & ngela Nebot: The Modelica Bond Graph Library in Proc. 4th International Modelica Conference, Hamburg, Germany, 2005. 14. Franois E. Cellier: World3 in Modelica: Creating System Dynamics Models in the Modelica Framework in Proceedings of the 6th International Modelica Conference, Bielefeld, Germany, pp. 393400, 2008.

140

Herleitung der Bewegungsgleichungen der Verladebrcke


Krper beschrieben durch Massenpunkte der Katze und der Last

Kinetische Energie T

mit

also

Potentielle Energie V (Nullpunkt bei Laufkatze)

uere Krfte (nicht konservativ)

damit verallgemeinerte Krfte

also mit q 1 = x, q 2 = und F 2 = 0

Bewegungsgleichungen damit aus Lagrangefunktion L=T-V und Euler-Lagrange-Gleichungen

Fr q 1 = x

141

fr q 2 =

Nach bzw. auflsen

142

Matlab-Beispiele
schwingungsanalyse.m setcolor.m taste.m

143

schwingungsanalyse.m
% lasse Simulink-Modell laufen [t,x,y] = sim(schwingproblem); t = ScopeData.time; s_in = ScopeData.signals(1).values; s_out = ScopeData.signals(2).values; % N = 2^14; tmax = max(t); tmin = min(t); dt = (tmax - tmin)/N; ts = tmin:dt:tmax; ts = ts(1:end-1); % % Simulink erzeugt Werte zu selbstgewaehlten Zeiten. % Besorge gleichmaessig gesampelte Werte durch Interpolation % Voraussetzung: hinreichend viele Werte im Simulink-Signal! % fs_in = interp1(t, s_in, ts); % % FFT und Plot des kritischen Bereichs % Xin = fft(fs_in); F_in = Xin(1:N/2); omega = 2*pi/(tmax - tmin) * ([1:N/2] - 1); imax = max(find(omega <= 100)); plot(omega(1:imax), abs(F_in(1:imax))); axis([0 100 0 600]);

144

setcolor.m
function setcolor(block) % setzt die Hintergrundfarbe abhaengig vom Eingangswert setup(block); end %% ------------------------------------------------------------------function setup(block) block.NumInputPorts = 1; block.NumOutputPorts = 0; block.SetPreCompInpPortInfoToDynamic; % properties are inherited block.SampleTimes = [-1 0]; % inherited block.RegBlockMethod(PostPropagationSetup, @DoPostPropSetup); block.RegBlockMethod(Update, @Update); end %% ------------------------------------------------------------------function DoPostPropSetup(block) block.NumDworks = 1; block.Dwork(1).Name = x0; block.Dwork(1).Dimensions = 1; block.Dwork(1).DatatypeID = 0; block.Dwork(1).Complexity = Real; block.Dwork(1).UsedAsDiscState = true; end function Update(block) sysname = gcs; input = block.InputPort(1).Data; state = block.Dwork(1).Data; color_on_s = get_param(sysname, on_color); color_off_s = get_param(sysname, off_color); % Icon nur bei Aenderung malen, sonst Flackern! if (input > 0.5) && (state == 0) icon = [patch(sin([0:0.1:2*pi]), cos([0:0.1:2*pi]), , color_on_s, )]; set_param(sysname, MaskDisplay, icon); state = 1; elseif (input <= 0.5) && (state == 1) icon = [patch(sin([0:0.1:2*pi]), cos([0:0.1:2*pi]), , color_off_s, )]; set_param(sysname, MaskDisplay, icon); state = 0; end block.Dwork(1).Data = state; % setzt Zustand auf neuen Wert end

145

taste.m
function taste() blk = gcb; sw = get_param(blk, Value); if sw==1 sw=0; else sw=1; end set_param(blk, Value, sw);

146

Simulink-Beispiele
bruecke.mdl flipflops.mdl foerderband.mdl pt1.mdl pt2.mdl regelkreis.mdl regler1.mdl schieberegister.mdl schieberegisterLed.mdl schwingfilter.mdl schwingproblem.mdl schwingspektrum.mdl simplefuzzy.mdl testled.mdl testtaste.mdl zaehler1.mdl zaehler2.mdl

147

MapleSim-Beispiele
bondschwing2d.msim bevoelkerung.msim raeuberbeute1.msim raeuberbeute2a.msim raeuberbeute2.msim fertigung.msim schwing2d.msim triebstrang1.msim triebstrang2.msim triebstrang2a.msim triebstrang3.msim triebstrang4.msim triebstrang5.msim

Hilfsdateien
faengeProRaeuber.csv gaspedal_3stufen.csv gaspedal_3stufen_voll.csv gaspedal_anfahren.csv kupplung_anfahren.csv kupplung_auskuppeln.csv kupplung_ausrollen.csv motorkennfeld.csv schaltgetriebe.csv

148

Prfungsleistung
Eines der vorgeschlagenen oder - in Absprache mit dem Dozenten - ein selbstgewhltes Simulationsprojekt wird mit Simulink oder einem anderen der vorgestellten Programme bearbeitet. Abzugeben sind eine schriftliche Ausarbeitung (Umfang etwa 20 - 30 Seiten) sowie eine CD mit den lauffhigen Modellen und der Ausarbeitung als PDF-Datei. Grundaufbau der Ausarbeitung (Vorschlag): Einfhrung in den Problembereich qualitative Beschreibung des zu simulierenden Systems Modellierung des Systems (z.B. durch Differential- oder Differenzengleichungen) Beschreibung des Simulink-Modells Erluterung der Simulationslufe und -ergebnisse Ausblick

149

Themenvorschlge
Antriebsregelung fr ein Hybridfahrzeug Steuerung eines Frderbands Lsung der Aufgaben aus Simulationstechnik 2 Regelung eines dreiachsigen SCARA-Roboter Realistische Reibungsmodellierung eines Magnetschwebe-Systems Vertikalschwingungen eines LKWs Modul-Synthesizer mit VCF Triebstrang eines PKWs mit MapleSim Signaturen mit dem MD5-Verfahren Ausbreitung von Infektionskrankheiten Blcke zur graphischen Ein- und Ausgabe

150

Antriebsregelung fr ein Hybridfahrzeug


Verwenden Sie einfache Modelle fr Elektro- und Verbrennungsmotoren, um eine Regelung fr ein Hybridfahrzeug zu entwerfen. Literaturvorschlge 1. Leo Laine, Johan Andreasson: Modelling of Generic Hybrid Electric Vehicles, Proc. 3rd International Modelica Conference, 2003, Linkping, pp. 87 - 94. (online)

151

Steuerung eines Frderbands


Erweitern Sie die Frderband-Steuerung mit Nothalt (Aufgabe 7) um ein Modell fr das Frderband incl. der bewegten Masse mit folgenden Anschlssen: Eingnge fr das Einstellen einer Kiste links bzw. rechts, Eingnge fr das Einschalten der Motoren links bzw. rechts, einen Eingang fr das Aktivieren des Sperrgitters, Ausgnge fr die Lichtschranken, einen Ausgang, der die aktuelle Position der Kiste anzeigt. Ergnzen Sie das Modell durch eine Animation des Frderbands.

152

Lsung der Aufgaben aus Simulationstechnik 2


Lsen Sie einige der Aufgaben aus dem Skript "Simulationstechnik 2". Versuchen Sie, wo mglich, auch verschiedene Lsungsstrategien auszuprobieren und gegenberzustellen. Legen Sie besonderen Wert auf eine verstndliche Dokumentation, die insbesondere auf alle Besonderheiten und Schwierigkeiten der einzelnen Aufgaben eingeht. Stellen Sie jeweils Ergebnisse der Simulationen vor und bewerten Sie sie. Whlen sie eines der folgenden Pakete: 1. Aufgaben 1 - 10 2. Aufgaben 11 - 17 3. Aufgaben 18 - 23

153

Regelung eines dreiachsigen SCARA-Roboters


Erstellen Sie ein dynamisches Modell fr einen dreiachsigen SCARA-Roboter (vgl. [1, Kap.6.6]), dessen Gelenke jeweils durch Elektromotoren angetrieben werden, und eine einfache PID-Regelung zum Anfahren eines vorgegebenen Punktes. Modellieren Sie dabei auch das Verhalten der Elektromotoren (also den Zusammenhang zwischen Eingabe-Spannung und erzeugtem Moment, vgl. [1, Kap. 7.5]). Verwenden Sie die im Beiblatt vorgegebenen konkreten Modellparameter. Literaturvorschlge 1. R. J. Schilling: Fundamentals of Robotics Prentice Hall 1990, ISBN 0133444333

154

Realistische Reibungsmodellierung eines Magnetschwebe-Systems


Verbessern Sie das Regelverhalten eines vorhandenen Magnetschwebe-Systems, indem Sie die Modellierung der Reibungseinflsse verbessern. Gehen Sie dazu in folgenden Schritten vor: Untersuchen Sie die Eigenschaften eines 1-Massen-Schwingers, der viskose, turbulente und trockene Reibung (Haft/Gleit) erfhrt. Versuchen Sie, Eigenschaften der Ergebniskurve zu finden, mit denen man die Strken der einzelnen Terme erkennen kann. Erweitern Sie das Modell MLA um entsprechende Terme und bestimmen Sie die zustzlichen Parameter durch entsprechende Messungen. Passen Sie den Regler an das erweiterte Modell an. Literaturvorschlge 1. Handbuch zum Magnetschwebe-Systems ECP730 2. Dokumentation des vorhandenen Simulations-Models

155

Vertikalschwingungen eines LKWs


Implementieren Sie das Modell fr die Vertikalschwingungen eines LKWs aus [1] in Simulink, wobei Sie mglichst Subblcke fr die einzelnen Bauteile erstellen. Verwenden Sie die in [3] gegebenen Werte und vergleichen Sie Ihre Ergebnisse mit denen aus [1]. Literaturvorschlge 1. Edda Eich-Soellner, Claus Fhrer: Numerische Methoden in der Mehrkorperdynamik in: A. Bachem, M. Jnger, R.Schrader (Hrsg.): Mathematik in der Praxis, Springer 1996 (online) 2. Edda Eich-Soellner, Claus Fhrer: Numerical methods in multibody dynamics Teubner 1998, ISBN 3-519-02601-5 3. Homepage von [2] mit Daten und Matlab-Programmen

156

Modul-Synthesizer mit VCF


Der klassische Modul-Synthesizer vom Moog-Typ wird auch heute noch - hufig in "virtueller" Form - zur Klangerzeugung eingesetzt. Dabei kommt der Klangformung mit Hilfe eines VCF ("Voltage Controlled Filter") eine besondere Bedeutung zu. Implementieren Sie das in [1] beschriebene VCF und testen Sie sein Verhalten. Bauen Sie das VCF-Modul in ein vorhandenes Synthesizer-Modell ein und demonstrieren Sie seine Wirkung mit einer kleinen Melodie, hnlich zu diesen VCF-Demos. Literaturvorschlge 1. Antti Huovilainen: Non-linear Digital Implementation of the Moog Ladder Filter Proc. of the 7th Int. Conference on Digital Audio Effects (DAFX-04), Naples, Italy, October 5-8, 2004 (online). 2. R. Schmitz: Analoge Klangsynthese Wizoo GmbH 1999, ISBN 3-934-90300-2 3. U. G. Hoenig: Workshop Synthesizer. Klangsynthese und Programmierung fr Musiker. PPV Presse Project Verlag 2001, ISBN 3-932-27527-6

157

Triebstrang eines PKWs mit MapleSim


Bilden Sie das Triebstrang-Modell aus [1, Kap. 4.1] mglichst genau mit MapleSim nach und vergleichen Sie die Ergebnisse. Setzen Sie in sinnvoller Weise Makros ein, z.B. fr die Nachbildung der Reifeneigenschaften und des Fahrermodells. Literaturvorschlge 1. M. Gipser, Systemdynamik und Simulation Teubner 1999, ISBN: 3-519-02743-7 2. D. Ammon: Modellbildung und Systementwicklung in der Fahrzeugdynamik Teubner 1997, ISBN: 3519023784 3. H.-P. Willumeit: Modelle und Modellierungsverfahren in der Fahrzeugdynamik Teubner 1998, ISBN: 3519032457

158

Signaturen mit dem MD5-Verfahren


Erklren Sie die Funktionsweise und Einsatzgebiete des MD5-Verfahrens, das aus einem beliebigen Text eine 128-Bit-Binrzahl als "Fingerabdruck" des Textes erzeugt. Zeigen Sie seine Arbeitsweise an einem Simulink-Modell. Literaturvorschlge 1. M. Aigner, E. Behrends (Hrsg.): Alles Mathematik Vieweg 2000, ISBN: 3-528-03131-X 2. R. Rivest: The MD5 Message-Digest Algorithm (RFC 1321) http://www.faqs.org/rfcs/rfc1321.html 3. W. Ertel: Angewandte Kryptographie Fachbuchverlag Leipzig 2001, ISBN 3-446-21549-2 4. K. Schmeh: Kryptografie und Public-Key Infrastrukturen im Internet dpunkt, 2. Aufl. 2001, ISBN 3-932-58890-8

159

Ausbreitung von Infektionskrankheiten


Die Ausbreitung von Infektionskrankheiten und die Auswirkung von Impfungen lassen sich in einfachen Modellen untersuchen. Erstellen Sie Simulink-Modelle, die die Beispiele in [1], Kap. 20, umsetzen, und diskutieren Sie deren Anwendbarkeit und Einschrnkungen und erweitern Sie Ihre Modelle entsprechend. Literaturvorschlge 1. B. Hannon, M. Ruth: Modelling Dynamic Biological Systems Springer 1997, ISBN: 0-387-94850-3

160

Blcke zur graphischen Ein- und Ausgabe


Erstellen Sie einfach zu benutzende Subsysteme, die die Mglichkeiten zur graphischen Ein- und Ausgabe whrend einer laufenden Simulation verbessern, darunter Umschalter zur Auswahl zwischen mehreren Mglichkeiten Schieberegler zur Eingabe eines kontinuierlichen Wertes Farbanzeige von zwei (oder mehr) diskreten Werten klassische 7-Segment-Anzeige Zeigeranzeige fr kontinuierlichen Werte Zeigen Sie den Einsatz Ihrer Blcke an einfachen Beispielsystemen.

161

Bisher bearbeitete Themen


2010: Verbesserte Modellierung eines Magnetschwebe-Systems Abstandsregelung mit Fuzzy-Regler Regelung des aufrechten Pendels mit Animation 2009: Verkehrstrom auf einer Schnellstrae Thermodynamische Kreisprozesse 2008: p-V-Diagramm eines Verbrennungsmotors Triebstrang eines PKWs mit ITI-Sim 2007: Modellierung des Fahrerverhaltens bei der Spur-Simulation 2006: Simulation eines realen Magnetschwebe-Systems Echtzeit-Regelung eines Magnetschwebe-Systems 2005: Spurverhalten eines PKWs Steuerung eines Roboterarms Physikalische Simulation mit SimMechanics 2004: Steuerung eines Frderbands Simulation eines Modul-Synthesizers Fahrzeugfederung eines PKWs 2003: Simulation internationaler Beziehungen Das JK-Flip-Flop als Zhler-Baustein Klassische und Fuzzy-Regler im Vergleich Nachhaltigkeit in der Fischerei 2002: Wechselwirkung zwischen biologischen Systemen Das Weltmodell von Forrester Das Trebuchet - eine mittelalterliche Angriffswaffe Logistische Analyse einer Fertigungskette Simulation konomischer Prozesse

162

Das könnte Ihnen auch gefallen