サッカーボールを強く蹴るにはどの筋肉を鍛えたらよいか?(3)
By K.Yoshimi
この記事では、以前の記事
に続けて、「どの筋肉を鍛えたらよいか?」を、Ansys OptiSLangを用いて検討します。
なお、前記事と同様、OpenSimのSoccer Kickingの例題を使用します。
❗ 本記事の結果については、如何なる保証もありませんので、ご注意ください。
Ansys OptiSLang
Ansys OptiSLangは、プロセス統合/自動化および最適化(PIDO)に対応したCAEベースの最適化ソフトウェアで、モデルベース開発(MBD)などに利用されています。
実験計画法、感度解析、代理モデル(メタモデル、サロゲートモデル)、最適化、ロバスト設計等の機能や手法が実装されています。
また、設定・操作を直感的で分かり易いGUIで行え、結果もグラフィカルに見られて理解が助かるなどの特徴があります。
さらに、Ansys OptiSLangは
- ANSYSの流体解析ソフトウェアANSYS FLUENT
- ANSYSの構造・伝熱解析ソフトウェアANSYS Mechanical
・・・
など、多くのインターフェースが用意されており、Pythonで動くシミュレーションにも適用できます。
今回は、Soccker Kickingの例題から
- 4筋肉の最大等長力(maximum isometric force)の指定
① Hamstings (ハムストリング筋):膝を屈曲させる筋
② Rec Fem (大腿直筋):膝を進展させる筋
③ Scleus (ヒラメ筋):踵を上げてつま先立ちにする筋
④ Tibialis Anterior (前脛骨筋):足先を持ち上げる筋 - サッカーボールをキックするシミュレーション
- 蹴り出されたサッカーボールの最大速度の抽出
の部分を抽出した以下のPythonスクリプトをAnsys OptiSLangに適用します。
import opensim as osim
import numpy as np
import os
working_dir = 'C:/Users/ユーザ名/Documents/OpenSim/4.3/Models/SoccerKick'
os.chdir(working_dir)
def getSpeed():
data = np.genfromtxt('kick/leg6dof9musc_knee_stop_Kinematics_u.sto', dtype='float', names=True, autostrip=True, skip_header=10)
return np.max(data['ball_tx'])
# values to default if not existing yet
if not OSL_REGULAR_EXECUTION: # test run mode
m_1 = 2594.0 # Hamstings
m_2 = 1169.0 # Rec Fem
m_3 = 5137.0 # Scleus
m_4 = 1759.0 # Tibialis Anterior
print(m_1, m_2, m_3, m_4)
# Results
model = osim.Model('SoccerKickingModel.osim')
# Set the initial max isometric forces
model.getMuscles().get('bifemlh_r').setMaxIsometricForce(m_1)
model.getMuscles().get('rect_fem_r').setMaxIsometricForce(m_2)
model.getMuscles().get('soleus_r').setMaxIsometricForce(m_3)
model.getMuscles().get('tib_ant_r').setMaxIsometricForce(m_4)
# Simulate
tool = osim.ForwardTool('runFD.xml', True, False)
tool.setModel(model)
tool.run()
x = getSpeed()
print('x: ' + str(x))
各筋肉の場所は、下図をご覧ください。
感度解析
「サッカーボールを強く蹴るにはどの筋肉を鍛えればよいか?」という疑問に答えるため、まず、感度解析を行いましょう。
📝 感度解析は、モデルの出力における不確実性を、定性的または定量的に、 モデルの入力にどのように割り当てることができるかを研究します。
Ansys OptiSLangで使用する感度解析は、分散分析に基づく手法で、
ランダムな入力変数に対して、各入力に対する出力分散の割合を算出できます。
最適予後のメタモデル(MOP: Metamodel of Optimal Prognosis)
一般に、分散分析に基づく感度解析で十分な精度を得るには、多くのシミュレーションの実行回数(10000回以上)が必要になります。
これは不可能な場合が多いので、Ansys OptiSLangでは、シミュレーションのモデル応答を模擬するメタモデル(代理モデル、サロゲートモデル)を作成し、
それに対して、分散ベースの感度解析を行います。
📝 メタモデルには、入力変数の個数を増やすと近似の精度が極端に低下する「次元の呪い」の問題があります。
この問題を克服するため、Ansys OptiSLangでは「最適予後のメタモデル(MOP: Metamodel of Optimal Prognosis)」を使用します。 このアプローチでは、最適な入力変数部分空間と最適なメタモデルを、 客観的でモデルに依存しない品質指標である予後係数(CoP: Coefficient of Prognosis)の助けを借りて決定します。
それでは、早速、Ansys OptiSLangの感度解析結果を見てみましょう。
入力の4筋肉のうち、ボールの速度への寄与度が大きいのは順に
① 前脛骨筋: 53%
② 大腿直筋:16%
③ ハムストリング筋:16%
④ ヒラメ筋:寄与が小さい
となりました。 前記事「サッカーボールを強く蹴るにはどの筋肉を鍛えたらよいか?(2)」 と同様に、ヒラメ筋はほどんど寄与しない結果となりました。
一方、前記事では明らかではありませんでしたが、前脛骨筋の寄与度が大きいことが分かります。
また、上図の通り、最適予後のメタモデル(MOP)によるCoefficient of Prognosis(CoP)は73%となり、 そこそこの精度で、入力からシミュレーション結果を模擬できています。
これを見ると、前脛骨筋を鍛えると急激に、ボールを蹴り出すスピードが上昇することが分かります。 (トーキックのシミュレーションだからか?)
また、ここでは、最大等長力(maximum isometric force)を0~9000(N)の範囲で動かしていますが、
3000(N)から4000(N)付近に最大速度の大域的なピークがあり、過度に鍛えると逆に、蹴り出すボールは減速することが分かります。
AMOP(adaptive MOP)
上記で作成したMOPはそこそこの模擬精度でしたが、AMOP(adaptive MOP)によって、さらに精度を上げることができます。
AMOPの結果は以下の通り、CoPが87%まで上昇し、模擬の精度が上がっていることが分かります。
傾向は、MOPの場合と大体同じですが、数値が少し変わっています。
最適化
それでは、AMOPを使用して、最適化問題を解きましょう。
最適化問題は前記事と同じ設定にします。
すなわち、動かすパラメータは4つで
- Hamstings (ハムストリング筋):膝を屈曲させる筋
- Rec Fem (大腿直筋):膝を進展させる筋
- Scleus (ヒラメ筋):踵を上げてつま先立ちにする筋
- Tibialis Anterior (前脛骨筋):足先を持ち上げる筋
の最大等長力(maximum isometric force)を0~9000(N)の範囲で動かして、蹴り出した「ボールの最大速度」を最大化します。
最適化には、Ansys OptiSLangのデフォルトの勾配法ベースのNLPQL(Non-Linear Programming by Quadratic Lagrangian)を使用しました。
最適化の結果は、下図のようになりました。
算出された最適な最大等長力
- Hamstings (ハムストリング筋):1755.0 N
- Rec Fem (大腿直筋):2295.0 N
- Scleus (ヒラメ筋):3105.0 N
- Tibialis Anterior (前脛骨筋):2205.0 N
最大速度は12.7072(m/s)と、前記事のCMA-ES(共分散行列適応進化戦略)で求めた13.493(m/s)より遅い結果となりました。
このときのキックの様子は下図のようになりました。

おわりに
「サッカーボールを強く蹴るにはどの筋肉を鍛えたらよいか?」をAnsys OptiSLangを用いて検証しました。
前記事のCMA-ES(共分散行列適応進化戦略)よりもボールの最高速度は遅くなりましたが、 感度解析で得られる分散による貢献度や、MOPやAMOPで模擬されたシミュレーションのモデル応答の曲面を見ると、 「前脛骨筋を鍛えると急激に、ボールを蹴り出すスピードが上昇する」など、より詳細な知見を得られそうに感じました。
お問い合わせ
本記事で使用したAnsys OptiSLangについては、下記もご覧ください。
もし、ご自身の足の筋力がどのくらいの強さなのかを測定したい場合は、弊社までお問い合わせください。
✉️ https://www.rccm.co.jp/contact/