Home

PDF-File der Arbeit - Lehrstuhl für Angewandte Mathematik

image

Contents

1. Position des Wagens in m Beschleunigung des Wagens in mis oO 157 3 2 Zeit ins Zeit ins Abbildung 6 2 Simulation des Fahrprofils Upswing mit dem PID Modell und den Para metern aus 6 14 nicht unseren Erwartungen obwohl es auch hier Verbesserungen im Vergleich zu vorher gibt PID Modell PID Modell Beschleunigungs Messwerte profil Upswing Fr we At a N L E 2 d E s a 2f n bi S 2 4h n D oF 8 2 5 E 2 D SE SS 3 3 Ee 2 2 O amp 3f Ak UM N N 0 1 3 4 5 0 1 2 4 5 Zeit ins Zeit ins Abbildung 6 3 Simulation des Fahrprofils Upswing mit dem PID Modell und den Para metern aus 6 15 Urspr nglich sollte zur Optimierung die MATLAB Funktion lsqnonlin verwendet werden die Verwendung mit RADAU5 als ODE Solver hat sich jedoch als problematisch herausge stellt Um exakte Ergebnisse erzielen zu k nnen muss der ODE L ser wesentlich d h 2 3 Zehnerpotenzen genauer arbeiten als der Differenzierer im Minimierer Im MEX Interface 60 6 2 Motor als PT Glied 3H 0 09 PID Modell EN Messwerte 0 08 L E bisheriges Modell e
2. 0 j 0 20 40 60 80 100 120 140 160 180 200 Abbildung 6 1 Typische Sprungantworten fiir verschiedene Regler 6 1 1 Herleitung des Simulationsmodell Nun soll der erl uterte PID Regler in das bisherige Simulationsmodell integriert werden Dazu leitet man zun chst 6 1 nach der Zeit ab wodurch man Y t Ky e t Kielt Ka t mit e t uson t Uts t 62 54 6 1 Motor als PID Glied erh lt Setzt man jetzt den Ausgang y t x t so l sst sich dies als Steuerung wie folgt an das bisherige Modell 2 1 ankoppeln z t X t tolt K o t K gsin x t 25 t cos zit 3 t x t a t rlt gt ts t Kp lt Kielt Kzelt elt u t x5 t Man beachte auch die nderung von u t zu x t in der zweiten Zeile Anschlie end erh lt man mit der Substitution zelt e t und z7 t t die zus tzliche Differentialgleichung Zelt x7 t und somit amp 1 t x2 t tolt K xo t K gsin x t 25 t cos zit is t xa t alt a t 6 4 Zelt Kp a7 t Ki zelt Ka t7 t telt x7 t ze t u t x5 t Umstellen liefert t t x2 t amp 2 t K alt Ke gsin x1 t x5 t cos zit t3 t x4 t t4 t x5 t 6 5 Zeit Kaa7 t Kp x7 t Ki zeit g t x7 t u t x5 t x t Wir bezeichnen die rechte Seite dieses Differentialgleichungssystems als f t x u und stellen zus tzlich auf der linken Seite
3. 1 6 In dieser Datei wird festgehalten zu welcher Zeit welche Beschleunigung angelegt wurde und wie lange diese angewendet wird bevor der n chste Be schleunigungstakt beginnt Bei uns wird stets eine Taktzeit von 100 ms vorgegeben Tabelle 4 4 zeigt beispielhaft die Datei data_acc_Const1_2 txt Man sieht bereits hier dass die Be schleunigungen nat rlich nicht exakt mit Beginn der Zeitmessung sondern etwas hier 1 5 ms sp ter starten Der globale Zeitmesser und Taktgeber ber cksichtigt dies jedoch und gibt auch die folgenden Beschleunigungen dementsprechend verz gert Die Taktzeit von 100 25 Kapitel 4 Versuche und Messungen Acc in m s Duration in s 3 000000000 0 100327669 0 000000000 0 099983962 0 000000000 0 099986149 0 000000000 0 099984190 0 000000000 0 099719147 Time in s 0 001560372 0 101888041 0 201872003 0 301858152 0 401842342 Tabelle 4 4 Datei data_acc_Const1_2 txt ms kann dabei nicht absolut richtig eingehalten werden Es hat sich aber herausgestellt dass wie auch bei den anderen Fahrversuchen lediglich kleine Abweichungen von wenigen Zehntel Millisekunden auftreten Dar ber hinaus wird eine zweite Datei mit Namen data_pos_angle_Beschleunigungspro fil_i txt erstellt wobei Beschleunigungsprofil wiederum durch den Namen einer Beschleuni gungssequenz ersetzt wird und i die Nummer des jeweiligen Versuchs darstellt i 1
4. 10 5 5 10 t Abbildung 7 5 Regularisierte Reibungskraft durch Arkustangens Funktion Nachteil wird jedoch aufgewogen durch den Vorteil dass die Dynamik des Systems nun als gew hnliche Differentialgleichung mit stetiger rechter Seite formuliert werden kann Diese Be wegungsgleichung hat durch die hohe Steigung der Kennlinie zwar den Makel dass sie steif ist aber es existieren f r diese Art Differentialgleichungen gen gend etablierte L sungs verfahren Dies setzt bei Echtzeitreglern nat rlich wiederum ausreichend viel Zeit f r die Berechnung der L sung voraus Geschieht wie hier eine solche Umformulierung mit nur qualitativ begr ndbaren Modifikationen lediglich zum Zwecke der Berechenbarkeit so spricht man von Regularisierung Ebenso w re eine ereignisgesteuerte Integration des Systems mit Reibung denkbar 31 Die Modellierung der Gleitreibung gestaltet sich sehr schwierig da bei realen techni schen Gleitvorg ngen stets eine berlagerung der verschiedenen Reibungskomponenten auftreten kann Dazu z hlen die Adh sionskomponente die Deformationskomponente und die Furchungskomponente der Gleitreibung Aus diesem Grund ist eine theoretische Absch tzung von Reibungszahlen im Allgemeinen nicht m glich Auch wenn die Modellierungsversuche mit dem Ansatz aus 7 13 bei Verwendung un terschiedlicher Konstanten und somit diverser Reibkraft Geschwindigkeits Kennlinien er folglos blieb soll hier kurz auf die
5. 70 6 3 3 Das Ee EENHEETEN 73 6 4 Vergleich von PTs und PT Modell mit dem alten Simulationsmodell 74 7 Weitere Ideen und Ans tze zur Modellierung 77 7 1 Modellierung mit zus tzlichem Geschwindigkeits bzw Positionssollwert 77 7 2 Motormodell durch lineare Approximation 79 Tao ECO EE 80 8 Zusammenfassung 85 A Inhalt der beiliegenden CD 87 Tabellenverzeichnis 93 Abbildungsverzeichnis 95 Quellcodeverzeichnis 99 Literaturverzeichnis 101 II Kapitel 1 Einleitung 1 1 Motivation Riskiere ich alles fallen zu lassen oder gehe ich lieber zweimal Gleichgewicht halten bzw Gegenst nde balancieren eine F higkeit die Mensch und Tier man denke an den Seel wen der einen Ball balanciert relativ fr h und intuitiv beherrschen Damit dies gelingt sind jedoch eine st ndige Beobachtung der Situation und Korrekturen durch Ausgleichsbewegungen n tig Was f r Lebewesen recht einfach scheint ist f r Maschi nen und Roboter eine gro e Herausforderung Auch bei der Stabilisierung eines sogenannten inversen Pendels muss den Computern bzw Schaltkreisen zun chst die Physik des Systems und die zur Balance n tigen Bewegungen beigebracht werden Die genannte Stabilisierungsaufgabe ist eines der bedeutendsten und anschaulichsten klas sischen Probleme der Regelungstechnik da es nicht nur von rein akademischem Interesse ist sondern reihenweise praktische Anwendungen existieren Einige davon werden nachfolg
6. 6 In dieser Datei werden nun alle Messdaten bez glich des Fahrversuchs gespeichert d h der Zeitpunkt der Messung sowie die Position des Schlittens und der Winkel des Pendels zu diesem Zeitpunkt Exemplarisch hierf r ist in Tabelle 4 5 der Anfang der Messdaten zum zweiten Versuch des Beschleunigungsprofils Const1 zu sehen Wie man darin erkennen Time in s 0 002351529 0 002535834 0 002708931 Position in m 0 000244190 0 000244190 0 000244190 Angle in rad 0 002617994 0 002617994 0 002617994 0 002825108 0 000244190 0 002617994 Tabelle 4 5 Ausschnitt aus Datei data_pos_angle_Const1_2 txt kann setzt die Messung von Schlittenposition und Pendelwinkel etwas versp tet ein Dar ber hinaus l sst sich feststellen dass im Durchschnitt aller Messdaten jede 0 12 0 13 ms ein Messpunkt erstellt wird Dies entspricht knapp 8000 Messpunkten pro Sekunde und im Ver gleich zur vorherigen Implementierung in C bei der man ca alle 3 ms einen Messpunkt hatte hat man nun mehr als das 20 fache an Messwerten Diese hohe Abtastrate l sst be reits jetzt erhoffen dass man aus den gewonnenen Daten wesentlich mehr Informationen als vorher gewinnen kann 4 2 2 Aufbereitung der Messdaten Da die Position motorbedingt urspr nglich ganzzahlig in sogenannten Ticks angegeben ist und durch das Programm in Meter umgerechnet wird kommt es zu kleinen Ungenauigkei ten weshalb die Positionsau
7. 2 8 2 757 i 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 Zeit ins Abbildung 6 12 Vergleich der Messwerte mit den Simulationswerten des Winkels beim Fahr profil Step1 mit den Konstanten K 0 01616628 Ka 1 46086441 g 9 81 K 0 975587973 d 0 330599232 T 0 010837977 6 23 6 3 Motor als PT Glied Wie im letzten Abschnitt zu sehen war entspricht das eingef hrte PT2 Modell sehr gut der Realit t Betrachtet man aber die extremen Spitzen d h das extreme berschwingen der Beschleunigung bei Beschleunigungswechseln in der rechten Grafik von Abbildung 6 6 so kann dies in der Praxis numerisch problematisch werden Dieses steife Differentialgleichungs system setzt einen sehr genauen L ser voraus was wiederum mit einer langen Rechenzeit einhergeht Gerade bei Echtzeit Regelalgorithmen hat man hierf r unter Umst nden nicht die n tigen Ressourcen Aus diesem Grund soll nun noch ein weiteres Modell eingef hrt werden das ann hernd genau aber wesentlich leichter zu l sen sein wird Es handelt sich hierbei um das sogenann te Verz gerungsglied 1 Ordnung oder kurz PT Glied Dies ist ein bertragungsglied bei dem die Ausgangsgr e nach einer sprunghaften nderung der Eingangsgr e exponentiell mit einer bestimmten Anfangssteigung asymptotisch gegen einen Endwert strebt Es besitzt also insbesondere kein berschwingen das uns sp ter beim L sen der Differentialgleichung Probleme bere
8. Step sind nach dem Aufbereiten der Messdaten wie in Abschnitt 4 2 2 beschrieben miteinander ver gleichbar Aufgrund der dort beobachteten geringen Unterschiede kann man davon ausgehen dass auch bei den l ngeren Sequenzen wenige St rungen bzw geringes Rauschen auftritt und es deshalb durchaus legitim ist eine einzelne Messung einer Datenreihe als Referenz f r das neue Modell herzunehmen Unter Rauschen versteht man dabei die Erscheinung dass sich selbst einem statischen Messsignal zeitlich fluktuierende St rungen berlagern die wiederum vielf ltige Ursachen haben k nnen 8 4 2 4 Hinweise zur Implementierung der Beschleunigungsprofile im Simulationsmodell Wie im letzten Abschnitt beschrieben kann bei den Fahrversuchen die vorgegebene Takt zeit von 100 ms nicht absolut exakt eingehalten werden Aus diesem Grund ist es wichtig der Simulation den Zeitpunkt mitzuteilen zu der in der Messung eine neue Beschleunigung beginnt Deshalb wird eine Matrix mit den Daten aus Tabelle 4 4 mit an die Differentialglei chungsfunktion in MATLAB bergeben Durch Abfragen der Zeit wird dann die zu diesem Zeitpunkt aktive Beschleunigung verwendet 29 Kapitel 4 Versuche und Messungen Auch wenn diese pragmatische und einfach zu realisierende L sung die Parameter in Abh ngigkeit von der Zeit oder auch Ort und Geschwindigkeit direkt im ode File jeweils an die aktuellen Werte anzupassen nicht ganz sauber ist funktioniert sie in de
9. installiert wird und Bibliotheken in usr local lib abgelegt werden sodass man letzteres zum Bash hinzuf gen muss falls man es au erhalb MATLABs aufruft Anschlie end f hrt man mex setup in der MATLAB Kommandozeile aus und w hlt die Nummer 1 f r die Auswahl 1 Applications MATLAB_R2009b app bin gecopts sh Template Options file for building gcc MEX files 4 Zuletzt m ssen noch folgende nderungen im maci64 Abschnitt der Datei matlab R201la mexopts sh durchgef hrt werden FC usr local bin gfortran FC_LIBDIR usr local lib FC_LIBDIR2 usr local lib gcec i686 apple darwin8 4 2 3 x86_64 FOPTIMFLAGS O5 funroll loops ftree vectorize Weitere Erl uterungen sind unter http www mathworks co uk matlabcentral newsreader view_thread 262115 zu finden Danach kann schlie lich das MEX Interface wie oben beschrieben installiert und der implizite L ser RADAU5 verwendet werden 21 Kapitel 3 Technische Details 22 Kapitel 4 Versuche und Messungen Um das aktuelle Simulationsmodell mit der Realit t vergleichen und anschlie end ein bes seres Modell entwickeln zu k nnen werden verschiedene Fahrversuche durchgef hrt und die zugeh rigen Messdaten aufgezeichnet In dieser Arbeit werden dabei vier verschiedene Be schleunigungsprofile zum Einsatz kommen Beginnend bei sehr einfachen Beschleunigungsse quenzen um das Verhalten grunds
10. er die Geschwindigkeit ist Das l sst sich dadurch erkl ren dass die Messungen umso ungenauer werden je gr er die Geschwindigkeit des Schlittens ist Mit der F lle an vorliegenden Messdaten ist es m glich die Daten auch etwas gr ber zu filtern Erh ht man die Filterl nge so erh lt man eine durchaus sch ne Gerade Man beachte jedoch den Verlust des charakteristischen Einschwingens zu Beginn Wie bereits in Abschnitt 5 1 gesehen f hrt der Schlitten zwar versp tet los versucht dann aber durch erh hte Geschwindigkeit den Zeitverlust wieder einzuholen um schlussendlich zumindest in der N he der richtigen Geschwindigkeitstrajektorie zu landen Filterl nge 10 Filterl nge 50 d o E E E E Ir E 17 2D gt E E 3 0 57 3 0 57 E E QO O 7 wn 0 i Oo 0 0 0 1 0 2 0 3 0 4 0 0 1 0 2 0 3 0 4 Zeit in s Zeit ins Filterlange 100 Filterlange 400 d wn E E E E Ir E Ir 2 gt 2 2 3 0 57 3 0 57 E O O 7 wn E ee o SEE o 0 0 1 0 2 0 3 0 4 0 0 1 0 2 0 3 0 4 Zeitins Zeit ins Abbildung 5 7 Ermittelte Geschwindigkeit mittels Differenzenquotient mit Messdaten aus Stepl nach Anwendung des Moving Average Filters mit verschiedenen Filterlangen Bei einer Filterlange von 400 Datenpunkten liegen die betrachteten Messwerte jedoch schon ber 50 ms auseinander d h die Daten werden bereits enorm gegl ttet und das Ergebnis muss nicht mehr unbedingt der R
11. quidistanten Gitters eine lineare Interpolation der vorhandenen Messdaten durchf hrt Aufgrund der sehr hohen Leserate und sowie bereits fast gleichverteil ten Messpunkte treten hier nur Abweichungen von weniger als 0 1 mm von den urspr ngli chen Messdaten auf Man kann sich also trotz dieser vermeintlich ungenauen Methode mehr als zufrieden geben Man betrachte hierzu Abbildung 5 3 und beachte insbesondere die Skala der y Achse o Messdaten roh nicht quidistant 9 Messdaten bearbeitet mit interp1 quidistant 0 1717 0 1705 oO N 0 1695 Position des Wagens in m 0 169 0 348 0 3485 0 349 0 3495 0 35 Zeit ins Abbildung 5 3 Aquidistante Messdaten nach Manipulation mit interp1 5 2 1 Moving Average Filter Der einfachste Ansatz um Datens tze zu gl tten ist das Anwenden des Moving Avera ge Filters Die Idee ist den evtl gewichteten Durchschnitt der benachbarten Daten von auch gleitendes Mittel oder gleitender Durchschnitt 33 Kapitel 5 Auswertungen Datenpunkt x als gegl tteten Wert g zu w hlen Nach der Berechnung eines gegl tteten Werts wird anschlie end das Fenster der betrachteten Daten um einen Zeitschritt weiter geschoben und der n chste gefilterte Wert berechnet Hierbei handelt es sich um einen Tiefpassfilter mit endlicher Impulsantwort Durch sei ne Tiefpasscharakteristik werden kurzfristige d h hochfrequente Ver nderungen
12. Form f at toot ap1t apt lag mita E R kEN 5 19 das wir an eine bestimmte Anzahl N von Messpunkten anpassen m chten Dies geschieht mit dem MATLAB Befehl poly_koeff polyfit t_temp x_temp k der an die Messdaten in t_temp und x_temp ein Polynom vom Grad k anpasst In poly_koeff stehen anschlie end die Koeffizienten des gefitteten Polynoms Mit poly_eval polyval poly_koeff t_temp wird das gefundene Polynom dann an den Zeiten in t_temp ausgewertet Wir werden hier nat rlich nicht alle Messdaten auf einmal betrachten womit man nur ein Polynom erhalten w rde Stattdessen betrachten wir stets ein Fenster von N Messwerten erhalten daraus ein Polynom das wir auswerten k nnen schieben das Fenster anschlie end um einen Zeitschritt oder auch mehrere nach rechts und beginnen von vorne Die zweite Ableitung f t von 5 19 l sst sich somit sehr leicht bestimmen und lautet EE aik k Nr as ha eS 2ap 1 5 20 Die beiden gro en Unbekannten die es nun zu bestimmen bzw durch visuelles Optimieren zu ermitteln gilt sind die Fenstergr e N d h die Anzahl an Datenpunkten an die das Po lynom angepasst werden soll sowie dessen Grad k Auf das vorherige Filtern der Messdaten wird hier verzichtet um mit unverf lschten Daten zu arbeiten Beschleunigung in den ersten Millisekunden Zun chst wird sich der Beschleunigung des Wagens zum Zeitpunkt des Losfahrens gewidmet i
13. Sockets und SSL Springer Verlag Berlin Heidelberg 2006 103 Literaturverzeichnis 104 Erkl rung Hiermit erkl re ich dass ich die vorliegende Arbeit selbstst ndig und nur unter Verwendung der angegebenen Quellen und Hilfsmittel angefertigt habe Diese Arbeit hat in gleicher oder hnlicher Form noch keiner anderen Pr fungsbeh rde vor gelegen Bayreuth den 30 Oktober 2012 Christoph Baumann
14. 0 035 Zeit ins L i 0 01 0 015 i 0 0 005 Abbildung 5 17 Vergleich der Messdaten mit der Simulation der erhaltenen Beschleunigung Bei dieser Auswertung wurde ein Polynom neunten Grades verwendet und dar ber hinaus folgende Intervallgrenzen f r das Polynomfitting gew hlt 0 000 ms 0 006 ms 0 012 ms 0 020 ms 0 029 ms 0 039 ms 0 048 ms Die einzelnen Bereiche haben sich jeweils um 3 ms ber schnitten F r andere Fahrprofile sind nat rlich andere Intervalle zu w hlen um eine gute 49 Kapitel 5 Auswertungen Approximation zu erhalten Weitere Stellvariablen sind die berlappungszeit sowie der Po lynomgrad Selbstverst ndlich l sst sich auch in diesem Beispiel die Abweichung noch weiter minimieren indem man eine Feinanpassung der Intervalle und des berlappens durchf hrt und eventuell auch den Polynomgrad anpasst Dies war hier jedoch nicht das Ziel es sollte nur gezeigt werden wie die reale Beschleunigung zu Beginn in etwa aussieht was man in Abbildung 5 16 gut erkennen kann 5 4 3 Gleichm ige Beschleunigung Bei einer Anfangsgeschwindigkeit vp und einer anschlie enden gleichm igen Beschleunigung a l sst sich die Position x zur Zeit t bestimmen durch 1 x t St vot 5 24 Stellt man diese Gleichung nun nach der Beschleunigung um so erhalt man fiir jeden Zeit punkt diejenige gleichm ige Beschleunigung die n tig ist um die aktuelle Position zu er reichen a t o T Vo a t D Er
15. 29 Inhaltsverzeichnis 5 Auswertungen 31 5 1 Verz gerungszeit use ent Ra Ai amp 2 31 2 WRU Filter fs a ing a ee rare 33 5 2 1 Moving Average Filter ce koe aa a a 33 5 2 2 Savitzky Golay Gl ttungsfilter a 22m 34 5 3 Geschwindigkeit des Schlittens 2 be 222 208 0 004 38 5 3 1 Ermittlung durch Differenzenquotient 38 5 3 2 Ermittlung durch Kurvenanpassung mittels Savitzky Golay Filter 41 8 3 3 Vergleich mit bisherigem Modell 42 5 4 Beschleunigung des Schlittens 43 5 4 1 Ermittlung durch Differenzenquotient 43 5 4 2 Ermittlung durch Kurvenanpassung 44 8 4 3 Gleichm ige Beschleunigung 50 5 9 Erkenntnisse 2 2 Seige wf aie ea eae SE ee EE 51 6 Einf hrung neuer Modelle 53 E 3Motor als PING A r sara era LET FRE 53 6 1 1 Herleitung des Simulationsmodell 2 2 2222 22 2 2 54 6 1 2 Exkurs Massenmatrix und Differential Algebraische Gleichung bp 6 1 3 Parametersch tzung der Modellparameter und berpr fung 58 6 2 Motor als PT2 Glied e 61 6 2 1 Herleitung des Simulationsmodell 62 6 2 2 Parametersch tzung der Modellparameter 63 6 2 3 Das Pes Modell u 30222 otal oe ea yee Bw Ue ee eS 68 6 3 Motor als PT Glied 0 0 0 0000000000000 000084 69 6 3 1 Herleitung des Simulationsmodell 2 2 2222 22 22 70 6 3 2 Parametersch tzung der Modellparameter
16. 54 Simulation des Fahrprofils Upswing mit dem PID Modell und den Parame Verb OA eh eh En A De ina nee gal ah ceo ener DE a 60 Simulation des Fahrprofils Upswing mit dem PID Modell und den Parame tern aus WEE 60 Simulation des Fahrprofils Step1 mit dem PID Modell und den Parametern aus UGG nee a es E he eae a rt 61 Sprungantwort eines PT2 Glieds K 3 T 0 1 d 0 2 1 0 2 0 62 Simulation des Wagens mit dem PT Modell und den Parametern aus 6 19 beim Fahrprofil Upswing une Se eee a ee eS EE 64 Simulation des Fahrprofils Upswing mit dem PT 2 Modell und den Parame tern ER roaraa ne See eo ee eis u e een e Bae 65 Simulation des Fahrprofils Step1 mit dem PT2 Modell und den Parametern BNI 6019 Se fs shen eas car sasha ati tae GR Or EE 65 Simulation des Fahrprofils Step3 mit dem PT2 Modell und den Parametern AUSB A as mG he os gree che ne Seat Go asa bet pe Mere odd 66 Simulation des Fahrprofils Upswing mit dem PT 2 Modell und den Parame tern aus EE EE hs hey a A aa Hs 67 Vergleich der Messwerte mit den Simulationswerten des Winkels beim Fahr Profily UPSWINE rerio omc beh Seat a a MEd Oh GPG pene dase ora hee Ls 68 Vergleich der Messwerte mit den Simulationswerten des Winkels beim Fahr profil y otepl 13 Aa we EE eS oS Ss EE 69 Simulation des Wagens mit dem PT Modell und den Parametern aus 6 27 beim Fahrprofil Upswing 2 icc ze 2 0 a aan 71 Simulation des Wagens mit dem PT M
17. 827 Const1 62 718 0 508 1 110 5 745 1 029 1 448 Const2 162 738 0 979 2 357 9 429 1 703 2 401 Distinctivel 681 101 61 099 65 167 14 653 2 915 3 090 Distinctive2 190 692 60 014 59 231 8 343 3 499 3 132 Upswing 1298 415 68 454 71 353 12 291 2 339 3 195 Tabelle 6 1 Vergleich des PT und PT Modells mit dem bisherigen Modell bzgl der Posi tionsmesswerte aller verwendeten Fahrprofile und der maximale Abstand aus Simulations und Positionsmesswerten bei allen Fahrprofilen betrachtet Man sieht bei beiden neuen Modellen sowohl bei der Fehlerquadratsumme als auch beim maximalen Abstand deutliche Verbesserungen im Vergleich zu vorher Aufgrund der ange sprochenen Thematik im Vergleich zwischen PT und PT Modell ist das letztgenannte geringfiigig schlechter Auch bei der Geschwindigkeit soll sich die Aussage nicht nur auf grafische Ergebnisse stiitzen weshalb hier wie bereits oben der Vergleich zwischen dem alten und den beiden neuen Modellen in Tabelle 6 2 gezogen wird diesmal natiirlich beziiglich der approximierten Geschwindigkeit Bei der Fehlerquadratsumme ist die Verbesserung deutlich ersichtlich Die maximale Abweichung ist hier leider nur bedingt aussagekr ftig So k nnte man meinen dass das Fahrprofil Step3 teilweise ein schlechteres Ergebnis als vorher abliefert Dies liegt jedoch wie Abbildung 6 9 gezeigt hat nur am extremen berschwingen zu Beginn Fehlerquadratsumme Maximaler Abstand in m s in 107 m s Fahrp
18. Ab x min 5 8 Mittels QR Zerlegung von A w re es nun m glich diese Gleichung f r b zu l sen F r unser Vorhaben die Daten zu gl tten brauchen wir jedoch nur g p t bo zu kennen Die L sung b von 5 8 kann auch als L sung der Normalengleichung A Ab Als 5 9 betrachtet werden Somit erhalten wir gi C4 AT A ATx 5 10 wobei ej den transponierten M 1 sten Einheitsvektor bezeichnet Offensichtlich k nnen wir g als Linearkombination der x schreiben Wir definieren den Vektor c A ATA emy 5 11 der die Filterkoeffizienten C_n Cn enth lt Da c nicht von t und At abh ngt muss es lediglich einmal ausgewertet werden Anschlie end k nnen alle gegl tteten Werte g einfach durch das Skalarprodukt i nR DEE CAT 5 12 j i nL berechnet werden Die Berechnung des Vektors c in 5 11 kann f r einen gro en Polynomgrad M jedoch Probleme bereiten da sich die Kondition beim Bilden von A A verschlechtert Stattdessen 36 5 2 Exkurs Filter verwendet man f r Gleichung 5 8 blicherweise die QR Zerlegung A QR Setzt man dies nun in 5 11 ein so erh lt man 1 c Qeys 5 13 TM 1 M 1 und der Polynomwert am Punkt t ergibt sich schlie lich durch i nR 1 1 T T bo e419 LS nn dj i m 1 j 5 14 TM 1 M 1 TM 1 M 1 De Ein weiterer gro er Vorteil des Savitzky Golay Filters ist somit seine Geschwindigkeit F r gegebenes nr mp und M m sse
19. Beobachtungen bez glich der Wagenreibung eingegangen werden Der mechanische Aufbau des Wagens besitzt mehrere Komponenten die eine Rei bung verursachen Zum einen ist es die Befestigung des Schlittens auf den beiden Schienen Das Seilzugsystem besitzt zudem zwei Umlenkzahnr der und auch das Getriebe und der Motor haben einen wesentlichen Anteil an der Reibung Das stark verz gerte Losfahren des Wagens zu Beginn der Fahrversuche legt den Verdacht nahe dass die Haftreibung vergleichsweise hoch ist In Versuchen konnte festgestellt werden dass sich die Zielposition des Wagens bei unterschiedlichen Startpositionen nicht unterschei F r eine Erl uterung dieser Begriffe sei auf die Literatur des Fachbereichs Tribologie verwiesen z B in 7 83 Kapitel 7 Weitere Ideen und Ans tze zur Modellierung det Das bedeutet aber nicht zwangsweise dass die Haftreibung an allen Startpositionen gleich ist Es ist auch m glich dass der integrierte Regler im Servomotor dies ausgleicht und diese Differenz deshalb in der Endposition nicht mehr erkennbar ist Wie bereits zu se hen war vgl Abbildung 4 3 konnte der Regler auch unterschiedliche Latenzen in derselben Startposition ausgleichen Dar ber hinaus wurden mehrere Versuchsl ufe sowohl mit sehr trockener Bahn als auch mit sehr stark ge lter Bahn durchgef hrt um eventuell auftretende Unterschiede bei der Gleitreibung herausstellen zu k nnen Es kann festgehalten werden dass diesbez
20. Genauigkeit von 101 gel st Der Optimierer wiederum verwendet anschlie end eine Genauigkeit von 1078 f r die gesuchten Parameter als auch f r die Zielfunktion Auch in diesem Fall m ssen zun chst passende Startwerte gefunden werden die erneut durch visuelle berpr fung ausgew hlt werden Im vorliegenden Fall liefert der Algorithmus f r die Startwerte K 0 98 T 0 010 und d 0 5 die folgende L sung K 0 975587973 T 0 010837977 d 0 330599232 6 19 bzw genau genommen einer Einheitsmatrix als Massenmatrix 63 Kapitel 6 Einf hrung neuer Modelle Die visuelle berpr fung der gesch tzten Parameter erfolgt im Anschluss der numerische Vergleich zum alten Simulationsmodells zum Abschluss des Kapitels in Abschnitt 6 4 Verifikation des Wagenmodells PT Modell PT Modell Messwerte Beschleunigungs profil Upswing 0 2 0 15 at i e h E ji e o e 4 Ho s 2 2 0 05 2 E e S 9 g o ZS gt 5 0 05 Bol 7 S 0 1 2 2 AN Q 0 15 a i 6 0 2 1 3 4 5 1 2 3 4 5 Zeitins Zeitins Abbildung 6 6 Simulation des Wagens mit dem PT2 Modell und den Parametern aus 6 19 beim Fahrprofil Upswing Die Simulation des Fahrprofils Upswing mit dem PT 2 Modell und den Parametern aus 6 19 ist in Abbildung 6 6 dargestellt W hrend im linken Teil aufgr
21. Mehrere MATLAB Solver k nnen Problemstellungen mit Massenmatrix l sen wobei es aller dings Unterschiede darin gibt welche Eigenschaften von der Massenmatrix gefordert werden Hat man ein Problem mit Massenmatrix M vorliegen muss dies dem Integrator mit Hilfe der Mass Option mitgeteilt werden indem diese dem Solver mit options odeset Mass M tibergeben wird Fiir die Integration der Systeme in semi expliziter Form 6 8 in MATLAB gibt es folgen des zu beachten e ode23s erlaubt nur konstante Massenmatrizen e alle Integratoren au er odel5s und ode23t erlauben nur regul re d h invertierbare Massenmatrizen e odel5s und ode23t erlauben zwar nicht invertierbare Massenmatrizen diese diirfen dann aber nicht von der Form M t x sein also nicht gleichzeitig zeit und zustands abh ngig sein und zudem keinen Differentiationsindex gr er 1 haben 57 Kapitel 6 Einf hrung neuer Modelle Die zuletzt genannte Tatsache schr nkt die Verwendung dieser stark ein Auch im vorliegen den Fall k nnen wir die oben genannten Solver nicht verwenden denn diese geben bei einem L sungsversuch direkt den Hinweis aus dass es sich um eine Gleichung mit h heren Index handelt und diese nicht gel st werden k nnen In Bezug auf den numerischen Aufwand sind explizite Differentialgleichungsysteme ein facher zu l sen als solche mit Massenmatrizen Bei letzteren wiederum erfordern Systeme mit einer diagonalen Massenmatrix weniger Aufwa
22. auf der Vorhersage der zuk nftigen Zust nde beruht ist es unab l sslich ein Simulationsmodell zu verwenden das die Realit t m glichst exakt beschreibt damit dieses Konzept erfolgreich anwendbar ist Das bisher implementierte Simulationsmo dell des vorliegenden inversen Pendels ist aufgrund vieler Vereinfachungen und idealisierter Dabei soll eine von einem Kran transportierte schwingende Last durch lineare Bewegungen des Kranl ufers m glichst schnell zum Stillstand gebracht werden In gewisser Hinsicht k nnte man das inverse Pendel als eine auf den Kopf gestellte Lastkranregelung bezeichnen d h die Anzahl der Stelleingriffe ist kleiner als die Anzahl der mechanischen Freiheitsgrade 1 3 Gliederung Annahmen zu ungenau um solch moderne Regelungsalgorithmen darauf erfolgreich anwen den zu k nnen Aus diesem Grund soll in dieser Diplomarbeit das Simulationsmodell f r das inverse Pendel pr zisiert werden insbesondere die Positionsangabe des Schlittens sodass die Realit t besser beschrieben wird Dar ber hinaus soll die Arbeit auch als Handbuch f r zuk nftige Studenten dienen die sich mit der vorliegenden Pendelapparatur von Googol Technology besch ftigen werden 1 3 Gliederung Im n chsten Kapitel werden die Grundlagen ber das inverse Pendel erl utert So wird zum einen das bisherige Simulationsmodell eingef hrt und zum anderen die Ist Situation beschrieben In Kapitel 3 wird dann auf die Pendelappa
23. aufgerufen werden Diese sind als Funktionen implementiert und ben tigen eine Parameter bergabe Die Beschreibung der notwendigen Eingabeparameter und der R ckgabewerte ist in jeder Funktion als Kommentar vor dem Code enthalten MATLAB DATA Das Verzeichnis enth lt alle aufgenommenen Mess und Beschleunigungsdaten MATLAB KAPITEL3 vcurve m Programm zur Erstellung des Geschwindigkeitsprofils in Abb 3 3 MATLAB KAPITEL4 preparing data m Funktion zum Einlesen der Mess und Beschleunigungswerte vgl_messungen m Routine zum Vergleich der Messungen eines Fahrprofils Abb 4 2 4 3 4 4 MATLAB KAPITELS5 A_anfangsbeschl m Berechnung der Beschleunigung gleich zu Beginn der Messauf zeichungen Abb 5 13 A_DQ_MA_SG m Berechnung der Beschleunigung aus den Positionsdaten mittels Differenzenquotienten nach Anwendung von Moving Average Filter und Savitzky Golay Filter vorheriges Downsampling m glich Abb 5 11 5 12 A glm beschl m F r jede aufgenommene Position des Wagens wird diejenige gleichm ige Beschleunigung berechnet die n tig w re um die sen Ort in der angegebenen Zeit zu erreichen Abb 5 18 A_PF_intervall m St ckweises Polynomfitting zur Ermittlung der zweiten Ablei tung d h der Beschleunigung Abb 5 16 5 17 A_PF m Berechnung der Beschleunigung aus den Positionsdaten mittels Polynomfitting mit Polynomen 2 und 3 Grades Abb 5 14 5 15 88 Anhang A Inhalt der beiliegenden CD delay_m
24. das charakteristische Einschwingen zu Beginn jedoch erhalten bleibt Auf den vorgeschalteten gleitenden Mittelwert kann hierbei nicht verzichtet werden Wendet man lediglich das Savitzky Golay Filter an so ist das Ergebnis ebenso wenig zufriedenstellend Geschwindigkeit des Wagens in m s L L L L L i L L L 0 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 Zeitins Abbildung 5 8 Ermittelte Geschwindigkeit mittels Differenzenquotient nach Anwendung des Moving Average und des Savitzky Golay Filters 5 3 2 Ermittlung durch Kurvenanpassung mittels Savitzky Golay Filter Da man bei Benutzung des Savitzky Golay Filters in jedem Messpunkt implizit eine Kurven anpassung mit Polynomen durchf hrt bietet es sich nat rlich an gleich dieses Polynom zu verwenden um durch algebraisches Ableiten die Differentiation durchzuf hren und entspre chend die Geschwindigkeit zu erhalten Die MATLAB Routine sgolay bietet die ben tigten Polynomkoefhzienten der Ableitungen direkt als Ausgabe mit an Abbildung 5 9 zeigt dem nach in jedem Messpunkt die erste Ableitung des gefitteten Polynoms Dadurch erh lt man qualitativ das gleiche Bild wie in Abbildung 5 8 lediglich im Detail erkennt man die etwas rundere Kurve bei der Ableitung mit Hilfe des Polynomfittens Dieser geringe Unterschied l sst sich durch die vorherige Anwendung des Moving Average Filters erkl ren Dieser hat 41 Kapitel 5 Auswertungen die Messwerte bereits soweit aneinander ange
25. f r uns hilfreich In diesem Fall beweist sich die Vorgehensweise von Savitzky Golay als viel besser im Vergleich zu Standard FIR Filter die dazu tendieren neben der St rung auch einen gro en Anteil des hochfrequenten Signals mit auszul schen Jedoch sind Savitzky Golay Filter entsprechend beim Aussondern des Rauschens weniger erfolgreich Aus diesem Grund werden wir sp ter eine Kombination aus beiden Filtern verwenden In Abbildung 5 5 erkennt man deutlich dass bei Anwendung des Moving Average Filters auf Basis von 32 benachbarten Datenpunkten die Spitzen des Messsignals deutlich abgeflacht sind und an Amplitude verlieren wohingegen bei Anwendung des Savitzky Golay Filters die Amplituden in Breite und H he erhalten bleiben die Kurve jedoch insgesamt auch weniger gegl ttet wurde Dar ber hinaus zeichnet sich das Savitzky Golay Filter dadurch aus dass es keine Latenz verursacht und somit die Messdaten zeitlich nicht verf lscht In MATLAB wird das Savitzky Golay Filter bei den eingef hrten Variablenbezeichnungen mit dem Befehl gt g_filtered sgolayfilt x M n_L tn_R 1 angewendet 5 3 Geschwindigkeit des Schlittens Da wir in unserem System nur die Position des Schlittens messen k nnen aber keinerlei Informationen ber die Geschwindigkeit bzw die Beschleunigung des Wagens haben m ssen wir uns der Numerik bedienen um diese interessanten Informationen zu erhalten 5 3 1 Ermittlung durch Differenzenquotient Naheliegendste un
26. gesetzt wurde Falls ja wird so lange gewartet bis dieser den Mutex wieder freigibt Ist der Mutex dagegen frei so wird er gesetzt und fortgefahren Mit pthread mutex_unlock wird ein Mutex schlie lich wieder freigegeben Normalerweise sollte der Thread der einen Mutex gesetzt hat diesen auch wieder freigeben Wird der Mutex nicht mehr gebraucht wird er durch den Befehl pthread_mutex_destroy wieder beseitigt int pthread_mutex_init pthread_mutex_t mutex const pthread_mutexattr_t mutexattr int pthread_mutex_lock pthread_mutex_t mutex int pthread_mutex_unlock pthread_mutex_t mutex int pthread_mutex_destroy pthread_mutex_t mutex Listing 3 5 Funktionsaufrufe zur Verwendung von Mutexen Thread Sicherheit Mutexe werden in erster Linie dazu verwendet den wechselseitigen Ausschluss beim Zugriff auf globale Datenstrukturen sicherzustellen Ist dies f r eine gesamte Funktion sicherge stellt wird sie als thread sicher oder threadsafe bezeichnet Die Funktion kann also von mehreren Threads nebenl ufig aufgerufen werden kann ohne dabei Schaden anzurichten Die nebenl ufigen Aufrufe der Funktion d rfen sich hierbei gegenseitig nicht negativ beeinflus sen also insbesondere keine Race Conditions oder einen Deadlock verursachen Ein Deadlock ist ein Zustand in dem jeder Thread auf ein Ereignis wartet das nur von einem anderen Thread ausgel st werden kann der aber auch vergeblich auf ein Ereignis wartet 27 18
27. in Abschnitt 6 4 gezogen Verifikation des Pendelmodells Der Vergleich der Pendelsimulation mit den Messwerten liefert hnlich gute Ergebnisse wie bereits mit dem PTs Modell Exemplarisch sei hierf r das Fahrprofil Const1 in Abbildung 6 16 abgebildet 9 14 Messwerte bisheriges Modell 3 12 PT Modell y PT Modell on 31H ne Cc a 3 08 o o g amp L 3 06 3 04 SS L 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 Zeit ins Abbildung 6 16 Simulation des Pendels mit dem PT Modell und den Parametern aus 6 28 beim Fahrprofil Const1 im Vergleich zu den Messwerten und den anderen Modellen 6 3 3 Das PT Modell Das gefundene Simulationsmodell mit einem PT Glied als Motormodell lautet somit vollst ndig tlt K zalt K g sin z t z5 t cosz t walt 6 29 73 Kapitel 6 Einf hrung neuer Modelle mit den Konstanten K 0 01402773 Ky 1 45998265 g 9 81 6 30 K 0 97745639 T 0 00719139 6 4 Vergleich von PT und PT Modell mit dem alten Simulationsmodell In den Abbildungen 6 14 6 15 und 6 16 war bereits zu erkennen dass sich das PT 2 Modell und das PT Modell ab einer Zeit von etwa 100 ms kaum mehr unterscheiden Die Differen zen treten demnach insbesondere gleich zu Beginn auf Aufgrund der zun chst sehr flachen Steigung des PT Glieds bei einer sprunghaften n
28. kann man davon ausgehen dass auch das Gewicht des Pendels keinen Einfluss auf die Position des Wagens nimmt bzw nehmen kann Das rechtfertigt im n chsten Kapitel weiterhin ein Motormodell zu betrachten das unabh ngig von der Pendelposition ist e Keine Abh ngigkeit der Wagenposition von der Pendelposition und geschwindigkeit 51 Kapitel 5 Auswertungen 52 Kapitel 6 Einf hrung neuer Modelle Wie bereits zu Beginn zu sehen war und wie das letzte Kapitel gezeigt hat kann das bisherige Simulationsmodell die Realit t nicht ausreichend exakt darstellen Mit Hilfe der erworbenen Erkenntnisse werden im folgenden Kapitel zun chst neue Modelle f r die Beschleunigung des Wagens eingef hrt Nachdem diese parametrisiert und verifiziert wurden wird abschlie Bend ein kurzer Vergleich zeigen inwieweit es Verbesserungen zur vorherigen Situation gibt Jegliche regelungstechnische Aspekte in diesem Kapitel stammen aus 33 22 und 21 6 1 Motor als PID Glied In Abschnitt 3 1 wurde bereits beschrieben dass im Servomotor ein integrierter PID Regler arbeitet der die Steuerung des Wagens kontrolliert In Kapitel 4 ist das Wirken dieses Reglers sehr deutlich ersichtlich wenn sich der Motor nach der unterschiedlichen zeitlichen Verz gerung zu Beginn schlie lich trotzdem bei der nahezu richtigen Beschleunigung bzw Geschwindigkeit einpendelt Aus diesem Grund ist es naheliegend den Motor als PID ber tragungsglied zu modellieren Sog
29. nach Filterung bisheriges Modell Geschwindigkeit des Wagens in m s CH oO oO P D iv T T T ES io oO f i I 1 L L L L L L L 0 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 Zeit ins Abbildung 5 10 Vergleich der ermittelten Geschwindigkeit mit der Geschwindigkeit aus dem alten Simulationsmodell 5 4 Beschleunigung des Schlittens Nach der numerischen Ermittlung der Geschwindigkeit des Schlittens liegt unser Augenmerk nun auf der Bestimmung der Beschleunigung die als sp tere Stellgr e f r uns besonders interessant ist 5 4 1 Ermittlung durch Differenzenquotient Nachdem die numerische Differentiation der Positionsdaten mittels Differenzenquotient nach starkem Filtern bei der ersten Ableitung noch funktioniert hat st t sie bei der zweiten Ableitung an ihre numerischen Grenzen Der Differenzenquotient f r die zweite Ableitung MG a Al At 23 At At amp t O AP 5 18 zeigt nur noch ein sehr grobes Gezacke das abh ngig von der verwendeten St rke des Filters stark differiert Auch nur geringe Ver nderungen des Moving Average oder des Savitzky Golay Filters haben betr chtlichen Einfluss auf das Ergebnis Aus diesem Grund l sst sich ber den Wahrheitsgehalt dieser Resultate wenig aussagen Gemein haben jedoch alle Er gebnisse dass die Beschleunigung in den ersten 100 150 ms besonders stark schwankt und dies im Anschluss nachl sst siehe Abbildung 5 11 Um
30. sendes Differentialgleichungssystem 6 2 2 Parametersch tzung der Modellparameter Zun chst werden die Parameter des PTs Glieds d h des Wagenmodells gesch tzt Ist dieser Schritt durchgef hrt betrachten wir die Pendelgleichungen unseres Modells d h die ersten beiden Zeilen aus 6 18 Da sich das Wagenmodell ver ndert hat ist davon auszugehen dass auch die Parameter der Pendelgleichungen anzupassen sind da letzere direkt von der Beschleunigung des Wagens x t beeinflusst werden Nach der Sch tzung der Wagen parameter werden wir also ebenso die Pendelparameter optimieren Sch tzung der Wagenparameter Zur Sch tzung der im Modell auftretenden unbekannten Parameter T d und K werden erneut Optimierungsprobleme betrachtet die auf ein Least Squares Funktional zur Mini mierung des Abstands zwischen Positionsdaten und Modellantwort f hren Da wir nicht mehr auf den impliziten L ser RADAU5 angewiesen sind k nnen wir die Differentialglei chungen nun mit ode23 l sen und die Minimierung mit dem Kleinste Quadrate Optimierer lsqnonlin durchf hren Dieser arbeitet mit Hilfe des sogenannten Trust Region Verfahrens Die Fehlerquadratsumme wird dabei vom Algorithmus selbst gebildet Es reicht also in der zu minimierenden Zielfunktion F lediglich den Differenzvektor aus Simulationswerten und Messwerten des Fahrprofils Upswing zu berechnen und zur ckzugeben Die Differential gleichung wird hierbei mit einer relativen und absoluten
31. sind Interface Routinen zwischen MATLAB Scripts und C bzw Fortran Subroutinen und k nnen im Gegensatz zu normalen C Funktionen wie m Funktionen in MATLAB aufgerufen werden So hat man zum einen den Vorteil dass bereits vorhandene C bzw Fortran Programme nicht als m Files komplett neu geschrieben werden m ssen und zum anderen ergeben sich bei aufw ndigen Berechnungen betr chtliche Geschwindigkeitsvorteile In unserem Fall wollen wir den impliziten L ser RADAU5 aus einem MEX Interface der Technischen Universit t M nchen benutzen der in C und Fortran vorliegt und auch differential algebraische Gleichungen bis Differentationsindex drei l sen kann um sp ter f r das L sen dieser Gleichungen universell aufgestellt zu sein 20 Nachdem man einen C und einen Fortran Compiler installiert hat die beide von MATLAB unterst tzt werden kann man diese an MATLAB ankoppeln indem man mex setup auf MATLABs Kommandozeile eingibt und anschlie end die Option mit den entsprechen den Compilern ausw hlt Dieser Schritt muss nur ein einziges Mal get tigt werden Um zu berpr fen ob die Anbindung erfolgreich war gibt man ein Falls nun eine Liste mit einem C Compiler CC und einem Fortran Compiler FC als Ausgabe erscheint war der Schritt erfolgreich Die Installation des MEX Interfaces funktioniert anschlie end wie folgt 1 Entpacken des ZIP Archivs mit dem MEX Interface in ein eigenes Verzeichnis Down load des ZIP Arch
32. trajektorie abgewichen ist und deshalb durch einen Sprung versucht diese Differenz wieder wettzumachen Diese doch sehr lange Verz gerung von durchschnittlich 34 ms zu Beginn ist demnach nicht nur durch Hardwarelatenzen zu erkl ren sondern ist vielmehr auch einer Regelungenauigkeit und Tr gheit des PID Reglers geschuldet Ist anfangs etwa noch die Regeldifferenz f r ein Einschreiten des Reglers zu klein so vergr ert sich diese so schnell d h quadratisch dass der Controller dies nur durch einen extremen Sprung einholen kann Dazu kommt noch die Haftreibung des Wagens die es anfangs zu berwinden gilt All diese Punkte insbesondere die Ungewissheit ber den Zeitpunkt an dem der Controller die Beschleunigungsvorgabe erh lt werden die Modellierung dieser Latenz schwierig machen Eine schematische Darstel lung der Zusammensetzung dieser Gesamtverz gerung befindet sich in Abbildung 5 2 Da es sich beim benutzten Servoantrieb von Panasonic jedoch um eine Standard Industriel sung handelt gehen wir davon aus dass die Zeit x bis der Controller den Kontrollwert erh lt vergleichsweise gering ist Aus diesem Grund wird diese Hardwarelatenz im Weiteren ver nachlassigt w hrend versucht wird die Systemtr gheit durch das sp ter eingef hrte Modell aufzufangen Hardwarelatenz Systemtr gheit System hat noch Systemungenauigkeit zu geringe Regeldifferenz keine Informationen Tr gheit des PID Reglers Haftreibung t t gt 0 x
33. tzlich kennenlernen zu k nnen geht es bis zu Sequenzen die dem Anfang des Aufschwingprozesses f r das Pendel entsprechen Damit die Messwer te auch jederzeit reproduziert werden k nnen werden hierf r die Versuchsdurchf hrungen exakt beschrieben 4 1 Verwendete Beschleunigungsprofile 4 1 1 Step Den Anfang macht das einfachst m gliche Fahrprofil es wird eine konstante Beschleunigung f r ein paar Hundert Millisekunden vorgegeben Im regelungstechnischen Sinne entspricht dies einer Sprungfunktion weshalb das Beschleunigungsprofil in dieser Arbeit auch Step genannt wird Es werden hier drei unterschiedliche Beschleunigungen verwendet und man erh lt somit drei verschiedene Fahrprofile Step1 Step3 siehe Tabelle 4 1 Name Beschleunigung Dauer Step1 3 0 m s 500 ms Step2 1 5 m s 500 ms Step3 8 0 m s 300 ms Tabelle 4 1 Beschleunigungsprofile Step Um ein wenig Gef hl f r diese Beschleunigungen zu bekommen noch eine kurze Anmerkung Bei einer konstanten Beschleunigung von 8 0 m s erreicht man innerhalb von nur 3 47 s eine Geschwindigkeit von 100 km h Diesen Wert schafft nicht einmal das Topmodell des Audi R8 mit 550 PS Entsprechend kann aufgrund der begrenzten Bahnl nge diese Beschleunigung auch nur f r 300 ms angewendet werden 23 Kapitel 4 Versuche und Messungen 4 1 2 Const Bei diesen Fahrsequenzen wird nach einer konstanten Beschleunigung von 100 ms nochmals explizit die Beschleunigu
34. unter einem Thread eine in Ausf hrung befindliche sequentielle Folge von Befehlen vorstellen die den Prozess wie ein roter Faden durchzieht Zusammengewoben und verkn pft ergeben die einzelnen Threads dann den gesamten Prozess Mit Hilfe dieser Threads ist der sehr effiziente Entwurf parallelisierter Programme m glich Des Weiteren sch pfen die Multithreading Programme die Systemressourcen im Allgemeinen besser aus was insbesondere bei Multicore Systemen der Fall ist 35 Wir besch ftigen uns hier mit den im POSIX Standard definierten POSIX Threads kurz Pthreads In dieser Arbeit soll lediglich ganz kurz auf die f r uns n tigen und von uns verwendeten Funktionen eingegangen werden f r eine breitere und vor allem tiefere Einf hrung in das Thema sei auf die Literatur verwiesen z B in 27 und 30 Dieser Abschnitt orientiert sich haupts chlich an 35 und 4 Grundlagen Innerhalb eines Programms wird ein Pthread mit Hilfe des Datentyps pthread_t durch die Thread ID referenziert Mit der Funktion pthread_create wird ein neuer Thread gestartet wobei die ID bei einem erfolgreichen Start im ersten Parameter zur ckgeliefert wird Der neue Thread ist nichts anderes als eine Funktion mit festgelegter Signatur die von oben genannter Funktion gestartet wird und dann als eine Art main Funktion des 5zu deutsch F den 16 3 3 Programm zur Durchf hrung der Versuche erstellten Threads abl uft Die Startfunktion des neuen
35. 00 Literaturverzeichnis 10 11 12 13 14 ASCHER U M PETZOLD L R Computer Methods for Ordinary Differential Equati ons and Differental Algebraic Equations Society for Industrial and Applied Mathema tics Philadelphia 1998 AULBACH B Gew hnliche Differenzialgleichungen Elsevier GmbH M nchen 2004 BALKE H Einf hrung in die Technische Mechanik Springer Verlag Berlin Heidelberg New York 2007 BECKER M Synchronisation von Threads Mutere http www ijon de comp tutorials threads synchro html Version 22 10 2012 BERGER B Realisierung einer prototypischen Hardwarel sung f r ein inverses Pendel FPGA only based control for a very compact inverted pendulum GRIN Verlag M nchen 2004 CZADO C SCHMIDT T Mathematische Statistik Springer Verlag Heidelberg u a 2011 CZICHOS H HABIG K H Tribologie Handbuch Vieweg Teubner Verlag Wiesba den 2010 FISCHERAUER G Messtechnik Vorlesungsskript Universit t Bayreuth 2011 GANDER W HREBICEK J Solving Problems in Scientific Computing Using Maple and MATLAB Springer Verlag Berlin Heidelberg New York 2002 GOOGOL TECHNOLOGY HK LTD Programming Manual For GT Series Motion Controller 2003 GO0GOL TECHNOLOGY HK LTD Inverted Pendulum Experimental Manual 2006 GOOGOL TECHNOLOGY HK LTD Inverted Pendulum Instruction Manual 2006 GROSS D HAUGER W SCHR DER J HALL W Technische Mechanik S
36. 2 0 004 0 006 0 008 0 01 0 012 0 014 0 016 0 018 0 02 Zeit ins Abbildung 7 2 Simulation des Motormodells als lineare Approximation im Vergleich zu den Messwerten des Fahrversuchs Step1 Bei der doch eher kurzen Betrachtung in dieser Arbeit konnte zumindest festgestellt werden dass die ersten Rucker des Wagens zu Beginn zwar abgebildet werden das System aber nach kurzer Zeit instabil wird sodass das Motormodell nach k rzester Zeit stark von der Realit t abweicht 7 3 Reibung Ein Aspekt der in dieser Arbeit bisher unber cksichtigt blieb ist die auftretende Reibung des Wagens d h der Bewegungswiderstand der sich als Widerstandskraft sich ber hrender K rper gegen die Einleitung einer Relativbewegung Haftreibung bzw deren Aufrecht erhaltung Gleitreibung u ert 7 Dieser Abschnitt orientiert sich an 3 und 13 Existiert keine tangentiale Relativbewegung zwischen den Oberfl chen so liegt Haftrei bung vor Dann kann in horizontaler Richtung eine gewisse Kraft F angreifen ohne dass der betrachtete Gegenstand in Bewegung ger t Solange F unterhalb eines Grenzwertes Fo bleibt ist die Haftreibung H gleich F Bei der Grenzlast Fp nimmt die Haftreibung seinen maximalen Wert Hp an Charles Augustin de Coulomb hat gezeigt dass dieser Grenzwert franz sischer Physiker 1736 1806 80 7 3 Reibung in erster N herung proportional zur Normalkraft N ist d h zur durch die Unterlage auf den Gegenstand a
37. 2 1 Das inverse Pendel e a Prater sehe 2 2 Einf hrung des bisherigen Simulationsmodells 2 2 222 22 2 3 Beschreibung der Is Situation Sue Fre FRE SA aa 4S 3 Technische Details 3 1 Beschreibung der Apparatur are na PIE TS 3 2 Ansteuerung des Motors ooa a Ar ag eg e E dee 3 2 1 Einrichtung der Entwicklungsumgebung und Anbindung der Bi UOC Ks en a ee Br ree See at de Ge 3 2 2 Ansprechen des Motors 2 ae ea a ae ee aD 3 2 3 Die Klassen PendulumBase und AccControl 3 3 Programm zur Durchf hrung der Versuche 3 3 1 Ezkurs Threads und Mutexe ka a ek be ara 3 3 2 Schematischer Programmablauf 3 4 Anbindung des impliziten Losers RADAU5 an MATLAB 4 Versuche und Messungen 4 1 Verwendete Beschleunigungsprofle 2 Ale SVCD e Ae fase a nee der el nat 4 1 27 Conste m sup ts EURER IRRE IE SE DER DEZ BASS Distineliveraa ara amp dhe Sete ars Ne Elsa 4 14 ASS WAIN e Span Beach Ber geb er NEE 4 2 Aufzeichnung der Messdaten 2 u EN E ae Ba a 3 ACLs Bormabierung fs Ye 8 aa Ya ara in Aa er see Ken 4 2 2 Aufbereitung der Messdaten 4 2 3 Heuristische Ermittlung der Messdatengenauigkeit 4 2 4 Hinweise zur Implementierung der Beschleunigungsprofile im Si m lationsmodell i paces ze Big een Eee el rin N oT OT Ol GA Hi rh Fi Ka 12 12 12 14 16 16 19 20 23 23 23 24 24 24 25 25 26 27
38. 3 3 Programm zur Durchf hrung der Versuche 3 3 2 Schematischer Programmablauf Das Programm zum Durchf hren der Fahrversuche und zum Aufzeichnen der Messdaten l sst sich nun also wie folgt beschreiben In der main Funktion d h dem Hauptthread wird zun chst ein weiterer Thread gestartet der die Funktion SensorWriter aufruft die daf r zust ndig ist die beiden Sensoren von Pendel und Schlitten auszulesen Anschlie end wird eine Unterfunktion namens ApplyAccSequence aufgerufen die die Beschleunigungs sequenz an den Motor bergibt Abbildung 3 4 zeigt den beschriebenen Programmablauf schematisch F r die exakte Implementierung sei auf die beiliegende CD verwiesen main trend ar peer thread SensorWriter while stop 0 l Axis 1 7 call GetPosition l call pthread_join call GetAngle i main thread waits for i peer thread to terminate call pthread_create pthread_create returns call ApplyAccSequence for i 1 5 on acc i SetAccelerati stop 1 return 0 terminates peer thread pthread_join returns return 0 terminates main thread Abbildung 3 4 Schematischer Programmablauf Da der Nebenthread zum Auslesen der Sensoren nicht nur Achse 1 f r den Schlittensensor sondern auch Achse 2 f r den Pendelsensor aktiviert sind hier Mutexe n tig um den Ablauf thread safe zu machen Der kritische Bereich im Programmablauf ist hier
39. 36 ms Zeit Kontrollwert Controller erh lt Bewegung des vorgabe Kontrollwert Wagens Abbildung 5 2 Schematische Darstellung der Verz gerung des Wagens Alternativ w re eine Ber cksichtigung mittels sogenannter Retardierter Differentialgleichungen m glich 32 5 2 Exkurs Filter 5 2 Exkurs Filter In vielen Anwendungen misst man Variablen die sowohl wenig variieren als auch durch eine St rgr e beeinflusst werden Es ist dann oftmals w nschenswert ein gl ttendes Filter auf die Messdaten anzuwenden um die zugrundeliegende glatte Funktion rekonstruieren zu k nnen Deshalb werden in diesem Abschnitt zwei Filter vorgestellt die sp ter zum Einsatz kommen werden Diese sind auch ohne Kenntnisse der digitalen Signalverarbeitung leicht zu verstehen mathematisch interessant und leisten f r unsere Zwecke sehr gute Dienste Dieser Abschnitt orientiert sich dabei an 26 und 9 Die Messwerte werden in dieser Arbeit mit x x t und die gegl tteten Daten zur Zeit t mit g bezeichnet Dar ber hinaus wird angenommen dass das Rauschen unabh ngig von der untersuchten Variable ist Vor Anwendung der Filter ist es au erdem notwendig die vorhandenen nicht quidistanten Messwerte zu bearbeiten um konstante Abst nde in der Zeitmessung zu erhalten Andernsfalls w re die Gewichtung der einzelnen Messwerte beim Filtern verzerrt Es wird hierf r die MATLAB Funktion interp1 verwendet die an den St tzstellen des neuen
40. 661 1 447 1 218 8 965 4 445 4 024 Distinctivel 582 913 84 755 80 789 31 986 17 161 16 647 Distinctive2 265 000 33 812 39 893 32 806 16 761 16 947 Upswing 1262750 787 28578 485 28568 560 2422 694 221 062 221 357 Tabelle 6 3 Vergleich des PT und PT Modells mit dem bisherigen Modell bzgl der Win kelmesswerte aller verwendeten Fahrprofile 76 Kapitel 7 Weitere Ideen und Ans tze zur Modellierung Nachdem im letzten Kapitel die neuen Simulationsmodelle eingef hrt wurden werden im Folgenden weitere Ideen und Ans tze zur Modellierung kurz beschrieben Diese stellten sich zun chst als inpraktikabel heraus lassen sich aber unter Umst nden bei intensiver Betrach tung noch mit ber cksichtigen 7 1 Modellierung mit zus tzlichem Geschwindigkeits bzw Positionssollwert Bei dem in Abschnitt 6 1 1 vorgestellten PID Modell wird als Regeldifferenz der Unterschied zwischen vorgegebener und aktueller Beschleunigung betrachtet Eine Idee zur Erweiterung dieses Modells w re nicht die Differenz der Beschleunigungen zu betrachten sondern die der Positionen bzw Geschwindigkeiten Man h tte somit eine sogenannte unterlagerte Positions bzw Geschwindigkeitsregelung Die Tatsache dass der PID Regler anfangs einen gro en Sprung macht und versucht auf die Solltrajektorie der Positionskurve zu springen erfordert eigentlich solch eine unterlagerte Regelung G be es keine solche Referenzkurve der Position bzw Geschwindigkeit w re dieser extreme
41. AxisOff Disable drive 13 oo JC DG ob tr Kapitel 3 Technische Details GT_Close Close the motion controller Listing 3 1 Beispielanwendung fiir den Bewegungsmodus Independent Jogging Da in unserem Modell stets die Beschleunigung des Wagens als Stellgr e zur Stabilisie rung des Pendels vorgegeben wird und nicht etwa die Zielposition und der V Curve Bewegungsmodus derjenige ist mit dem man konstante Beschleunigungen am ehesten um setzen kann wird dieser bei den Fahrversuchen in der vorliegenden Arbeit verwendet Da wir jedoch nur die Beschleunigung und nicht die Endgeschwindigkeit vorgeben wollen missbrauchen wir diesen Modus indem wir die Zielgeschwindigkeit so hoch setzen dass diese nie erreicht wird und ndern anschlie end nur noch die Beschleunigung Dadurch wer den die waagrechten Passagen mit konstanter Geschwindigkeit in Abbildung 3 3 vermieden und lediglich die vorgegebene Beschleunigung hat Einfluss auf die Bewegung des Wagens Auf eine tiefere Einf hrung d h insbesondere die Beschreibung der Initialisierung des I Curve Bewegungsprofils f r das Finden der Startposition des Wagens und des Setzens der sogenannten Breakpoints virtuelle Sicherheitsgrenzen wird im Rahmen dieser Arbeit verzichtet F r die Erl uterung sei jedoch auf das Handbuch 10 verwiesen 3 2 3 Die Klassen PendulumBase und AccControl Die Reduzierung auf eine sehr handliche Klasse d
42. Differentialgleichungsl sern f hren sl Kapitel 7 Weitere Ideen und Ans tze zur Modellierung Aus diesem Grund ist es naheliegend den unstetigen Verlauf der Reibkraft Geschwindigkeits Kennlinie durch eine stetige Kennlinie zu ersetzen Hierf r bietet sich die Verwendung der Arkustangens Funktion g t arctan t 7 11 in Kombination mit deren zweiten Ableitung 2t 7 12 Gsm 7 12 an siehe Abbildung 7 4 Mit einer h heren Gewichtung des Arguments in der Arkustangens Funktion hnelt diese bereits sehr der Reibkraft Geschwindigkeits Kennlinie Mit Hilfe der zweiten Ableitung l sst sich zus tzlich noch die gr ere Haftreibung modellieren die es anfangs zu berwinden gilt vgl Abbildung 7 5 Die abgebildete Funktion lautet 2t f t arctan 10t ES 7 13 Durch Anpassen der vorhandenen bzw Einf gen weiterer Konstanten kann das regularisierte Verhalten beeinflusst und ge ndert werden cf La L arctan 10 t f t arctan t 2v 1 f 10 a 5 10 t Abbildung 7 4 Arkustangens und dessen zweite Ableitung Im Bereich geringer Geschwindigkeiten hat man nun keinen Sprung mehr sondern lediglich eine Kurve mit hoher Steigung Im Haftbereich entspricht die Reibung somit einer hohen viskosen D mpfung d h es sind trotz Haftens Relativgeschwindigkeiten m glich Dieser 82 7 3 Reibung EES wi arctan 10 t arctan t
43. Messdaten bei de nen die Verz gerung zu Beginn abgeschnitten wurde und eine MATLAB Routine die die Koordinatenachsen in einem Plot ins Zentrum der Grafik verschiebt 90 Anhang A Inhalt der beiliegenden CD lin_motor sid Gespeicherte Session der System Identification Toolbox zur Ap proximation des Motors als lineares Modell main lin motor m Routine zur Optimierung der Matrixeintr ge fuer die lineare Ap proximation des Motors Die Startwerte f r die Matrizen wur den durch die System Identification Toolbox gefunden siehe lin_motor sid Abb 7 2 main_reibung m Routine zur Erstellung der Abb 7 3 7 4 7 5 min lin motor m Funktion zur Berechnung des Differenzenvektors aus Simulation und Positionsmesswerten ode_sys_alt m Differentialgleichungssystem des bisherigen Modells ode_sys_lin_motor m Differentialgleichungssystem des neuen Modells preparing_data m Funktion zum Einlesen der Mess und Beschleunigungswerte DOCS GT_Programming Manual pdf GT_User Manual pdf IP_Experimental_Manual pdf IP_Instruction Manual pdf PA Minas_A4 pdf RADAUS pdf QUELLEN Programmierhandbuch des Motion Controllers Benutzerhandbuch des Motion Controllers Allgemeine Einf hrung in die Stabilisierung inver ser Pendel Erl uterungen und Aufbauhinweise f r das inverse Pendel von Googol Technology Handbuch fiir den Servomotor von Panasonic Beschreibung des MEX Interface zu RADAU5 F von Hairer und Wanner In diese
44. Sprung zu Beginn nicht zu erkl ren Um solch eine unterlagerte Regelung in unserem System zu realisieren muss die gew nsch te Sollbeschleunigung zun chst zweimal integriert werden um die gew nschte Sollposition zu erhalten Diese kann anschlie end mit der aktuellen Ist Situation verglichen werden Durch zweimaliges Ableiten dieser Differenz erh lt man schlie lich die Korrekturbeschleunigung die n tig ist um die gew nschte Position zu erreichen Diese Vorgehensweise zeigt Abbildung 7 1 als Blockschaltbild Die Versuche zur Implementierung scheiterten hier jedoch was aller dings auch an nicht konsistenten Anfangswerten f r das vorliegende differential algebraische Gleichungssystem liegen k nnte Dieses Problem w re eventuell durch den Einsatz eines Beobachters l sbar TT Kapitel 7 Weitere Ideen und Ans tze zur Modellierung u k sung Ukorrektur a a J Lo J gt O ddt didt X simulation Abbildung 7 1 Berticksichtigung der aktuellen Position bei Beschleunigungsgebung Im Folgenden wird die mathematische Herleitung dieser Idee betrachtet Grundlage ist erneut die Gleichung des PID Reglers y t Kpelt O K fel r dr Kaelt 7 1 nun ist aber die Regelabweichung e t nicht mehr die Differenz der Beschleunigungen sondern die der Positionen e t zson t Setzt 7 2 Hier ist xson t x t und Tall XMessung t Die korrigierende Beschleunigung UKo
45. Threads erwartet dabei einen Zeiger vom Typ void als Parameter und liefert am Ende einen Zeiger vom gleichen Typ als R ckgabewert zur ck Sobald ein Thread aus seiner Startfunktion zur ckkehrt beendet sich der Thread M chte man auf das Ende eines bestimmten Threads warten so benutzt man die Funktion pthread_join Ist dieser bereits beendet so kehrt pthread_join unmittelbar zur ck andernfalls blockiert der aufrufende Thread solange bis der Zielthread beendet ist Der R ckgabewert des beendeten Threads wird im Parameter value_ptr zur ckgeliefert include lt pthread h gt pthread_t thread_id int pthread_create pthread_t thread_id const pthread_attr_t attr void start_routine void zi void arg int pthread_join pthread_t thread_id void value_ptr Listing 3 4 Funktionsaufrufe zur Verwendung von Pthreads Der main Funktion eines Pthreads Programms kommt bei POSIX Threads eine eigene Rolle zu Beim Start des Programms besitzt der neue Prozess genau einen ausgezeichneten Thread den Hauptthread welcher zun chst den C Startup Code durchl uft und danach die Startfunktion des Programms d h die main Funktion aufruft Kehrt die main Funktion zur ck so wird vom Hauptthread die exit Funktion aufgerufen was zur Folge hat dass der Prozess umgehend beendet wird unabh ngig davon ob in diesem Moment noch weitere Threads aktiv sind oder nicht Es ist also wichtig zuvor alle gestarteten Threads mit pthread_j
46. UNIVERSIT T BAYREUTH FAKULT T F R MATHEMATIK PHYSIK UND INFORMATIK MATHEMATISCHES INSTITUT Analyse Weiterentwicklung und Optimierung eines Simulationsmodells f r ein inverses Pendel Diplomarbeit von Christoph Baumann 30 Oktober 2012 Betreuung Prof Dr L Gr ne Dipl Math T Jahn Danksagungen An dieser Stelle m chte ich mich bei Herrn Prof Dr Gr ne f r die interessante Themen stellung und die Bereitstellung der Apparatur ohne die die Bearbeitung des Themas dieser Arbeit in dieser Form nicht m glich gewesen w re bedanken Des Weiteren m chte ich mich f r die hervorragende Betreuung meiner Diplomarbeit herzlichst bei Herrn Thomas Jahn bedanken der mir bei der Anfertigung der vorliegenden Arbeit jederzeit mit Rat und Tat und sehr viel Engagement hilfreich zur Seite stand Au erdem m chte ich mich bei all denjenigen bedanken die mich innerhalb der Entste hungszeit dieser Diplomarbeit begleitet und unterst tzt haben Mein ganz besonderer Dank gilt meiner Freundin und meinen Eltern Meiner Freundin weil sie mir immer den n tigen R ckhalt und moralische Unterst tzung gegeben hat Meinen Eltern weil sie immer versucht haben mir in meinem Leben alles zu erm glichen und mir stets den richtigen Weg gezeigt haben Inhaltsverzeichnis 1 Einleitung 1 1 Motivation ar 2 4 Ha de aa a ah 12 AACA a 2 220 ug A Rees enden ae een edel nel 1 87 Achedenmo gr wc Sei Wo ete Er Ea Er ee Eee ee 2 Grundlagen
47. asse m und Tr gheitsmoment J angenommen Die Konstante c beschreibt den Reibungskoeffizient Es gilt dabei je gr er c desto gr er die Reibung beschreibt den Abstand des Schwerpunkts des Pendels zur Rota tionsachse Diese beiden in der zweiten Gleichung auftretenden Br che wurden im bisherigen Modell mit den Werten K 7 0 029787 und Ka un 1 466434 implementiert Da wir nur zwei Sensoren zur Messung der Schlittenposition und des Pendelwinkels zur Verf gung haben besteht unser Systemausgang y t lediglich aus den zwei Komponenten x t und 23 t y t C z t L G 3 x t ey 2 2 Dieses Modell stellt jedoch eine starke Vereinfachung der Realit t dar So wurde zum einen angenommen dass das Pendel so leicht ist dass der Einfluss seines Gewichts auf die Be wegung des Wagens vernachlassigbar ist und zum anderen wurden mehrere Konstanten so gew hlt dass sie sich gegenseitig aufheben Des Weiteren wird die Position des Wagens le diglich durch die zweimalige Integration der Beschleunigung bestimmt und dadurch werden auch hier idealisierte Verh ltnisse angenommen da Aspekte wie Verz gerungen Reibungen oder sonstige St rungen ignoriert werden 2 3 Beschreibung der Ist Situation 2 3 Beschreibung der Ist Situation Aufgrund der oben angedeuteten Vereinfachungen beim bisherigen Modell kann dieses die Realit t nicht exakt beschreiben Zur Illustration wird hier ein Vergleich zwischen den Simu lationswerten
48. bei jeweils die Zeit zwischen Aktivierung einer Achse und der Durchf hrung der gew nschten T tigkeit auf die ser Achse Es ist also notwendig diese Bereiche in allen Programmbestandteilen durch einen Mutex abzusichern Andernfalls k nnte es beispielsweise vorkommen dass der Hauptthread die Beschleunigung auf Achse 2 statt auf Achse 1 gibt falls der Nebenthread zwischenzeitlich erstere zum Auslesen des Pendelsensors aktiviert hat Dar ber hinaus ist denkbar dass der 19 Kapitel 3 Technische Details Nebenthread Achse 2 aktiviert da er im Anschluss den Pendelsensor auslesen m chte Bevor er jedoch dazu kommt k nnte vom Hauptthread bereits wieder Achse 1 f r die n chste Beschleunigungsgebung aktiviert werden Ruft nun der Nebenthread GT_GetAt1Pos amp pos zum Sensorauslesen auf so erh lt dieser die Position des Motors und nicht den Winkel des Pendels Das Programm w rde in diesem Fall sogar fehlerfrei fortfahren sodass es unbemerkt zu falschen Messwerten kommen k nnte 3 4 Anbindung des impliziten L sers RADAU5S an MATLAB Da sp ter Differentialgleichungen mit Massenmatrizen gel st werden m ssen sollen an dieser Stelle gleich die n tigen Vorbereitungen getroffen werden Die in MATLAB integrierten L ser kommen leider nicht mit Differentialgleichungen zurecht die komplexere Massenmatrizen besitzen MATLAB bietet jedoch die M glichkeit separat kompilierten Code auszuf hren die sogenannten MEX Files MEX Files
49. d einfachste Option f r die n herungsweise Bestimmung der zeitlichen Ableitung einer Funktion ist der Differenzenquotient F r eine etwas bessere N herung ver wenden wir den zentralen Differenzenquotienten At 2At d h die Steigung der Sekante zwischen den beiden Nachbar Messpunkten At bezeichnet die quidistante Schrittweite t t _1 Eine Bemerkung zur Genauigkeit des Differenzenquotienten Definieren wir f r unsere Messwerte eine universelle Messfehlerschranke e d h e lt Y Messfehler so erh lt man x t At Ej41 x t At 65 7 Del O At 5 15 H A 2 EK f 2At en 5 16 _ ad Eig 7 Eil 2 art pap OLM 38 5 3 Geschwindigkeit des Schlittens Der Fehler der zentralen Differenzenformel w re somit maximal f r und _ e er w re dann E 2 O At 5 17 Betrachtet man diese Fehlersumme betragsm ig so stellt man fest dass der zweite Sum mand mit Verringerung der Schrittweite At abnimmt der erste aber zunimmt Ihre Summe besitzt deshalb ein positives Minimum in einem gewissen At ho und damit kann man den theoretisch beliebig verkleinerbaren Fehler in diesem praktischen Fall nicht unter eine gewisse Grenze senken 29 Referenzversuch Step1 besitzt beispielsweise eine Schrittweite von 1 3697 10 4 s d h der zweite Summand der eigentliche Fehlerterm spielt auch bei sehr hohen zweiten Ableitungen d h sehr hohen Beschleunigungen keine trag
50. de dieser zun chst ins Modell integriert Nachdem sich diese Vorgehensweise als erfolglos herausstellte wurde der Motor mit einem PTs Glied approximiert Es zeigte sich dass dies eine sehr gute N herung f r das Modell des Wagens liefert Die Ergebnisse der Simulationen waren beraus zufrie denstellend und stimmten sehr gut mit den durchgef hrten Messungen berein Schlie lich wurden die Parameter der Pendelgleichung gesch tzt um ein vollst ndiges Simulationsmo dell zu erhalten Im Anschluss daran wurde eine weitere Vereinfachung in Form eines PT4 Modells eingef hrt Dieses ist zwar etwas ungenauer als das zuvor eingef hrte PT Modell im Vergleich zu diesem aber einfacher zu l sen und immer noch wesentlich genauer als das urspr ngliche Modell Abschlie end wurden noch kurz weitere Ideen und Ans tze zur Modellierung betrachtet Zusammenfassend l sst sich sagen dass somit zwei exaktere Simulationsmodelle f r den Wagen eingef hrt wurden und dies nun als Grundlage f r das weitere Arbeiten am Pendel gesehen werden kann So k nnte das nun vorliegende Testprogramm zuk nftigen Studenten dazu dienen weitere Analysen durchzuf hren um eventuell die Parameter der Pendelglei chung nicht wie hier nur zu sch tzen sondern diese auch grundlegend intensiver zu spe zifizieren Dar ber hinaus w re z B die Implementierung eines Beobachters als weiterer Schritt sicherlich sinnvoll Das gefundene PTs Modell ist zwar sehr exakt die zugrundeli
51. den gesamten Input Vektor ein einziges Polynom legt Die zweite Ableitung zeigt anschlie end ein sofortiges Einfinden der Beschleu nigung bei 3 m s ohne vorheriges Uberschwingen entspricht also ebenso wenig der Realit t Ermittlung der tats chlichen Beschleunigung mittels Spline Interpolation Man kommt schlie lich zum Ziel wenn man die Messdaten in relativ gro e unterschiedlich lange Intervalle d h ca 6 10 ms pro Intervall aufteilt und auf diesem Intervall mit einem Polynom mit hohem Grad interpoliert Die Intervalle wurden dabei berlappend gew hlt damit die Polynome auch im Randbereich stabil bleiben und nicht nach oben oder unten abhauen Aus Einfachheitsgr nden wurden hier keine Randbedingungen wie sonst in der Splineinterpolation blich definiert Aber auch so ist das Prinzip und die Funktions weise gut zu erkennen W rde man einen niedrigeren Polynomgrad w hlen so w ren f r ein originalgetreues messdatentreues Fitting kleinere Zeitintervalle n tig Das h tte jedoch wiederum zur Folge dass Messfehler bzw St rungen st rker zum Tragen kommen Zudem wurde die Verz gerungszeit von etwa 34 ms vgl Rechnung 5 1 in der der Wagen im Nullpunkt verharrt abgeschnitten Die zweiten Ableitungen der Polynome aus den einzelnen Intervallen in Abbildung 5 16 rot und blau gef rbt werden anschlie end zu einer Funktion zusammengesetzt in gr n gestrichelt Die auf diese Weise erhaltene Beschleunigu
52. derung der Eingangsgr e vgl Abbil dung 6 5 kann die Verz gerung des Systems zu Beginn dadurch besser modelliert werden Die Kurve des PT2 Modells ist somit wesentlich schneller n her an der Kurve der Messwerte als das PT Modell Dieses Verhalten ist insbesondere im Ausschnitt der ersten 100 ms des Fahrprofils Step3 in Abbildung 6 17 gut zu sehen 0 0357 ___PT Modell 0 03 ___PT Modell E Messwerte amp 0 0257 bisheriges Modell 2 oO 2 0 02 wn Sons 2 3 0 01 a 0 005 Ok f i i 0 0 01 0 02 0 03 0 04 0 05 0 06 0 07 0 08 0 09 Zeitins Abbildung 6 17 Simulation des Wagens in den verschiedenen Modellen im Vergleich zu den Messwerten beim Fahrprofil Step3 Je l nger eine konstante Beschleunigung angewendet wird desto mehr n hert sich die Kurve des PT Modells der des PT Modells an Um die Verbesserungen im Vergleich zum bisheri gen Simulationsmodell nicht nur grafisch darzulegen wird dieses in Tabelle 6 1 mit den neu eingef hrten PT und PT Modellen verglichen Hierzu werden die Fehlerquadratsumme 74 6 4 Vergleich von PT und PT Modell mit dem alten Simulationsmodell Fehlerquadratsumme Maximaler Abstand in 107 m in 1078 m Fahrprofil altes Modell PT Modell PT Modell altes Modell PT 2 Modell PT Modell Stepl 405 878 1 100 4 482 20 882 1 032 2 009 Step2 115 826 0 557 1 722 10 550 0 687 1 135 Step3 492 488 1 434 7 515 27 663 2 709 3
53. des aktuellen vereinfachten Modells und den realen Messwerten der Wagenpo sition gezeigt Man sieht deutlich dass bereits beim denkbar einfachsten Fahrversuch mit lediglich einer konstanten Beschleunigung nach einer halben Sekunde eine Abweichung von ber 2 cm vorhanden ist Bei einem Fahrweg von nur 35 cm entspricht das einem Fehler von knapp 6 0 47 pbisheriges Modell ors Messwerte X 0 5 Y 0 3543 D r 0 257 0 2 0 157 Position des Wagens in m DIr 0 057 0 0 0 1 0 2 0 3 0 4 0 5 Zeitins Abbildung 2 2 Vergleich der Positionsmesswerte aus dem Fahrversuch Stepl mit den Si mulationswerten aus dem bisherigen Simulationsmodell Aufgrund dieser inkorrekten Wagenposition ist nat rlich auch der Pendelwinkel entspre chend verf lscht und nicht realit tsnah Die folgende Abbildung 2 3 zeigt den Vergleich der gemessenen Winkelwerte mit den Werten aus dem bisherigen Simulationsmodell Die ma ximale Differenz betr gt 0 01473 rad dies entspricht einem Winkel von 0 84 Dies mag zun chst wenig erscheinen beachtet man aber die Pendell nge von 80 cm so betr gt die Differenz der Bogenl nge bereits 1 18 cm Dieser Fehler kann also durchaus entscheidend daf r verantwortlich sein ob das Pendel aufrecht stehen bleibt oder nicht An dieser Stelle ist anzumerken dass in der vorliegenden Arbeit die Daten aus Messwerten stets gr n das alte Modell stets schwarz und neue Modelle rot
54. e 85 Kapitel 8 Zusammenfassung genden Differentialgleichungen aufgrund der enormen Spitzen bei Beschleunigungswechseln vgl Abbildung 6 6 aber extrem steif Diese Stellen k nnen numerisch problematisch wer den und setzen einen sehr genauen L ser voraus Man hat also eine genaue Simulation diese geht jedoch mit einer langen Rechenzeit einher M chte man nun eine Echtzeitregelung mit kurzen Steuerungssequenzen realisieren so k nnten die einzelnen Takte nicht lang genug sein um darin das steife Differentialgleichungssystem exakt l sen zu k nnen In diesem Fall ist es eventuell besser das ein wenig ungenauere aber daf r schneller zu l sende PT Modell f r die Simulation zu verwenden da das PT2 Modell bei ungenauer L sung anf lliger f r Fehler wird Es ist somit immer von der konkreten Anwendungssituation abh ngig welches Modell im Endeffekt die besseren Ergebnisse in Bezug auf die Regelung des Pendels liefert Beide Modelle haben ihre Vor und Nachteile weshalb stets ein Trade Off zwischen Kosten und Qualit t sprich Berechnungszeit und Genauigkeit n tig ist 86 Anhang A Inhalt der beiliegenden CD Auf der beiliegenden CD befinden neben der PDF Version dieser Arbeit alle Program me die in diese Arbeit eingegangen sind Dies ist zum einen das C C Programm zur Durchf hrung der Fahrversuche am Pendel Zum anderen sind es die Implementierungen in MATLAB der in dieser Arbeit verwendeten Verfahren und die Rou
55. e E 0 07 2 5 0 06 S 2 f zn 215 0 04 2 Cc a 0 03 2 1 73 amp 0 02 2 PID Modell 0 01 2 0 57 Beschleunigungs m profil Ot 0 0 0 05 0 1 0 15 0 2 0 0 1 0 2 0 3 0 4 Zeitins Zeitins Abbildung 6 4 Simulation des Fahrprofils Step1 mit dem PID Modell und den Parametern aus 6 15 f r RADAU5 gibt es jedoch keine M glichkeit die minimale Schrittweite von 1076 zu ver ndern weshalb 1sqnonlin nur mit geringer Genauigkeit verwendbar w re Auch wenn das Vorgehen hier reine Heuristik ist legen die Ergebnisse der Parame tersch tzung nahe dass dieses Modell nicht das Richtige sein kann Allem Anschein nach ist es nicht m glich die Reaktionen des PID Reglers im Servomotor exakt und in allen Einzelheiten nachbilden zu k nnen Daf r besteht das System wom glich aus zu vielen ein zelnen Aspekten hier seien nur kurz Haft und Gleitreibung evtl auch Hysterese durch das mechanische Spiel der Umlenkzahnr der am Band bzw im Motor die Latenz und der berm ig gro e Sprung zu Beginn genannt Aus diesem Grund wollen wir nun eine Approximation des Ganzen betrachten und zu einem neuen Modell berleiten 6 2 Motor als PT Glied Wie im vorherigen Abschnitt zu sehen war ist es nicht m glich die gro e Verz gerung zu Beginn und den enormen Sprung bzw das extreme berschwingen danach mit dem PID bertragungsglied zu modellieren Aus diesem Grund wollen wir nun zu einer Approximatio
56. ealit t entsprechen Aus diesem Grund wird die Filterl nge des Moving Average Filters m glichst gering gehalten und zus tzlich das Gl ttungsfilter von Savitzky Golay angewendet Wie oben bereits erw hnt erh lt dieses die charakteristi schen d h h herfrequentigen Kurven der Messdaten Bei Anwendung dieses zus tzlichen Gl ttungsfilters hat man zwei Stellschrauben an denen man drehen kann zum einen die Fenstergr e d h die Anzahl an Datenpunkten die bei der Berechnung mit einbezogen werden zum anderen den Grad des angepassten Polynoms Durch Anwenden des Filters kann das Rauschen stark reduziert werden Aufgrund des Polynomfittings sind die gegl tte ten Daten umso wackeliger je h her der Polynomgrad ist und je weniger Datenpunkte 40 5 3 Geschwindigkeit des Schlittens man betrachtet da sich in diesem Fall das Polynom den verrauschten Daten am ehesten anschmiegen kann Wie im letzten Abschnitt beschrieben ist an dieser Stelle visuelles Opti mieren n tig um ein akzeptables Ergebnisbild zu erhalten Als gute Werte haben sich dabei ein Polynom dritten Grades sowie eine Fensterbreite von etwa 61 Datenpunkten herausge stellt Das beste Ergebnis wurde dabei erzielt wenn man vorher das Moving Average Filter der L nge 50 angewendet hat Vergleicht man das Ergebnis das in Abbildung 5 8 zusehen ist nun mit dem rechten oberen Bild in Abbildung 5 7 so ist deutlich zu erkennen wie sehr das Rauschen abgenommen hat
57. ean_std m Betrachtung der Verz gerung zu Beginn Berechnung von Mit telwert Standardabweichung Varianz minimale und maximale Verz gerung zu Beginn der Messungen ode_sys_alt m Differentialgleichungssystem des bisherigen Modells ode_sys_poly m Differentialgleichungssystem f r A PF_intervall m preparing_data m Funktion zum Einlesen der Mess und Beschleunigungswerte SG_beispiele m Diese Routine beinhaltet zwei Beispiele fiir die Anwendung des Savitzky Golay Filters Abb 5 4 JV DQ MA SG m Berechnung der Geschwindigkeit aus den Positionsdaten mittels Differenzenquotienten nach Anwendung von Moving Average Filter und Savitzky Golay Filter mit unterschiedlichen Fil terl ngen und mit Hilfe der Savitzy Golay Koeffizienten aus implizitem Polynomfitting nach Anwendung des Moving Average Filters Abb 5 8 5 9 5 10 V_DQ_MA m Berechnung der Geschwindigkeit aus den Positionsdaten mittels Differenzenquotienten nach Anwendung des Moving Average Filters mit unterschiedlichen Filterl ngen Abb 5 6 5 7 MATLAB KAPITEL6_PID Der Ordner enth lt alle Dateien die zum MEX Interface des impliziten Losers RADAU5 geh ren Des Weiteren sind folgende Dateien enthalten main_opti m Routine zur Optimierung der Parameter f r das PID Modell des Wagens anhand der gemessenen Positionsdaten und anschlies sendes Plotten des Ergebnisses Abb 6 2 6 3 6 4 min PID para m Funktion zur Berechnung der Zielfunktion Fehlerquadratsumme aus Si
58. eare Approximation die Messdaten nicht so exakt ann hert wie das vorher ge fundene Polynom ist das Ergebnis entsprechend geringer Man beachte jedoch stets die Gr enordnung in der man sich hier bewegt 1074 m und dementsprechend auch die Emp findlichkeit der Messwerte ndert man einen Messpunkt um nur H mm 5 10 m ab so ndert sich die Beschleunigung bereits um 44 367 m s Betrachtet man die anderen Mes sungen des Fahrprofils Step1 so treten bereits hier gro e Unterschiede auf Es l sst sich 46 5 4 Beschleunigung des Schlittens jedoch festhalten dass die Steigung der ersten Rampe d h die erste Beschleunigung stets ber 100 m s liegt W rde man also die Messdaten absolut realistisch nachbilden wollen so br uchte man nach den 36 ms Latenz zu Beginn ein starkes Aufschwingen auf etwa 100 bis knapp 300 m s obwohl als Zielwert bei Stepl nur 3 m s vorgegeben waren Dieser Fakt ist mehr als verwundernd doch auch die anderen Fahrprofile best tigen dieses Verhalten Ermittlung der richtigen Fitting Parameter Nun sollen auch die Beschleunigungen im weiteren Verlauf mittels Kurvenanpassung ap proximiert werden Es stellt sich die Frage welchen Grad man f r das Polynom w hlt und wieviel Datenpunkte man f r das Polynomfitten betrachtet Es l sst sich schnell herausstellen dass das Fitten mit nur wenigen Datenpunkten nicht erfolgreich ist Beispielhaft ist in Abbildung 5 14 das Ergebnis der Ku
59. eine sogenannte Massenmatrix M auf die hier folgenderma en aussieht 100000 0 010000 0 001000 0 M 0 00100 0 6 6 000010 K 000001 0 000000 0 Man erh lt also schlie lich eine Differentialgleichung der Form Milt FE 6 7 59 Kapitel 6 Einf hrung neuer Modelle 6 1 2 Exkurs Massenmatrix und Differential Algebraische Glei chung Da das Gebiet der Differential Algebraischen Gleichungen ein sehr breites vielschichtiges und komplexes Anwendungsgebiet ist ist es schwierig es knapp zu beschreiben Demnach wird sich hier auf die Erl uterung der Grundbegriffe beschr nkt die n tig sind um das weitere Vorgehen in dieser Arbeit nachvollziehen zu k nnen Dieser Abschnitt richtet sich dabei nach 17 1 und 19 Wie wir gesehen haben f hrt das neue Simulationsmodell aus 6 5 auf ein Differential gleichungssystem der Form M t x i t f t x to xo 6 8 mit sogenannter Massenmatrix M t x Ist die Massenmatrix invertierbar so l sst sich die Differentialgleichung umstellen zu x t M f t x und hat f r jeden Anfangswert x9 zur Zeit to eine L sung Doch auch wenn eine Invertierung m glich w re ist diese nicht immer sinnvoll So k nnte die Matrix beispielsweise vorteilhafte Eigenschaften f r die numerische Behandlung besitzen Man denke dabei an d nn besetzte Matrizen bei denen die Inverse in der Regel nicht d nn besetzt ist Zum anderen kann 6 8 die naheliegende Darstellung des zugrundeliege
60. eit ins Abbildung 6 9 Simulation des Fahrprofils Step3 mit dem PT3 Modell und den Parametern aus 6 19 sowohl bei konstanten Beschleunigungsstiicken als auch bei Beschleunigungswechseln sehr ge nau getroffen Hierzu sei auf den Ausschnitt der in Abbildung 6 10 zu sehen ist verwiesen Man beachte hierbei dass es sich nach wie vor um eine Vorw rtssimulation handelt und wiederum der Bereich nach drei Sekunden Fahrzeit betrachtet wird Sch tzung der Pendelparameter Betrachtet man das neu eingefiihrte Modell 6 18 so sieht man dass auch die Pendel gleichung in Zeile 2 in Form von 25 t direkt vom neuen Motormodell beeinflusst wird Dementsprechend werden in diesem Abschnitt die Parameter angepasst und neu gesch tzt E a9 t SH Lem Zur Sch tzung der auftretenden Parameter K und K werden erneut Optimierungsproble me betrachtet die auf ein Least Squares Funktional f hren diesmal jedoch zur Minimie rung des Abstands zwischen gemessenen Winkelwerten des Pendels und der entsprechenden Modellantwort Auch hier kann erneut der Kleinste Quadrate Optimierer lsqnonlin zur 66 6 2 Motor als PT Glied approx Geschw aus Mess daten mittels Savitzy Golay bisheriges Modell PT Modell 0 5 0 4 0 3 0 2 Dir 0 1F 0 2F 0 3F Geschwindigkeit des Wagens in m s CH 0 4 0 5 2 6 2 7 2 8 2 9 3 3 1 3 2 3 3 Zeit ins Abbildung 6 10 Simulation des Fa
61. en 0 9 Approximation mittels Savitzy Golay 0 8 bisheriges Modell PT Modell 0 7 PT Modell 06 S G05 g 30 4 2 8 0 3 0 2 0 1 E 0 0 05 0 1 0 15 0 2 0 25 0 3 Zeit ins Abbildung 6 15 Vergleich der Geschwindigkeiten des Wagens beim Fahrprofil Step1 Sch tzung der Pendelparameter Auch hier ist es aufgrund der ver nderten Motormodellierung n tig die Pendelparameter neu zu sch tzen Analog zum Vorgehen beim PT3 Modell verwenden wir lsqnonlin zur Minimie rung des Abstands zwischen gemessenen Winkelwerten des Pendels und der entsprechenden Modellantwort Die zu minimierende Zielfunktion F berechnet somit wieder den Differenz vektor aus Simulationswerten und Winkelmessungen des Fahrprofils Upswing und gibt diesen zur ck Es werden erneut dieselben Fehlertoleranzen wie oben verwendet Als Start werte werden wiederum die Parameter aus dem bisherigen Modell gew hlt K 0 029787 und K 1 466434 Im vorliegenden Fall liefert der Algorithmus f r diese Anfangswerte die 72 6 3 Motor als PT Glied folgende L sung K 0 01402773 Ka 1 45998265 6 28 Analog dem PTs Modell ndert sich insbesondere die Reibungskonstante AK prozentual ge sehen betr chtlich im Vergleich zum bisherigen Modell Die visuelle berpr fung der gesch tzten Parameter erfolgt wie oben im Anschluss der numerische Vergleich zum alten Simulationsmodells wird am Ende des Kapitels
62. en wird eine Minimal wertsuche mit der MATLAB Funktion fminsearch durchgef hrt Diese Funktion wendet den Simplex Algorithmus an um ein Minimum zu finden und wird mit res fminsearch F awe options aufgerufen Dabei werden in res die drei berechneten Parameter Kp K und Ka zur ckgelie fert F ist die zu minimierende Funktion die in unserem Fall die Least Squares Abweichung der Simulation von 6 5 mit den aktuell verwendeten Parametern und den Messwerten be rechnet Simulati Me 2 ef Dn Kir Ka in IK Key Rp ent 6 18 J 58 6 1 Motor als PID Glied awe enth lt die Startwerte unserer Parameter sowie options einstellbare Optionen wie Genauigkeit oder Maximalzahl an Iterationen Beim verwendeten Simplex Verfahren ist es sehr wichtig sinnvolle Startwerte vorzugeben da der Algorithmus auch nach Auffinden eines lokalen Minimums abbricht In F kommt das MATLAB Interface von RADAU5 zum Einsatz Da man hierbei keine weiteren Parameter an die Differentialgleichung bergeben kann wer den die Parameter global definiert An dieser Stelle sei nochmal explizit erw hnt dass wir hier nur die Messwerte des Schlittens mit den Simulationswerten f r die Position vergleichen und anhand dieser optimieren Die Messwerte des Pendels werden hier noch nicht betrachtet Als Referenzprofil wird dabei der kompliziertere Fahrversuch Upswing verwendet um m glichst viele unterschiedliche Beschleunigungen auf das System zu geben und
63. en Problems besteht darin dass ein Thread der eine globale oder stati sche Variable bearbeiten und somit in einen kritischen Bereich eintreten m chte den Zugriff aller anderen Threads darauf blockiert und erst dann wieder freigibt wenn er fertig ist Dies geschieht mit Hilfe sogenannter Mutexe Ein Thread Nr 1 kann zun chst einen Mutex setzen Jeder andere Thread der versucht diesen Mutex ebenfalls zu setzen wird solange blockiert bis Thread Nr 1 ihn wieder freigegeben hat Bildlich kann man sich einen Mutex als einen Ball vorstellen den sich die Threads gegenseitig zuspielen und nur derjenige Thread darf den kritischen Bereich im Code ausf hren der den Ball aktuell besitzt Der Begriff Mutex ist ein Kunstwort das als Abk rzung f r Mutual Exclusion also gegenseitigen Ausschluss steht Ein Mutex wird innerhalb eines Programms durch eine Variable vom Typ pthread mutex_t repr sentiert Damit ein Mutex Sinn macht m ssen nat rlich alle Threads die mit diesem Mutex zu tun haben auf ihn zugreifen k nnen In der Regel werden Mutexe deshalb globale oder statische Variablen sein Bevor man einen Mutex benutzen kann muss man ihn mittels der Funktion pthread mutex init initialisieren Im zweiten Argument k nnen dabei Attribute die die Eigenschaften des Mutex bestimmen bergeben werden Um einen Mutex zu setzen wird die Funktion pthread_mutex_lock aufgerufen und es wird berpr ft ob der Mutex bereits von einem anderen Thread
64. enannte bertragungsglieder sind Verkn pfungen die auf eine Ursache Eingangsgr e eine bestimmte Wirkung Ausgangsgr e zeigen Beim PID Glied handelt es sich somit um ein sogenanntes bertragungsglied mit Proportional Integral und Differenzieranteil F r eine Einf hrung in das Themengebiet der Regelungs technik wird 33 und 21 empfohlen Bei Verwendung des PID Glieds h tte man somit eine Kaskadenregelung d h eine In einanderschachtelung mehrerer Regler Zum einen kann der PID Regler zur Regelung des Motors als innerer Regelkreis und zum anderen kann die Stabilisierung des ganzen Systems d h des Pendels als u erer Regelkreis betrachtet werden Dieser Aufbau wurde bereits in Abbildung 3 2 schematisch dargestellt Die Reglerausgangsgr e des u eren Reglers auch F hrungsregler genannt dient dann als F hrungsgr e f r den inneren Regler Folgeregler Die Funktionalbeziehung im Zeitbereich f r den PID Regler in Parallelstruktur lautet ee e r dr Kaelt er mit e t uson t Ulst t 53 Kapitel 6 Einf hrung neuer Modelle e t ist die sogenannte Regelabweichung d h die Differenz zwischen gew nschter Beschleu nigung und aktueller Beschleunigung und somit Eingangsgr e des Reglers uson ist demnach die Sollgr e die der u ere Regler z B MPC zur Stabilisierung des Pendels vorgibt y t ist die Stellgr e und somit Ausgangsgr e des Reglers Das P Glied d h der erste Summa
65. end genannt 5 e Stabilisierung der vertikalen Position eines Space Shuttles zu Beginn des Fluges Balancieren einer Rakete bei der Fahrt zur Startrampe e Halten eines zweibeinigen Roboters in einer senkrechten Position auch ein stillste hender Mensch kann so als inverses Pendel betrachtet werden e Dynamik eines Roboterarms falls der Kraftangriff unter dem Schwerpunkt des Armes liegt und das System somit instabil ist Kapitel 1 Einleitung e Einachsige selbststabilisierende Roller z B Segway e Lastkranregelung Das inverse Pendel ist von seiner theoretischen Modellierung und seinen Anforderungen an eine Stabilisierung her gesehen durchaus komplex gleichzeitig aber von seinem einfachen Aufbau und seiner Anschaulichkeit her kaum zu bertreffen Diese Eigenschaften machen das inverse Pendel weltweit zu beliebten Lehr und Praktikumsobjekten im Fachbereich der Regelungstechnik Die Problemstellung beim inversen Pendel ist dementsprechend bereits gut erforscht aber dennoch nach wie vor spannend da hier verschiedene Forschungsbereiche wie Robotik Kontrolltheorie und rechnergest tzte Regelung kombiniert werden Da es sich bei diesem System um ein nichtlineares instabiles und unteraktuiertes System handelt eignet es sich hervorragend als Experimentierplattform f r das berpr fen bestehender und dem Entwicklen neuer Regelungsalgorithmen 11 Die Realisierung eines geeigneten Reglers kann mittels verschiedener Entwurfsstrateg
66. ende Rolle Der Gesamtfehler der N herung wird also vom Messfehler dem ersten Summanden dominiert Aus diesem Grund kommt man auch um ein starkes Filtern der Messdaten nicht herum damit sich die Messwerte gegenseitig etwas angleichen und somit der Messfehler relativiert wird Um die F higkeiten der Filter sp ter noch besser einsch tzen zu k nnen soll hier dennoch auch kurz das Ergebnis des Differenzenquotienten bei Anwendung auf die rohen Messdaten gezeigt werden In Abbildung 5 6 sieht man wie erwartet das starke Messrauschen und somit nicht hilfreiche Bild bei Anwendung des Differenzenquotienten ohne vorheriges Filtern T MI er gt for T T _ DSJ T oo o BR o o T T T T Geschwindigkeit des Wagens in m s oO N T U 0 0 05 0 1 0 15 0 Zeitins oO 0 4 Abbildung 5 6 Ermittelte Geschwindigkeit mittels Differenzenquotient mit den ungefilterten Messdaten aus Step1 Aus diesem Grund wird zun chst das Moving Average Filter aus dem vorherigen Abschnitt angewendet siehe Abbildung 5 7 Auch wenn man bei einer kleinen Filterl nge von zehn Werten immer noch einiges an Rauschen hat kann man schon erkennen dass das Zentrum des Rauschens einer linearen Asymptote folgt was grunds tzlich schon einmal korrekt ist 39 Kapitel 5 Auswertungen Beschleunigung konstant Geschwindigkeit steigt linear Zudem sieht man dass das Rau schen umso gr er wird je gr
67. er S tti gungswert ist oder ob dieser noch weiter steigen w rde Nichtsdestotrotz l sst sich zumindest erkennen dass auch durch den Sprung der Beschleunigung zu Beginn der R ckstand nicht komplett wettgemacht werden kann und somit nicht die Position erreicht wird die norma lerweise mit dieser Beschleunigung erreicht h tte werden m ssen 5 5 Erkenntnisse Aus den vorherigen Abschnitten dieses Kapitels l sst sich f r die Bewegung des Schlittens zusammenfassend festhalten e Gro e Latenz zu Beginn diese f llt jedoch zuweilen etwas unterschiedlich aus siehe Abbildung 4 3 e Anschlie end extremer Sprung der Beschleunigung und Versuch des Einholens der eigentlichen Fahrtrajektorie e Einpendeln der Beschleunigungs und Geschwindigkeitskurve etwas unterhalb der ur spr nglich vorgegebenen Werte Wenn der Motor aktiv ist und man eine Beschleunigung von 0 m s wirken l sst so kann man feststellen dass der Wagen absolut festzusitzen scheint und auch per Hand nicht zu ver schieben ist Der integrierte Regler ist also schnell genug und der Motor stark genug um sich von diesen u eren Bedingungen nicht beeinflussen zu lassen bzw ihnen entgegenzuwirken Da der Regler aber zumindest eine Regeldifferenz wahrnehmen muss bevor er einschreitet hat man zumindest ein marginales Spiel von mindestens einem Tick im Motor Da dies aber minimal ist und deshalb keinen merklichen Einfluss auf das restliche Verhalten des Systems hat
68. erden wiederum mit den Messungen des Fahrprofils Upswing verglichen Als Startwerte f r die Optimierung werden T 0 010 und K 0 99 gew hlt Der Algorithmus liefert anschlie end die folgenden L sungswerte T 0 00719139 K 0 97745639 6 27 Die visuelle berpr fung der gesch tzten Parameter erfolgt wiederum direkt im Anschluss der numerische Vergleich zum alten Simulationsmodells danach zum Abschluss des Kapitels in Abschnitt 6 4 70 6 3 Motor als PT Glied Verifikation des Wagenmodells Die Simulation des Fahrprofils Upswing mit dem PT Modell und den Parametern aus 6 27 ist in Abbildung 6 13 zu sehen In der linken Grafik sind auch nach einer Steuerungs zeit von fiinf Sekunden keine merklichen Unterschiede zwischen Simulation und Messung erkennbar Im rechten Teil der Abbildung sieht man deutlich dass nun kein Uberschwingen der Beschleunigungen mehr vorhanden ist PT Modell PT Modell Messwerte vorgeg Beschleunigungsprofil 1 i Position des Wagens in m oO Beschleunigung des Wagens in mis oO U L L L 1 2 3 4 5 0 1 2 3 4 5 Zeit ins Zeit ins Abbildung 6 13 Simulation des Wagens mit dem PT Modell und den Parametern aus 6 27 beim Fahrprofil Upswing Auch der Vergleich mit dem Fahrprofil Step2 ist sehr zufriedenstellend siehe Abb
69. ersionen von inversen Pendeln seien hier das r umliche inverse Pendel das rotatorische inverse Pendel das mehrachsige inverse Pendel und das dop pelte inverse Pendel genannt Diese alternativen Pendelmodelle k nnen beispielsweise in 5 nachgelesen werden 2 2 Einf hrung des bisherigen Simulationsmodells F r eine detaillierte Herleitung des Pendelmodells ohne Schlitten mittels physikalischer Ge setze sei hier auf 2 und 15 verwiesen Der Wagen des inversen Pendels l sst sich durch Vorgabe der Beschleunigung steuern welche durch zweimaliges Integrieren die Position lie fert Durch Vereinfachung der vorhandenen Gleichungen und berf hrung in ein MATLAB konformes Differentialgleichungssystem erster Ordnung erh lt man schlie lich t t x2 t c ml 3 i t 7 r t F gsinai t w t cossi stet ult 2 1 i t x4 t amp 4 t u t Kapitel 2 Grundlagen Abbildung 2 1 Schematische Darstellung des inversen Pendels auf einem Wagen Die Komponenten des Zustandsvektors x t R und u t R beschreiben dabei folgende Zust nde xy t Winkel t zwischen Pendel und aufrechter Position nimmt mit dem Uhrzeigersinn zu Zalt Winkelgeschwindigkeit des Pendels z t Position des Schlittens Galt Geschwindigkeit des Schlittens u t Beschleunigung des Schlittens Eingang des Systems und Kontrollgr e In diesem Modell wird das Pendel als starrer K rper mit M
70. eschleunigung bestimmen Das Anpassen von Kurven an Daten stellt eine der 44 5 4 Beschleunigung des Schlittens wichtigsten Methoden zur Bestimmung funktionaler Zusammenh nge verschiedener Gr en dar Nach Glymour ist die Kurvenanpassung ein zweistufiges Verfahren Die erste Stufe die Bestimmung des wahren Kurventyps ist zumeist von Intuitionen gelenkt wohingegen die zweite Stufe die Berechnung der Bestapproximation innerhalb der Kurven des zuvor gew hlten Typs ein wohlverstandener Schritt ist Dieser zweite Schritt basiert zumeist auf der Kleinste Quadrate Methode Die erste Stufe h ngt hingegen von zwei konkurrierenden Anspr chen ab Einfachheit versus Genauigkeit Einerseits soll eine Kurve die Daten hin reichend gut approximieren andererseits dabei aber m glichst einfach sein Es stellt sich bei Verwendung der Kurvenanpassung daher stets die Frage was ein geeignetes Trade Off Kriterium dieser beiden Anspr che ist 25 Da die Gr en Beschleunigung Geschwindigkeit und Position des Wagens polynomial zu sammenh ngen liegt es in unserem Fall nahe Polynome als Kurventyp f r die Anpassung zu verwenden Aufgrund des betrachteten enormen berschwingens werden wir jedoch auch Polynome verschiedenen Grades verwenden um diese an unsere Positionsmesswerte anzu passen Zur Bestimmung der Beschleunigung braucht das Polynom anschlie end lediglich zweimal algebraisch abgeleitet werden Wir haben allgemein ein Polynom vom Grad k der
71. fzeichnung nicht exakt im Nullpunkt startet Da die Zeitmessung unabh ngig von der Beschleunigungssequenz startet f ngt auch die Messdatenaufzeichnung 26 4 2 Aufzeichnung der Messdaten nicht exakt mit der Zeit Null an Des Weiteren f llt auf dass zumeist die erste Beschleuni gung fr her als die erste Positionsmessung stattfindet Dies liegt darin begr ndet dass nicht festgelegt ist wann welchem Thread CPU Zeit zugewiesen wird In unserem Fall wird also meist zuerst die erste Beschleunigung gegeben bevor anschlie end die Messdatenaufzeich nung startet Da die erste Positionsver nderung jedoch erst wesentlich sp ter eintritt siehe Abschnitt 5 1 spielt das keine Rolle Um es sp ter beim Verarbeiten der Messdaten leichter zu haben werden aus oben genann ten Gr nden mit Hilfe der Routine preparing_data m sowohl die Zeit der Messaufzeichungen als auch die Positionmessungen in die Null geschoben An diesem Punkt ist nat rlich wichtig diese Zeitkorrektur auch f r die Zeitpunkte der Beschleunigungsgebung zu ber cksichtigen Ergebnis dieser Datenmanipulation ist also dass sowohl Zeit als auch Position stets in der Null beginnen Auch die Messwerte des Pendelwinkels werden bearbeitet Bei den Messwerten ist die untere Ruhelage der Nullpunkt die aufrechte Position des Pendels entspricht somit dem Winkel m bzw 7 Beim verwendeten Differentialgleichungsmodell wird aber R cksicht auf die Arbeitsweise des Zustandsreglers genomme
72. gebnisse der anderen Fahrversuche verzichtet werden 5 1 Verz gerungszeit gt T m T li Position des Wagens in m w T T ll PR a 0 01 0 02 0 03 0 04 0 05 0 06 0 07 Zeit in s CH Abbildung 5 1 Ausschnitt der Messwerte des Fahrversuchs Step1 Schon beim ersten Betrachten der aufgenommenen Messdaten f llt auf dass es relativ lange dauert bis sich der Wagen das erste Mal bewegt siehe Abbildung 5 1 Bei den vorliegen den 48 Datens tzen 8 Fahrprofile 6 Messungen liegt der arithmetische Mittelwert dieser Verz gerung bei C Slr yo E 5 1 i l 31 Kapitel 5 Auswertungen Man erh lt eine Standardabweichung von n X zi T 4 420 ms 5 2 i 1 1 n 1 Die besondere Normierung mit n 1 sorgt daf r dass die Stichprobenvarianz erwartungs treu ist Diese Eigenschaft verliert man wenn stattdessen mit n normiert wird 6 Die minimale Verz gerung ist 22 268 ms und die maximale Verz gerung 37 882 ms Die meisten Verz gerungen liegen im Bereich von 36 ms es gibt jedoch einige Ausrei er nach unten vgl Abbildung 4 3 die deshalb den Mittelwert etwas vermindern Dar ber hinaus f llt auf dass die Ortskurve anschlie end nicht wie anzunehmen w re quadratisch zunimmt sondern sprungartig ansteigt und etwas hin und herschwingt Das deutet daraufhin dass der integrierte Controller merkt wie weit er inzwischen von der Soll
73. gebung und Anbindung der Bibliothek Es wird als Entwicklungsumgebung Code Blocks 10 05 verwendet und als Compilerpaket ist MinGW installiert Nachdem das Projekt angelegt worden ist und man die Headerdatei der Bibliothek Userlib h eingebunden hat funktioniert das Kompilieren und Anbinden der DLL in der Kommandozeile ganz simpel mit gt gcc c main cpp Compile or assemble the source file s but do not link gt gcc main o GT400 DLL Link the compiled file s with library Falls man direkt in Code Blocks kompilieren und linken m chte so muss man in der Meniilei ste unter Project den Eintrag Build Options ausw hlen Anschlie end muss im entspre chenden Projekt unter Linker Settings im rechten Feld namens Other linker options lediglich der Name der Bibliothek GT400 DLL eingetragen werden 3 2 2 Ansprechen des Motors Alle verf gbaren Methoden der Bibliothek k nnen im GT Programming Manual 10 nach geschlagen werden Nichtsdestotrotz wird hier zumindest kurz beschrieben wie man den Wa gen steuern und kontrollieren kann Grunds tzlich beginnt jeder Funktionsaufruf aus der DLL mit dem Pr fix GT_ und sollte mit dem zur ckgelieferten R ckgabewert auf erfolgreiche Durchf hrung berpr ft werden Als erstes muss der Controller durch den Aufruf GT_Open ge ffnet und anschlie end die verschiedenen Achsen initialisiert werden Wichtig ist dabei die Tatsache dass der Controller stets nur eine Ac
74. gging mode virtual void FindStartingPosition double percent Drive to desired starting position void SetAcceleration double acc Set specified acceleration void StopMotion Stop current motion of cart 15 11 12 13 14 15 Kapitel 3 Technische Details protected double max_vel Maximum velocity double max_acc Maximum acceleration Listing 3 3 Die Deklaration der Klasse AccControl 3 3 Programm zur Durchf hrung der Versuche Das Programm zur Durchf hrung der Fahrversuche soll erm glichen dass man mittels ver schiedener Beschleunigungssequenzen d h es werden f r unterschiedlich lange Zeiten ver schiedene Beschleunigungen verwendet den Motor steuern und dabei nebenl ufig die Sen soren des Pendels und des Schlittens auslesen kann Diese Messwerte sollen dabei in zwei Dateien abgespeichert werden W hrend man zum Auslesen des Pendelwinkels Achse 2 des Motion Controllers aktivieren muss ist f r das Ansprechen des Motors und Auslesen der Schlittenposition eine Aktivierung von Achse 1 n tig Da Beschleunigungsgebung und Sen sorauslesen m glichst parallel ablaufen sollen ist hier der Einsatz von Threads und soge nannten Mutexen n tig 3 3 1 Ezxkurs Threads und Mutexe Programmieren mit sogenannten Threads erm glicht die Implementierung nebenl ufiger Handlungen auch innerhalb eines Prozesses Threads bilden die kleinste Einheit denen vom Systemkern CPU Zeit zugewiesen wird Man kann sich
75. glich nur marginale Differenzen von 0 1 mm in der Endposition des Wagens festgestellt wurden was wiederum innerhalb der Messungenauigkeit liegt vgl Abschnitt 4 2 3 Dies spricht daf r dass die vorhandene Gleitreibung grunds tzlich sehr gering ist und nicht ins Gewicht f llt 84 Kapitel 8 Zusammenfassung Ziel dieser Arbeit war eine Verbesserung des Simulationsmodells f r das vorliegende inver se Pendel von Googol Technology Nachdem das grundlegende Modell des inversen Pendels eingef hrt wurde war zun chst eine intensive Besch ftigung mit der Programmierung und Steuerung des Motors n tig um eine Testumgebung in C entwickeln zu k nnen mit der verschiedenartige Fahrversuche inklusive Messung der Positions und Winkeldaten durch gef hrt werden k nnen Die Messdaten von vier verschiedenen Fahrversuchen bildeten die Grundlage f r die darauffolgende Analyse der Geschwindigkeit und der Beschleunigung des Schlittens In dieser war anschlie end ersichtlich dass sich der Wagen in der Zeit des Los fahrens nicht wie zu erwarten w re polynomial fortbewegt sondern dass nach gro er Verz gerungszeit ein enormer Sprung der Beschleunigung stattfindet Es wurde zudem ge zeigt dass mit diesem Sprung die verlorene Zeit dennoch nicht komplett wettgemacht werden kann weshalb der Wagen stets hinter der bisher erwarteten Position und Geschwin digkeit zur ckblieb Da im Servocontroller des Motors ein PID Regler arbeitet wur
76. hrprofils Upswing mit dem PT Modell und den Para metern aus 6 19 Optimierung eingesetzt werden Die zu minimierende Zielfunktion F berechnet nun den Dif ferenzvektor aus Simulationswerten und Winkelmessungen des Fahrprofils Upswing und gibt diesen zur ck Auch hier ist Upswing wie zuvor letztendlich das beste Referenzpro fil da es am meisten Informationen enth lt Die Differentialgleichung wird hierbei erneut mit einer relativen und absoluten Genauigkeit von 10 gel st Der Optimierer wiederum verwendet anschlie end eine Genauigkeit von 1078 f r die gesuchten Parameter als auch f r die Zielfunktion Als Startwerte wurden die Parameter aus dem alten Modell gew hlt K 0 029787 und Ka 1 466434 Im vorliegenden Fall liefert der Algorithmus f r diese Anfangswerte die folgende L sung K 0 01616628 Ka 1 46086441 6 21 W hrend sich die zweite Konstante prozentual gesehen wenig ndert so ist in der ersten Konstanten f r die Reibung schon eine betr chtliche nderung zu erkennen Die hier gesch tzten Parameter werden nachfolgend visuell berpr ft der numerische Vergleich zum alten Simulationsmodells erfolgt am Ende des Kapitels in Abschnitt 6 4 Verifikation des Pendelmodells Abbildung 6 11 und Abbildung 6 12 zeigen die Simulation des Pendelwinkels bei den Fahr profilen Upswing bzw Stepl im Vergleich zu den aufgenommenen Messwerten und dem alten Simulationsmodell Das neue Modell is
77. hse ansprechen kann Alle achsspezifischen Befehle beziehen sich dabei immer auf die zuletzt aktivierte Achse M chte man also etwa den Motor starten so muss zun chst GT_Axis 1 aufgerufen werden um die erste Achse zu aktivieren und anschlie end durch GT_AxisOn der Motor angeschaltet werden M chte man den Pendelsensor auslesen so muss durch den Aufruf GT_Axis 2 die entsprechende Achse aktiviert werden bevor anschlie end der Winkel mittels GT_GetAt1Pos amp pos ausge lesen werden kann Nach dem Beenden des Fahrversuchs wird der Motor durch GT_AxisOff deaktiviert und der Controller durch den Befehl GT_Close wieder geschlossen 3Version vom 18 11 2011 12 3 2 Ansteuerung des Motors Der Motor l sst sich in vier verschiedenen Modi auch Bewegungsprofilen oder Be wegungsmodi steuern S Curve T Curve V Curve und Electronic Gearing Es wird hier allerdings nur der f r uns wichtigste Modus beschrieben der V Curve Modus Dieser wird von Googol Technology auch Independent jogging Bewegungsmodus genannt und durch den Befehl GT_Prf1V aktiviert Der Benutzer spezifiziert hierbei Zielgeschwin digkeit und Beschleunigung der aktuellen Achse Die Bewegungsrichtung wird durch das Vorzeichen von Geschwindigkeit bzw Beschleunigung bestimmt In diesem Modus wird der Motor mit der angegebenen Beschleunigung sein Tempo bis zur Zielgeschwindigkeit erh hen und mit dieser Geschwindigkeit we
78. ie auf unsere Zwecke zugeschnitten ist erfolgt analog einer bereits am Lehrstuhl vorhandenen Implementierung in C mit dem das Pendel manuell aufschwingbar und mittels linearer Feedback Kontrolle lokal stabilisierbar ist Das Problem bei der Implementierung in C ist jedoch dass um die in geschriebenen Methoden der DLL verwenden zu k nnen ein sogenanntes Marshalling notwendig ist Das hei t es wird in die Bibliothek hineingesprungen die Methode ausgef hrt und anschlie Bend wieder zur ckgesprungen was sich zeitlich sehr negativ auswirkt So schlug sich das beispielsweise in einer maximalen Ausleserate der Sensoren von 3 ms nieder Bei unserer Implementierung in C C stellt sich dieses Problem nicht weshalb wir sp ter u a von einer wesentlich h heren Ausleserate profitieren werden Die Kapselung der f r uns wichtigen Methoden erfolgt in zwei Schritten Zun chst bauen wir die Klasse PendulumBase mit allen f r uns wesentlichen Funktionalit ten wie Motor einschalten Achsen initialisieren und Sensoren auslesen In Listing 3 2 ist bersichtshalber die Deklaration dieser Klasse inklusive Kommentierungen abgebildet Die Quellcodes der Klassendeklarationen und der Implementierung der Methoden sind auf der beiliegenden CD enthalten class PendulumBase public PendulumBase LE Gonstructor virtual PendulumBase Destructor void ErrCheck int result Error check of return value of called function virtual void In
79. ien erfolgen hier seien PID Regler Regler mit Polvorgabe LQR Regler Fuzzy Systeme oder Neuronale Netze genannt Oft wird auch das Aufschwingen des Pendels aus der Nulllage durch Bewegungen des Wagens realisiert Daf r sind nichtlineare Herangehensweisen wie Energieans tze erforderlich 5 1 2 Zielsetzung Momentan wird das am Lehrstuhl f r Angewandte Mathematik vorliegende inverse Pendel mittels linearer Feedback Regelung stabilisiert bei der mittels Zustandsr ckf hrung eine F hrungsgr enaufschaltung erfolgt Dieses Vorgehen wird in 14 erl utert Da hierf r eine Linearisierung des nichtlinearen Modells um den Arbeitspunkt n tig ist funktioniert diese Regelung nur lokal Das bedeutet dass sich das Pendel bereits mit geringer Winkelgeschwin digkeit in einem kleinen Winkel um die aufrechte Position herum befinden muss bevor die Regelung einschreiten kann Da diese Situation nicht unbedingt befriedigend ist sollen auch Regelungstechniken ver wendet werden die mit der Nichtlinearit t des Systems zurecht kommen Dazu z hlt die modellpr diktive Regelung meist Model Predictive Control MPC Dabei wird das Si mulationsmodell des zu regelnden Prozesses verwendet um die zuk nftigen Zust nde in Abh ngigkeit der gew hlten Steuerung zu berechnen Die aufgrund dieser Vorhersage berech nete optimale Steuerung wird jedoch nur f r einen Zeitschritt verwendet und anschlie end die Optimierung wiederholt 16 Da diese Art Regelung
80. igenfrequenz Filter und St rmoment ber wachung zu geringen Vibrationen Au erdem erfolgt eine optimale Anpassung an Last verh ltnisse durch Autotuning w hrend des Betriebs 24 Diese Eigenschaften die einen Projektingenieur bei der Realisierung einer Automatisierungsl sung erfreuen d rften da sie f r eine gute Dynamik und einen ruhigen Lauf sorgen erschweren jedoch die Modellierung eines neuen Systems da nun zwischen dem Simulationsmodell des inversen Pendels und dessen zugeh riger Regelung noch die komplexe integrierte PID Regelung des Motors steckt blicherweise werden Positioniersysteme wie diese von Panasonic in den Bereichen der kunststoffverarbeitenden Industrie im Sondermaschinenbau bei Fertigungsprozessen in der Bekleidungsindustrie in Verpackungsmaschinen und bei Zulieferfirmen f r den Automobil und Elektronikanlagenbau eingesetzt 23 Bei der sp teren Regelung unseres inversen Pendels bernimmt der Motor sowohl die Rolle des Aktors Antrieb als auch eines Sensors zur Positionsbestimmung des Schlittens durch den Inkrementalgeber des Servomotors Zus tzlich befindet sich noch ein Sensor an der Aufh ngung des Pendels zur Bestimmung des Pendelwinkels Der Antriebsverst rker des Servomotors befindet sich in der grauen Control Box Dar ber hinaus beinhaltet diese ein Netzger t einen Stromkreisschutz und die Ger te schnittstelle Zus tzlich befindet sich ein An Aus Schalter auf der Vorderseite des Ger t
81. ildung 6 14 Auf den ersten Blick sieht das PT Modell hnlich gut wie das PT2 Modell aus Es ist jedoch insbesondere ein Unterschied im Anfangsbereich festzustellen Auf diese Differenzen wird in Abschnitt 6 4 nochmals explizit eingegangen Die Verz gerung zu Beginn kann durch das PT Modell nicht ganz so gut aufgefangen werden wie beim PT Modell dennoch ist im weiteren Verlauf optisch lediglich ein marginaler Unterschied zwischen den Messwerten und dem Simulationsmodell auszumachen Im Gegensatz hierzu ist die Abweichung des alten Modells jedoch deutlich sichtbar Auch der in Abbildung 6 15 gezeigte Ausschnitt des Geschwindigkeitsvergleichs des Wagens zeigt deutlich wie gut das PT Modell ist Auch hier sind nur im Anfangsbereich Unterschie de zum PTs Modell festzustellen Die exakte Fehlerbetrachtung und der Vergleich dieser folgt ebenso in Abschnitt 6 4 71 Kapitel 6 Einf hrung neuer Modelle 0 187 7 PT Modell 1 87 0 165 PT Modell o 1 6 E 0 14 Messwerte lt i bichaii 21 4 2 bisheriges Modell 5 OI 1 2 gt z g 1 8 OH D 5 0 8 2 2 E 8 z 0 6 PT Model E ee 2 0 4 PT Modell m vorgeg Beschleuni SEA gungsprofil 0 0 1 0 2 0 3 0 4 0 5 0 0 1 0 2 0 3 0 4 0 5 Zeit ins Zeit ins Abbildung 6 14 Simulation des Wagens mit dem PT Modell und den Parametern aus 6 27 beim Fahrprofil Step2 im Vergleich zu den Messwerten und den anderen Modell
82. in einer Zeitreihe gegl ttet und l ngerfristige d h niederfrequente Trends und Zyklen hervorgeho ben Der gleitende Mittelwert g t der Ordnung n n ungerade d h n 2m 1 mit m N einer Zeitreihe x t ist definiert als n 1 gn ti Wk Li m k 5 3 k 0 wobei w die Gewichtung der jeweiligen Datenpunkte darstellt und f r diese gilt wy 1 Mathematisch kann die gleitende Mittelwertbildung als Faltung der Messdaten mit den Filterkoeffizienten verstanden werden Wir verwenden den einfachen gleitenden Durchschnitt der alle Datenpunkte gleich ge wichtet d h es gilt Wk Vee 1 n n und somit 1 n 1 Gz ti S KS Li m k i 0 Dieser gleitende Mittelwert hat eine Verz gerung von m i n 1 Zeiteinheiten d h die gemittelten Werte hinken um diese Anzahl Zeiteinheiten hinterher Die Verz gerung kann korrigiert werden indem man den gleitenden Mittelwert um diese Anzahl Zeiteinheiten nach vorne verschiebt Entsprechend fehlen anschlie end jedoch die Werte f r die letzten Zeiteinheiten 18 In MATLAB hei t der Befehl zum Anwenden des Filters gt g_filtered filter w 1 x wobei die Ordnung n des Filters durch die L nge des Gewichtungsvektors w bestimmt wird 5 2 2 Savitzky Golay Gl ttungsfilter Das Savitzky Golay Filter ist ein mathematisches Gl ttungsfilter in der Signalverarbeitung welches erstmals 1964 von Abraham Savitzky and Marcel J E Golay beschrieben wurde Diese Ver ffentlich
83. ion in der alle Regelalgorithmen in C program miert sind und zum anderen eine MATLAB basierte Version als interaktives Tool zum Mo dellieren Simulieren und Analysieren des Pendelsystems in Simulink Wir verwenden hier je doch lediglich die in der erstgenannten Variante mitgelieferte Windows Programmbibliothek DLL von Googol Technology Control Box GT400 Motion Controller Sensor of unused unused Motor and Driver pendular sensor o Regelkreis 2 Abbildung 3 2 Schematischer Aufbau GT Motion Controller und Gesamtsystem 2Diese befinden sich auf der von Googol Technology mitgelieferten CD 11 Kapitel 3 Technische Details 3 2 Ansteuerung des Motors Nach Erl uterung der hardwaretechnischen Gegebenheiten im vorherigen Abschnitt stellt sich nun die Frage wie man den Motor des Schlittens mit einem Programm ansprechen und steuern kann Hierzu wurde von Googol Technology eine umfangreiche Bibliothek zur Verf gung gestellt die in C geschrieben ist und s mtliche Methoden beinhaltet um mit der PCI Regelkarte den Motor kontrollieren zu k nnen So kann man mit den Methoden dieser DLL beispielsweise den Motor konfigurieren die Sensoren auslesen und den Motor in Bewegung setzen Da diese Methoden sehr allgemein sind werden die f r unsere Zwecke wichtigen Methoden zur einfachen Handhabe nochmals in eine Klasse gekapselt die speziell auf das vorhandene Pendel zugeschnitten ist 3 2 1 Einrichtung der Entwicklungsum
84. iten k nnte Allgemein sieht die Differentialgleichung eines PT Gliedes fol 69 Kapitel 6 Einf hrung neuer Modelle genderma en aus Talt T talt K zelt 6 24 wobei x t die Eingangs und x t die Ausgangsgr e beschreibt T gt 0 ist wiederum die Zeitkonstante und K gt 0 der Verst rkungsfaktor 6 3 1 Herleitung des Simulationsmodell Die Eingangsgr e des PT Glieds x t ist analog zum PT Modell die vorgegebene Steue rung u t Den Ausgang dieses Ubertragungsglieds x t bezeichnen wir erneut mit 25 t dieser ist somit wiederum die verz gerte Beschleunigung Nach Einsetzen in 6 24 und anschlie endem Umstellen erh lt man 1 Zell Kult 2 6 25 In Analogie zu obigem Vorgehen k nnen wir dies nun erneut an das bisherige Simulations modell anh ngen tolt K alt K g sin z t x5 t cos x t 3 t ra t 6 26 talt z t s t 5 Kult zs t 6 3 2 Parametersch tzung der Modellparameter Analog zum Vorgehen beim PT Modell werden zun chst die Parameter des PT Glieds d h des Wagenmodells gesch tzt bevor anschlie end die Parameter der Pendelgleichungen optimiert werden Sch tzung der Wagenparameter Die Sch tzung der im Modell auftretenden unbekannten Parameter K und T wird erneut mittels Kleinste Quadrate Optimierung in lsqnonlin durchgef hrt Es werden dabei die gleichen Fehlertoleranzen wie vorher verwendet Die Positionswerte der Simulation w
85. iterfahren bis eine neue Geschwindigkeit oder das Stop Kommando gegeben wird In diesem Modus muss also keine Zielposition angegeben werden Dar ber hinaus ist das Bewegungsprofil sehr flexibel da man Geschwindigkeit Beschleuni gung und Richtung w hrend der Bewegung ndern kann Ein typisches Geschwindigkeitspro fil f r diesen Bewegungsmodus wird in Abbildung 3 3 gezeigt alle vorgegebenen Kommandos sind dabei durch schwarze Pfeile markiert In Listing 3 1 ist anschlie end ein beispielhafter Programmausschnitt zur Anwendung des Independent Jogging Profils zu sehen gH J E 25 4 lt set max vel to 0 m s E 2 set acc to 0 5 m s 4 2 g 1 57 4 2 set max vel to 3 m s 2 set acc to 2 m s o Ir 4 0 57 set max vel to 2 m s set acc to 2 m s 0 1 2 3 4 5 6 Zeit ins Abbildung 3 3 Geschwindigkeitsprofil im Independent Jogging Bewegungsmodus bei Geschwindigkeits und Beschleunigungs nderungen void ExampleVMotion Motion function of independent jogging mode GT_Open Open the motion controller AE aa aural ie DR GT_Axis 1 Set the first axis as current axis GT_AxisOn Activate drive GT_Prf1v Specify the jogging mode of motion for current axis GT_SetAcc 0 01 Specify the acceleration in pulses per squared sampletime GT_SetVel 1 Specify the target velocity in pulses per sampletime GT_Update Update parameter other commands GT_
86. itializeAxis Set specified parameters of motor and current position of axes to zero 4mit dem Befehl Marshal AllocHGlobal 14 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 D 4 o E Do H ra 10 3 2 Ansteuerung des Motors void Reset Reset the motion controller and do an initializing void EnableMotor bool enabled Enable and disable motor void Update Update current axis with chosen parameters void FindStartingPosition double percent Drive to desired starting position void SetAccMPSQ double mpsq Set acceleration in meter second 2 void SetVelMPS double mps Specify the maximum velocity in meter second void SetPosM double m Define target position in meter void SmthStp Stop the cart smoothly double GetPosition Get current position of cart in meter double GetAngle Get current angle of pendular in radiants void WaitUntilMotionDone Wait until motion of cart is completed void WaitUntilMotionStops Wait until cart is not in motion anymore bool IsMotionDone Is motion of current axis completed bool IsInMotion Is current axis in motion protected void Axis unsigned short current_axis Activate specified axis unsigned short GetSts Get status of current axis void Prf1T Specify motion mode of current axis as T curve void P
87. ittels Differenzenquotient nach Anwendung des Moving Average und des Savitzky Golay Filters 2 222 22 200 Vergleich der ermittelten Geschwindigkeit durch Differenzenquotient und durch Polynomfitting im Savitzky Golay Filter 2 222222 11 13 19 25 28 28 29 31 32 33 35 37 39 95 Abbildungsverzeichnis 96 5 10 5 11 5 12 5 13 5 14 5 15 5 16 5 17 5 18 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 6 12 6 13 6 14 6 15 6 16 Vergleich der ermittelten Geschwindigkeit mit der Geschwindigkeit aus dem alten Simulationsmodell sos a 24 4 28 WER a 43 Ermittelte Beschleunigung mittels Differenzenquotient aus Messdaten 44 Ermittelte Beschleunigung mittels Differenzenquotient aus ausged nnten DIES E ENEE 44 Gefittetes Polynom 2 Grades durch Anfangsbewegung des Fahrprofils Stepl 46 Fitting mit einem Polynom dritten Grades und zehn Datenpunkten 47 Fitting mit einem Polynom dritten Grades und zehn Datenpunkten nachdem die Messdaten ausged nnt wurden nur jeder 30 Wert 2 2 2 2 2 48 Erhaltene Beschleunigung durch st ckweises Polynomfitting 49 Vergleich der Messdaten mit der Simulation der erhaltenen Beschleunigung 49 Durchschnittlich ben tigte Beschleunigung f r die Position des Wagens zur Zeit t beim Fahrprofil Stepl ae ee a Gn ee ES ee er 50 Typische Sprungantworten f r verschiedene Regler 2 2 2 2 2 2 2
88. ivs unter 20 Eine exakte Erl uterung und Einteilung der L ser erfolgt in Abschnitt 6 1 2 Abk rzung f r MATLAB Extension 20 3 4 Anbindung des impliziten Losers RADAU5 an MATLAB Starten von MATLAB und wechseln in das Verzeichnis aus 1 Eingeben von compile auf MATLABs Kommandozeile Dies f hrt den Befehl mex radau5Mex c options c radauds f dc_lapack f lapack f lapackc f aus Bei erfolgreicher Installation sollte nun mindestens eine mexsol bei Solaris Rechnern eine mexmaci64 bei Mac Rechnern bzw eine dll bei Windows Rechnern MATLAB lt 7 1 oder eine mexw32 bei Windows Rechnern MATLAB gt 7 1 Datei entstanden sein Es gibt nun zwei M glichkeiten entweder man setzt MATLABs Suchpfad auf das Verzeichnis unter 1 und kann anschlie end das Interface berall verwenden oder man kopiert die Datei aus 4 und die m Files in das Verzeichnis in dem man das Interface verwenden will Anschlie end sollte RADAU5 installiert und verwendbar sein Hinweise f r Mac Nutzer 1 Verwendet man Xcode von Apples Homepage f r Entwicklertools https developer apple com xcode als C Compiler ist zun chst die Installation eines se paraten Patches f r MATLAB n tig der hier erh ltlich ist http www mathworks de support solutions en data 1 FR6LXJ Nach der Installation des Fortran Compilers z B von http gcc gnu org wiki GFortranBinaries muss man beachten dass gfortran in usr local bin
89. leichung Eine echte differential algebraische Gleichung liegt dann vor wenn die partielle Ableitung F singular ist Man betrachtet somit eine Differentialgleichung auf einer Mannigfaltigkeit diese ist jedoch bei praktischen Problemen meist zun chst nicht explizit bekannt Wird bei gew hnlichen Differentialgleichungen die L sung durch Integration bestimmt so ergeben sich im Gegensatz dazu Teile der L sung einer differential algebraischen Gleichung 56 6 1 Motor als PID Glied durch Differentiation Aus diesem Grund reicht nicht wie bei gew hnlichen Differentialglei chungen die Forderung dass die Systemfunktion F nur stetig bzw stetig differenzierbar sein muss um die L sbarkeit zu garantieren sondern es werden nun auch h here Ableitungen f r die L sung ben tigt Die genaue Ordnung der ben tigten Ableitung wird allgemein als Differentiations Index der differential algebraischen Gleichung bezeichnet Der Differentiationsindex eines differential algebraischen Gleichungssystems Pr ir SO 0 6 10 ist definiert als die Anzahl m gt 0 an Zeitableitungen die n tig sind um aus dem entstehen den Gleichungssystem el d F t 2 4 0 6 11 d ym E t 0 durch algebraische Umformungen ein gew hnliches Differentialgleichungssystem tlt Glee 6 12 extrahieren zu k nnen Dieser Index bestimmt auch die in Frage kommenden numerischen L ser f r das Problem Numerisches L sen in MATLAB
90. leitung anfangs identisch Null ist Durch dieses Verhalten l sst sich die Verz gerung des Schlittens zu Beginn modellieren Die Auswertungen in Abschnitt 5 4 3 haben gezeigt dass der Wagen die vorgegebe ne Beschleunigung und damit auch die vorgegebene Geschwindigkeit und Position nicht vollst ndig erreicht Dieser Aspekt kann hier durch den Verst rkungsfaktor K geregelt wer den und bekr ftigt die Rechtfertigung ein PT Glied zur Modellierung des Motors zu ver wenden 6 2 1 Herleitung des Simulationsmodell Die Eingangsgr e des PT Glieds x t ist in unserem Zusammenhang die vorgegebene Steuerung u t Den Ausgang x t bezeichnen wir mit ef d h sf stellt nun die verz gerte Beschleunigung dar und dient somit als rechte Seite von Zut als Eingang in unser bestehendes Differentialgleichungssystem Mit der Substitution x t Zaff talt erh lt man also T Zelt 2dT zelt 25 t K u t 6 17 62 6 2 Motor als PT Glied Stellt man dies nun nach amp s t um und koppelt es anschlie end an das bisherige Modell an so ergibt sich insgesamt i t z2 t talt K z t K g sin z1 t x5 t cos x t amp 3 t z4 t amp 4 t z5 t 6 18 Zait ze t tolt Kult 24T zelt et In der zweiten Zeile wird wiederum u t durch zs ersetzt Im Vergleich zum vorherigen PID Modell ist das aufgrund der nicht vorhandenen Massenmatrix ein ungleich einfacheres und leichter zu l
91. m Verzeichnis befinden sich die Internetquellen 4 20 23 24 32 und 34 als PDF Dokumente 91 Anhang A Inhalt der beiliegenden CD 92 Tabellenverzeichnis 4 1 4 2 4 3 4 4 4 5 6 1 6 2 6 3 Beschleunigungsprofile Step 2 2 6 au na san ar an nern Beschleunigungsprofile Const 2 2 oa a en Beschleunigungsprofile Distinctive 2 2222 CC om ee Dater sclstaraeeConst EA EE Ausschnitt aus Datei data_pos_angle_Const1_2 txt 2 222 22 2 22 Vergleich des PT und PT Modells mit dem bisherigen Modell bzgl der Positionsmesswerte aller verwendeten Fahrprofile Vergleich des PT und PT Modells mit dem bisherigen Modell bzgl der Geschwindigkeitsapproximation aller verwendeten Fahrprofile Vergleich des PT und PT Modells mit dem bisherigen Modell bzgl der Winkelmesswerte aller verwendeten Fahrprofile 93 Tabellenverzeichnis 94 Abbildungsverzeichnis 2 1 2 2 2 3 3 1 3 2 3 3 3 4 4 1 4 2 4 3 4 4 5 1 5 2 5 3 5 4 5 9 5 6 5 7 5 8 5 9 Schematische Darstellung des inversen Pendels auf einem Wagen Vergleich der Positionsmesswerte aus dem Fahrversuch Stepl mit den Si mulationswerten aus dem bisherigen Simulationsmodell Vergleich der Winkelmesswerte aus dem Fahrversuch Step1 mit den Simu lationswerten aus dem bisherigen Simulationsmodell 2 222222 Foto des inver
92. mulation und Messwerten ode_sys_alt m Differentialgleichungssystem des bisherigen Modells ode_sys_PID m Differentialgleichungssystem des PID Modells preparing_data m Funktion zum Einlesen der Mess und Beschleunigungswerte MATLAB KAPITEL6 PT2 PT1 Der Suffix _P im Dateinamen sagt aus dass in diesem Programm dieser Funktion die Pendelparameter betrachtet werden _W steht entsprechend f r die Betrachtung der Wa genparameter Die Zeilen zur Anwendung der Optimierung wurden jeweils auskommentiert um die Plots direkt ausgeben zu k nnen main_PT1_vgl_v m Vergleich des PT Modells mit der numerisch berechneten Geschwindigkeit mittels Savitzky Golay Filter Polynomfitting und dem alten Modell Abb 6 15 89 Anhang A Inhalt der beiliegenden CD main_PT1_opti_P m Routine zur Optimierung der Pendelparameter f r das DD Modell anhand der gemessenen Winkeldaten und anschlie endes Plotten des Ergebnisses Abb 6 16 main PT1 optiW m Routine zur Optimierung der Parameter f r das PT Modell des Wagens anhand der gemessenen Positionsdaten und anschlie en des Plotten des Ergebnisses Abb 6 13 6 14 6 17 main_PT2_vgl_v m Vergleich des PT 2 Modells mit der numerisch berechneten Geschwindigkeit mittels Savitzky Golay Filter Polynomfitting und dem alten Modell Abb 6 9 6 10 main_PT2_opti_P m Routine zur Optimierung der Pendelparameter f r das PT Modell anhand der gemessenen Winkeldaten und anschli endes Plot
93. n teile von hohen Frequenzen nicht einfach abgeschnitten werden sondern in die Berechnung mit einflie en Dadurch neigt das Filter dazu ausgezeichnete Eigenschaften der Verteilung wie relative Maxima Minima und Streuung zu erhalten die von herk mmlichen Metho den wie der Bildung des gleitenden Mittels gew hnlich durch Abflachung oder Verschiebung verf lscht werden Das Verfahren scheint sehr aufw ndig zu sein da f r jeden Datenpunkt ein Ausgleichs polynom berechnet werden muss Man kann jedoch zeigen dass dies nicht n tig ist und dass stattdessen eine geeignete Filterfunktion verwendet werden kann Aus diesem Grund soll hierauf etwas n her eingegangen werden Das gefittete Polynom p t vom Grad M durch die Messdaten x kann zun chst geschrieben werden als p Sn SY 5 4 k 0 Wir nehmen an dass die Stiitzstellen t quidistant sind mit t t At Um das Polynom im Kleinste Quadrate Sinn durch die Messdaten zu legen muss man die Koeffizienten br so bestimmen dass gilt t nR gt pity rj min 5 5 j i nL 35 Kapitel 5 Auswertungen Dazu definieren wir die Matrix n n 1 A 0 mn 1 eR etmat za 5 6 ne NR 1 und die Vektoren b inn M b e RIIT und x Ti e Rr tnrtl 5 7 1 f bo inn Man sieht dass die Matrix A weder von der Abszisse t noch vom Abstand At abh ngt Mit diesen Definitionen k nnen wir 5 5 reformulieren als
94. n der versucht alle zu regelnden Zustands gr en gegen Null zu f hren Demzufolge entspricht in der Simulation die untere Ruhelage des Pendels dem Winkel 7 und die aufrechte Position dem Nullpunkt In der bereits erw hn ten MATLAB Routine preparing_data m werden die Winkeldaten deshalb so ver ndert dass sie mit der Simulation bereinstimmen 4 2 3 Heuristische Ermittlung der Messdatengenauigkeit Um ein Gef hl f r die sp ter notwendige Genauigkeit bei der Modellbildung zu bekom men soll zun chst untersucht werden inwieweit St rungen das Fahren des Schlittens bzw auch das Messen beeinflussen Aus diesem Grund wurde jedes Beschleunigungsprofil sechs Mal angewendet um somit f r jede Beschleunigungssequenz eine Messreihe von sechs Da tens tzen zu haben Schon bei genauer Beobachtung der Durchf hrung der Messungen f llt auf dass das Pendel bei schwierigeren Beschleunigungsprofilen bei verschiedenen Versuchen unterschiedlich weit aufschwingt Der Vergleich der je sechs Versuche von Stepl Step2 und Step3 zeigt dass die Messwerte der Position am Ende des Versuchs nach 500 bzw 300 ms alle innerhalb der Messgenauigkeit liegen und maximal 0 3 mm voneinander entfernt sind In Abbildung 4 2 sind die einzelnen Stufen aufgrund der ganzzahligen Messung der Systemzust nde sehr gut zu erkennen Neben den Step Versuchen sind auch die Messungen der Profile Const1 und Const2 sehr identisch und somit reprod
95. n des Verhaltens bergehen Es soll demnach ein Modell gefunden werden das verz gert wirkt und berschwingt jedoch nicht ganz so extrem wie in den Auswertungen beobachtet Aus diesem Grund wird im Folgenden das sogenannte PT Ubertragungsglied betrachtet Dieses besitzt ein proportionales bertragungsverhalten mit Verz gerung 2 Ordnung Ge br uchliche Beispiele sind in der Elektrotechnik der RLC Schwingkreis und im Maschinenbau die Feder Masse D mpfer Anordnung 8 Die zugeh rige Funktionalbeziehung im Zeitbereich ist die Differentialgleichung T falt 2dTz t zalt K zelt 6 16 61 Kapitel 6 Einf hrung neuer Modelle wobei x t die Eingangs und x t die Ausgangsgr e beschreibt d gt 0 bezeichnet den so genannten D mpfungsgrad K gt 0 die Ubertragungskonstante bzw den Verst rkungsfaktor und T gt 0 die Zeitkonstante d 0 2 d 1 D d 2 Amplitude IS 2 2 5 3 Zeit in s Seconds Abbildung 6 5 Sprungantwort eines PT2 Glieds K 3 T 0 1 d 0 2 1 0 2 0 Wie bei der in Abbildung 6 5 gezeigten Sprungantwort des PT Glieds zu erkennen ist ist f r das Uberschwing Verhalten der D mpfungsgrad d entscheidend Im sogenannten periodi schen Fall d h 0 lt d lt 1 erh lt man das gew nschte berschwingen mit anschlie endem Einpendeln Ein weiterer Aspekt der f r die Verwendung des PT Glieds spricht ist die Tatsache dass die erste Ab
96. n Abbildung 5 13 als t bezeichnet Es wird erneut das Fahrprofil Step1 betrachtet Wir 45 Kapitel 5 Auswertungen fitten nun ein Polynom zweiten Grades durch die Messpunkte zwischen D und ts d h durch die erste Rampe der Positionskurve 4 x10 5L Messwerte gefittetes Polynom 2 Grades o o er ZS oo o 4 r 6 Ee O 0 S 3 a 2 oO 8 2 me E O CO O a iF e a O OF oo oo o Lal 1 Cl 0 0355 0 036 0 0365 0 037 0 0375 0 038 0 0385 0 039 Zeit ins Abbildung 5 13 Gefittetes Polynom 2 Grades durch Anfangsbewegung des Fahrprofils Stepl Man erh lt als L sung p t 136 77440 t 9 86310 t 0 17780 5 21 Die zweite Ableitung ist konstant und betr gt f r das gefundene Polynom 273 55 Das be deutet dass in diesem Abschnitt auch eine Beschleunigung von 273 55 m s vorhanden ist Wendet man auf t1 1 und t2 2 den einfachen Differenzenquotienten an so kommt man zun chst auf eine Geschwindigkeit von T T 2 4419 1074 m 0 m m 0 23002635 5 22 a t t 0 03741967 s 0 03635809 s s Da der Wagen vorher die Geschwindigkeit v 0 hatte betr gt seine Geschwindigkeit am Ende des Intervalls den in 5 22 berechneten Wert Daraus errechnet sich eine durchnittliche Beschleunigung von V 0 23002635 7 0 0 m 216 684241 5 23 S LD 0 03741967 s 0 036358096 s s Da diese lin
97. n die Filterparameter c nur ein einziges Mal ausgerechnet werden Anschlie end k nnen alle gegl tteten Werte g durch das einfache Skalarprodukt 5 12 der L nge ng nr 1 berechnet werden Nachteilig ist dass es nicht offensichtlich ist wie die Filterparameter nz np und M zu w hlen sind Hier ist in den meisten F llen etwas visuelle Optimierung von N ten um die besten Resultate zu erhalten Messdaten on E Oh o 0 100 200 300 400 500 600 700 800 900 Moving Average 4 n 33 2 0 v 0 100 200 300 400 500 600 700 800 900 8 6 Savitzky Golay A 4 M 4 n n 16 E Of E 0 100 200 300 400 500 600 700 800 900 Abbildung 5 5 Oben Messdaten Mitte Ergebnis bei Anwendung des Moving Average Filters mit 33 Datenpunkten Unten Ergebnis bei Anwendung des Savitzky Golay Filters vom Grad 4 und mit ebenfalls 33 Datenpunkten Die gestrichelte Linie stellt das urspr ng liche glatte Signal dar Quelle 26 37 Kapitel 5 Auswertungen Das Gl ttungsfilter das auch digitales polynomiales Gl ttungsfilter oder Kleinste Quadrate Gl ttungsfilter genannt wird wird typischerweise benutzt um ein verrauschtes Signal zu gl tten dessen Frequenzbandbreite ohne Rauschen hoch ist Da wir die Messwerte des Wa gens nicht nur auf die niederfrequenten groben Positionsver nderungen reduzieren wollen sondern uns insbesondere f r die kleinen aussagekr ftigen hochfrequenten Ruckler inte ressieren ist dieser Filter
98. n mei sten F llen So konnten in dieser Arbeit diesbez glich in keinem Fall Probleme festge stellt werden Probleme k nnten theoretisch dadurch auftauchen dass die L sungsalgo rithmen in einem Zeitschritt mehrere Funktionswertberechnungen zu verschiedenen Zeit punkten abfordern beim Runge Kutta Verfahren 4 Ordnung z B am Anfang in der Mit te und am Ende des Zeitschritts Die Parameter nderung kann und wird in der Re gel innerhalb eines Zeitschritts liegen so dass die Funktionswertberechnungen mit unter schiedlichen Parametern ausgef hrt werden Das hat zur Folge dass die MATLAB ode function die Schrittweite an dieser Stelle st ndig verfeinert und dies somit zu einem Fest fahren der Rechnung f hrt Sollten solche Probleme auftreten k nnte man diese mit der MATLAB Event Location der ode Solver abfangen Weitere Details k nnen unter http www mathworks de de help matlab ref odeset htm1 f92 1017470 nachgesehen wer den 30 Kapitel 5 Auswertungen Nach Durchf hrung der im vorherigen Kapitel vorgestellten Fahrversuche werden nun die zu geh rigen Messdaten analysiert und untersucht um R ckschl sse auf das reale Modell ziehen zu k nnen In diesem Kapitel wird dabei ausschlie lich der Wagen betrachtet Die Auswer tungen in dieser Arbeit werden dabei stets am Fahrprofil Step1 erl utert und demonstriert Um den Rahmen der vorliegenden Arbeit nicht zu sprengen soll auf Ausf hrungen der qui valenten Er
99. nd als solche mit vollbesetzter Massen matrix 34 Wie oben beschrieben h ngt die L sbarkeit der differential algebraischen Gleichung von der Wahl der Startwerte ab Sind diese nicht konsistent behandelt der Solver die Startwerte jedoch als Sch tzungen und versucht konsistente Werte in der N he der Sch tzungen zu finden bevor er anschlie end das Problem l st 32 Numerisches L sen mittels RADAU5 Da wir mit den in MATLAB integrierten L sern in unserem Fall nicht weiterkommen bedie nen wir uns mittels MEX Interface einem externen L ser Es kommt hierbei RADAU5 von E Hairer und G Wanner zum Einsatz der auch in 17 beschrieben wird Dieser benutzt ein implizites Runge Kutta Verfahren der Ordnung 5 mit Schrittweitensteuerung und kann differential algebraische Gleichungen mit Differentiationsindex kleiner gleich 3 l sen Nach Anbindung des impliziten L sers wie in Abschnitt 3 4 beschrieben kann dieser durch den Aufruf tGitter xGitter stats taupred radau5Mex f t x0 opt benutzt werden Die Massenmatrix M wird dabei mit den Optionen bergeben indem man zuvor opt Mass M setzt Wie auch bei den in MATLAB integrierten L sern ist hier die Wahl der Anfangswerte entscheidend Die Solver sind nur erfolgreich wenn die gew hlten Startwerte in xO hinreichend nah an konsistenten Anfangswerten liegen 6 1 3 Parametersch tzung der Modellparameter und ber pr fung Um die optimalen Parameter Kp K und Ka f r das Modell zu find
100. nd in 6 1 sorgt daf r dass die Regelabweichung mit dem Verst rkungsfaktor K multipliziert und unverz gert weitergegeben wird was zu einer schnellen Regelung f hrt Das Problem des alleinigen P Reglers ist die bleibende Regelabwei chung Aus diesem Grund wird das I Glied siehe zweiter Summand in 6 1 hinzugenom men Es summiert die Regelabweichung ber der Zeit auf und multipliziert das Integral mit dem Faktor K Je l nger also eine Regelabweichung besteht desto gr er wird die Stellgr e des I Reglers Das Stellglied wird demnach solange ver ndert bis die Regelabweichung null ist Ein integrierender Anteil verbessert im Regler zwar die station re Genauigkeit zugleich wirkt er aber verz gernd Zudem kann der Regelkreis durch die integrierende Wirkung in stabil werden Aus diesen Gr nden Tr gheit und Schwingneigung werden reine I Regler normalerweise auch nicht eingesetzt Zur Beschleunigung der Regelung wird der D Regler eingef hrt Der differenzierende Anteil bewertet die nderung der Regelabweichung und be rechnet so deren nderungsgeschwindigkeit welche dann mit dem Faktor Ka multipliziert wird Der D Anteil wirkt somit beschleunigend und unterdr ckt Schwingneigungen f hrt aber auch wieder zu einer schlechteren station ren Genauigkeit In Abbildung 6 1 ist die typische Sprungantwort der verschiedenen Regler zu sehen die sich aus den oben genannten einfachen bertragungsgliedern zusammensetzen lassen
101. nden Systems sein das man durch Invertierung nicht unkenntlich machen m chte wie etwa bei gro en elektrischen Netzwerken 34 Ist die Massenmatrix singul r hat man ein System von differential algebraischen Glei chungen auch Algebro Differentialgleichungen Dabei handelt es sich also um ein System in dem gew hnliche Differentialgleichungen mit algebraischen d h hier ableitungsfreien Nebenbedingungen gekoppelt sind Im Differentialgleichungssystem 6 5 ist diese Struktur sofort ersichtlich da die letzte Zeile keine Ableitung enth lt und somit rein algebraisch ist Eine differential algebraische Gleichung hat nur dann eine L sung wenn der Startwert x konsistent ist d h wenn das zugeh rige Anfangswertproblem mindestens eine L sung besitzt Das bedeutet es existiert eine Anfangssteigung p sodass gilt M to Zoltan J to Xo Die allgemeinste Form einer differential algebraischen Gleichung ist hingegen eine impli zite Differentialgleichung der Form F t x t 4 t 0 F RXxR xR R 6 9 f r eine Funktion x J R mit J C R Aus dem klassischen Satz ber implizite Funktionen folgt dass eine Gleichung in dieser impliziten Form lokal nach aufl sbar ist wenn die partielle Ableitung F regul r ist In diesem Fall kann man die implizite Gleichung 6 9 umschreiben in die Form amp t G t x t und hat damit wieder eine explizite gew hnliche Differentialg
102. ng 0 0 m s f r 400 ms angewendet um somit in diesem Zeitbe reich eine gleichbleibende Geschwindigkeit zu erhalten Es werden dabei zwei verschiedene Beschleunigungen verwendet vgl Tabelle 4 2 Name Beschleunigung Dauer Constl 3 0 m s 100 ms 0 0 m s 400 ms Const2 5 0 m s 100 ms 0 0 m s 400 ms Tabelle 4 2 Beschleunigungsprofile Const 4 1 3 Distinctive Nach den anf nglichen einfachen Profilen kommen nun die ersten markanten Beschleuni gungsprofile zum Einsatz und der Schlitten wird etwas hin und her gefahren Die Dauer der einzelnen Beschleunigungen bleibt hierbei gleich lediglich die Beschleunigung wird bei diesen beiden Fahrversuchen jeweils variiert siehe Tabelle 4 3 Name Beschleunigung Dauer Distinctivel 0 3 m s 1000 ms 1 0 m s 1000 ms 1 5 m s 1000 ms 2 0 m s 1000 ms Distinctive2 0 6 m s 500 ms 2 0 m s 500 ms 3 0 m s 500 ms 4 0 m s 500 ms Tabelle 4 3 Beschleunigungsprofile Distinctive 4 1 4 Upswing Das Beschleunigungsprofil Upswing basiert auf der Optimierung des Aufschwing und Sta bilisationsprozesses des Pendels mittels modellpradiktiver Regelung Bei diesem Algorithmus wurde eine Samplezeit von 100 ms zugrunde gelegt d h dass alle 100 ms eine neue Beschleu nigung vorgegeben wird Da die Optimierung mit dem alten ungenauen Simulationsmo dell durchgef hrt wurde erreicht man mit dieser Beschleunigungssequenz nicht die absolut aufrechte Position nichtsdest
103. ng 6 7 Simulation des Fahrprofils Upswing mit dem PT Modell und den Para metern aus 6 19 0 06 PT Modell Messwerte E 3 5 g 0 05 bisheriges Modell E 3l 2 n 5 0 04 825 S g 0 03 5 2f ig 2 3 1 5 0 02 8 3 a 1 O TE 2 PT Model m 0 5 a Beschleunigungsprofil 0 0 05 0 1 0 15 0 0 1 0 2 0 3 0 4 Zeitins Zeitins Abbildung 6 8 Simulation des Fahrprofils Step1 mit dem PT gt Modell und den Parametern aus 6 19 werden Der Vergleich der Geschwindigkeit des Schlittens mit der in Abschnitt 5 3 via Po lynomfitting ermittelten Geschwindigkeit zeigt gro e bereinstimmung wie Abbildung 6 9 belegt Der Sprung zu Beginn kann durch das PT2 Modell nat rlich nicht exakt nachgebildet werden aber man erkennt dass sich die Geschwindigkeit des Wagens im Simulationsmodell auf der fast identischen Gerade wie die approximierte Gerade einfindet Ebenso ist auch die minimal geringere Steigung im Vergleich zum alten Modell bereinstimmend Ebenso zeigt der Vergleich der Geschwindigkeiten des Fahrprofils Upswing erhebliche Ver besserungen im Vergleich zum bisherigen Modell So wird die approximierte Geschwindigkeit 65 Kapitel 6 Einf hrung neuer Modelle approx Geschw mittels Savitzy Golay bisheriges Modell L PT Modell N Geschwindigkeit des Wagens in m s 0 0 05 0 1 0 15 0 2 0 25 0 3 Z
104. ng wollen wir nun zweimal integrie ren um deren Richtigkeit zu berpr fen Sollte die gefundene Beschleunigung korrekt sein so m sste die zweimalige Integration also in etwa dem Bild aus der Messung entsprechen Da das alte Modell ja genau diesen idealen physikalischen Zusammenhang der zweimaligen Integration zwischen Beschleunigung und Position repr sentiert hat k nnen wir die gefun dene Beschleunigung zur berpr fung einfach in das bisherige Modell einsetzen und das System damit simulieren Der Vergleich mit den Messdaten in Abbildung 5 17 zeigt wie gut 48 5 4 Beschleunigung des Schlittens De CO oO fo oO oO o oO Beschleunigung des Wagens in m s zusammengesetztes Polynom gefittete Polynome in ungeraden Bereichen gefittete Polynome in geraden Bereichen ll ll 1 1 ll L 0 015 0 02 0 025 0 03 0 035 Zeitins Abbildung 5 16 Erhaltene Beschleunigung durch st ckweises Polynomfitting die auf diese Weise ermittelte Beschleunigung der in dem Versuch tats chlich aufgetretenen Beschleunigung entspricht Sogar die kleinen Rucker zu Beginn wurden exakt nachgebil det Man beachte Es handelt sich hier um die Bewegung des Wagens im Millimeterbereich innerhalb eines Zeitfenster von nur 35 ms a gt m Position des Wagens in m w 3 x10 el Messwerte Simulation mit ermittelten Beschleunigungen i L L L 0 02 0 025 0 03
105. nische Details steht aus einem Schlitten der sich entlang zweier paralleler Schienen bewegen kann und ber einen Riemen von einem Motor angetrieben wird einem DSP basiertem Kontrollsystem und dem Pendel selbst welches auf dem Schlitten drehbar montiert ist Der hier verwendete Motor ist ein sogenannter Servomotor Im Gegensatz zu einfa chen Gleichstrommotoren ist hier bei konstanter Last die Drehzahl nicht proportional zur Motorspannung und kann deshalb nicht einfach durch Ver nderung der Spannung leicht und direkt angepasst werden Daf r ist dieser f r Positionierungsaufgaben verwendbar da er einen geschlossenen Regelkreis und mit dem Antriebsverst rker zus tzliche Elektronik besitzt Realisiert wird der geschlossene Regelkreis dabei durch einen Drehgeber als Mess einrichtung z B einem Resolver einem Inkrementalgeber oder einem Absolutwertgeber und einem Regelschaltkreis der den Motorstrom anhand von gew nschtem Soll und aktuel lem Istwert reguliert Dadurch sind beispielsweise gleichm ige Fahrprofile bei schwankenden Lasten m glich 24 Bei unserem Servoantrieb handelt es sich um einen Motor der MINAS A4 Serie von Pa nasonic mit integrierter Drehzahl Drehmomenten und Positionsregelung Die Messung der Istwerte erfolgt ber einen Inkrementalgeber Aufgrund von 32bit Technik und 1000 Hz Abtastung zeichnet er sich durch eine hohe Regelgeschwindigkeit und ein niedriges Figen tr gheitsmoment aus Dar ber hinaus f hren E
106. odell und den Parametern aus 6 27 beim Fahrprofil Step2 im Vergleich zu den Messwerten und den anderen Modeller Ze zt a A deht wi EE fe e e ns tee eekly og 72 Vergleich der Geschwindigkeiten des Wagens beim Fahrprofil Step1 72 Simulation des Pendels mit dem PT Modell und den Parametern aus 6 28 beim Fahrprofil Const1 im Vergleich zu den Messwerten und den anderen Modellens ids xs het hoe tes le ne en dee EEE RS Nee 73 Abbildungsverzeichnis 6 17 Simulation des Wagens in den verschiedenen Modellen im Vergleich zu den Messwerten beim Fahrprofil Step3 2 2 CC mn nn 7 1 Ber cksichtigung der aktuellen Position bei Beschleunigungsgebung 7 2 Simulation des Motormodells als lineare Approximation im Vergleich zu den Messwerten des Fahrversuchs Stepl o oaa a a 7 3 Abh ngigkeit der Reibungskraft von der Geschwindigkeit 7 4 Arkustangens und dessen zweite Ableitung ooo 2 22 2 a a 7 5 Regularisierte Reibungskraft durch Arkustangens Funktion 97 Abbildungsverzeichnis 98 Quellcodeverzeichnis 3 1 Beispielanwendung f r den Bewegungsmodus Independent Jogging 3 2 Die Deklaration der Klasse PendulumBase 3 3 Die Deklaration der Klasse AccControl 2 222 2 nn nennen 3 4 Funktionsaufrufe zur Verwendung von Pthreads 2 3 5 Funktionsaufrufe zur Verwendung von Mutexen Quellcodeverzeichnis 1
107. oder blau geplottet werden Diese einheitliche Gestaltung vereinfacht das schnelle Verst ndnis der Abbildungen Diesen Fahrversuch werden wir sp ter mit Step1 bezeichnen Kapitel 2 Grundlagen Messwerte 3 17 bisheriges Modell 2 95 N Ko T 2 85 Winkel des Pendels in rad N T X 0 5005 Y 2 757 2 75F X 0 5005 Y 2 742 2 77 L L L 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 0 55 Zeit ins Abbildung 2 3 Vergleich der Winkelmesswerte aus dem Fahrversuch Stepl mit den Simu lationswerten aus dem bisherigen Simulationsmodell Kapitel 3 Technische Details In diesem Kapitel werden die technischen Details des vorliegenden inversen Pendels erl utert Nachdem die Apparatur erkl rt wurde wird insbesondere auf die Steuerung des Motors eingegangen um die danach erl uterte Programmierung nachvollziehen zu k nnen Es wird sich an den Handb chern des Pendelherstellers Googol Technology HK LTD 12 und des Servomotorproduzenten Panasonic 24 orientiert 3 1 Beschreibung der Apparatur Antriebs F hrungs Motor riemen stangen Pendelsensor PC mit PCI Regelkarte Pendel Control Box Abbildung 3 1 Foto des inversen Pendels Bei der am Lehrstuhl vorhandenen Apparatur eines inversen Pendels handelt es sich um das Modell GLIP2001 von Googol Technology aus Shenzhen China bzw Hongkong Es be Kapitel 3 Tech
108. oin aufzufangen Damit Threads miteinander Daten austauschen k nnen m ssen sie auf denselben Speicherbereich zugreifen Hierdurch k nnen leicht unerw nschte Nebenwirkungen entste hen So k nnen mehrere Threads durch gleichzeitige Bearbeitung einer statischen oder globalen Variable diese in einen undefinierten Zustand bringen Gerade bei der Umsetzung gr erer Projekte kann dies zu erheblichen Problemen f hren Man stelle sich beispielsweise eine globale Queue von abzuarbeitenden Aufgaben vor von der sich ein Thread eine Aufgabe holen und diese anschlie end daraus entfernen m chte Falls nun w hrenddessen ein anderer Thread die Queue umsortiert so kann dies zu einer korrupten Liste oder einem Speicherzugriffsfehler f hren 4 Abl ufe deren Endergebnis von der zeitlichen Abfolge der ausgef hrten Operationen abh ngig ist nennt man zeitkritische Abl ufe oder Race Conditions Die Codebereiche in denen die gemeinsam genutzten Ressourcen getrennt bearbeitet werden werden kritische Bereiche genannt Das hei t also Befindet sich ein Thread in seinem kritischen Bereich darf kein anderer Thread zur gleichen Zeit Code aus seinem kritischen Bereich ausf hren POSIX Threads stellen hierf r zwei spezielle Synchronisationsmechanismen zur Verf gung Mutexe und Bedingungsvariablen wobei wir hier nur auf erstere eingehen und verwenden werden 17 Kapitel 3 Technische Details Synchronisation mittels Mutexe Die L sung des obig
109. ol Solutions Minas A4 A4N E Servo Drives FP Series PLCs http www panasonic electric works com peweu en downloads ds_637_en_minas_a4_a4n_e pdf Version 22 10 2012 PAULSSEN J Das Problem der Kurvenanpassung 2009 PRESS W H VETTERLINE W T TEUKOLSKY S A FLANNERY B P Numerical Recipes in Fortran Cambridge University Press New York 1996 644 649 S RAUBER T R NGER G Multicore Parallele Programmierung Springer Verlag Berlin Heidelberg 2008 RIORDON J ZUBRITSKY E NEWMAN A Top 10 Articles In Analytical Chemistry 72 2000 Nr 9 S 324 329 ROSENHEINRICH W Numerische Mathematik Lehrmaterial Fachhochschule Jena 2002 SCHR DER J GOCKEL T DILLMANN R diger Embedded Linux Springer Verlag Berlin Heidelberg 2009 Literaturverzeichnis 31 Stamm W Modellierung und Simulation von Mehrk rpersystemen mit fl chigen Reib kontakten KIT Scientific Publishing Karlsruhe 2009 32 THE MATHWORKS INC Create or alter options structure for ordinary differenti al equation solvers http www mathworks de de help matlab ref odeset html f92 1023650 Version 20 10 2012 33 UNBEHAUEN H Regelungstechnik I Vieweg Teubner Verlag Wiesbaden 2008 34 WIEDL W L sung von Anfangswertproblemen mit den Matlab Integrato ren http wwwi1 uni hamburg de W Wied1 Skripte Matlab ODE ODE File html Version 24 10 2012 35 ZAHN M Unix Netzwerkprogrammierung mit Threads
110. otrotz handelt es sich um ein absolut repr sentatives Beschleu nigungsprofil und man erkennt zumindest das Aufschwingen sehr gut Es werden hier nur 24 4 2 Aufzeichnung der Messdaten die ersten f nf Sekunden des Upswing Prozesses betrachtet bei einem Beschleunigungstakt von 100 ms sind dies aber auch bereits 50 verschiedene Beschleunigungen die angewendet werden Da dies nicht mehr bersichtlich in einer Tabelle dargestellt werden kann sei hier auf die graphische Veranschaulichung als Treppenfunktion in Abbildung 4 1 verwiesen Beschleunigung in m s CH T A 5 i i LU i i 0 0 5 1 1 5 2 2 5 3 3 5 4 4 5 Zeit ins Abbildung 4 1 Beschleunigungsprofil Upswing 4 2 Aufzeichnung der Messdaten Die aufgezeichneten Messdaten bilden die Grundlage f r alle Auswertungen weshalb die exakte Verarbeitung und Speicherung von sehr hoher Bedeutung ist Um die Fahrversuche auch bzgl einer Beschleunigungssequenz vergleichen zu k nnen wurde jeder Fahrversuch sechs Mal durchgef hrt 4 2 1 Formatierung Bei jeder Messung werden zwei Dateien erzeugt Zum einen eine Datei mit Namen data_ acc_Beschleunigungsprofil_i txt wobei Beschleunigungsprofil durch einen Namen der oben genannten Beschleunigungssequenzen ersetzt wird und i die Nummer des jeweiligen Ver suchs darstellt i
111. passt dass sich die Steigung des Polynoms nur noch geringf gig vom zentralen Differenzenquotient unterscheidet gt T v t durch Diff quot v t durch Polyfit oO e ch m T T T Ei D T Geschwindigkeit des Wagens in m s CH CO N d 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 Zeitins Abbildung 5 9 Vergleich der ermittelten Geschwindigkeit durch Differenzenquotient und durch Polynomfitting im Savitzky Golay Filter 5 3 3 Vergleich mit bisherigem Modell Vergleicht man die im Abschnitt zuvor per Differenzenquotient ermittelte Geschwindigkeit mit der Geschwindigkeit aus dem alten Simulationsmodell vgl Abbildung 5 10 so erkennt man dass sich die reale Geschwindigkeit nach dem anf nglichen Einpendeln stets etwas unterhalb der simulierten Geschwindigkeit befindet der Wagen somit etwas langsamer als im bisherigen Modell angenommen f hrt Es l sst sich aber zumindest feststellen dass die gemessene Geschwindigkeit ab 150 ms linear ansteigt und dann somit dem erwarteten Verhal ten f r eine konstante Beschleunigung die bei Step1 vorliegt erf llt Man erkennt zudem dass die gefundene Gerade eine etwas geringere Steigung als das bisherige Modell besitzt Man kann hieraus schlie en dass die in diesem Fahrprofil geforderte Beschleunigung von 3 m s nicht ganz erreicht wird 42 5 4 Beschleunigung des Schlittens gt F Differenzenquotient
112. pringer Verlag Berlin Heidelberg New York 2006 GR NE L Mathematische Kontrolltheorie I Lineare Systeme Vorlesungsskript Universit t Bayreuth WS 2006 07 101 Literaturverzeichnis 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 102 GR NE L Modellierung mit Differentialgleichungen Vorlesungsskript Universit t Bayreuth WS 2006 07 GR NE L PANNEK J Nonlinear Model Predictive Control Springer Verlag London u a 2011 HAIRER E WANNER G Solving Ordinary Differential Equations II Springer Verlag Berlin Heidelberg New York 2002 KREISS J P NEUHAUS G Einf hrung in die Zeitreihenanalyse Springer Verlag Heidelberg u a 2006 KUNKEL P MEHRMANN V Differential Algebraic Equations European Mathema tical Society Publishing House Z rich 2006 LUDWIG C M3 Software ODE MEXfiles Homepage http www m3 ma tum de Software ODEWebHome Version 22 10 2012 LUNZE J Regelungstechnik 1 Springer Verlag Berlin Heidelberg 2001 MANN H SCHIFFELGEN H FRORIEP R Einf hrung in die Regelungstechnik Carl Hanser Verlag M nchen 2001 PANASONIC ELECTRIC WORKS DEUTSCHLAND GMBH Plug and Play Po sitioniersystem mit Panasonic Kleinsteuerungen und Servoantrieben http www panasonic electric works com peweu de downloads D 021 pdf Version 22 10 2012 PANASONIC ELECTRIC WORKS EUROPE AG Motion Contr
113. ratur und deren Steuerung eingegan gen Dabei werden die programmiertechnischen Vorarbeiten erkl rt die n tig waren um die Fahrversuche und Messungen durchf hren zu k nnen Das darauffolgende Kapitel widmet sich den Fahrversuchen und deren Aufzeichnungen bevor im f nften Kapitel die Messungen analysiert und ausgewertet werden In Kapitel 6 werden schlie lich neue Simulationsmo delle eingef hrt und mit dem bisherigen Modell verglichen Im vorletzten Kapitel werden kurz weitere Ans tze und Ideen zur Modellierung vorgestellt bevor im achten Kapitel eine Zusammenfassung gegeben und das Fazit gezogen wird Kapitel 1 Einleitung Kapitel 2 Grundlagen In diesem Kapitel wird nun genauer auf das inverse Pendel eingegangen es erfolgt die mathematische Beschreibung der physikalischen Gegebenheiten Dabei wird das vereinfach te bisherige Simulationsmodell eingef hrt und gezeigt dass dieses die Realit t nicht exakt beschreiben kann 2 1 Das inverse Pendel Wir besch ftigen uns hier ausschlie lich mit der am h ufigsten vertretenen Bauform dem einachsigen inversen Pendel eine einfache Skizze hiervon ist in Abbildung 2 1 dargestellt Der Aufbau besteht aus einem horizontal frei beweglichen Wagen und einem Pendelgewicht das ber einen Ausleger mit dem Wagen drehbar gelagert verbunden ist Das inverse Pendel soll nun durch die richtige Ansteuerung des Wagens vertikal nach oben balanciert werden Als Beispiele f r weitere V
114. rechnet man mit dieser Formel die durchschnittlich ben tigte gleichm ige Beschleunigung f r jeden Zeit Positions Messwert des Fahrprofils Step1 so erh lt man Abbildung 5 18 5 25 3 2 5 N 2 E 2 E at 21 5 o E E 5 Jr Ka o 9 0 57 N Durchschn n tige Beschl Vorgegebene Beschl 0 1 1 1 1 0 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 Zeit ins Abbildung 5 18 Durchschnittlich ben tigte Beschleunigung f r die Position des Wagens zur Zeit t beim Fahrprofil Step1 Durch das kr ftige berschwingen der Beschleunigung nach knapp 40 ms geht hier auch der Durchschnitt erwartungsgem sprunghaft nach oben Nach etwa 210 ms hat man mit 2 7 m s eine durchschnittliche Beschleunigung von 90 des vorgegebenen Wertes erreicht bevor letztendlich ein Wert von approximativ 2 83 m s entspricht knapp 95 des vorgege benen Wertes erreicht wird Ebenso stellt sich bei den beiden anderen Step Fahrprofilen 4Fiir die restlichen Fahrprofile l sst sich diese Berechnung nicht durchf hren da es sich stets um eine Durchschnittsbeschleunigung handelt und diese somit nur bei Anwendung einer einzigen Beschleunigung aussagekr ftig ist 50 5 5 Erkenntnisse zum Ende der Messung ein Wert von knapp 95 des vorgegebenen Wertes ein Aufgrund der begrenzten Bahnl nge l sst sich hier jedoch nicht feststellen ob dies tats chlich d
115. rf1s Specify motion mode of current axis as S curve void Prf1V Set the motion mode of current axis as velocity control mode independent jogging void PrflG unsigned short master Specify motion mode of current axis as electronic gearing and which axis is the master axis void SetAtlPos int value Modify the current position of current axis to a specified value in pulses int GetAtlPos Get the current position of current axis in pulses int smpltime Sample time of motion controller double posfactor Multiply m meter with this factor to get pulses double velocfactor Multiply m s with this factor to get pulses per sampletime double accelfactor Multiply m s 2 with this factor to get pulses per squared sampletime double radfactor Multiply pulses with this factor to get radiants pthread_mutex_t my_mutex Mutex for synchronizing actions that involve different axes Zeg Listing 3 2 Die Deklaration der Klasse PendulumBase Im zweiten Schritt leiten wir daraus noch eine weitere Klasse AccControl ab deren einzige Aufgabe es ist bestimmte Beschleunigungen bzw Beschleunigungssequenzen an den Motor weiterzugeben Die aus diesem Grund sehr bersichtliche Deklaration der Klasse ist in Listing 3 3 zu sehen class AccControl public PendulumBase public AccControl Constructor virtual AccControl Destructor virtual void InitializeAxis Activate motor axis and jo
116. rofil altes Modell PT 2 Modell PT Modell altes Modell PT 2 Modell PT Modell Stepl 7 731 1 099 1 370 11 262 7 907 8 954 Step2 2 083 0 268 0 342 9 494 3 823 4 340 Step3 26 099 7 714 8 880 41 241 49 087 47 507 Const1 2 297 1 281 1 556 11 328 8 274 9 014 Const2 5 664 2 953 3 623 20 940 23 750 23 063 Distinctivel 9 300 0 918 0 987 5 596 2 688 2 681 Distinctive2 10 152 1 422 1 444 6 777 3 384 3 706 Upswing 59 921 21 619 23 378 54 587 52 366 51 815 Tabelle 6 2 Vergleich des PT2 und PT Modells mit dem bisherigen Modell bzgl der Ge schwindigkeitsapproximation aller verwendeten Fahrprofile 75 Kapitel 6 Einf hrung neuer Modelle Auch der Vergleich der Pendelsimulationen zeigt eine deutliche Verbesserung im Hinblick auf Fehlerquadratsumme und maximalem Abstand zu den Messwerten bei den beiden neuen Simulationsmodellen wie Tabelle 6 3 zeigt Aufgrund der sehr groben Aufl sung des Pendelsensors vgl Abbildung 6 16 gestaltet sich die numerische Differentiation nochmals schwieriger als bei den Positionsdaten Ein aussagekr ftiger Vergleich mit den Simulations werten war aus diesem Grund nicht m glich Fehlerquadratsumme Maximaler Abstand in 107 rad in 10 rad Fahrprofil altes Modell PT 2 Modell PT Modell altes Modell PTa Modell PT Modell Stepl 48 200 2 942 2 764 22 019 7 297 7 778 Step2 15 567 0 812 0 100 11 591 3 639 3 884 Step3 39 285 17 157 13 327 34 720 16 095 14 770 Const1 6 015 0 395 0 409 6 300 2 775 3 318 Const2 9
117. rrektur t erh lt man anschlie end durch zweimaliges Ableiten von 7 1 Pflegt man dies nun analog der Vorgehensweise in Abschnitt 6 1 1 in das bisherige Simulationsmodell ein so ergibt sich tlt z t talt K z t K g sin x t z5 t cos x t amp 3 t z4 t La t ugon t Ukorrektur t UKorrektur t lt eS y t Kye O K fel r dr Kaelt e t 23 t XMessung t Setzt man nun z5 t y t so gilt t5 t Uxorrektur t und es folgt tolt K alt Ke g sin x t x5 t cos x t amp 3 t z4 t L t ugon t 5 t Si 25 t y t Kp t Kielt Ka lt e t Tall ZMessung t 78 7 2 Motormodell durch lineare Approximation Haalt 5 t 7 5 X Messung t Sortieren nach den auftretenden Ableitungen liefert schlie lich lt x2 t tolt K alt K g sin z1 t x5 t cos z t t3 t x4 t alt t5 t uson t 7 6 0 x3 t Zelt Zmessung t telt x t Kaa7 t x t Kizelt Kp zelt Hier tritt somit wiederum ein Differentialgleichungssystem mit nicht invertierbarer Massen matrix auf was erneut den Einsatz von RADAU5 bzw anderen L sern f r differential algebraische Probleme erfordert 7 2 Motormodell durch lineare Approximation Eine weitere Idee ist es den Einfluss des Motors auf die vorgegebene Beschleunigung als lineare Abbildung zu sehen und damit zu approximieren Man h
118. rvenanpassung mit jeweils zehn Datenpunkten zu sehen 500 oO 500 Beschleunigung in m s 1000F 0 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 Zeit ins Abbildung 5 14 Fitting mit einem Polynom dritten Grades und zehn Datenpunkten Auch das Ausdiinnen der Messdaten hilft nicht weiter Hierzu sieht man ein beispielhaftes Ergebnis in Abbildung 5 15 in der nur jeder dritte Messpunkt verwendet wurde Man erkennt zwar dass das Uberschwingen zu Beginn etwa dem oben festgestellten entspricht und auch nach kurzer Zeit abnimmt dem weiteren Verlauf nach jedoch wieder stark zunimmt Dies kann man auch hier wieder mit der zunehmenden Ungenauigkeit d h gr er werdendem Messfehler bei zunehmender Geschwindigkeit erkl ren 47 Kapitel 5 Auswertungen 150 a 100 c 5 50b E a En Su 2 x D 2 50 a 100 150 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 Zeit ins Abbildung 5 15 Fitting mit einem Polynom dritten Grades und zehn Datenpunkten nachdem die Messdaten ausgediinnt wurden nur jeder 30 Wert Auch das Fitten mit der in MATLAB integrierten Curve Fitting Toolbox bringt keine Erfol ge Hierbei ist das Problem dass MATLAB durch
119. s Vom Hersteller wird empfohlen die Control Box erst dann an bzw bereits auszuschalten wenn der angeschlossene PC l uft Zur Mechanik kommen noch Kontrollhardware und Kontrollsoftware hinzu um die Re gelung des inversen Pendels mit Hilfe der Sensoren und des Aktors durchf hren zu k nnen Die Hardware besteht aus einem PC als Basis zur Programmentwicklung und als Benut zerschnittstelle einer DSP basierten PCI Regelkarte namens GT 400 SV PCI von Googol Technology sowie mehreren Verbindungskabeln um den PC mit der Control Box und die Control Box mit dem Pendelsockel zu verbinden F r die korrekte Installation der DSP digital signal processing zu deutsch digitale Signalverarbeitung 10 3 1 Beschreibung der Apparatur PCI Karte inklusive Treiber und den richtigen Anschluss aller Verbindungskabel sei auf das Handbuch 12 verwiesen Diese PCI Regelkarte bildet also die Schnittstelle zwischen unserem Programm d h unserer Regelung und dem mechanischen Aufbau unseres inversen Pendels Theoretisch k nnte dieser Motion Controller bis zu vier Achsen gleichzeitig kon trollieren es sind hier jedoch nur zwei vorhanden zum einen der Motor zum Steuern und Auslesen und zum anderen das Pendel nur zum Auslesen Der schematische Aufbau des Gesamtsystems ist in Abbildung 3 2 zu sehen Die Control Software kommt standardm ig mit zwei Varianten aus dem Werk von Googol Technology zum einen eine DOS basierte Vers
120. sen Pendels va rt see ae Schematischer Aufbau GT Motion Controller und Gesamtsystem Geschwindigkeitsprofil im Independent Jogging Bewegungsmodus bei Geschwindigkeits und Beschleunigungs nderungen Schemalischer Programmablauf 2 2 ecard Es as ae Beschleunigungsprofil Upswing 2 2 CE En n nenn Vergleich der Schlittenposition bei verschiedenen Messungen von Step1 Vergleich der Schlittenposition bei verschiedenen Messungen von Const1 Vergleich der Schlittenposition bei verschiedenen Messungen von Upswing Ausschnitt der Messwerte des Fahrversuchs Stepl 22222222020 Schematische Darstellung der Verz gerung des Wagens quidistante Messdaten nach Manipulation mit interpl Kleinste Quadrate Polynom eines Savitzky Golay Filters zum Zeitpunkt t Oben Messdaten Mitte Ergebnis bei Anwendung des Moving Average Filters mit 33 Datenpunkten Unten Ergebnis bei Anwendung des Savitzky Golay Filters vom Grad 4 und mit ebenfalls 33 Datenpunkten Die gestrichelte Linie stellt das urspr ngliche glatte Signal dar Quelle 26 Ermittelte Geschwindigkeit mittels Differenzenquotient mit den ungefilterten Messdaten aus Stepl 2 2 4 aa Sy at Sale ee Sa Re Ermittelte Geschwindigkeit mittels Differenzenquotient mit Messdaten aus Stepl nach Anwendung des Moving Average Filters mit verschiedenen Fil ee Aura aca ase ae Ba wre ie Bora a rn Ermittelte Geschwindigkeit m
121. somit m glichst viele Informationen herausziehen zu k nnen Denn je mehr in der Simulation passiert d h je mehr unterschiedliche Situationen generiert werden desto genauer sind die Parameter die man erh lt Da fminsearch sehr langsam ist und man noch keine Erfahrung ber konsistente Anfangswerte hat starten wir die Optimierung jedoch zun chst mit dem Fahrprofil Stepl um akzeptable Startwerte zu finden Das Finden passender Startwerte f r den Optimierer stellt sich als erste Schwierigkeit heraus Beginnt man mit beliebigen Werten so verf ngt sich der Optimierer oftmals in lokalen Minima bei denen die gefittete Kurve nicht ansatzweise in der N he der Versuchswerte liegt Doch auch wenn das visuelle berpr fen der Positionsdaten ein erfolgreiches Optimieren vermuten l sst muss dies nicht unbedingt der Fall sein So haben sich f r Startwerte nahe Null beispielsweise folgende L sungswerte als lokales Minimum ergeben K 0 953044582 K 117 5989591 Ka 0 006545204 6 14 Allein der negative K Beiwert l sst einen stutzig werden und erscheint mehr als fraglich Betrachtet man die Plots f r diese L sung so sieht der Positionsvergleich wie erw hnt auf den ersten Blick nicht schlecht aus siehe Abbildung 6 2 links Betrachtet man jedoch auch die simulierte Beschleunigung siehe rechte Grafik von Abbildung 6 2 so sieht man ein starkes Hin und Herschwingen der Beschleunigung Mag dies zwar bis zu einem gewissen Grad er
122. t hierbei so gut dass die Messwerte in gr n da von so gut wie nicht zu unterscheiden sind Beim Upswing Profil l sst sich eine maximale Differenz von 0 0268 rad feststellen Dies entspricht einem Winkel von etwa 1 5 Bezogen auf die lange Fahrzeit von f nf Sekunden ist dies ein absolut zufriedenstellender Wert Das 67 Kapitel 6 Einf hrung neuer Modelle alte Simulationsmodell hatte bei diesem Fahrversuch sogar einen berschlag des Pendels berechnet Beim Fahrversuch Step1 betr gt der maximale Unterschied zwischen neuem Modell und Messwerten sogar nur 0 0031 rad 0 18 und liegt damit nur knapp ber der m glichen Aufl sungsgrenze des Pendelsensors von 0 0261 rad Winkel des Pendels in rad 107 Messwerte bisheriges Modell PT Modell 0 5 1 1 5 2 2 5 3 3 5 4 4 5 5 Zeitins Abbildung 6 11 Vergleich der Messwerte mit den Simulationswerten des Winkels beim Fahr profil Upswing 6 2 3 Das PT gt Modell Zum Abschluss dieses Abschnitts wird das nun gefundene Simulationsmodell mit einem PT Glied als Motormodell nochmals vollst ndig niedergeschrieben T3 t ra t a t zs t 6 22 tlt welt 68 In Abbildung 6 16 sind die Abstufungen der Winkelmesswerte deutlich zu erkennen 6 3 Motor als PT Glied Messwerte 3 17 bisheriges Modell PT Modell g 3 05 E a Ar o g 2 95F a 2 9 E ZS 2 85
123. ten des Ergebnisses Abb 6 11 6 12 main PT2 opti W m Routine zur Optimierung der Parameter f r das PT2 Modell des Wagens anhand der gemessenen Positionsdaten und anschlie en des Plotten des Ergebnisses Abb 6 6 6 7 6 8 main_PT2_step m Beispielhafte Sprungantwort eines PT Glieds K 3 T 0 1 d 0 2 1 0 2 0 vgl Abb 6 5 min_PT1_P m Funktion zur Berechnung des Differenzenvektors aus Simulation und Positionsmesswerten min_PT1_W m Funktion zur Berechnung des Differenzenvektors aus Simulation und Winkelmesswerten min_PT2_P m Funktion zur Berechnung des Differenzenvektors aus Simulation und Positionsmesswerten min PT1 W m Funktion zur Berechnung des Differenzenvektors aus Simulation und Winkelmesswerten ode_sys_alt m Differentialgleichungssystem des bisherigen Modells ode_sys_PT1_P m Differentialgleichungssystem des PT Modells mit variablen Pen delparametern ode_sys_PT1W m Differentialgleichungssystem des PT Modells mit variablen Wa genparametern ode_sys_PT1 m Differentialgleichungssystem des P T Modells ode_sys_PT2_P m Differentialgleichungssystem des PT gt Modells mit variablen Pen delparametern ode_sys_PT2 W m Differentialgleichungssystem des PT Modells mit variablen Wa genparametern ode_sys_PT2 m Differentialgleichungssystem des PT2 Modells preparing_data m Funktion zum Einlesen der Mess und Beschleunigungswerte MATLAB KAPITEL7 Neben den unten aufgefiihrten Dateien beinhaltet dieser Ordner noch
124. tinen mit denen die darge stellten Grafiken erzeugt wurden Dar ber hinaus befinden sich diverse Benutzerhandb cher sowie die Internetquellen als PDF Dokumente auf der CD Im Folgenden ist ein Dateiverzeichnis der CD aufgef hrt CPP AccControl cpp acccontrol h axisoff close exe GT400 DLL IP_Testumgebung cbp main cpp PendulumBase cpp pendulumbase h StopWatch cpp stopwatch h Userlib h Abgeleitete Klasse von PendulumBase cpp zur Kapselung der Beschleunigungsgebung Headerfile der Aufrufmethoden in AccControl cpp Im Falle einer nicht erfolgreichen Beendigung des Fahrversuch Programms kann mit dieser ausf hrbaren Datei die aktuell aktive Achse geschlossen und der Motor ausgeschaltet werden Programmbibliothek zur Steuerung des Pendels Code Blocks Projektdatei Hauptprogramm zur Durchf hrung der Fahrversuche Klasse zur Kapselung der Aufrufmethoden des Motion Con trollers Headerfile der Aufrufmethoden in PendulumBase cpp Klasse zur Zeitmessung w hrend der Fahrversuche Headerfile der Klassendefinition in StopWatch cpp Headerfile der Aufrufmethoden in GT400 DLL 87 Anhang A Inhalt der beiliegenden CD MATLAB Die MATLAB Routinen sind im Allgemeinen als Hauptprogramme implementiert d h sie enthalten alle notwendigen Parameter und k nnen direkt ausgef hrt werden Eine nde rung der Parameter kann direkt im Programmkopf vorgenommen werden Ausnahmen sind Hilfsroutinen die von diesen Programmen
125. tte dementsprechend eine Systemmatrix motor R eine Eingangsmatrix Duo R und eine Ausgangsmatrix COMotor BI Eingangsgr e ist hierbei die vorgegebene Beschleunigung u t Ausgangs gr e ist die weitergegebene Beschleunigung umotor t y t die wie in Abschnitt 5 4 2 gesehen deutlich vom Sollwert abweichen kann Das Gesamtsystem l sst sich demnach fol genderma en beschreiben 8 N x 8 N E cz IS Le n 8 Se ae Q Q 2 Neng Q O a 8 x t 7 7 Die Matrixeintr ge werden hierbei ganz allgemein und mathematisch angegangen ohne sich intensivere Gedanken ber den physikalischen Sinn der einzelnen Eintr ge zu machen Zum Ermitteln der Matrixeintr ge kann hierbei die System Identification Toolbox in MATLAB 19 Kapitel 7 Weitere Ideen und Ans tze zur Modellierung dienen Dort kann aus der Angabe des Systemeingangs d h bei Stepl konstant u 3 m s und Systemausgangs entsprechend die Beschleunigung aus Abbildung 5 16 eine li neare Approximation als Abbildung berechnet werden Anschlie end k nnen die Matrixein tr ge durch Parametersch tzen anhand einer Kleinste Quadrate Optimierung in lsqnonlin bzgl des schwierigeren Fahrprofils Upswing weiter verbessert werden x 10 Modell Messwerte Position des Wagens in m ll li li il l li ll li ll 0 0 00
126. und der sehr guten Simulationswerte und der groben Skalierung keine merklichen Unterschiede zwischen Simu lation und Messung erkennbar sind sieht man in rechten Teil deutlich das erw nschte berschwingen der Beschleunigung bei jedem Beschleunigungswechsel und das anschlie en de schnelle Einpendeln Zur Unterstreichung der G te der Simulation ist in Abbildung 6 7 nochmals ein vergr erter Ausschnitt derselben Simulation zu sehen nun zus tzlich auch mit dem direkten Vergleich zum alten Simulationsmodell Man kann erkennen dass auch nach einer Steuerungszeit von drei Sekunden die Simulation der Realit t sehr gut entspricht Auch der Vergleich mit dem Fahrprofil Step1 ist mehr als zufriedenstellend siehe Ab bildung 6 8 Die Verz gerung zu Beginn kann durch das PT 2 Modell gut aufgefangen wer den Auch im weiteren Verlauf ist optisch lediglich ein marginaler Unterschied zwischen den Messwerten und dem Simulationsmodell auszumachen Da nicht nur die korrekte Position des Schlittens von hoher Bedeutung f r die richtige Angabe des Pendelwinkels ist sondern auch dessen Geschwindigkeit soll diese n n auch untersucht 64 6 2 Motor als PT Glied PT Modell CH m T Messwerte bisheriges Modell o io Position des Wagens in m CH CH CH CH CH Ca i e ol O N oO T T T T T oO u gt T 2 BR wo T li li li li ll 2 5 2 6 2 7 2 8 2 9 3 3 1 3 2 3 3 Zeit in s Abbildu
127. ung wird von einigen Autoren als eine der wichtigsten und meistzitierten Grundlagenver ffentlichung im Bereich der computergest tzten Numerik eingesch tzt 28 Die Idee ist im Gegensatz zum gleitenden Mittelwert nicht einfach den Durchschnitt der benachbarten Daten als gegl tteten Wert g im Punkt t zu nehmen sondern eine bestimmte 3auch FIR Filter englisch f r finite impulse response filter 34 5 2 Exkurs Filter Anzahl von Nachbar Messwerten x mittels eines Polynoms eines gewissen Grades M d h es sind mindestens M 1 quidistante St tzstellen n tig zu fitten Dann ergibt der Wert des Polynoms an der Stelle t den gegl tteten Wert gi Anschlie end wird das Fenster der betrachteten Messwerte um einen Zeitschritt nach rechts verschoben und ein neues Polynom gesucht Diese Idee ist in Abbildung 5 4 mit einem Polynom 2 Grades ersichtlich wobei nz die Anzahl der Punkte zur Linken von t und nr die Anzahl der Punkte zur Rechten von t bezeichnet Mit p t bezeichnen wir das Polynom vom Grad M das den Kleinste Quadrate Fehler durch die ng np 1 verrauschten Datenpunkte um den Zeitpunkt t minimiert Es gilt somit g p ti ____geglatteter Wert 9 Messwert x UND ti e tia t_ i 2 t_ i Lt U lie L t t LN P Abbildung 5 4 Kleinste Quadrate Polynom eines Savitzky Golay Filters zum Zeitpunkt t Ein Vorteil des Savitzky Golay Filters ist dass anders als bei anderen Gl ttungsfiltern A
128. usge bten resultierenden Kraft der Normaldruckverteilung Un ist der sogenannte Haftreibungskoeffizient der lediglich von der vorliegenden Oberfl chen paarung aber nicht von deren Gr e abh ngt Der Richtungssinn der Haftreibungskraft H ist stets so dass die Bewegung verhindert wird d h gegen die gegebene Beschleunigungkraft Der K rper haftet also solange f r die vorgegebene Kraft F gilt F lt Ho po N 7 9 Wird diese Kraft berschritten wird sich der betrachtete Gegenstand bewegen F r die dann auftretende Reibungserscheinung die sogenannte Gleitreibung R gilt in guter N herung dass sie zum einen proportional zur Normalkraft N mit Proportionalit tsfaktor u und zum anderen unabh ngig von der Geschwindigkeit v und dieser entgegengesetzt gerichtet ist Es gilt somit Bein 7 10 v Der Reibungskoeffizient u ist dabei stets kleiner als der Haftreibungskoeffizient jig Die beiden Formeln 7 9 und 7 10 werden auch Coulomb sche Reibungsgesetze genannt In Abbildung 7 3 ist die Reibungskraft in Abh ngigkeit der Geschwindigkeit aufgetragen Hierbei wird die Unstetigkeit im Nullpunkt sowie der singul re Charakter der Haftreibung deutlich Reibungskraft HN HN 0 Geschwindigkeit Abbildung 7 3 Abh ngigkeit der Reibungskraft von der Geschwindigkeit M chte man die Reibungseffekte in ein Simulationsmodell einbauen so kann die Abbildung 7 3 gezeigte Unstetigkeit zu gro en Problemen bei den
129. uzierbar Hier treten zum Ende der Messung hin Unterschiede bis maximal 0 2 mm auf Interessant ist jedoch die Tatsache dass zu Beginn im Bereich von 0 030 0 080 ms siehe Zoom in Abbildung 4 3 Unterschiede bis zu 0 65 mm in den Versuchen auftreten die kurz darauf bereits nicht mehr zu identifizieren sind Hier sieht man also sehr deutlich das Wirken des PID Reglers im Antriebsverst rker des Servomotors der diese aufgrund von Hardwarelatenzen auftretenden Differenzen schon nach sehr kurzer Zeit wieder ausregelt durch Aufl sung des Motordrehgebers definiert 27 Kapitel 4 Versuche und Messungen 0 354 7 Step1 Messung1 Step1 Messung2 9 9393 Step1 Messung3 Step1 Messung4 Step1 Messung5 Step1 Messung6 0 3534 0 3525 7 0 3527 X 0 4978 0 3515 Y 0 3514 0 351 X 0 4978 Y 0 3511 Position des Wagens in m 0 3505 0 498 0 4985 0 499 0 4995 Zeit ins Abbildung 4 2 Vergleich der Schlittenposition bei verschiedenen Messungen von Step1 0 12 e B r E 2 2 1 o 0 08 D 1 g gi ats ge air ve one me E Consti Messung ZS 0 047 Const Messung2 Const1 Messung3 Const1 Messung4 Oe Consti Messung5 Const1 Messung6 ol i L i i N L i 0 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 0 45 0 5 Zeit ins Abbildung 4 3 Vergleich der Schlittenposition bei
130. verschiedenen Messungen von Const1 Beim l ngsten Beschleunigungssprofil Upswing betr gt der maximale Unterschied in der Position des Schlittens zwischen zwei Fahrversuchen am Ende der Steuerungssequenz ber 13 mm vgl Abbildung 4 4 Erkl rung hierf r ist dass der Beschleunigungstakt von 100 ms nicht exakt eingehalten werden kann sondern einzelne Beschleunigungen ein paar Zehntel 28 4 2 Aufzeichnung der Messdaten Millisekunden zu fr h bzw zu sp t gegeben werden Dieser Fehler pflanzt sich entsprechend fort sodass bei l ngeren Sequenzen die Unterschiede in der Position deutlicher ausfallen 0 2 0 15 E oi E Sep 2 D S 0 05 bai Y 0 04862 0 8 mo s 0 05 Upswing Messung 8 0 1F Upswing Messung2 Upswing Messung3 0 15 Upswing Messung4 Upswing Messung5 0 2F Upswing Messung6 1 2 3 4 5 6 Zeit ins Abbildung 4 4 Vergleich der Schlittenposition bei verschiedenen Messungen von Upswing Dementsprechend kann hier festgehalten werden dass die einfachen Fahrversuche ber l nge ren Zeitraum gesehen durchaus identisch ablaufen im Bereich bis 80 ms jedoch unterschied lich anfahren Da es bei den l ngeren Fahrprofilen grunds tzlich gr ere Differenzen auf grund der unterschiedlichen Taktl nge gibt empfiehlt es sich bei diesen Fahrprofilen jede Messung als eigenst ndigen Versuch zu betrachten Lediglich die Messungen von
131. w nscht sein so klingt dieses Verhalten bei dieser Beschleunigung jedoch viel zu langsam ab Dar ber hinaus kann ein negativer Proportional Beiwert nicht der Realit t entsprechen da diese per Definition positiv sind Aus diesem Grund werden weitere Startwerte getestet um weitere lokale Minima auszu machen Den besten Wert der Zielfunktion liefern schlie lich folgende Werte Kp 15 92552188 K 88 00566313 Ka 0 000708770 6 15 Wie in Abbildung 6 3 zu erkennen ist sieht diese L sung auf den ersten Blick sehr gut aus und der Vergleich der Fehlerquadratsumme zeigt dass es auch besser als das bisherige Modell ist Vergleicht man aber die Positionswerte zu Beginn des Fahrprofils insbesondere den Unterschied nach den ersten 100 ms so erkennt man deutliche Differenzen Dies liegt daran dass dieser PID Regler sehr schnell auf ca 90 des vorgegebenen Wertes springt und sich diesem im Anschluss noch weiter ann hert vgl rechte Grafik in Abbildung 6 4 Aber gerade durch diesen Sprung zu Beginn ist das Verhalten in diesem Bereich relativ hnlich zum bisherigen Modell Dieses Verhalten hat sich bei allen gefundenen lokalen Minima best tigt Demzufolge entsprechen insbesondere die Fehlerquadratsummen der k rzeren Fahrprofile 59 Kapitel 6 Einf hrung neuer Modelle Beschleunigungs PID Modell PID Modell Messwerte 15t profil Upswing
132. zu aussagekr ftigen Ergebnissen zu kommen ist es bei verrauschten Messdaten oft mals ein probates Mittel die Daten etwas auszud nnen sogenanntes Downsampling Das Ergebnis das entsteht wenn man lediglich jeden f nften Messwert benutzt zeigt Abbildung 5 12 Da wir eine Schrittweite von etwa 0 13 ms haben hat man auch nach Durchf hrung des Downsamplings immer noch ausreichend viele St tzstellen Man sieht nun zwar das Errei chen des Zielwerts 3 m s jedoch ist das starke berschwingen zu Beginn sehr abgeschw cht was wiederum auch nicht zufriedenstellend ist 43 Kapitel 5 Auswertungen Beschleunigung des Wagens in m s 0 05 0 1 0 15 0 2 0 25 0 3 0 35 0 4 Zeit ins Abbildung 5 11 Ermittelte Beschleunigung mittels Differenzenquotient aus Messdaten 0 05 0 1 0 15 0 2 0 25 0 3 0 35 Zeit ins Abbildung 5 12 Ermittelte Beschleunigung mittels Differenzenquotient aus ausgediinnten Messdaten Man kann also an dieser Stelle festhalten dass sich die Resultate abh ngig von der ange wandten Methodik d h Filterart Filterlange und Downsampling sehr stark unterscheiden und au er einem kr ftigen Uberschwingen zu Beginn kein gemeinsames Muster zu erkennen ist 5 4 2 Ermittlung durch Kurvenanpassung An dieser Stelle stellt sich die Frage wie stark das berschwingen der Beschleunigung zu Beginn des Losfahrens tats chlich ist Aus diesem Grund m chten wir nun mittels Kurvenan passung die B

Download Pdf Manuals

image

Related Search

Related Contents

Nikon 1902 User's Manual  Life Fitness G3 User's Manual  BENUTZERHANDBUCH  Decreto-Lei n.° 379/97 de 27 de Dezembro  US300FM  La Dieta Mediterránea como modelo de alimentación  

Copyright © All rights reserved.
Failed to retrieve file