Warning: Undefined array key "DW68700bfd16c2027de7de74a5a8202a6f" in /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/lib/plugins/translation/action.php on line 237

Warning: Trying to access array offset on value of type null in /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/lib/plugins/translation/action.php on line 237

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/lib/plugins/translation/action.php:237) in /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/inc/actions.php on line 38
Einleitung und Grundlagen [Institut für Sportwissenschaft]

Benutzer-Werkzeuge

Webseiten-Werkzeuge


sbas:ss2013:rollstuhl
Title Simulation eines Rollstuhlfahrers
Veranstaltung Sensor-basierte Analyse- und Simulationssysteme (SBAS) SS 2013
Leitung Prof. Dr. phil. Andre Seyfarth
Betreuung Christian Rode
Autoren Tobias Kaminsky, Sonja Mohnen, Lars Lukas Tremper
letzte Änderung 24. Januar 2014

Einleitung und Grundlagen

Die im folgenden vorgestellten Modelle wurden im Rahmen des Seminars „Sensor-basierte Analyse- und Simulationssysteme (SBAS)“ unter der Leitung von Prof. Andre Seyfarth und Dr. Christian Rode im Sommersemester 2013 erstellt. Ziel des Seminars war es, die Grundlagen der Modellierung des Körpers und der Simulation von dessen Bewegungen zu lernen und mit Hilfe von Matlab Simulink und SimMechanics umzusetzen. Diese Modellierungsumgebungen stellen ihre Elemente als Blockdiagramme dar.

In Anlehnung an das Seminar Quantitative Forschungsmethoden aus dem letzten Semester, in welchem wir uns mit Rollstuhlbasketball beschäftigten und per Experiment der Frage auf den Grund gingen, ob die Sitzhöhe des Sportlers Einfluss auf die Beschleunigung des Rollstuhls hat, wollten wir eben diese Frage in diesem aktuellen Seminar mit den Mitteln der Modellierung und der Simulation beantworten. Um unsere Präferenzen abzustecken, erstellten wir mit Hilfe eines gemeinsamen Brainstormings eine Liste von interessanten Hypothesen, denen man mit einem Modell auf den Grund gehen könnte. Da es für uns zu diesem Zeitpunkt noch sehr schwer abzuschätzen war, wie arbeitsaufwändig jede einzelne Hypothese sein würde, wurden diese von den Seminarbetreuern begutachtet, konkretisiert und ausgefiltert.

Während der Präsenztermine wurden uns wichtige Grundlagen der Modellierung und Simulation erklärt, damit wir anschließend gemeinsam das Modell eines Rollstuhlfahrers erstellen konnten. Danach wurde jedem Student eine Hypothese zur Bearbeitung zugewiesen, die jeder für sich bearbeiten sollte. Dabei war jeweils eine Weiterentwicklung des Modells und Programmierung in Matlab nötig.

Vermittlung der Grundlagen - erste Schritte

Der fallende Ball

Zunächst wurde mit Simulink die Simulation einer Balles erstellt, der von einem Meter Höhe mit einer Geschwindigkeit von 2m/s in die Luft geworfen wird. Durch die Erdanziehungskraft wird der aufsteigende Ball gebremst und bereits nach ca. 0.2 Sekunden zur Umkehr bewegt. Die Simulation wird abgebrochen, sobald der Ball auf dem Boden - also in 0 Metern Höhe - landet.

Einfaches Hüpfmodell

Im nächsten Schritt wurde ein Masse-Feder-Modell aufgebaut. Die Feder des Modells hat eine Ausgangs- oder Ruhelänge von einem Meter und eine Steifigkeit von 20000 N/m. Die Steifigkeit gibt an, wie schwer es ist, die Feder zusammenzudrücken. Je größer die Steifigkeit ist, desto höher ist die Kraft, die beim Zusammendrücken der Feder erzeugt wird. Wir lassen nun einen Körper mit der Masse 80kg mit einer Anfangsgeschwindigkeit von 2 m/s auf die Feder wirken. Durch die Erdanziehungskraft wird die Masse weiter beschleunigt. Sobald die in der Feder entstandene Kraft die Beschleunigung der Erdanziehungskraft übersteigt, wird die Richtung in welche sich die Masse bewegt umgedreht. Die Feder wird länger und beschleunigt die Masse nach oben (Abbildung 1).

Abb. 1: Masse-Feder-Modell

Ein Mehrkörpersystem

Ein Mehrkörpersystem ist definiert als ein System von starren Segmenten, die über Gelenke gekoppelt werden. Jeder Körper besitzt Freiheitsgrade, welche die Bewegungsmöglichkeiten festlegen. Ein starrer Körper hat in seinem ursprünglichen Zustand sechs Freiheitsgrade (3 translatorische FG und 3 rotatorische FG). Sobald der Körper allerdings in Segmentketten an Gelenke gebunden ist, schränken diese die Freiheitsgrade ein.

Um Mehrkörpersysteme darstellen zu können, brauchten wir zusätzlich das Matlab Paket SimMechanics. Ein solches System benötigt einen sogenannten Ground (Koordinatenursprung) mit einer Environment, die die Umgebungsparameter enthält. Jedes Segment fügt außerdem ein oder mehrere Koordinatensysteme zum Modell hinzu. Ein Segment hat eine Masse und einen Schwerpunkt. An jedem der Koordinatensysteme können Gelenke ansetzen. In unserem dritten Beispiel erstellten wir ein Mehrkörpersystem, welches aus einem Scharniergelenk und einem anhängenden Körpersegment besteht. Eine Umgebung, in welcher die Erdbeschleunigung wirkt und ein unbeweglicher Ground als Koordinatenursprung, an dem das Gelenk ansetzt, wurden definiert. Die Ausgangsposition des Körpersegmentes ist nach oben rechts zeigend (Abbildung 2). Nach dem Start der Simulation pendelte das Segment in Richtung Schwerkraft aus. Nun sollte das Segment auf einen gedachten Boden fallen (d.h. sich um 45 Grad Richtung Schwerkraft bewegen) und dort liegen bleiben (Abbildung 3).

Abb. 2: Simulation Mehrkörpersystem mit Scharniergelenk und anhängendem Körpersegment - Ausgangsposition
Abb. 3: Simulation Mehrkörpersystem mit Scharniergelenk und anhängendem Körpersegment - am Boden liegend

Die Existenz des Bodens, sowie dessen Eigenschaften wurden ebenfalls durch wirkende Kräfte simuliert. Hierzu müssen zunächst der aktuelle Winkel und die Winkelgeschwindigkeit des Gelenks ausgelesen werden, was über einen „Joint Sensor“, der am Gelenk ansetzt, möglich ist. Nach 45 Grad freiem Fall wird also in Abhängigkeit des Winkels der Schwerkraft nach dem Beispiel des Masse-Feder-Modells eine Kraft entgegengesetzt, die den weiteren Fall verhindert. Die Variable `u(1)` enthält den Gelenkwinkel. Die Ausgangsstellung des Körpersegmentes markiert den Winkel Null. Sobald der Ausdruck `(u(1) < -45)` zu wahr ausgewertet wird, hat die Berechnung Wirkung auf das Gelenk. Für jedes Grad, welches das Körpersegment mehr als 45 Grad fällt, wird eine Kraft zum Gelenk zurückgeführt. Um den Aufschlag abzuschwächen, wird zusätzlich ein Dämpfungsparameter eingesetzt, der die Winkelgeschwindigkeit bremst. Die bremsende Kraft ist nicht vom Grad der Überschreitung der 45 Grad abhängig. Die berechneten Kräfte werden durch einen „Joint Actuator“ auf das Gelenk übertragen. Im Modell ist außerdem ein „Scope“ zu sehen, welcher als Anzeige verwendet wird. Hier können die Verläufe von Winkel, Geschwindigkeit und der Kräfte angesehen werden. Die Anzeige hat auf die Funktion des Modells keinen Einfluss (Abbildung 4).

Abb. 4: Matlab: Mehrkörpersystem mit Scharniergelenk und anhängendem Körpersegment

verfasst von S. Mohnen

Erstellen des Rollstuhlfahrer-Modells

Nach der grundlegenden Einführung durch die drei zuvor beschriebenen Modelle, sollten wir nun im Rahmen der Präsenzveranstaltung das Modell eines Rollstuhlfahrers aufbauen. Dieses Modell sollte so komplex wie nötig und so einfach wie möglich sein.

Das Modell sollte beinhalten:

  • Eine Environment, die am Ground der Achse ansetzt
  • 2 Grounds (einen an der Achse, einen an der Schulter)
  • 4 Gelenke (Radnabe/Achse, Hand am Greifring, Ellenbogen, Schulter)
  • 3 Segmente (Radius Rad/Speiche, Unterarm, Oberarm)

Damit sind die Elemente, die das Objekt beschreiben zunächst vollständig. Um das Modell zu vereinfachen wird nicht zwischen der Position des Greifrings und dem Radius des Rades unterschieden. Der Radius wird auf 30 cm gesetzt und als Position angenommen, an der die Hand das Rad greift. Das Welt-Koordinatensystem entspringt der Achse. Alle weiteren Segmente fügen weitere Koordinatensystem zum Gesamtsystem hinzu. Je nach Anwendungsgebiet kann es sinnvoll sein, mit dem Welt- oder dem lokalen Koordinatensystem zu arbeiten. Dies ist oft eine Quelle für Fehlfunktionen.

Für alle Simulationen wurden folgende Modellannahmen getroffen:

  • 80 kg Mensch
  • 20 kg Rollstuhl
  • Luftwiderstand:
  • Der Luftwiderstand setzt sich aus folgenden Parametern zusammen:
    • `v` - Die Fahrtgeschwindigkeit, mit dem mit Abstand größten Einfluss auf den Luftwiderstand
    • `c_w * A` - Die Form des zu bewegenden Objekts (`c_w`) und dessen größter Durchschnitt (`A`) in Fahrtrichtung. Während sich der größte Durchschnitt einfach durch Multiplikation von maximaler Höhe und maximaler Breite des Objekts berechnen lässt, ist der Formfaktor oftmals nicht einfach zu bestimmen. Er muss so gewählt werden, dass der größte Durchschnitt (entspricht einem Rechteck) an die eigentliche Form des Objektes (in Abbildung 5 durch die Fläche A gekennzeichnet) angepasst wird. Im Idealfall entspricht `c_w` also exakt dem Anteil des Objekts am größten Querschnitt, der tatsächlich ausgefüllt wird. Für Autos wird zur Schätzung des Formfaktors ein Wert von 0.8 angegeben. Da ein Rollstuhl (+ Fahrer) jedoch weniger kompakt (rechteckig) ist wie ein Auto, wird für die Berechnung des Luftwiderstandes ein Wert von 0.5 angenommen. Da Breite und Höhe des Rollstuhls (+ Fahrer) stark vom Stuhlmodell, der Fahrerkonstitution, sowie deren Behinderung abhängt, werden zur Vereinfachung auch hierbei feste Werte angenommen (Breite = 0.7m, Höhe = 1.3m).
