- ベストアンサー
エンジンの加速をプログラムで
現在車の動きのプログラミングをしているのですが 車をアクセルの入力に応じて加速させる際の計算に困っております。 トルクカーブと回転数でトルクは求められるのですが アクセルの踏み量に応じた回転数の動きがわかりません 文章の表現が下手で申し訳ないです。 イメージとしてはギヤごとによって回転数の上がり方等です。 (ギヤ比が高いと回転数がすぐあがりギヤ比が低いと回転数が上がりにくい) よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>トルクカーブと回転数でトルクは求められるのですが このトルクカーブは、アクセル開度ごとのカーブなのでしょうか。 通常発表されているエンジン特性図でトルクカーブが一本だけのものは、アクセル全開時のもので、実際の走行状態に対応しているわけではありません。 ゲームのプログラムということですので、アクセル開度とエンジン出力トルクが比例すると考えても大きな問題はないと思います。 負荷については、空気抵抗などの走行抵抗は考えずに、(加速度)=(推進力)÷(車体重量)と考えて、負荷トルクは(推進力)に比例すると考えれば、(速度)=(加速度)×(時間)ですので、(速度)は(トルク)×(時間)に比例すると考えられると思います。 ギアはトルク変換機構ですので、(エンジントルク)×(ギア比)に何らかの係数をかけて(推進力)とすることができると思います。 (ギア比が大きければ負荷トルクは大きくなる) そのうえで、何らかの走行抵抗の効果を工夫すれば、より実車の走行に近くなると思います。 走行抵抗については、添付のURLをご覧ください。 http://res.sin11.net/auto/resist.html http://www.isuzu.co.jp/cv/cost/manual/knowledge_2.html なおそのうえで、エンジントルクを実車に近付ければよりよくなるでしょう。
その他の回答 (2)
- Tann3
- ベストアンサー率51% (708/1381)
実際の車のアクセルからエンジンの回転数・トルク、車輪の回転数までの道徳性が良くは分かりませんが、そう簡単なものではなく、いろいろなところに時間遅れの要素があると思います。「静特性」ではなく「動特性」なので、「一次遅れ」とか「二次遅れ」といった要素が必要になると思います。 (詳細は、「制御工学」とか「制御理論」といったものを見てください) また、 アクセルの踏み込み → (遅れ要素) → トルク上昇 → エンジン回転数上昇 → ギヤ比による車輪回転数 になると思いますが、 >ギヤ比が高いと回転数がすぐあがり 逆に、ギヤ比が高いと負荷が大きくてトルクが不足するので、なかなかエンジンの回転数が上がらないと思います。 マニュアル車では、加速しようと思ったら、ギヤを1~2段下げてアクセルを踏み込みますよね? (オートマチック車でも、アクセルを踏み込めば自動的にギヤが下がる) そういったギヤ比に応じた加速の特性もプログラムに組み込む必要があると思います。 どの程度の精度のものを作りたいのか分かりませんが、ある程度詳細なものを作るのであれば、実際のエンジンの構造から、構造に即した動作ブロック図を作り、各々の要素の「伝達関数」を求めていく、といった手順が必要かと思います。 答にはなっていませんが。
お礼
回答ありがとうございました。 アクセルを踏んだら車が加速するということをしたかったのですがかなり難しいみたいですね。 遅れ要素などは初めて聞いたので勉強してみます。
補足
>逆に、ギヤ比が高いと負荷が大きくてトルクが不足するので、なかなかエンジンの回転数が上がらないと思います。 ここに関しては起動トルクと負荷トルクの関係なのでしょうか 今回はシミュレータではなくゲーム目的なので精度はそこまで求めてないです。
- Nebusoku3
- ベストアンサー率38% (1471/3838)
実際のエンジンのギアーとアクセル操作の関係は、「エンジンへの負担を一定に」 使用という目的のものです。 計算のカテゴリーに 「エンジンへの負荷率」 のような要素を組み込むことと、 アクセルとその踏み込み量に対するエンジントルクの関係を エンジンのメーカーからサンプル入手し、それも加えれば かなり、のシミュレーションが可能ではないでしょうか。
お礼
回答ありがとうございました。 エンジン負荷率で調べてみたら少し参考になりそうです。
お礼
回答ありがとうございます。 まだ少し気になる点はあるのですが一度組んでみることにします。 考え方やURLなど参考になりました。