Benutzer-Werkzeuge

Webseiten-Werkzeuge


adp_laufrobotik:adp_2012_ws_group1:simulation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

adp_laufrobotik:adp_2012_ws_group1:simulation [15.04.2013 19:25] – [Aktivierung des Muskels] Fabian Hoitzadp_laufrobotik:adp_2012_ws_group1:simulation [28.11.2022 00:11] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 10: Zeile 10:
 <html><br></html> <html><br></html>
  
 +
 +Die in folgenden Text erstellten Modelle sind in folgender Datei zu finden:
 +{{:adp_laufrobotik:adp_2012_ws_group1:modelle.rar|}}
 ===== Einleitung ===== ===== Einleitung =====
 Ein wesentlicher Teil des ADPs ist die Entwicklung der Matlab/Simulink-Simulation des Marco-Hopper-Robots mit einem Muskelmodell nach Hill sowie dem CE nach Häufle. Diese dient dazu, das Verhalten des Systems, d. h. des Marco-Hopper-Robots mit Muskelnachbildung bei einem Sprung oder Hüpfen möglichst exakt nachzubilden, um anhand dieser Informationen die einzelnen Komponenten (z. B. Federsteifigkeiten, Dämpfungen) für die Konzeptionierung auszulegen. Zudem ist anhand der Simulation eine erste Abschätzung möglich, ob die gesetzten Ziele erreicht bzw. die Anforderungen an das System (z. B. Sprunghöhe) erfüllt werden können.\\ Ein wesentlicher Teil des ADPs ist die Entwicklung der Matlab/Simulink-Simulation des Marco-Hopper-Robots mit einem Muskelmodell nach Hill sowie dem CE nach Häufle. Diese dient dazu, das Verhalten des Systems, d. h. des Marco-Hopper-Robots mit Muskelnachbildung bei einem Sprung oder Hüpfen möglichst exakt nachzubilden, um anhand dieser Informationen die einzelnen Komponenten (z. B. Federsteifigkeiten, Dämpfungen) für die Konzeptionierung auszulegen. Zudem ist anhand der Simulation eine erste Abschätzung möglich, ob die gesetzten Ziele erreicht bzw. die Anforderungen an das System (z. B. Sprunghöhe) erfüllt werden können.\\
Zeile 28: Zeile 31:
 \end{equation}  \end{equation} 
 <html></br></html> <html></br></html>
-und besitzt einen nicht konstanten Dämpfungswert der eine Abhängigkeit der CE-Kraft besitzt+und besitzt einen nicht konstanten Dämpfungswert der eine Abhängigkeit der CE-Kraft besitzt\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 58: Zeile 61:
 ergibt, wird für die Simulation lediglich das Experiment ($QR_M$) nachgebildet. ergibt, wird für die Simulation lediglich das Experiment ($QR_M$) nachgebildet.
 ==== Validierung ==== ==== Validierung ====
-Zur Validierung wird lediglich das Experiment ($QR_M$) nachgebildet. Dazu wird die Simulation automatisch durch ein Matlabskript mit verschiedenen Massen $m_2$ ausgeführt, deren Werte im Bereich+Zur Validierung wird lediglich das Experiment ($QR_M$) nachgebildet. Dazu wird die Simulation automatisch durch ein Matlabskript mit verschiedenen Massen $m_2$ ausgeführt, deren Werte im Bereich\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 64: Zeile 67:
 0< m_2 < \frac{F_{AE,max}}{g}, 0< m_2 < \frac{F_{AE,max}}{g},
 \end{equation} \end{equation}