Abb. 5: Darstellung des Formfaktors und es Querschnittes eines Objekts zur Berechnung des Luftwiderstandes
  • `p` - Die Luftdichte p wird als Konstante in die Berechnung des Luftwiderstands einbezogen. Im Folgenden wird von einer Luftdichte von 1.2041 kg/m^3 ausgegange. Dies entspricht ca. den Bedingungen auf der Erde bei 350m über dem Meeresspiegel.
  • Der Luftwiderstand (`F_l`) lässt sich nun durch die Formel `F_l = 0.5 * v^2 * c_w * A * p` berechnen.

verfasst von L. Tremper

  • Keine Reibungskräfte, da diese weitgehend unabhängig von Armstrategie sind.
  • Das Massenträgheitsmoment, das das System Mensch und Rollstuhl der beschleunigenden Kraft entgegensetzt, wurde in den Kontaktpunkt Hand/Rad integriert. Alternativ hätte dies auch in den Rollwiderstand eingebaut werden können.
    Das Massenträgheitsmoment ist definiert über I = m * r²
    Dies bedeutet für unser System:
    I= (80 kg + 20 kg) * (0,3 m)²
    = 100 kg * 0,09 m²
    = 9 kg * m²
  • Zur Vereinfachung wird immer nur ein Beschleunigungszyklus betrachtet. Dieser beginnt, wenn die Hand möglichst weit hinten mit dem Greifring Kontakt bekommt und endet bei Beendigung des Kontakts. Während dieses Zyklus muss der Oberkörper und der Arm eine hohe Beschleunigung erzeugen, um damit den Rollstuhl zu beschleunigen.
  • Die Gelenke von SimMechanics haben keine Einschränkung und können sich um 360° in einem Freiheitsgrad bewegen. Dies ist allerdings bei einem Menschen nicht möglich und würde die Simulation verfälschen, da z.B. der Ellenbogen maximal 180° gestreckt werden kann.
    Dies muss somit für jedes Gelenk separat begrenzt werden und geschieht mittels der Kräfte und Dämpfer, die der Bewegung entgegengesetzt sind (siehe hier).
  • Vereinfacht wurden keine einzelnen Muskeln betrachtet, sondern nur die Kräfte die diese in den Gelenken erzeugen.

Als einfachste Bewegungssteuerung wurde die Bang-Bang-Steuerung implementiert. Hierbei arbeiten die einzelnen „Muskeln“ entweder mit 0% oder 100% Aktivität. Dies ist abhängig von der Radachsen- und somit auch der Handstellung. Folgende Kriterien wurden festgelegt:

  • Zu Beginn eines Zyklus muss die Schulter eine Retraktion („nach hinten“) und das Ellenbogengelenk eine Beugung durchführen (siehe Abbildung 6).
  • Ist der Winkel zwischen Unteram und Radachse 180°, so soll die Schulter eine Protraktion („nach vorne“) ausführen. Der Ellenbogen beugt weiterhin (siehe Abbildung 7).
  • Ab dem Zeitpunkt, an dem das Handgelenk sich am Scheitelpunkt des Rades befindet (Speichenwinkel 0°) beginnt das Ellenbogengelenk sich zu strecken (siehe Abbildung 8).
  • Abbildung 9 zeigt das Ende eines Zyklus. Hierbei wurde das Rad maximal weit nach vorne bewegt.
Abb. 6: Beginn Zyklus
Abb. 7: Beginn Schulterprotaktion
Abb. 8: Beginn Ellenbogenstreckung
Abb. 9: Ende Zyklus

verfasst von T. Kaminsky

Fragestellungen

Ausgehend von dem oben erstellten Modell sollten nun verschiedene Fragestellungen beantwortet werden.

  1. Berechnung der max. Geschwindigkeit
  2. Einfluss von Muskeleigenschaften auf die opt. Bewegungsstrategie
  3. Einfluss weiterer Muskeleigenschaften und einem zweigelenkig wirkenden Bizeps/Trizeps auf die opt. Bewegungsstrategie
  4. Einfluss von Schulterposition auf den max. Drehmomentenstoß

Fragestellung I: Rekursive Berechnung der maximalen Geschwindigkeit des Modells

Zur Intialisierung des Rollstuhlmodells muss die aktuelle Winkelgeschwindigkeit des Rades vorgegeben sein. Um die maximale Geschwindigkeit zu berechnen, die das Rollstuhlmodell erreichen kann, wird diese zunächst auf 0 gesetzt (das Modell beginnt den ersten Zyklus aus dem Stehen). Nachdem ein Zyklus komplett durchlaufen wurde, wird die Winkelgschwindigkeit, die am Ende des Zyklus erreicht wurde, zur Initialisierung der nächsten Simulation herangezogen. Dieses Vorgehen wird solange wiederholt (rekursiver Aufruf), bis keine signifikante Änderung mehr zwischen Start- und Endwinkelgeschwindigkeit erreicht wird:

1. Iteration: omega_r = 0

2. Iteration: omega_r = 395

3. Iteration: omega_r = 440

4. Iteration: omega_r = 451

5. Iteration: omega_r = 455

6. Iteration: omega_r = 456

7. Iteration: omega_r = 456,5

8. Iteration: omega_r = 456,8

[Abbruch]

Nun, da die maximale Winkelgeschwindigkeit (omega) ermittelt wurde, kann man aus dem Zusammenhang…

