モジュラーエンジンの過給についてのお話
この真偽不明の文書はStormworks 第2 Advent Calendar 2023 第14日目の書き散らしです。
今回はモジュラーエンジンを過給する場合に障壁になりやすい過給時の燃料スロットル制御のお話をします。
モジュラーエンジン自体の組み方に関してはHellcat氏による
Stormworks 第1 Advent Calendar 2023 第10日目の記事が参考になります。
モジュラーエンジンの過給の制御ってどういうのがあるの?
個人的にはざっくり2種類あると思っています。
1.圧力をもとに制御する方法
2.シリンダー内の空気量をもとに制御する方法
の2つです。
実用重視ではじめに式とメリット・デメリット、燃料スロットル算出に必要な式を書いていきます。
1.圧力をもとに制御する方法
この方法ではワーカーが空気と燃料両方のスロットルを操作します。自然吸気用の制御にしばしば使われる"燃料スロットル=空気スロットル×0.5"の「0.5」の部分を算出するという考え方です。
メリット
1x1モジュラーの場合は2の方法に比べて高い精度で燃調制御ができます。
シリンダーサイズに関係なく1種類の式で燃料スロットルを求められます。
デメリット
圧力センサが必要になるので1ブロックでも節約したい小型車などには若干不利です。
式
![](https://assets.st-note.com/img/1702477758324-dRwKY3TLAK.png?width=1200)
電動大ポンプなどを使用して常時最大圧力がかかることが分かっている場合は圧力計を省いて式の圧力の部分に60(23/12/13時点における最大圧)を入れれば大丈夫です。
2.シリンダー内の空気量をもとに制御する方法
この方法でワーカーが操作するのは空気スロットルです。シリンダーのコンポジットからシリンダーの状態に合わせた燃料スロットルを算出するという考え方です。
メリット
圧力計が必要ないため省スペースです。温度情報取得などの目的でシリンダー用のノードを使うことが決まっていればマイコンのノード数節約にもなります。
デメリット(2024/01/26修正)
理由は後で説明しますが1x1モジュラーの大きな負荷がかかる場合は高精度な制御は望めません。また、燃料無限モード用に一工夫必要になります。
式
![](https://assets.st-note.com/img/1702477776449-CKf66zXhf4.png?width=1200)
シリンダー係数は1x1モジュラーを1としたシリンダー体積比です。
1x1モジュラーでは1、3x3モジュラーでは27、5x5モジュラーでは125ですね。
燃料無限モード時の一工夫についてです。
燃料無限モードでは空気スロットルの操作がシリンダーへの空気供給に関与せず、シリンダー内空気量はほぼ空燃比14になるようシリンダー内燃料をもとに勝手に決定されます。
なので下の図のような
「空燃比がほぼ14である」
または
「空気が入ってこない」
という条件を設定し、スイッチボックスなどで燃料スロットルの数値を空気スロットルの数値で上書きする必要があります。
![](https://assets.st-note.com/img/1702812164836-mLGNokaub3.png?width=1200)
以上が各方式での燃料スロットル算出式です。ここからは個人的に「この説が濃厚だな」と感じているモジュラーエンジンの仕様についてのお話です。
モジュラーエンジンの推定仕様
空気・燃料ともにシリンダーに供給される量は
スロットル×供給係数×シリンダー体積×RPS
で決定されていると考えられます。
この供給係数は
燃料 4.0×10⁻⁵
空気 2.5×10⁻⁶×圧力+2.75×10⁻⁴
です。
エンジンの関係式の全体図は以下のような感じではないでしょうか。
![](https://assets.st-note.com/img/1702477808972-tQwlf5yVCO.png?width=1200)
これだけであればよかったのですが、どうやらクランクシャフトに表示されているRPSとシリンダーへの空気・燃料供給に使われているRPS(仮にシリンダーRPSと呼びます)が異なるような挙動が見られます。シリンダーサイズに関わらず、クランクシャフトRPSの99%をシリンダーRPSとし、シリンダーRPSを用いてスロットル計算を行う方が精度が高くなります。
ですが、これはまだ「負荷をかけていない状態の理論値」にすぎません。
1x1モジュラーのクラッチでは負荷が高い場合にクランクシャフトRPSとクラッチから出力されるRPSに差が出ますが、これとほぼ同率のRPS差が前述のシリンダーRPSとクランクシャフトRPSの間に発生します。そのためクラッチから出力された直後にトルクメーターを設置し、そこで得られたRPSをシリンダーRPSとして計算に用いると精度が高くなります。
これはあくまでも単気筒での挙動です。多気筒でのシリンダーRPS推定は考えたくもありません。疲れました。(2024/01/26修正)
3x3や5x5は1x1に比べて大きな負荷でも滑りにくいですが、それでも負荷を大きくしていけば滑りが発生します。ありがたいことに3x3モジュラーや5x5モジュラーの場合はそれぞれのサイズのクラッチ同様にRPS差が生じにくいのか99%で計算しても大きな問題はありません。
これが制御方法2で1x1モジュラー高負荷な構成を制御した場合に精度が悪いと評した理由です。制御方法1では分子分母に空気と燃料の計算が分かれてくれるので地獄のシリンダーRPSは対消滅して退場してくれます。ヤッター。
おわりに
個人的に過給の必要性というのは、レギュレーション等で気筒数を減らさなければいけないような場合を除けば、そう高くないものと考えています。元々の気筒数が少ないのならば単に気筒数を増やしてもよいし、気筒数を増やすスペースが無いような状況であれば過給したところで冷却スペースの問題に置き換わる可能性が大きいからです。ですが、過給したいかどうかの問題でなく、自然吸気にできない状況というのも確かに存在します。例えば空気リザーブタンクを使った水中でのエンジン使用などです。タンクに詰めこむ以上どうしても圧力がかかり自然吸気用のスロットル制御ではどうにもならなくなります。こういった時にモジュラーエンジンを選択肢から外す必要がなくなる、というのが過給時のスロットル制御ができることの最大の旨味なのではないかと思っています。