-liegen. Um das Kraft-Geschwindigkeits-Verhältnis zu erhalten, wird nach dem Lösen des Muskels zum Zeitpunkt der maximalen Kontraktionsgeschwindigkeit $y'_{m2, max}$ die Kraft $F_{CE}$ gemessen. Beim Experiment ($QR_F$) bzw. isotonischer Kontraktion hat die serielle Feder keinen Einfluss, sodass sich der Zusammenhang+<html></br></html> 
 +liegen. Um das Kraft-Geschwindigkeits-Verhältnis zu erhalten, wird nach dem Lösen des Muskels zum Zeitpunkt der maximalen Kontraktionsgeschwindigkeit $y'_{m2, max}$ die Kraft $F_{CE}$ gemessen. Beim Experiment ($QR_F$) bzw. isotonischer Kontraktion hat die serielle Feder keinen Einfluss, sodass sich der Zusammenhang\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 70: Zeile 74:
 y'_{m2} = y'_{m1}, y'_{m2} = y'_{m1},
 \end{equation} \end{equation}
 +<html></br></html>
 ergibt (vgl. [Haeufle u. a. (2012)]). Dieser Sachverhalt wird genutzt, um aus der Simulation von ($QR_M$) ebenfalls die Ergebnisse von ($QR_F$) zu erhalten. Dazu wird nach dem Lösen des Muskels zum Zeitpunkt der maximalen Kontraktionsgeschwindigkeit $y'_{m1, max}$ die Kraft $F_{CE}$ gemessen. Das diese Überlegung korrekt ist, zeigt sich im Vergleich der eigenen Simulationsergebnisse mit denen von Häufle ermittelten Werte. In den Abbildungen 2 und 3 ist erkennbar, dass die aus den Simulationen (bei Häufle als "Numerical model" bezeichnet) erhaltenen Kurven quantitativ identisch sind und das Modell des CE ordnungsgemäß arbeitet. Daher ist anzunehmen, dass die Struktur des implementierten Modells korrekt ist und für die weitere Modellierung genutzt werden kann. ergibt (vgl. [Haeufle u. a. (2012)]). Dieser Sachverhalt wird genutzt, um aus der Simulation von ($QR_M$) ebenfalls die Ergebnisse von ($QR_F$) zu erhalten. Dazu wird nach dem Lösen des Muskels zum Zeitpunkt der maximalen Kontraktionsgeschwindigkeit $y'_{m1, max}$ die Kraft $F_{CE}$ gemessen. Das diese Überlegung korrekt ist, zeigt sich im Vergleich der eigenen Simulationsergebnisse mit denen von Häufle ermittelten Werte. In den Abbildungen 2 und 3 ist erkennbar, dass die aus den Simulationen (bei Häufle als "Numerical model" bezeichnet) erhaltenen Kurven quantitativ identisch sind und das Modell des CE ordnungsgemäß arbeitet. Daher ist anzunehmen, dass die Struktur des implementierten Modells korrekt ist und für die weitere Modellierung genutzt werden kann.
 <html></br></html> <html></br></html>
Zeile 82: Zeile 87:
 </imgcaption> </imgcaption>
 ===== Erweiterung zum Hill-Modell ===== ===== Erweiterung zum Hill-Modell =====
-Der nächste Schritt besteht darin, dieses CE-Modell durch ein paralleles elastisches Element (PEE) und ein serielles elastisches Element (SEE) zu erweitern und damit ein vollständiges Hill-Modell zu erhalten. Die Erweiterung um PEE gestaltet sich einfach, da dies durch ergänzen der Kraft+Der nächste Schritt besteht darin, dieses CE-Modell durch ein paralleles elastisches Element (PEE) und ein serielles elastisches Element (SEE) zu erweitern und damit ein vollständiges Hill-Modell zu erhalten. Die Erweiterung um PEE gestaltet sich einfach, da dies durch ergänzen der Kraft\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 88: Zeile 93:
 F_{PEE} = - k_{PEE} \cdot y_{m2}, F_{PEE} = - k_{PEE} \cdot y_{m2},
 \end{equation} \end{equation}
-in Gleichung 4 zu +<html></br></html> 
 +in Gleichung 4 zu\\ 
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 94: Zeile 100:
 y''_{m2} =  \frac{1}{m_{2}} \cdot (F_{PEE} +F_{SE} - m_2 \cdot g), y''_{m2} =  \frac{1}{m_{2}} \cdot (F_{PEE} +F_{SE} - m_2 \cdot g),
 \end{equation} \end{equation}
-die einzige Änderung in den Bewegungsgleichungen ergibt. Durch die Erweiterung mit SEE ergibt sich ein neuer Freiheitsgrad und somit eine weitere Bewegungsgleichung um die Koordinate $y_2$+<html></br></html> 
 +die einzige Änderung in den Bewegungsgleichungen ergibt. Durch die Erweiterung mit SEE ergibt sich ein neuer Freiheitsgrad und somit eine weitere Bewegungsgleichung um die Koordinate $y_2$\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 100: Zeile 107:
 y''_{2}= \frac{1}{m_{2}} \cdot ( F_{SEE} - m_{2}  \cdot  g ). y''_{2}= \frac{1}{m_{2}} \cdot ( F_{SEE} - m_{2}  \cdot  g ).
 \end{equation} \end{equation}
 +<html></br></html>
 Das zugehörige Modell sowie die Freischnitt-Skizze sind in Abbildung 4 dargestellt.\\ Das zugehörige Modell sowie die Freischnitt-Skizze sind in Abbildung 4 dargestellt.\\