`omega = V_0 / (Radius der Speiche) * 180 / pi
→ `V = (omega * Radius * pi) / 180` (in m/s!)

… die maximale Geschwindigkeit des Rollstuhlmodells errechnen. Bei dem gewählten Radius von 30 cm ergibt sich hiermit eine maximale Geschwindigkeit von 8.611 km/h.

Die reale maximale Geschwindigkeit eines Sportrollstuhlfahrers sollte höher ausfallen. Zu erklären ist dies mit der groben Schätzung der maximalen isometrischen Muskelkräfte im Modell. Außerdem wird im System lediglich ein Arm simuliert, der zum Antrieb des Rollstuhls beiträgt.

verfasst von L. Tremper

Fragestellung II Einfluss von Muskeleigenschaften auf die opt. Bewegungsstrategie

Einleitung

Bei dieser Fragestellung soll geklärt werden, welchen Einfluss die Muskeleigenschaften auf die optimale Bewegungsstrategie haben. Ohne Muskeleigenschaften besteht eine direkte Beziehung zwischen Muskelaktivität und resultierender Kraft. Der reale Muskel besitzt nicht diese lineare Beziehung (vgl. Produktansatz). Als einfachste Muskeleigenschaft soll die Kraft-Geschwindigkeits-Kurve implementiert werden. Anschließend wird mittels eines genetischen Algorithmus die optimale Bewegungsstrategie gefunden. Diese Bewegungsstrategie wird daraufhin mit der Bang-Bang-Strategie verglichen.

Implementation der Kraft-Geschwindigkeits-Kurve

In Abbildung 10 ist die Kraft-Geschwindigkeits-Kurve eines Muskels zu sehen. Diese ist normiert über die Formel v* = V/vmax. Somit ist die resultierende Kraftkurve in dem Bereich -1 (max. negative Geschwindigkeit = exzentrisch) bis +1 (max. positive Geschwindigkeit = konzentrisch) definiert. Für diesen Teil der Kurve gilt die Formel fv = (1-v*) / (1 + v*/curv). Das Simulink-Modell wurde dahingehend erweitert, dass es für die Gelenke Schulter und Ellenbogen jeweils zwei „Muskeln“ gibt:

  • Ellenbogen-Beuger
  • Ellenbogen-Strecker
  • Schulter-Protraktion (nach „vorne“)
  • Schulter-Retraktion (nach „hinten“)

Dies ist eine Vereinfachung, da in der Realität gerade bei der Schulter, deutlich mehr Muskeln die Bewegung beeinflussen. Dadurch, dass für jede Bewegungsrichtung ein „Muskel“ vorhanden ist, kann der exzentrische Teil des Muskels vernachlässigt werden. Soll eine möglichst hohe beugende Kraft im Ellenbogen erzeugt werden, so wird nur der Ellenbogen-Beuger (Bizeps) aktiviert und der Ellenbogen-Strecker (Trizeps) deaktiviert.

function f = schulter_f_v(wdot) %deg/s
v_max = 1500;    %deg/s
 
v_stern = wdot/v_max;
 
curv = 0.5;
 
if(v_stern >= 1)
    f = 0;
end
 
if(v_stern < 1 && v_stern >=0)
    f = (1-v_stern)/(1+(v_stern/curv));
end
 
if (v_stern < 0)
    f = 0;
end

Die nachfolgende Abbildung zeigt die angepasste Kraft-Geschwindigkeits-Kurve der Schulter.

Abb. 10: Kraft-Geschwindigkeits-Kurve der Schulter

Eine ähnliche Kurve mit anderen vMax-Werten ist für die Ellenbogen-Muskeln definiert.

Die resultierende Kraft des Muskels richtet sich nach der Formel für den Produktansatz FCE = Act * fim * fl * fv. In diesem Modell wird, wie bereits erwähnt, nur fv verwendet.

Abb. 11: Simulink Blockdiagramm

Wie im obigen Simulink-Modell zu sehen ist, geschieht dies, indem die aktuelle Winkelgeschwindigkeit über Eingang 1 an die obige Funktion übergeben wird. Diese Funktion liefert einen Wert zwischen 0 und 1, der anschließend mit der max. isometrischen Kraft und der Aktivität multipliziert wird. Die nachfolgende Grafik zeigt dies:

  1. Winkelgeschwindigkeit der Achse
  2. Aktivität des Ellenbogen-Beugers
  3. Max. isometrische Kraft (konstant)
  4. Kraft-Geschwindigkeits-Kurve
  5. resultierende Kraft
Abb. 12: Berechnung der aktuellen Kraft

Auffällig ist, dass die resultierende Kraft ab ca. 0.45s einen Wert von 0 annimmt, obwohl die Aktivität teilweise sogar 100% erreicht. Die Ursache ist in der Winkelgeschwindigkeit zu sehen, da diese ab 0.45s in den negativen Bereich übergeht. Somit entsteht durch die Kraft-Geschwindigkeits-Kurve eine Kraft von 0.

Die Modellierung der Muskeleigenschaft über die Kraft-Geschwindigkeits-Kurve hat den Vorteil, dass keine Längenänderung der Muskeln berücksichtigt werden muss und so das Modell recht einfach gehalten werden kann und dennoch die Grundidee der Modellierung und Simulation abgebildet werden kann.

Implementation des genetischen Algorithmus

In diesem Kapitel wird die genaue Implementation des genetischen Algorithmus für das Rollstuhl-Modell erklärt. Wie in dem Kapitel genetischer Algorithmus beschrieben, besteht ein genetischer Algorithmus aus einer Population mit mehreren Chromosomen, die einen möglichen Zustand des Systems widerspiegeln. Jedes Chromosom wird mittels einer Fitness-Funktion bewertet, wie gut dieser Zustand das Problem löst. Für das Rollstuhl-Modell musste also eine Fitness-Funktion gefunden und überlegt werden, anhand welcher Merkmale die Chromosome gebildet werden sollen. Als Fitness-Funktion wird die Zeit eines Zyklus gewählt. Da hierbei allerdings eine niedrige Zeit einem guten Fitness-Wert entsprechen würde, wird die Zykluszeit von der maximalen Simulationslänge (1s) subtrahiert. Somit gilt die Relation, je größer der Fitness-Wert, desto besser das dazugehörige Chromosom. Als nächster Schritt musste überlegt werden, wie die Aktivität der Muskeln als Werte der Chromosomen abgebildet werden kann. Dazu wurde der Winkel der „Speiche“, die durch Radachse und Hand gebildet wird, als Kriterium für die Muskelaktivität genommen. Ein Zyklus beginnt, wenn die Hand bei einem Winkel von ca. -70° ist. 0° bedeutet, dass die Hand am Scheitelpunkt des Rades ist. Der Zyklus endet, wenn das Ellenbogengelenk maximal gestreckt (180°) ist. Dies ist bei ca. 75°, bezogen auf die Achse, der Fall. Für die Chromosomen wurde daher der Winkelbereich von -80° bis +80° in 10° Schritte unterteilt. Dies ergibt 16 Schritte. Die Aktivität jedes Muskels wiederum wurde in 12.5% Schritte unterteilt. Somit setzt sich jedes Chromosom folgendermaßen zusammen:

[16x Ellenbogen-Beuger, 16x Ellenbogen-Strecker, 16x Schulter-Protraktion, 16x Schulter-Retraktion] = 64 Werte

Die nachfolgende Funktion berechnet ausgehend von einem Winkel, des Chromosomen-Arrays und des „Muskels“ die resultierende Muskelaktivität in einem Intervall von 0-1.

function [ actOut ] = actDegree( currentAngle, act, type)
%ACTDEGREE Gibt aktuelle Aktivität abhängig von Winkel der Achse aus
%   Eingang:
%		currentAngle: aktueller Winkel der Radachse
%               	act: Chromosom
%		type: Welcher Muskel
%			EB=1
%			ES=2
%			SP=3
%			SR=4
%	Ausgang:
%		Muskelaktivität
 
switch (type)
    case 1
        actOut = act(fix((currentAngle + 80) / 10) +1) * 0.125;
    case 2
        actOut = act(fix((currentAngle + 80) / 10) +1 + 16) * 0.125;
    case 3
        actOut = act(fix((currentAngle + 80) / 10) +1 + 32) * 0.125;
    case 4
        actOut = act(fix((currentAngle + 80) / 10) +1 + 48) * 0.125;
end

Vergleich der Ergebnisse

Verglichen wurde das beste Ergebnis des genetischen Algorithmus mit der Bang-Bang-Strategie. Der genetische Algorithmus wurde mit einer Population von 50 Chromosomen gestartet und durchlief 20 Generationen.

Zykluszeit Bang-Bang: 0.453s
Zykluszeit GA: 0.484s

Vergleicht man die Aktivitäten der Muskeln, so ist zu sehen, dass der genetische Algorithmus sich der Bang-Bang-Strategie annähert, diese allerdings noch nicht erreicht.

8 8 8 8 8 8 8 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 0 0 0 0 0 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0 0 0 0 0 0 0 (Bang Bang)
1 8 8 7 7 3 4 6 2 1 6 1 3 4 0 1 0 1 7 5 6 2 4 4 2 7 1 5 4 6 4 8 2 8 0 4 5 2 7 6 8 3 6 2 6 7 7 2 3 8 6 8 0 4 0 6 5 5 5 3 8 0 2 1 (Genetischer Algorithmus)

Weiterhin ist zu sehen, dass in Bereichen, in denen die Muskellänge wächst (exzentrisch) der genetische Algorithmus Muskelaktivität zulässt. Da diese allerdings über die Kraft-Geschwindigkeits-Kurve eliminiert werden, sind diese Aktivitäten zu vernachlässigen.

verfasst von T.Kaminsky

Fragestellung III - Einfluss weiterer Muskeleigenschaften und einem zweigelenkig wirkenden Bizeps/Trizeps auf die opt. Bewegungsstrategie

Einleitung

Bei der Bearbeitung von Fragestellung III steht die zweigelenkige Wirkweise des biceps brachii, sowie des triceps brachii im Mittelpunkt. Die zu untersuchende zweiseitige Forschungshypothese lautet: „Wirkt sich ein zweigelenkiger Muskelteil der Muskeln biceps brachii & tricpes brachii auf die optimale Bewegungsstrategie aus?“ Im Zuge dessen soll ebenfalls die Frage beantwortet werden, ob durch die zweigelenkige Wirkweise, bei gleichbleibendem Gesamtkrafteintrag, eine geringere Zykluszeit erreicht werden kann.

Um die realen Muskeleigenschaften besser abzubilden, wird das bestehende Modell mit der Kraft-Längen-Beziehung erweitert. Da das erweiterte Modell somit in zwei entscheidenden Faktoren (Muskeleigenschaften, Muskelwirkweise) vom vorherigen Modell (Fragestellung II) abweicht, können die Ergebnisse untereinander nicht verglichen werden. Daher ist eine Vergleichssimulation des erweiterten Modells ohne zweigelenkige Wirkweise nötig. Diese wird bei der Ergebnisanalyse als Vergleich herangezogen, um die Simulationsergebnisse des Modells mit zweigelenkigen Muskelanteilen zu interpretieren.

Biceps brachii & triceps brachii als zweigelenkige Muskeln

Beide Köpfe des biceps brachii sind mit dem Schultergelenk verbunden. Somit wirkt der gesamte Muskel zweigelenkig über das Ellenbogen- und auf das Schultergelenk. Dort bewirken die beiden Muskelköpfe gegenläufige Bewegungen. Während der lange Kopf den Oberarm im Sinne einer Abduktion vom Körper weg bewegt, zieht der kurze Kopf den Arm im Sinne einer Adduktion an der Körper heran. Kontrahieren beide Muskelköpfe gleichzeitig, führt dies zu einer Flexion bzw. Anteversion der Schulter. Diese Wirkung soll gemeinsam mit der Flexion im Ellenbogengelenk in das System integriert werden.

  • Eine Kontraktion des biceps brachii führt im Modell zu
    • einer Flexion des Ellenbogens und
    • einer Anteversion der Schulter.

Im Gegensatz zu biceps brachii wirkt mit dem langen Kopf lediglich Teil des triceps brachii zweigelenkig. Bei einer Kontraktion führt dies dazu, dass der Oberarm an den Körper heran (Adduktion) und nach hinten (Retroversion) bewegt wird. Diese Wirkung soll gemeinsam mit der Extension im Ellenbogengelenk in das System integriert werden.

  • Eine Kontraktion des triceps brachii führt im Modell zu
    • einer Extension des Ellenbogens und
    • einer Retroversion der Schulter.

Einschub: Erweiterung des Muskelmodells durch Kraft-Längen-Beziehung

Im bisherigen Muskelmodell war die effektive Kraft eines Muskels abhängig von:

  • der maximalen isometrischen Kraft `(F_(im))`,
  • der Aktuation des Muskels `(Akt)` und
  • der Kontraktionsgeschwindigkeit des Muskels in Form der Kraft-Geschwindigkeits-Kurve `(f_v).

Um die Kraftberechnung näher an die Realität zu bringen, soll zur Beantwortung dieser Fragestellung das Verhältnis zwischen Kraft und Muskellänge in Form der Kraft-Längen-Kurve `(f_l)` in das Muskelmodell integriert werden. Die Berechnung der effektiven Muskelkraft ergibt sich dann der Zusammenhang:

`F = F_(im) * f_v * f_l * Akt`

Für den Zusammenhang zwischen Kraftentwicklung und Muskellänge geht man in der Regel von der optimalen (Arbeits)Länge `(L_(opt))` des Muskels aus. Am Punkt der optimalen Länge kann der Muskel das Maximum an Kraft erbringen. Bei einer Verlängerung bzw. Verkürzung des Muskels um 40% kann dieser keine Kraft mehr entfalten (s. Abb. 13).

Abb. 13: Kraft-Längen-Kurve

Annahme: Optimale Arbeitslänge von Bizeps und Trizeps ist bei hängendem Arm (ca. 25 cm)

Berechnung von f_l

Zur Berechnung von `(f_l)` muss die aktuelle Länge des Muskels bekannt sein (wie diese genau berechnet wird, folgt später). Ebenfalls bekannt muss die optimale Arbeitslänge des Muskels sein. Hier gilt `l_(opt) = 25 cm` (s. Annahme). Um die aktuelle Länge in Relation zur optimalen Länge zu setzen, bildet man den Quotienten zwischen den beiden Größen. Dieser Quotient kann nun anhand der Kraft-Längen-Kurve evaluiert werden. Hierzu wird er in die Funktionsgleichung des oben dargestellten Verhältnisses zwischen Kraft und Muskellänge eingesetzt. Resultiert dies in einer Kraft > 0, wird dies als aktuelles Verhältnis von Kraft und Muskellänge definiert. Resultiert jedoch ein Wert < 0 aus der Funktionsgleichung, dann bedeutet dies, dass keine Kraft mehr erbracht werden kann und `(f_l)` als Faktor der resultierenden Kraft wird 0.

function force = tjm_force_length(l_curr) 
 
% lcurr = aktuelle Länge des Muskels
 
l_opt = 25;   % optimale Arbeitslänge des Muskels
l_rel = l_curr / l_opt;   % aktuelle Muskellänge in Relation zur optimalen Arbeitslänge
 
temp = -6.25 * ( l_rel - 1 )^2 + 1;   % Berechnen der Arbeitsleistung des Muskels 
 
if(temp <= 0)
    force = 0;
end
 
if(temp > 0)
    force = temp;
end

Berechnung der aktuellen Muskellänge

Zur Berechnung der aktuellen Muskellänge wird der Abstand der beiden Ansatzpunkte des Muskels herangezogen. Es gilt:

