4ストロークのガソリンエンジンの物理モデリングをしてみました.
シミュレーションはMATLAB/Simulink,可視化ツールはProcessingです.
参考元はこのあたり.
双方ともに高知工科大学の磯村先生の文献です.
以前にも倒立振子とかパーティクルフィルタでのグリッドマップマッチングとか2リンク平面マニピュレータとかのモデリングをやってきたのですが,そのどれとも色が違うなあ,ということで.
例によって,ラグランジュ法で運動方程式を立てます.
このあたりは参考文献の上の方が詳しいかな.
幾何学的関係
定義から,
代入して,
最初の式をで微分して,
に関する式を代入すると,以下の関係が得られます.
定義より,
で微分すると,
,を代入して,
運動エネルギ
クランク軸の運動エネルギ
ただし,はクランク軸の慣性モーメントで,クランク軸は並進運動をしないため,回転運動の運動エネルギのみとなります.
ピストンの運動エネルギ
ただし,はピストンの質量で,ピストンは回転運動をしないため,並進運動のみの運動エネルギとなります.
コネクションロッドの運動エネルギ
ただし,,はそれぞれコネクションロッドの慣性モーメントおよび質量です.
全運動エネルギ
とを代入すると,
でまとめると,以下の関係が得られます.
ここで,
とおくと,全運動エネルギは以下に書き換えることができます.
ラグランジュ法
ラグランジアン
ただし,位置エネルギは無視できるため実際は,
となります.
ラグランジュ法では系全体の運動方程式は,
から求めることができます.
左辺第1項
左辺第2項
ここで注意したいのですが,MATLAB/SimulinkではTime-domainでシミュレーションを実行するため,での微分項は少し使いづらいです.
(前サンプリング時刻のと現在のサンプリング時刻のの差で除算する必要があり,クランク角速度ゼロの状態ではゼロ割になってしまう)
このため,をとして,少し変形しています.
これで左辺は求まりました.
右辺
右辺は,爆発により生じるトルク(外力)です.
クランク軸に作用するトルクは,幾何学的関係から以下となります.
ただし,はシリンダ内圧力,はピストンの断面積です.
文献ではもう少し複雑な式になっていますが,上の式で合っているような気がします.
これで運動方程式は求まりました.
燃焼系
燃焼系はまともにモデリングするのは骨が折れるので,簡単化します.
具体的には,吸気,圧縮,膨張,排気にそれぞれの行程で以下の仮定を置いています.
吸気
シリンダ内圧力は大気圧(1気圧)で一定.
管内摩擦も無視し,吸気行程が始まった瞬間からエンジンの慣性力に任せるままの運動となる.圧縮
シリンダ内圧力は断熱圧縮.
気体の状態方程式により圧力が決まる.
圧縮開始時の圧力は大気圧とする.(つまり吸気,排気によってシリンダ内部の圧力が初期状態に戻る)膨張
シリンダ内圧力は断熱膨張.
圧縮行程の逆の動きをする.
膨張開始時の圧力は定数とする.
圧縮から膨張への切り替わり時(爆発時)には等積加熱の動作を行う.(微小時間で圧力が最大値まで上昇する)排気
シリンダ内圧力は大気圧で一定.
管内摩擦も無視する.
エンジンの慣性力のみで動作する.
これらの仮定を基に,行程をモデル化しています.
クランク軸が2回転でサイクルのため,クランク軸角度(rad)ごとに区分しています.
吸気
ただし,は大気圧です.
圧縮
ただし,は下死点でのシリンダ容積,は上死点での隙間容積,は比熱比です.
膨張
ただし,は爆発時の圧力です.
排気
これで全ての式が導出できました.
これらをSimulinkで表現すると,次のような感じです.
全体
の中身
シリンダ内圧力
圧縮行程
膨張行程
からへの変換
このモデルでシミュレーションした結果が,冒頭の動画です.
リンクによって拘束される系のダイナミクスは解いたことがなかったのでなかなか面白かったように思います.
通常だと下死点から始まるため,初期位置を爆発直後の位置にずらしています.
スタータとかを考慮する場合には燃焼部分を少しいじる感じでしょうか.
0 件のコメント:
コメントを投稿