-Die Federkraft in SEE berechnet sich zu+Die Federkraft in SEE berechnet sich zu\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 107: Zeile 115:
 F_{SEE} = k_{SEE} \cdot (y_{m2}- y_{2}), F_{SEE} = k_{SEE} \cdot (y_{m2}- y_{2}),
 \end{equation} \end{equation}
-Um die Koordinate $y_{m2}$ zu erhalten wird das Kräftegleichgewicht um diesen Punkt erstellt+<html></br></html> 
 +Um die Koordinate $y_{m2}$ zu erhalten wird das Kräftegleichgewicht um diesen Punkt erstellt\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 113: Zeile 122:
 F_{SEE} = F_{PEE} + F_{SE},  F_{SEE} = F_{PEE} + F_{SE}, 
 \end{equation} \end{equation}
-die Gleichungen 5, 8 und 11 eingesetzt und nach $y_{m2}$ aufgelöst:+<html></br></html> 
 +die Gleichungen 5, 8 und 11 eingesetzt und nach $y_{m2}$ aufgelöst:\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 119: Zeile 129:
  y_{m2}= \frac{k_{SEE} + y_{2}}{k_{PEE} + k_{SE} + k_{SEE}},  y_{m2}= \frac{k_{SEE} + y_{2}}{k_{PEE} + k_{SE} + k_{SEE}},
 \end{equation} \end{equation}
 +\\
 +<html></br></html>
 \begin{equation} \begin{equation}
 \setcounter{equation}{14} \setcounter{equation}{14}
Zeile 131: Zeile 143:
 Aufgrund der Nichtlinearität von SE ergeben sich zwei Gleichungen zur Berechnung von $y_{m2}$ zwischen denen in Abhängigkeit von der Differenz $y_{m2}-y_{m1}$ geschaltet werden muss. Um keine algebraische Schleife zu erzeugen bzw. den Phasenversatz zwischen $y_{m2}$ und $y_{m1}$ zu korrigieren ($y_{m2}$ ist das Ergebnis einer algebraischen Gleichung, $y_{m1}$ das einer Differenzialgleichung), wird ein Memoryblock verwendet, um $y_{m2}$ um einen Berechnungsschritt zu verzögern.\\ Aufgrund der Nichtlinearität von SE ergeben sich zwei Gleichungen zur Berechnung von $y_{m2}$ zwischen denen in Abhängigkeit von der Differenz $y_{m2}-y_{m1}$ geschaltet werden muss. Um keine algebraische Schleife zu erzeugen bzw. den Phasenversatz zwischen $y_{m2}$ und $y_{m1}$ zu korrigieren ($y_{m2}$ ist das Ergebnis einer algebraischen Gleichung, $y_{m1}$ das einer Differenzialgleichung), wird ein Memoryblock verwendet, um $y_{m2}$ um einen Berechnungsschritt zu verzögern.\\
 ==== Validierung ==== ==== Validierung ====
-Um Abschätzen zu können, ob das System sich korrekt verhält wird zuerst die statische Auslenkung der Koordinaten für einen bestimmten Parametersatz gemessen und mit berechneten Werten verglichen. Die Parameter werden zu diesem Zeitpunkt willkürlich festgelegt, zudem wird für diese Untersuchung an der Koordinate $y_{2}$ eine fiktive Dämpfung mit der Umgebung eingefügt, die sich nur auf das dynamische Verhalten auswirkt. Für $y_{m2}$ ergibt sich folgende Auslenkungen für $k_{PEE} = 1000\frac{N}{m}$ und $m_2 = 1,42kg$ (SE hat keinen Einfluss):+Um Abschätzen zu können, ob das System sich korrekt verhält wird zuerst die statische Auslenkung der Koordinaten für einen bestimmten Parametersatz gemessen und mit berechneten Werten verglichen. Die Parameter werden zu diesem Zeitpunkt willkürlich festgelegt, zudem wird für diese Untersuchung an der Koordinate $y_{2}$ eine fiktive Dämpfung mit der Umgebung eingefügt, die sich nur auf das dynamische Verhalten auswirkt. Für $y_{m2}$ ergibt sich folgende Auslenkungen für $k_{PEE} = 1000\frac{N}{m}$ und $m_2 = 1,42kg$ (SE hat keinen Einfluss):\\
 <html></br></html> <html></br></html>
 \begin{equation} \begin{equation}