`l_(curr) = l_0 + ∆ φ_e * r_e - ∆ φ_s * r_s'

mit

`l_0` = Ausgangslänge des Muskels

`∆φ_e` bzw. `∆φ_s` = Winkeländerung des Ellenbogen- bzw. Schultergelenks

`r_e` bzw. `r_s` = Radius des Ansatzpunktes an Ellenbogen bzw. Schulter

Die Zusammenhänge sollen anhand der folgenden schematischen Darstellung des Bizeps verdeutlicht werden:

Abb. 14: Schematische Darstellung des Bizeps

Implementation eines zweigelenkigen Muskels

Bislang wurden Muskeln im implementierten Modell lediglich mit einem Gelenk in Verbindung gesetzt. Dies ist daran zu erkennen, dass die berechnete Kraft immer nur zur Aktivierung eines Aktuators beiträgt. Um einen zweigelenkigen Muskel in Matlab zu realisieren, muss man die Krafteinwirkung des Muskels nun auf beide betroffenen Gelenke beziehen. Die Kraftberechnung bleibt somit gleich, jedoch wird die Wirkung „geteilt“.

Abb. 15: Schematische Darstellung eines zweigelenkigen Muskels in Simulink

Die zweigelenkige Wirkung des Muskels kann anhand einer Faktorisierung noch angepasst werden. Dies wird dann benötigt, wenn der Krafteintrag des zweigelenkig wirkenden Muskelanteils auf die beiden betreffenden Gelenke unterschiedlich ausfällt. Für den triceps brachii, sowie für seinen Antagonisten biceps brachii konnten hier im Rahmen des Seminars keine wissenschaftlich fundierten Kenntnisse recherchiert werden. Daher wird keine unterschiedliche Faktorisierung vorgenommen (Faktor = 1).

Integration in das bestehende Modell

Um die zweigelenkige Wirkung des biceps brachii, sowie des triceps brachii darzustellen, wurden zwei weitere Muskel in das System integriert. Diese wirken nun, im Gegensatz zu den bisherigen Muskeln, auf zwei Gelenke ein.

Abb. 16: Übersicht über das Rollstuhlmodell mit zweigelenkigen Anteilen des biceps & triceps brachii

A: 2jm - Zweigelenkiger Anteil des tricpes brachii. Wirkt auf das Ellenbogengelenk als Strecker und führt im Schultergelenk zu einer Retroversion

B: 2jm - Zweigelenkiger Anteil des biceps brachii. Wirkt auf das Ellenbogengelenk als Beuger und führt im Schultergelenk zu einer Anteversion.

C, D, E, F: Faktorisierung des Krafteintrags der zweigelenkigen Muskel auf die entsprechenden Gelenke

G: Zusammenfassung der beitragenden Krafteinträge auf das Ellenbogengelenk ( bb 1jm + bb 2jm - ( tb 1jm + tb 2jm ) )

H: Zusammenfassung der beitragenden Krafteinträge auf das Schultergelenk ( Anteversion + bb 2jm - ( Retroversion + tb 2jm ) )

Da die neu integrierten Muskel(anteile) hinsichtlich der Kraft-Längen-Kurve erweitert wurden, beachtet nun auch die Kraftberechnung des eingelenkigen Anteils von Trizeps/Bizeps diesen Zusammenhang. Da für die Retroversion, bzw. Anteversion der Schulter kein Muskel explizit im zugrundeliegenden Modell definiert wurde, kann hier keine Berechnung der Muskellänge erfolgen und die beiden Muskeln zur „reinen“ Retro- bzw. Anteversion wurden nicht erweitert.

Festlegung der Muskelkraftanteile im Modell

Um einen Vergleich zwischen eingelenkiger und zweigelenkiger Wirkweise zu realisieren, müssen die maximalen isometrischen Kräfte der sechs integrierten Muskel angepasst werden. Für das Modell ohne zweigelenkige Anteile wurde das Setting folgendermaßen gewählt:

  • triceps brachii 1jm (Ellenbogen-Strecker): 100 N
    • übernommen aus den vorherigen Modellen, entspricht ungefähr der realen Kraft
  • triceps brachii 2jm: 0 N
    • kein zweigelenkiger Muskelanteil
  • biceps brachii 1jm (Ellenbogen-Beuger): 110 N
    • real etwas stärker als der triceps brachii (leichte Beugung der Arme bei hängendem Zustand)
  • biceps brachii 2jm: 0 N
    • kein zweigelenkiger Muskelanteil
  • Schulter Anteversion: 750 N
  • Schulter Retroversion: 750 N

Für das System mit zweigelenkiger Wirkweise von Trizeps und Bizeps wird das System so konfiguriert, dass beide Muskeln immer zweigelenkig, also auf das Schulter- und Ellenbogengelenk wirken. Das Setting sieht folgendermaßen aus:

  • triceps brachii 1jm (Ellenbogen-Strecker): 0 N
  • triceps brachii 2jm: 100 N
    • Der komplette Krafteintrag des Trizeps geht nun in die Berechnung des zweigelenkigen Muskels ein. Um die Proportionen der Wirkung auf Ellenbogen bzw. Schulter zu bewahren, werden die beiden Faktoren (C & D) dementsprechend angepasst (C = 1, D = 0.15).
  • biceps brachii 1jm (Ellenbogen-Beuger): 0 N
  • biceps brachii 2jm: 110 N
    • Der komplette Krafteintrag des Bizeps geht nun in die Berechnung des zweigelenkigen Muskels ein. Um die Proportionen der Wirkung auf Ellenbogen bzw. Schulter zu bewahren, werden die beiden Faktoren (E & F) dementsprechend angepasst (E = 1, F = 0.27).
  • Schulter Anteversion: 720 N
    • Bei maximaler bzw. optimaler Innervation kann die Anteversion der Schulter nach wie vor mit maximal 750 N (720 N + 0.27 * 110 N) durchgeführt werden.)
  • Schulter Retroversion: 735 N
    • Bei maximaler bzw. optimaler Innervation kann die Retroversion der Schulter nach wie vor mit maximal 750 N (735 N + 0.15 * 100 N) durchgeführt werden.)

Anpassung des genetischen Algorithmus

Zur Auswertung des erweiterten Modells muss der genetische Algorithmus an die neuen Umstände angepasst werden. An seiner grundlegenden Arbeitsweise ändert sich nichts, jedoch muss die Struktur der Chromosomen angepasst werden. Da für die Chromosomen der Winkelbereich von -80° bis +80° in 10° Schritte unterteilt wurde, setzt sich jedes Chromosom nun folgendermaßen zusammen:

[16x biceps brachii 1jm, 16x triceps brachii 1jm, 16x Schulter-Protraktion, 16x Schulter-Retraktion, 16x bicpes brachii 2jm, 16x triceps brachi 2jm ] = 96 Werte

Während die Populationsgröße, die Anzahl der Generationen und Wahrscheinlichkeit für Cross-Over gleich bleibt, muss die Populationswahrscheinlichkeit angepasst werden. Anstatt der vorher geltenden 1/64 wird nun von einer Wahrscheinlichkeit von 1/96 ausgegangen.

Ergebnisse & Interpretation

Hinsichtlich der Erweiterung des Gesamtmodells um die Beziehung zwischen Muskellänge und der resultierenden Kraft, teilt sich die Auswertung der Ergebnisse in zwei Teile. Zunächst wurde untersucht, wie sich die Integration des Kraft-Längen-Verhältnisses auf das System auswirkt. Hierzu wurde das Ausgangsmodell einmal unverändert (Setting 1a) und einmal mit integriertem Kraft-Längen-Verhältnis (Setting 1b) simuliert.

Zum Vergleich der beiden Modelle soll zunächst das Bewertungskriterium, die Zykluszeit, betrachtet werden. Die Ergebnisse zeigen, dass das Modell mit Kraft-Längen-Verhältnis dem anderen hinsichtlich der Zykluszeit unterlegen ist. Das Modell benötigt ca. 0.025s länger um einen Zyklus zu vollenden.

Setting 1a Zeit: 0.5187

Setting 1b Zeit: 0.4935

Zu erklären ist dies mit dem ausschließlich kraftmindernden Einfluss des Kraft-Längen-Verhältnisses. Wurde der Faktor im Modell ohne Berücksichtigung des Kraft-Längen-Verhältnisses durch Konstanthalten mit dem Wert 1 ausgeschaltet (s. Abbildung 17, mitte), variiert dieser nun zwischen 0 und 1 und verringert somit den maximal möglichen Krafteintrag. In den folgenden Abbildungen ist dieser Zusammenhang nochmals dargestelllt. Im Modell ohne Kraft-Längen-Verhältnis hat neben der Aktuation (die jedoch pro Phase konstant bleibt) und der maximalen isometrischen Kraft (hier 110 N) lediglich das Kraft-Geschwindigkeits-Verhältnis Einfluss auf die resultierende Kraft. Wie am Ansteig der Kraft-Geschwindigkeitskurve zu erkennen ist, erreicht der Bizeps zum Ende der Beugungsphase eine optimalere Geschwindigkeit und kann mehr Kraft aufbringen (s. Abbildung 17, oben). Zu erkennen ist dies daran, dass es zu einen leichten Kraftanstieg in den einzelnen Aktationsblöcken kommt (s. Abbildung 17, unten).

Abb. 17: Kraftentwicklung im Modell ohne Berücksichtigung der Muskellänge

Im Gegensatz dazu wirkt beim Modell mit Berücksichtigung des Kraft-Längen-Verhältnisses ein weiterer Faktor auf die generierte Kraft. Zu Beginn der Beugung wirkt sich die Veränderung der Muskellänge negativ auf die resultierende Kraftentwicklung aus (f_l fällt) (s. Abbildung 18, mitte). Im zweiten Teil der Bewegung verbessert sich das Verhältnis zwischen Kraftentwicklung und Muskellänge wieder (f_l steigt). Doch auch in der verbessernden Phase erreicht das System kein optimales Verhältnis (f_l wird niemals 1). Zu erkennen ist dieser negative Einfluss am besten in der ersten, fallenden Phase. Hier kommt es zu einem leichten Kraftabfall in den einzelnen Aktionsblöcken (s. Abbildung 18, unten). Allerdings fällt die resultierende Kraft in allen Aktuationsblöcken, da der negative Einfluss der Muskellänge höher ist als der besser werdende Einfluss der Geschwindigkeit.

Abb. 18: Kraftentwicklung im Modell mit Berücksichtigung der Muskellänge

Im zweiten Teil der Untersuchung sollte der Einfluss der zweigelenkigen Wirkweise von Bizeps & Trizeps brachii auf die Bewegungsausführung untersucht werden. Als Vergleichsmodell wurde das eingelenkige Modell mit integriertem Kraft-Längen-Verhältnis (Setting 1a) herangezogen, da auch im zweigelenkigen Modell das Verhältnis von Muskellänge zu Kraftentfaltung einbezogen wurde.

Setting 1a Zeit: 0.5187

Setting 2 Zeit: 0.5321

Die Ergebnisse zeigen, dass das Modell mit zweigelenkiger Wirkweise dem Modell mit eingelenkiger Wirkweise hinsichtlich der Zykluszeit unterlegen ist. Das Modell benötigt ca. 0.015s länger um einen Zyklus zu vollenden. Das bedeutet, dass die zweigelenkige Wirkweise des Bizeps, bzw. Trizeps die maximal mögliche Kraftentwicklung auf die beiden Gelenke verringert.

Dies liegt daran, dass für die simulierte Bewegung (Rollstuhlzyklus) in der Regel folgende Bewegungsphasen auftreten:

   Phase 1: Beugung des Ellenbogens + Retroversion des Schultergelenkes
   Phase 2: Übergangsphase mit Beugung des Ellenbogens + Anteversion des Schultergelenkes (sehr kurz!)
   Phase 3: Streckung des Ellenbogens + Anteversion des Schultergelenkes

Diese Bewegungsphasen entsprechen nicht den zweigelenkigen Wirkweisen von Bizeps (Beugung + Anteversion) bzw. Trizeps (Streckung + Retroversion). Daher wirkt die notwendige Innervation dieser beiden Muskeln zu gewissen Anteilen der Bewegungsausführung entgegen (s. Abbildung 19).

Abb. 19: Kontraproduktive Wirkweise von Bizeps bzw. Trizeps auf das Schultergelenk (Setting 2)

Zum weiteren Vergleich der drei verschiedenen Settings sollen nun die Krafteinträge der einzelnen Muskel herangezogen werden. Als Hauptkriterien werden dabei der Gesamteintrag des Muskels während Bewegungsausführung, sowie der maximale punktuelle Krafteintrag (Peak) betrachtet. Um die Ergebnisdarstellung übersichtlich zu gestalten, werden Kraftverläufe immer nur an einem Setting veranschaulicht. Die Verläufe der anderen Settings unterscheiden sich im großen Verlauf nicht, weisen jedoch zum Teil unterschiedliche Kennwerte auf.

Abb. 20: Kraftverlauf Schulter & Ellenbogen (Setting 1)

Der zu beobachtende Kraftverlauf entspricht den Erwartungen an das Modell. Um den Rollstuhl nach vorne anzutreiben, wird die Schulter zunächst nach hinten oben geführt (Retroversion). Dabei kommt es zu einer Beugung des Ellenbogens (Zugphase). Sobald durch die Kombination von Retroversion & Beugung kein weiterer Vorschub erzeugt werden kann (an diesem Punkt würde man beginnen, das Rad nach oben zu ziehen), kommt es sowohl in der Schulter, als auch im Ellenbogen zu einer Bewegungsumkehr. Die Schulter wird nun nach vorne geführt, während sich der Ellenbogen streckt. Die Bewegungsumkehr in den beiden Gelenken erfolgt in der Regel nicht parallel sondern zeitlich versetzt (zunächst in der Schulter, dann im Ellenbogen). Für die Umkehrpunkte der Gelenkbewegungsrichtungen ergeben sich folgenden Werte:

– S1a –

     Beugung -> Streckung:   t = 0.2052
     Retroversion -> Anteversion:   t = 0.1594

– S1b –

     Beugung -> Streckung:   t = 0.2007
     Retroversion -> Anteversion:   t = 0.1593

– S2 –

     Beugung -> Streckung:   t = 0.2099
     Retroversion -> Anteversion:   t = 0.1613

Die Ergebnisse zeigen, dass der Umkehrpunkt der Bewegungen kein guter Indikator für eine schnelle Zykluszeit darstellt. Zwar weist S2 mit der höchsten Zykluszeit spätere Umkehrpunkte auf, als die beiden anderen Settings, jedoch sind die Unterschiede hierbei sehr gering. Aus diesen Ergebnissen lässt sich schließen, dass vor allem die dritte Phase, bestehend aus Anteversion der Schulter und Streckung des Ellenbogens, entscheidend für eine geringe Zykluszeit ist.

Bei Betrachtung der Kraftverläufe lassen sich etwas andere Zusammenhänge erkennen. Obwohl vor allem die Retroversion in der Schulter, als auch die Beugung des Ellenbogens hauptsächlich für die Umkehrpunkte der Bewegungen verantwortlich sind, kann die resultierende Kraft in diese beiden Bewegungen scheinbar als Indikatoren für eine niedrige Zykluszeit herangezogen werden. S1a weist hierbei deutlich höhere Krafteinträge (15.7 in Beugung & 31.7 in Retroversion) auf als die anderen beiden Settings.

Angemerkt sei an dieser Stelle, dass die Kraftpeaks in Beugung und Retroversion beim Setting ohne Kraft-Längen-Verhältnis (S1a) nahezu der maximalen isometrischen Kraft der jeweiligen Muskeln entsprechen. Dies lässt sich dadurch erklären, dass der Muskel nicht „darauf warten“ muss, bis er eine optimale Länge aufweist, um seine maximale Kraft zu entfalten. Es genügt in diesem Setting, dass die Aktuation maximal und das Kraft-Geschwindigkeits-Verhältnis optimal ausfallen. Daraus kann man schlussfolgern, dass die Beugung im Ellenbogen (Bizeps), sowie die Retroversion der Schulter im Training eine berechtigte Rolle spielen sollten.

– S1a –

     Beugung: 	 7.2592 (Peak:  61.4507 N)
     Streckung:	 8.9001 (Peak:  62.6800 N)
     Anteversion:	27.8875 (Peak: 635.8350 N)
     Retroversion:	30.4324 (Peak: 404.9047 N)

– S1b –

     Beugung: 	15.7195 (Peak: 109.3642 N)
     Streckung:	 7.2914 (Peak:  67.2658 N)
     Anteversion:	20.0723 (Peak: 562.5000 N)
     Retroversion:	31.6932 (Peak: 750.0000 N)	

– S2 –

     Beugung: 	 7.0803 (Peak:  61.6987 N)
     Streckung:	 9.6303 (Peak:  68.1680 N)
     Anteversion:	25.9939 (Peak: 466.7684 N)
     Retroversion:	28.4197 (Peak: 353.0758 N)

Ausblick

Die dargestellten Untersuchungen des Rollstuhlmodells sind unter dem Aspekt zu betrachten, dass die Zielsetzung des Seminars die sensorbasierte Aufnahme von Messwerten, sowie die simulationsgestützte Analyse von Modellen ist. Daher wurde primär auf die ausführliche Darstellung der Vorgehensweise, die Modellerstellung und den Implementationsvorgang Wert gelegt. Die Simulationsergebnisse wurden hinsichtlich der Forschungsfrage analysiert, um jedoch präzisere Aussagen treffen zu können, müssten folgende Anpassungen gemacht werden:

  1. Recherche und Integration von realitätsgetreueren Werten für die maximale isometrische Kraft der beteiligten Muskeln
  2. Recherche und Integration von realitätsgetreueren Werten der zweigelenkig wirkenden Muskelanteilen von Bizeps & Trizeps
  3. Die Erweiterung des Modells um mindestens einen (fiktiven) Muskel, der eine Längenberechnung für das Schultergelenk und somit das Kraft-Längen-Verhältnis in der Schulterbewegung ermöglicht

verfasst von L. Tremper

Fragestellung IV Einfluss von Schulterposition auf den max. Drehmomentenstoß

Variation von Oberkörperneigung und Sitzhöhe

Meine Aufgabe war es, den Einfluss der Schulterposition - also der Oberkörperneigung - und der Sitzhöhe auf die Geschwindigkeit des Rades zu untersuchen. Die Hypothese besagte, dass eine Veränderung von Oberkörperwinkel und Sitzhöhe den Geschwindigkeitszuwachs pro Schub verändert. Zum Verständnis: Wenn im Folgenden von Sitzhöhe gesprochen wird, dann ist das gleichbedeutend mit dem Hüftwinkel. Die eigentliche Sitzfläche des Rollstuhls liegt etwas tiefer.

Erweiterung des Modells

Dazu wurde zunächst das gemeinsam erstellte Modell erweitern und um ein Körpersegment (den Oberkörper) und ein Gelenk (die Hüfte) ergänzen. Die beiden Koordinatenursprünge (Grounds) des Modells setzen nun an der Hüfte und der Radnabe an. Die Simulation umfasst genau einen Schub, d.h. einen Vorgang bei dem die Hand zum Zwecke der Beschleunigung am Greifring in Fahrtrichtung am Rad entlang gefuehrt wird. Als Vorbild für die Körpermaße wurde der Rollstuhlbasketball-Profi gewählt, der im letzten Semester für unser Experiment zur Verfügung stand. Dies bedeutete einen Oberkörper von 54 cm Länge, 32 cm für den Oberarm und 27 cm für den Unterarm. Ergänzt werden diese Angaben durch den Radius des Rades mit 30 cm.

Abb. 21a: Die Elemente des Modells und deren Darstellung in der Simulation vor der Erweiterung
Abb. 21b: Die Elemente des Modells und deren Darstellung in der Simulation nach der Erweiterung durch Oberkörper und Hüfte

Vor jedem Simulationsdurchlauf sollten nun Oberkörperneigung (also Hüftwinkel) und Sitzhöhe des Rollstuhls variiert werden. Während eines Durchlaufs allerdings sollte der Oberkörper bis auf wenige Grad fixiert werden. Ein solches Modell stellt einen Sportler mit Paraplegie im oberen Bereich der Thorakalwirbel dar. Dies bedeutet, der Athlet verfügt nicht über eine funktionsfähige Rumpfmuskulatur. Da der Rumpf entweder per Strap an die Rückenlehne fixiert oder zum Fahren auf den Oberschenkeln abgelegt wird, ist es nicht realistisch, dass der Oberkörper des Athleten in jedem beliebigen Neigungswinkel fixiert werden kann. Trotzdem werden in dieser Simulation alle möglichen Winkel zwischen Rückenlehne und Oberschenkel abgedeckt.

Eine kleine Herausforderung war die Beantwortung der Frage, wie weit hinter der Achse die Hüfte sitzen sollte. Aufgrund der unzähligen unterschiedlichen Behinderungen lassen sich in der Praxis für fast alle Stuhleinstellungen Beispiele finden. Auch unabhängig von körperlichen Einschränkungen experimentieren viele Sportler mit der Einstellung ihres Sportgerätes um zum Beispiel eine höhere Wendigkeit zu erzielen indem die Hüfte nahe an oder über der Radachse positioniert wird. Es wurde versucht einen durchschnittlichen Wert abzuschätzen und eine Sitzposition von 10 cm hinter der Radachse gewählt.

Für den Ellenbogen und die Schulter wurde die Kraft-Geschwindigkeits-Kurve wie im Rahmen von Hypothese III beschrieben eingebaut. Für die Hüfte ist das zu diesem Zeitpunkt nicht nötig, da die Bewegung dieser sehr stark eingeschränkt wurde, was dazu führt, dass die Hüfte keine Kraft zum Vortrieb beisteuert.

Das Modell sieht die Anwendung der Drehmomente wie folgt vor: Solang sich die Schulter in der Rückwärtsbewegung (Retraktion) befindet, wirkt das Drehmoment der Schulter in eben diese Richtung. Sobald der Punkt überschritten ist, in dem Ellenbogen, Hand und Radachse auf einer Linie liegen, wechselt die Bewegung der Schulter zur Vorwärtsbewegung (Protraktion). Nun wirkt auch das Drehmoment in Fahrtrichtung. Die Anwendung der Kraft-Geschwindigkeits-Kurve bewirkt, dass nicht konstant 100% des angelegten Drehmomentes wirkt. Ähnlich verhält es sich mit dem Ellenbogen. Solang sich der Ellenbogen in der Beugung befindet, wird diese Bewegung durch das Drehmoment unterstützt. Sobald der Ellenbogen in die Streckung übergeht, wirkt auch das Drehmoment in die entsprechende Richtung. Der Wechsel findet statt, wenn Radachse, Hand und Schulter auf einer Linie liegen. Da die Hüfte fixiert ist, haben hier eingesetzte Drehmomente keine Wirkung auf den Vortrieb.

Abb. 22: Erzeugung des Schulter-Drehmomentes

In Abbildung 22 ist zu sehen, dass die Anwendung der Drehmomente von der Winkelgeschwindigkeit abhängt. Ausserdem werden für Protraktion und Retraktion unterschiedliche Werte verwendet. Die Funktion der Kraft-Geschwindigkeitskurve befindet sich in einer ausgelagerten Datei.

Als Abbruchkriterien für die Simulation werden zwei Optionen gewählt:

  1. Wenn der Ellenbogen in die Streckung geht, bleiben zwei Verhaltensoptionen übrig, insofern das Rad nicht zum Stillstand kommen soll: Entweder den Greifring loslassen oder mit dem Oberkörper Druck in Fahrtrichtung ausüben. Beides ist in diesem Modell nicht möglich, weswegen die Simulation hier abgebrochen und der Durchlauf als erfolgreich abgeschlossen angesehen wird. Ein starker Abfall der Geschwindigkeit des Rades am Ende des Schubes bei einem Ellenbogenwinkel über 167 Grad kann beobachtet werden. Es wird vermutet, dass eine komplette Streckung des Ellenbogens bei dieser Technik kontraproduktiv ist, da in dieser Position weder die Drehmomente des Ellenbogens, noch der Schulter Effekte zeigen, während auch das Drehmoment der Hüfte durch die Fixierung nicht zur Geltung kommen kann. Das Rad müsste bei einer Ellenbogenstreckung unweigerlich zum Stillstand kommen, da das Modell ein Loslassen nicht vorsieht. Die Simulation wird daher bei einem Ellenbogenwinkel von 167º gestoppt.
  2. Wenn die Winkelgeschwindigkeit des Rades zu irgendeinem Zeitpunkt unter Null fällt (das Rad sich also rückwärts bewegt), dann bedeutet das, dass die Konstellation der Körpersegmente zu ungünstig oder die eingesetzten Kräfte zu schwach sind, um überhaupt einen kompletten Schub durchführen zu können. In diesem Fall wird die Simulation abgebrochen und der Durchlauf als nicht erfolgreich bewertet.

Um die prinzipielle Funktionsfähigkeit des Systems zu testen, werden als Anfangskoordinaten Radnabe (0 0 0), Hand (-5 29.580399 0), Ellenbogen (-2.40334 56.4552 0), Schulter (28.4392 47.9266 0) und Hüfte (-10 10 0) gewählt (Abbildung 21b). Nachdem die Positionen von Radnabe und Hüfte festgelegt waren, wurden die anderen Werte in Bezug auf die Segmentlängen berechnet. In Anlehnung an die Daten des Profi-Rollstuhlbasketballers aus unserem Experiment des letzten Semesters wurde die Hand nur minimal hinter der Radachse angesetzt.

Um dem Oberkörper nur wenige Grad an Bewegung zu erlauben, müssen nach dem Vorbild unseres ersten Mehrkörpersystem-Beispiels Kräfte in das System eingebaut werden, die auf die Hüfte wirken, sobald sich der Oberkörper weiter als ein Grad von der Ausgangslage entfernt (Abbildung 23a + b).

Abb. 23a: Hüftgelenk mit Sensoren, Aktuatoren und einem Subsystem
Abb. 23b: Das Subsystem aus Abbildung 23a

Programmierung

Sobald das Modell fertig ist, kann im nächsten Schritt die Programmierung angegangen werden. Mit Hilfe zweier Schleifen soll der Neigungswinkel des Oberkörpers und die Sitzhöhe des Rollstuhls variiert werden. Zunächst müssen alle Werte des Modells, die durch das Programm verändert werden sollen, durch Variablen ersetzt werden. In diesem Fall waren das die Koordinaten für alle Gelenke, sowie die Schwerpunkte der Segmente. Um das Testen einfacher zu gestalten, wurden ebenfalls die Anfangsgeschwindigkeit des Rades, die maximalen Winkelgeschwindigkeiten der Gelenke, sowie die Drehmomente von Ellenbogen, Schulter und Hüfte als Variablen ausgelagert (siehe Abbildung 23b - „feder_vorne“, „daempfung_vorne“, etc sind Variablen).

% --- Anfangszustand ---
x_radnabe = 0;
y_radnabe = 0;

% alle Variablen, die auch in ausgelagerten Funktionen benötigt bzw verändert werden, werden global definiert
global x_huefte y_huefte x_schulter y_schulter;
global x_hand y_hand x_elbow y_elbow;
global laenge_unterarm laenge_oberarm laenge_oberkoerper radius_rad;
global x_cog_unterarm y_cog_unterarm;
global x_cog_oberarm y_cog_oberarm;
global x_cog_oberkoerper y_cog_oberkoerper;
global v_max_elbow v_max_shoulder v_max_huefte;

x_hand = -5;
y_hand = 29.580399;

x_elbow = -2.40334;
y_elbow = 56.4552;

x_schulter = 28.4392;
y_schulter = 47.9266;

x_huefte = -10;
y_huefte = 10;

x_cog_rad = 0;
y_cog_rad = 0;

% koerperschwerpunkte berechnen
[x_cog_unterarm, y_cog_unterarm, x_cog_oberarm, y_cog_oberarm, x_cog_oberkoerper, y_cog_oberkoerper] 
    = calculate_cog_positions(x_huefte, y_huefte, x_schulter, y_schulter, x_elbow, y_elbow, x_hand, y_hand);

% Feder- und Dämpfungsparameter des Oberkörpers/Hüftgelenks
% beide Richtungen sind eingebaut, aber nur die Bewegung nach vorne wird durchgeführt
feder_vorne = -50;
feder_hinten = -20;
daempfung_vorne = -20;
daempfung_hinten = -4;

% Längen der Segmente 
laenge_oberkoerper = sqrt((x_huefte - x_schulter)^2 + (y_huefte - y_schulter)^2);
laenge_oberarm = sqrt((x_elbow - x_schulter)^2 + (y_elbow - y_schulter)^2);
laenge_unterarm = sqrt((x_elbow - x_hand)^2 + (y_elbow - y_hand)^2);
radius_rad = sqrt((x_radnabe - x_hand)^2 + (y_radnabe - y_hand)^2);

% cm/s in deg/s umrechnen
anfangsgeschwindigkeit_rad = 100 / radius_rad * 180 / pi; % deg/s

% drehmomente, die von den Gelenken erzeugt werden können
% Ellenbogen hat gleich Werte für Beuger und Strecker
% Das Drehmoment der Hüfte ist zwar eingebaut, hat aber zu diesem Zeitpunkt
% noch keine Funktion, da der Oberkörper quasi statisch gehalten wird
drehmoment_elbow = 100;
drehmoment_schulter_protraktion = 200;
drehmoment_schulter_retraktion = 150;
drehmoment_huefte_protraktion = -250;
drehmoment_huefte_retraktion = 500;

% maximale Winkelgeschwindigkeiten der Gelenke werden
% für die Berechnung der Kraft-Geschwindigkeits-Kurve verwendet
v_max_elbow = 1500;  %deg/s
v_max_shoulder = 1500;  %deg/s
v_max_huefte = 1500;  %deg/s
% --- Ende Anfangszustand ---

Die Werte der Drehmomente und Winkelgeschwindigkeiten wurden im Rahmen des Seminars in Zusammenarbeit mit den Betreuern erarbeitet. Für die Anfangsgeschwindigkeit des Rades können beliebige Werte gewählt werden.

Schleifendurchläufe

Die erste Schleife soll die Sitzhöhe unverändert lassen, aber den Hüftwinkel mit jedem Durchlauf um ein Grad verändern. Dazu gibt es zwei Möglichkeiten:

  1. Initial Condition: Dies ist die einfachere Variante. Der Initial Condition Block kann direkt an das Hüftgelenk angeschlossen werden und per Gradzahl angeben, in welche Position der Oberkörper gebrachte werden soll. Matlab berechnet in Abhängigkeit dieser Angabe automatisch, wo die restlichen Segmente positioniert werden müssen. Der Ursprungswinkel der Hüfte wird von Matlab automatisch auf 0º gesetzt. Wird durch die Initial Condition eine positive Zahl addiert, so richtet sich der Oberkörper auf, wird eine negative Zahl addiert, so beugt sich der Oberkörper weiter nach vorne. Leider hat diese Methode in mehreren Durchläufen Fehler verursacht, weil die automatische Positionierung der Segmente durch Matlab nicht die natürlichen Bewegungsmöglichkeiten des Menschen beachtete.
  2. Neuberechnung der Koordinaten: Alternativ zur Initial Condition kann man die Koordinaten der Gelenke in Abhängigkeit des Hüftwinkels selbst neu berechnen. Dazu wurden die Koordination der Radachse, Hand und Hüfte als gesetzt betrachtet. Nachdem durch aktuelle Schulter- und Hüftpositionen, sowie dem Tangens der aktuelle Hüftwinkel bestimmt wurde und der Oberkörper in eine aufrechte Haltung bewegt wurde, kann der Hüftwinkel jetzt mit jedem Schleifendurchlauf um ein Grad verringert werden. Dazu werden in Abhängigkeit von Hüftwinkel, Hüft- und Handkoordinaten und den Segmentlängen neue Schulter- und Ellenbogenkoordinaten, sowie Segmentschwerpunkte berechnet. Da sich diese Methode im Gegensatz zur Initial Condition als zuverlässiger erwies, wurde sie in den Tests eingesetzt.

Bleibt die Frage welcher Winkelbereich durch die Schleife abgedeckt werden soll. In der Rückwärtsbewegung wird die Rückenlehne des Rollstuhls die Bewegung stoppen. Nach vorne werden Oberschenkel und Knie den Oberkörper bremsen. Letzteres passiert bei Stühlen mit niedriger Sitzhöhe früher, als bei Stühlen mit hoher Sitzhöhe. Ausserdem muss beachtet werden, dass aufgrund festgelegter Segmentlängen nicht jede Kombination von Hüftwinkel und Sitzhöhe umsetzbar ist. Um zu gewährleisten, dass die Schleifen unbeaufsichtigt und fehlerfrei durchlaufen können, wird eine Winkelspanne von 82º gewählt. Angenommen ein aufrechtes Sitzen beschreibt einen Hüftwinkel von 0º, so ist der Oberkörper für den ersten Simulationdurchlauf um 10º nach hinten verlagert. In 82 Schritten, in denen der Oberkörper jeweils um ein Grad nach vorne bewegt wird, werden 82 verschiedene Hüftwinkel für eine Sitzhöhe getestet.

% Die Funktion greift auf global definierte Variablen zurueck und braucht daher keine Inputparameter.
% Rueckgabe sind 3 Arrays, die 
% 1) maximale Geschwindigkeiten pro Durchgang enthalten
% 2) Endgeschwindigkeiten pro Durchgang enthalten
% 3) Benötigte Zeit pro Durchgang enthalten
function [result_vmax_schulter, result_vend_schulter, result_time_schulter] = schulterposition_variieren()

global x_huefte y_huefte x_schulter y_schulter;
global x_hand y_hand x_elbow y_elbow;
global laenge_unterarm laenge_oberarm laenge_oberkoerper radius_rad;
global x_cog_unterarm y_cog_unterarm;
global x_cog_oberarm y_cog_oberarm;
global x_cog_oberkoerper y_cog_oberkoerper;

% --------------------------------------------
% ------------- SCHULTER BEWEGEN -------------
% --------------------------------------------

% neue Schulterposition berechnen und Modell laufen lassen
% 82 Hüftwinkel werden pro Sitzhoehe getestet
nMax = 82;

% berechnen des Hüftwinkels der Ausgangsposition
winkel_huefte = (atan(abs(y_huefte - y_schulter)/abs(x_huefte - x_schulter)))*180/pi

% Person in aufrechte Position bringen
winkel_huefte = winkel_huefte + 56;

% Ergebnismatrizen definiteren
result_vmax_schulter = [];
result_vend_schulter = [];
result_time_schulter = [];

for n=1:nMax

    % mit neuem Hüftwinkel wird neue Schulterposition bestimmt/berechnet
    x_schulter = cos((winkel_huefte - n)*pi/180) * laenge_oberkoerper + x_huefte;
    y_schulter = sin((winkel_huefte - n)*pi/180) * laenge_oberkoerper + y_huefte;
    
    % neuberechnung ellenbogenposition
    [x_elbow, y_elbow] = calculate_elbow_position(x_schulter, y_schulter, x_hand, y_hand, laenge_unterarm, laenge_oberarm);

    % neuberechnung der koerperschwerpunkte
    [x_cog_unterarm, y_cog_unterarm, x_cog_oberarm, y_cog_oberarm, x_cog_oberkoerper, y_cog_oberkoerper] 
        = calculate_cog_positions(x_huefte, y_huefte, x_schulter, y_schulter, x_elbow, y_elbow, x_hand, y_hand);

    % setzen des Character Encodings nicht bei jeder Matlab/Rechner Kombination noetig
    slCharacterEncoding('ISO-8859-1');

    % Modell starten
    sim('Rollstuhl_Modell_mit_Schulter_V2');

    %winkelgeschwindigkeit wieder in cm/s zureuckrechnen
    result_vmax_schulter(1,n) = max(Achse.signals(1,1).values) * radius_rad * pi / 180; % cm/s
    result_vend_schulter(1,n) = Achse.signals(1,1).values(end) * radius_rad * pi / 180; % cm/s
    result_time_schulter(1,n) = max(tout);
end

Nun muss abgeschätzt werden, welche Sitzhöhen sinnvoll für die Simulation sind. Das Rollstuhlbasketball Handbuch des DRS gibt als maximal erlaubte Sitzhöhe für 1,0-3,0 Punkte Spieler 63 cm und für 3,5-4,5 Punkte Spieler 58 cm an. Aufgrund dessen wurde ein Wert von 63 cm gewählt. Richtung Boden ist es dem Sportler prinzipiell selbst überlassen, wie tief er sitzen möchte. Es gibt keine offizielle Mindestsitzhöhe des Rollstuhls. Intuitiv ist es nicht praktikabel, eine Sitzhöhe zu wählen, die darin resultiert, dass der obere Rand des Rades und die Schulter auf gleicher Höhe sind. Wieder unter Beachtung der Tatsache, dass nicht alle Kombinationen von Sitzhöhe und Hüftwinkel aufgrund festgelegter Segmentlängen umsetzbar sind, wurde die niedrigste Sitzhöhe so gewählt, dass die Ergebnisse der Durchläufe bereits einen Nachteil gegenüber höheren Positionen zeigen.

% --------------------------------------------
% ---------- SITZPOSITION AENDERN ------------
% --------------------------------------------

% x-Koordinate der Hüfte wird beibehalten
% y-Koordinate der Hüfte um den Wert 25 nach unten setzen
% resultiert in einer Sitzhöhe von 15 cm über dem Boden 
y_huefte = y_huefte - 25;

% durchlaufen von Sitzhöhe 15 cm bis 58 cm
mMax =  44;

% Ergebnismatrizen definieren
result_vmax_sitzhoehe = [];
result_vend_sitzhoehe = [];
result_time_sitzhoehe = [];

for m=1:mMax
    y_huefte = y_huefte + 1;

   % Schulterposition neu berechnen
    x_schulter = 38.4392 + x_huefte;
    y_schulter = 37.9266 + y_huefte;

    % neuberechnung der Ellenbogenposition
    [x_elbow, y_elbow] = calculate_elbow_position(x_schulter, y_schulter, x_hand, y_hand, laenge_unterarm, laenge_oberarm);

    % neuberechnung der koerperschwerpunkte
    [x_cog_unterarm, y_cog_unterarm, x_cog_oberarm, y_cog_oberarm, x_cog_oberkoerper, y_cog_oberkoerper] 
        = calculate_cog_positions(x_huefte, y_huefte, x_schulter, y_schulter, x_elbow, y_elbow, x_hand, y_hand);

    % in die Funktion schulterposition_variieren abtauchen, um fuer diese Sitzhöhe 82 Hüftwinkel zu testen
    [result_vmax_schulter, result_vend_schulter, result_time_schulter] = schulterposition_variieren();
    result_vmax_sitzhoehe = vertcat(result_vmax_sitzhoehe, result_vmax_schulter);
    result_vend_sitzhoehe = vertcat(result_vend_sitzhoehe, result_vend_schulter);
    result_time_sitzhoehe = vertcat(result_time_sitzhoehe, result_time_schulter);
end

Ergebnisse und Interpretation

Als Ergebnis können die Werte drei unterschiedlicher Matrizen betrachtet werden. Zurückgegeben werden jeweils die maximalste Geschwindigkeit (vmax), die Endgeschwindigkeit (vend) und die Zykluszeit pro Sitzhöhe/Hüftwinkel-Kombination. Schnell kann festgestellt werden, dass die Betrachtung der Zykluszeit in dieser Aufgabenstellung nicht sinnvoll ist, da durch die unterschiedlichen Körperhaltungen und die fixierte Schulter auch der Weg verändert wird, den die Hand den Greifring begleiten kann. Je höher der Stuhl, desto kürzer ist der Begleitweg am Greifring. Dies erscheint für Athleten ohne aktive Rumpfmuskulatur sinnfrei. Eine kurze Zykluszeit bedeutet also nicht eine optimalere Beschleunigung.

Abb. 24: Darstellung der Zykluszeiten

Die kürzesten Zykluszeiten werden erreicht, wenn der Oberkörper sehr weit nach hinten gelehnt ist (100º) und die Sitzhöhe sehr hoch ist (63 cm). Der Begleitweg am Greifring ist entsprechend kurz. Die längste Zykluszeit wird bei ca. 47º Oberkörperneigung und einer Sitzhöhe von 15 cm erreicht. Prinzipiell kann der Trend festgehalten werden, dass die Zykluszeit mit dem Absinken der Sitzhöhe und Vorbeugen des Oberkörpers steigt. Lediglich die Sitzhöhen 15 und 16 cm bilden hier eine Ausnahme. Es wird vermutet, dass diese Werte so tief sind, dass die Bewegung des Schubes nicht mehr flüssig ablaufen kann. Bei einer Hüftposition von 15 cm Höhe liegt die Schulter bei aufrechtem Sitzen bei 69 cm, während der Hand auf einer Höhe von 60 cm auf der Oberseite des Reifens noch einen effektiven Schub ausführen soll. Zu klären bleibt der genaue Zusammenhang zwischen der Länge des Begleitweges und der Zykluszeit. Es wird vermutet, dass in diesem Beispiel eine längere Zykluszeit ebenfalls einen längeren Begleitweg bedeutet.

Es fällt auf, dass eine positive Winkelbeschleunigung des Rades nur in der ersten Hälfte des Schubes zu verzeichnen ist und dass eine bessere maximale Geschwindigkeit nicht zwingend eine höhere Endgeschwindigkeit bedeutet. Die größten Geschwindigkeitszuwächse sind bei einem Neigungswinkel von 46º und einer Sitzhöhe von 26 cm zu finden, während die größte Endgeschwindigkeit bei Neigungswinkel 31º und Sitzhöhe 47 cm auftritt. Letztere Kombination scheint günstiger für einen effektiven Vortrieb zu sein.

Abb. 25: Darstellung der maximalen Geschwindigkeiten

Bei einer Anfangsgeschwindigkeit von 1 m/s, sind in einem Sitzhöhenbereich von 23-33 cm (die Radachse liegt bei 30 cm) und einem Neigungswinkel zwischen 27-56º Geschwindigkeitszuwächse von über 70% zu beobachten. Ab einem Neigungswinkel von ca. 65º aufwärts fallen die maximalen Geschwindigkeitswerte rapide ab. Bei einem Winkel zwischen 80-100º ist kein Geschwindigkeitszuwachs von mehr als 50% zu finden. Der Neigungswinkel scheint einen größeren Einfluss auf die Beschleunigung zu haben, als die Sitzhöhe. Während die Variation der Sitzhöhe pro Neigungswinkel nur einen Unterschied von bis zu 30 cm/s erwirken kann, so kann die Variation des Neigungswinkels pro Sitzhöhe einen Geschwindigkeitsunterschied von bis zu 55 cm/s verursachen. Es wird vermutet, dass durch den Neigungswinkel sowohl der Begleitweg der Hand am Greifring verlängert wird, was sich positiv auf die Geschwindigkeit auswirkt, als auch ein besserer Angriffswinkel für die Drehmomente der Gelenke entsteht. Wie zuvor bei der Graphik der Zykluszeiten sind Unregelmäßigkeiten bei den niedrigsten Sitzhöhen zu erkennen.

Abb. 26: Darstellung der Endgeschwindigkeiten

Bei der Darstellung der Endgeschwindigkeiten ist sehr schön zu erkennen, dass die Simulation bei einer Sitzhöhe von 15 cm in Kombination mit Neigungswinkeln zwischen 45-99º nicht erfolgreich abgeschlossen werden konnte und wegen einer negativen Winkelgeschwindigkeit abgebrochen wurde. Der größte Geschwindkeitszuwachs am Ende eines Schubes liegt bei 60,44% (31º/47 cm). Über 60% Zuwachs können ab einem Winkel von 43º bis 18º beobachtet werden. Bei einem Winkel von 43º treten über 60% bei den Sitzhöhen 41-43 cm auf. Das Verhältnis verschiebt sich, was dazu führt, dass bei einem Winkel von 18º die 60% bei Sitzhöhen von 53-57 cm zu sehen sind. Je höher die Sitzhöhe desto weiter muss der Oberkörper nach vorne gebeugt werden, um ähnlich hohe Geschwindigkeiten erreichen zu können. Es scheint pro Neigungswinkel eine optimale Kombination mit einer Sitzhöhe zu geben, um den Geschwindigkeitszuwachs am Ende des Schubes zu maximieren. Eine ähnliche Verschiebung war auch schon zuvor beim Graphen der maximalen Geschwindigkeiten zu sehen.

Lässt man die gleiche Simulationsreihe noch einmal mit einer Anfangsgeschwindigkeit von 2 m/s laufen, kann kein Geschwindigkeitszuwachs am Ende des Schubes beobachtet werden. Ab 3 m/s tritt nicht einmal eine kurzzeitige Beschleunigung auf. Dies weist darauf hin, dass die Parameter (Drehmomente und Winkelgeschwindigkeiten) des Modells noch einmal auf Authentizität überprüft werden sollten, da ein Rollstuhlbasketball-Spieler durchaus in der Lage ist auf mehr als 2 m/s zu beschleunigen.

Probleme der Winkelberechnung des Ellenbogens

Die während des Seminars entwickelte Berechnung für den Winkel des Ellenbogens, welche die Matlab-Funktion atan2 anwendete, erwies sich im Laufe der Bearbeitung dieser Teilaufgabe als nicht immer adäquat. In Positionen mit weit nach vorne gebeugtem Oberkörper und sehr hoch angehobenem Ellenbogen, zeigte die Öffnung des zu berechnenden Winkels nach unten und bewirkte, dass die Berechnung die Größe des Restwinkels von über 180º zurücklieferte und so zu einem unerwarteten Abbruch der Simulation führte. Die ursprüngliche Berechnung mit atan2 wurde durch eine Berechnung der Winkels zwischen zwei Vektoren unter Zuhilfenahme des Skalarproduktes und des Betrages ersetzt.

Abb. 27: Matlab Simulink Modell

verfasst von S. Mohnen

Zusammenfassung der Ergebnisse

Fragestellung I

Die maximale Geschwindigkeit des Modells wurde durch rekursives Simulieren mit Übernahme der Endgeschwindigkeit ermittelt und beträgt 8.611 km/h. Dies ist für das Modell mit angenäherten Muskelkräften und nur einem simulierten Arm zur Kraftentwicklung realistisch zu bewerten.

Fragestellung II

Im Rahmen dieser Fragestellung wurde das Modell um die Muskeleigenschaft „Kraft-Geschwindigkeit“ ergänzt. Desweiteren wurde ein genetischer Algorithmus entwickelt, der eine gute Bewegungslösung für die Bewegungsaufgabe findet. Dieser Algorithmus wurde in der nachfolgenden Fragestellung weiter entwickelt.
Als Vergleich wurde eine geometrische Betrachtung der Bewegung erstellt und eine optimale Bewegungsstrategie (Bang-Bang) entwickelt.
Der genetische Algorithmus näherte sich nach 20 Generationen mit je 50 Chromosomen dieser optimalen Bewegung an, konnte sie allerdings noch nicht erreichen (0,484s zu 0,453s).

Fragestellung III

Für das Ausgangsmodell konnte eine minimale Zykluszeit von 0.4935s ermittelt werden. Durch Einbeziehen der Beziehung zwischen Muskellänge und Kraftentfaltung erhöhte sich die minimale Zykluszeit auf 0.5187s. Zu erklären ist dies mit dem ausschließlich kraftmindernden Einfluss des Kraft-Längen-Verhältnisses. Wurde der Faktor vorher durch Konstanthalten mit dem Wert 1 ausgeschaltet, variiert dieser nun zwischen 0 und 1 und verringert somit den maximal möglichen Krafteintrag.

Die Integration der zweigelenkigen Wirkweise von Bizeps & Trizpes brachii ergab wiederum eine höhere minimale Zykluszeit (0.5321s). Zu erklären ist dies damit, dass die benötigten Bewegungen des Modells konträr zur zweigelenkigen Wirkweise der Muskeln sind. Während in der ersten Phase eine Retroversion der Schulter in Kombination mit Beugung des Ellenbogens benötigt wird, kommt es in der zweiten Hauptphase zu einer Anteversion der Schulter in Kombination mit Streckung des Ellenbogens. Diese Kombinationen entsprechen nicht der zweigelenkigen Wirkweise des Bizeps (Beugung des Ellenbogens + Anteversion der Schulter) bzw. des Trizeps (Streckung des Ellenbogens + Retroversion der Schulter). Somit wirken in jeder Innervationsphase der zweigelenkigen Muskel automatisch Kräfte entgegen der eigentlich benötigen Bewegungsrichtung.

Fragestellung IV

Eine Veränderung des Oberkörperwinkels des Sportlers und der Sitzhöhe des Rollstuhls hat Einfluss auf den Geschwindigkeitszuwachs pro Schub.

Es kann eindeutig beobachtet werden, dass eine Veränderung der Ergebniswerte in Abhängigkeit von Sitzhöhe und Neigungswinkel vorliegt.

Eine Auswertung der Zykluszeit ist für diese Fragestellung nicht sinnvoll, da durch die veränderten Parameter auch der Weg verändert wird, welchen die Hand den Greifring während des Schubes begleiten kann. Ein Zusammenhang zwischen Zykluszeit und Begleitweg sollte untersucht werden. Eine hohe maximale Geschwindigkeit pro Schub ist nicht gleichbedeutend mit der maximalen Geschwindigkeit am Ende des Zuges, da die positive Beschleunigung nur in der ersten Hälfte des Schubes zu beobachten ist. Es wird vermutet, dass die Angriffswinkel der Drehmomente zu Anfang des Schubes besser sind. Die größten Geschwindigkeitszuwächse (höchster Wert 70,96% Geschwindigkeitszuwachs verglichen mit der Anfangsgeschwindigkeit) sind bei einem Neigungswinkel von 46º und einer Sitzhöhe von 26 cm zu finden, während die größte Endgeschwindigkeit (60,44% Zuwachs) bei Neigungswinkel 31º und Sitzhöhe 47 cm auftritt. Letztere Kombination scheint günstiger für einen effektiven Vortrieb zu sein. Der Neigungswinkel scheint einen größeren Einfluss auf die Beschleunigung zu haben, als die Sitzhöhe. Variationen der Sitzhöhe pro Neigungswinkel erwirken Unterschiede bis zu 30 cm/s, während Variationen des Neigungswinkels pro Sitzhöhe einen Geschwindigkeitsunterschied von bis zu 55 cm/s verursachen. Es wird vermutet, dass durch den Neigungswinkel sowohl der Begleitweg der Hand am Greifring verlängert wird, als auch ein besserer Angriffswinkel für die Drehmomente der Gelenke entsteht. Die Simulationen wurden mit einer Anfangsgeschwindigkeit von 1 m/s durchgeführt. Das Modell kann bei einer Anfangsgeschwindigkeit von 2 m/s bereits keine erhöhten Endgeschwindigkeiten mehr erreichen. Die Eingabewerte der Drehmomente und Winkelgeschwindigkeiten sollten auf Authentizität überprüft werden.

Reflexion & Ausblick

Reflexion des Seminars

Ziel des Kurses war es die Grundlagen der Modellierung kennenzulernen. Nachdem wir einige Basics anhand von Beispielmodellen während des Seminars kennengelernt und gemeinsam ein Modell erarbeitet hatten, bekam jeder von uns eine Aufgabe, die es jeweils alleine zu bearbeiten galt.
Besonders gut war, dass die Ergebnisse und Überlegungen des vorherigen Kurses wieder aufgegriffen werden konnten und somit eine gute thematische Verbindung geschaffen werden konnte.
Die intensive Bearbeitung der Fragestellungen, die thematisch sehr verschieden waren, ermöglichte uns ein vertieftes Verständnis für Modellierung und Simulieren. Sehr gut war, dass die Fragestellungen so verschieden waren, sodass der gegenseitige Austausch zu einem höheren Lerneffekt führte als die Bearbeitung der gleichen Fragestellung.

Es bleibt zu prüfen, ob die erstellten Modelle so nah an der Realität sind, dass die Ergebnisse übertragen werden könnten.

Modellbezogener Ausblick

Während der Bearbeitung der Aufgabe kamen immer wieder neue Ideen auf, wie das Modell weiterentwickelt und ausgebaut werden könnte. Da eine Umsetzung den Rahmen des Seminars gesprengt hätte, werden diese Ideen im Folgenden zumindest gesammelt.

Nächste Schritte für das Modell zu Fragestellung I

Prinzipiell kann Fragestellung 1 als vollständig beantwortet deklariert werden. Durch Erweiterung des Modells (s. nächste Schritte der anderen Fragestellungen) kann der rekursive Aufruf zur Ermittelung der maximalen Geschwindigkeit erneut durchgeführt werden. Das Ergebnis kann anschließend als Vergleichskritierum herangezogen werden.

Nächste Schritte für das Modell zu Fragestellung II

  • Eine mögliche Erweiterung des Modells könnte vorsehen, weitere Muskeleigenschaften, wie zum Beispiel die Kraft-Längen-Kurve einzubauen. Hierzu müsste das Modell erweitert werden, da nun zusätzlich die Muskelverläufe, Ruhelängen und Hebelverhältnisse eine Rolle spielen.
  • In einer weiteren Version des Algorithmus könnten die Segmente, in denen einzelne Muskeln nur exzentrisch arbeiten können, aus der Berechnung genommen werden, um somit die Berechnungszeit zu verkürzen.

Nächste Schritte für das Modell zu Fragestellung III

  • Recherche und Integration von realitätsgetreueren Werten für die maximale isometrische Kraft der beteiligten Muskeln
  • Recherche und Integration von realitätsgetreueren Werten der zweigelenkig wirkenden Muskelanteilen von Bizeps & Trizeps
  • Die Erweiterung des Modells um mindestens einen (fiktiven) Muskel, der eine Längenberechnung für das Schultergelenk und somit das Kraft-Längen-Verhältnis in der Schulterbewegung ermöglicht

Nächste Schritte für das Modell zu Fragestellung IV

  • Der Oberkörper soll frei beweglich sein und das Drehmoment der Hüfte soll aktiv beim Vortrieb helfen. Das Modell bringt für diesen Schritt schon viele Grundlagen mit. Durch das Entfernen der Kräfte, die den Oberkörper festhalten, kann das Drehmoment der Hüfte, welches bereits eingebaut ist, zur Geltung kommen. Sehr wichtig ist, dass die Simulation nicht mehr abbrechen darf, wenn die Ellenbogen die Streckung erreicht haben, da der Oberkörper in dieser Position noch immer Arbeit verrichtet. Zu Testzwecken wurde das Verhindern des Durchschlagens der Ellenbogen zwar bereits in das Modell eingebaut, für die eigentlich Testläufe jedoch deaktiviert, da das Modell durch den Abbruch-Constraint nie in diese Situation kommt. Da in diesem Modell ein Loslassen des Greifringes und ein Zurückführen des Oberkörpers nicht vorgesehen ist, müssen auch keine Drehmomente eingebaut werden, welche die Hüfte strecken. Auch bei variabler Schulter sollte das Modell mit verschiedenen initialen Hüftwinkeln geprüft werden, um beste Vortriebsergebnisse zu ermitteln. Der Einbau der Kraft-Geschwindigkeitskurve für die Hüfte darf nicht vergessen werden.
  • Im Rahmen dieser Simulation wird die Position der Hand nicht verändert. Es kann jedoch Sinn machen, die Startposition der Hand in Abhängigkeit des Hüftwinkels ebenfalls zu variieren. Diese Variante sollte geprüft werden, besonders weil das Verschieben der Hand ebenfalls Einfluss auf den Begleitweg am Greifring hat. Eine Möglichkeit wäre, den Begleitweg x am Rad festzulegen und in Abhängigkeit dessen die übrigen Parameter zu verändern.
  • Außerdem werden im Rahmen dieser Simulation für jede Sitzhöhe die gleichen 82 Positionen des Oberkörpers getestet, obwohl eine höhere Sitzhöhe prinzipiell einen größeren Bewegungsspielraum nach vorne bietet. So könnte die Simulation z.B. um einen Oberschenkel und ein Knie erweitert werden, wobei das Knie in einer fixen Position gehalten wird, während die Sitzhöhe pro Durchlauf variiert. Dadurch ergeben sich verschiedene Spielräume für den Oberkörper, der bei Annäherung an den Oberschenkel in seiner Bewegung eingeschränkt wird.
  • Zur weiteren Verbesserung des Modells ist es sinnvoll die Wahl der x-Koordinate der Hüfte statistisch zu prüfen und die wahre durchschnittliche Entfernung von der Radachse zum Hüftgelenk zu ermitteln.
  • Außerdem sollten die Werte der Drehmomente und Winkelgeschwindigkeiten der Gelenke durch Literaturrecherche wissenschaftlich fundiert werden.
  • Der Tatsache, dass das Modell nicht über eine Endgeschwindigkeit von 2 m/s beschleunigen kann, sollte auf den Grund gegangen werden.

indexmenu_n_1

sbas/ss2013/rollstuhl.txt · Zuletzt geändert: 28.11.2022 00:11 von 127.0.0.1


Warning: Undefined variable $orig_id in /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/lib/plugins/openas/action.php on line 232