Analyse, Modellierung und Programmierung des Geige-spielens an ...
Analyse, Modellierung und Programmierung des Geige-spielens an ...
Analyse, Modellierung und Programmierung des Geige-spielens an ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
10. Entwicklung echtzeitfähiger Simulink-Oberflächen<br />
Hauptbest<strong>an</strong>dteil dieses Modell sind die fünf Untersysteme realisiert in den Blöcken<br />
namens Vorberechnungen, Anfahrt, Abfahrt, Streichen <strong>und</strong> Ueberfuehren. In ihnen spielen<br />
sich die wesentlichen Vorgänge zur Trajektoriengenerierung ab. Wie die Namen schon<br />
vermuten lassen, werden dabei die einzelnen Vorgänge getrennt vonein<strong>an</strong>der generiert.<br />
10.4.2.2. Vorberechnungen<br />
Der Block Vorberechnungen hat folgende Aufgaben: Er liest aus den Arbeitsbereich<br />
Matlabs alle benötigten Daten wie Violinenkoordinaten, Tr<strong>an</strong>sformationsmatrizen, Spielgeschwindigkeiten,<br />
usw. aus <strong>und</strong> übergibt sie <strong>an</strong> eine modifizierte Vari<strong>an</strong>te <strong>des</strong> bereits<br />
bek<strong>an</strong>nten Programmfragments namens Trajektorie_II. Weiterhin werden auch die vom<br />
Liedgenerator vorher zu berechnenden Matrizen TAbspiel <strong>und</strong> TMatrix ausgelesen 3 , welche<br />
das zu spielen Stück definieren. Es ist also Sorge zu tragen, dass sich all diese Informationen<br />
vor Beginn der Berechnungen im Arbeitsbereich (Workspace) von Matlab<br />
befinden. Die Eing<strong>an</strong>gsvariable a <strong>des</strong> Blockes dient als Zähler <strong>des</strong> Systems, mit welchem<br />
die auszulesende Spalte der Matrix TMatrix definiert wird. Der Ausg<strong>an</strong>g Ende_Matrix<br />
wird beim Erreichen der letzten Spalte von TMatrix auf den Wert Eins gesetzt <strong>und</strong> stoppt<br />
in Folge <strong>des</strong>sen die Simulation. Die Ausg<strong>an</strong>gsvariable Aktion bestimmt das als nächstes<br />
auszuführenden Teilsystem. Das Untersystem Vorberechnungen ist in Abbildung 10.12<br />
dargestellt.<br />
10.4.2.3. An- <strong>und</strong> Abfahrt<br />
Die beiden Untersysteme An- <strong>und</strong> Abfahrt sind sich vom strukturellen Aufbau sehr ähnlich<br />
<strong>und</strong> werden aus diesem Gr<strong>und</strong> hier zusammen betrachtet. Für die textuelle <strong>Programmierung</strong><br />
wurden hierbei Programmfragmente aus Trajektorie_II entnommen <strong>und</strong><br />
geeignet modifiziert, um sie für eine Echtzeitberechnung nutzbar zu machen. Die Werte<br />
der Rotation werden <strong>an</strong>h<strong>an</strong>d der übergegebenen Werte T_aktuell <strong>und</strong> T_Lage_soll<br />
vollständig in Echtzeit berechnet, während für den tr<strong>an</strong>slatorischen Bewegungsablauf Daten<br />
aus einer in Vorberechnungen ermittelten Kurve entnommen werden. Die Variable r<br />
dient dabei als zählen<strong>des</strong> Glied, welches auf den Wert der Variable Punkt<strong>an</strong>zahl gegrenzt<br />
wurde. Die Trajektoriendaten werden in der Form von Umweltkoordinaten direkt auf den<br />
Ausg<strong>an</strong>g gegeben. Wurde die Berechnungen abgeschlossen, so wird mit dem Ausg<strong>an</strong>g Ende<br />
dies signalisiert <strong>und</strong> der Block Vorberechnungen wird in Folge <strong>des</strong>sen die Vorarbeiten<br />
für die nächste Aktion laut TMatrix übernehmen <strong>und</strong> diese starten bzw. das Programm<br />
beenden. Das Untersystem Anfahrt ist in Abbildung 10.13 dargestellt.<br />
10.4.2.4. Streichen<br />
Das Untersystem Streichen funktioniert ähnlich wie das der An- <strong>und</strong> Abfahrten, wobei<br />
hier noch nicht einmal eine Rotationsregelung von Nöten sein wird. Die benötigte Orientierung<br />
wird als konst<strong>an</strong>te <strong>an</strong> das System übergeben. Die lineare Tr<strong>an</strong>slation wird mit<br />
3 Eine Verbindung der beiden Matrizen zu einer einheitlichen konnte aus zeitlichen Beweggründen nicht<br />
mehr realisiert werden, wäre aber durchaus sinnvoll.<br />
92