Zeile 137: Zeile 149:
 y_{m2, stat} = \frac{-g \cdot m_2}{k_{PEE}} = -0,01393m. y_{m2, stat} = \frac{-g \cdot m_2}{k_{PEE}} = -0,01393m.
 \end{equation} \end{equation}
 +<html></br></html>
 Für $y_{2, stat}$ muss zuerst die Steifigkeit berechnet werden, die aus der serielle Anordnung von PEE und SEE ($k_{SEE} = 15000\frac{N}{m}$) resultiert. $k_{SE}$ hat keinen Einfluss auf die statische Auslenkung, da $F_{AE}$ nicht aktiv ist und die Dämpferkraft $F_{PDE}$ nur das dynamische Verhalten beeinflusst: Für $y_{2, stat}$ muss zuerst die Steifigkeit berechnet werden, die aus der serielle Anordnung von PEE und SEE ($k_{SEE} = 15000\frac{N}{m}$) resultiert. $k_{SE}$ hat keinen Einfluss auf die statische Auslenkung, da $F_{AE}$ nicht aktiv ist und die Dämpferkraft $F_{PDE}$ nur das dynamische Verhalten beeinflusst:
 \\ \\
 +<html></br></html>
 \begin{equation} \begin{equation}
 \setcounter{equation}{16} \setcounter{equation}{16}
 k_{res} = \frac {k_{PEE} \cdot k_{SEE}} {k_{PEE}+k_{SEE}} = 937,5000 \frac{N}{m}. k_{res} = \frac {k_{PEE} \cdot k_{SEE}} {k_{PEE}+k_{SEE}} = 937,5000 \frac{N}{m}.
 \end{equation} \end{equation}
 +\\
 +<html></br></html>
 \begin{equation} \begin{equation}
 \setcounter{equation}{17} \setcounter{equation}{17}
 y_{2, stat} = \frac{-g \cdot m_2}{k_{res}} = -0,014859m. y_{2, stat} = \frac{-g \cdot m_2}{k_{res}} = -0,014859m.
 \end{equation}  \end{equation} 
 +<html></br></html>
 Der Vergleich mit den Signalverläufen aus Abbildung 5 zeigt, dass die statischen Auslenkungen korrekt sind. Zum Zeitpunkt $t=0s$ wird der Muskel aufgrund der Gewichtskraft $m_2$ auseinandergezogen. Nach dem Einschwingen erreichen die Signale $y_{2}$ und $y_{m2}$ den berechneten Wert. $y_{m1}$ hingegen wird von SE herunter gezogen, aufgrund der Nichtlinearität von SE jedoch nicht mehr nach oben gedrückt. Dieses Verhalten wäre im realen Aufbau wahrscheinlich nicht erwünscht, jedoch ist es plausibel und wird in der Simulation zunächst einmal hingenommen. Der Vergleich mit den Signalverläufen aus Abbildung 5 zeigt, dass die statischen Auslenkungen korrekt sind. Zum Zeitpunkt $t=0s$ wird der Muskel aufgrund der Gewichtskraft $m_2$ auseinandergezogen. Nach dem Einschwingen erreichen die Signale $y_{2}$ und $y_{m2}$ den berechneten Wert. $y_{m1}$ hingegen wird von SE herunter gezogen, aufgrund der Nichtlinearität von SE jedoch nicht mehr nach oben gedrückt. Dieses Verhalten wäre im realen Aufbau wahrscheinlich nicht erwünscht, jedoch ist es plausibel und wird in der Simulation zunächst einmal hingenommen.
 <html></br></html> <html></br></html>
Zeile 155: Zeile 172:
 Wird die Dämpfung wieder entfernt müsste sich eine Schwingung an $y_2$ einstellen, die der Eigenfrequenz entspricht, die sich aus $k_{res}$ und $m_2$ ergibt, da SE keinen Einfluss darauf hat: Wird die Dämpfung wieder entfernt müsste sich eine Schwingung an $y_2$ einstellen, die der Eigenfrequenz entspricht, die sich aus $k_{res}$ und $m_2$ ergibt, da SE keinen Einfluss darauf hat:
 \\ \\
 +<html></br></html>
 \begin{equation} \begin{equation}
 \setcounter{equation}{18} \setcounter{equation}{18}
 f_{m2} = \sqrt{\frac{k_{res}}{m_2}} = 4.0894Hz f_{m2} = \sqrt{\frac{k_{res}}{m_2}} = 4.0894Hz
 \end{equation} \end{equation}
 +<html></br></html>
 Da im Zeitbereich nur grob abgeschätzt werden kann, ob $y_2$ mit dieser Frequenz schwingt, wird ein Leistungsdichtespektrum mit der Matlabfunktion PSD erstellt. Dazu wird eine feste Abtastrate von $t_{abt} = 0,0001$ eingestellt und das Signal $20s$ aufgezeichnet. Als Frequenzstützstellen Anzahl wird die Dimension des Datenvektors gewählt und um Leckage-Effekte zu vermeiden eine Hann-Fensterfunktion. Anhand Abbildung 6 ist zu sehen, dass diese Frequenz ziemlich exakt getroffen ist. Das das Peak "abgeschnitten" ist, liegt vermutlich an geringen Leckage-Effekten.\\ Da im Zeitbereich nur grob abgeschätzt werden kann, ob $y_2$ mit dieser Frequenz schwingt, wird ein Leistungsdichtespektrum mit der Matlabfunktion PSD erstellt. Dazu wird eine feste Abtastrate von $t_{abt} = 0,0001$ eingestellt und das Signal $20s$ aufgezeichnet. Als Frequenzstützstellen Anzahl wird die Dimension des Datenvektors gewählt und um Leckage-Effekte zu vermeiden eine Hann-Fensterfunktion. Anhand Abbildung 6 ist zu sehen, dass diese Frequenz ziemlich exakt getroffen ist. Das das Peak "abgeschnitten" ist, liegt vermutlich an geringen Leckage-Effekten.\\
 <imgcaption image6 |Leistungsdichtespektrum y2 Koordinate> <imgcaption image6 |Leistungsdichtespektrum y2 Koordinate>
Zeile 166: Zeile 185:
 Die Untersuchung des dynamischen Verhaltens bei Aktivierung des Muskels gestaltet sich v. a. aufgrund der Abhängigkeit der Dämpfung $d_{PDE}(F_{CE})$ von $F_{CE}$ schwierig bzw. ist es schwierig das Verhalten vorherzusagen. Zudem wird sich das Verhalten stark in Abhängigkeit der Aktivierungsform verändern. Aus diesem Grund wird für die weitere Untersuchung die einfache Aktivierung durch einen Puls (Simulink-Block: Puls Generator) gewählt, der in seiner Weite, Frequenz und Pulshöhe (entspricht der Kraft $F_{AE, max}$) moduliert werden kann. Das Ausgangssignal des Puls Generators wird durch ein $PT_1$ Tiefpass gefiltert (siehe Abbildung 7). Das sich daraus ergebende Modell entspricht dem in der Literatur häufig verwendeten Aktivierungsmodell, dass den Zusammenhangs zwischen neuronaler Stimulation $STIM(t)$ und Aktivierunszustand $Akt$ widergibt (vgl. [Otten (1987)], zitiert in [Rode (2009)]): Die Untersuchung des dynamischen Verhaltens bei Aktivierung des Muskels gestaltet sich v. a. aufgrund der Abhängigkeit der Dämpfung $d_{PDE}(F_{CE})$ von $F_{CE}$ schwierig bzw. ist es schwierig das Verhalten vorherzusagen. Zudem wird sich das Verhalten stark in Abhängigkeit der Aktivierungsform verändern. Aus diesem Grund wird für die weitere Untersuchung die einfache Aktivierung durch einen Puls (Simulink-Block: Puls Generator) gewählt, der in seiner Weite, Frequenz und Pulshöhe (entspricht der Kraft $F_{AE, max}$) moduliert werden kann. Das Ausgangssignal des Puls Generators wird durch ein $PT_1$ Tiefpass gefiltert (siehe Abbildung 7). Das sich daraus ergebende Modell entspricht dem in der Literatur häufig verwendeten Aktivierungsmodell, dass den Zusammenhangs zwischen neuronaler Stimulation $STIM(t)$ und Aktivierunszustand $Akt$ widergibt (vgl. [Otten (1987)], zitiert in [Rode (2009)]):
 \\ \\
 +<html></br></html>
 \begin{equation} \begin{equation}
 \setcounter{equation}{19} \setcounter{equation}{19}
 A' = \frac{1}{\tau}(STIM(t)-Akt). A' = \frac{1}{\tau}(STIM(t)-Akt).
 \end{equation} \end{equation}
 +<html></br></html>
 Inwiefern dieses Aktivierungsmuster biologisch motiviert ist wird im Rahmen dieser Arbeit nicht weiter untersucht.\\ Inwiefern dieses Aktivierungsmuster biologisch motiviert ist wird im Rahmen dieser Arbeit nicht weiter untersucht.\\
 <html></br></html> <html></br></html>
adp_laufrobotik/adp_2012_ws_group1/simulation.1366046709.txt.gz · Zuletzt geändert: 28.11.2022 00:10 (Externe Bearbeitung)


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