Pythonを使った エンジン性能シミュレーション

Pythonを使った エンジン性能シミュレーション

  • 北田 泰造 元三菱自動車工業(株) 博士(工学)

シミュレーションを行う際に必要なエンジンのモデル化,化学平衡計算の基本を詳述

ジャンル
発行予定日
2025/09/中旬
判型
A5
ページ数
270ページ
ISBN
978-4-339-04695-3
Pythonを使った エンジン性能シミュレーション
近刊出来次第出荷
発行出来次第どこよりも早くお届けいたします。予約受付中。

定価

4,840(本体4,400円+税)

カートに入れる

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介

【読者対象】
内燃機関を研究テーマにする学生,エンジン設計やエンジン研究に従事する技術者。

【書籍の特徴】
本書では,エアクリーナ,サージタンク,触媒とマフラを容器に見立て,これらを管で繋いだ単気筒のエンジンモデルを取り上げて,エンジン性能の計算方法と計算コードの中身を解説する。
計算コードを動かしながらエンジン性能の計算方法を学べるようになっているので,物理や化学の事象を記述した数式をどのように計算コードにしているか理解できる。また,読者が必要な改良を加えられるように,計算の不具合を的確に示してくれるインタープリタ型のPythonコードを選んでいるが,元にしたFORTRAN77コードの形をなるべく崩さずにPythonコードにしているので,好みの計算コードへ簡単に移行できると思う。
筆者は,計算においては単位が最も大切と考えているので,何度も繰り返して記載するようにしている。また,理解し難いと思われる箇所は,言葉を変えて何度も説明するように心掛けたので,このような物理や化学の分野に接してこなかった方でも十分理解できると思う。

【各章について】
第1章ではエンジン性能シミュレータの概要を,第2章では吸排気脈動の計算方法を示し,第3章で吸排気脈動計算に一領域燃焼モデルを加えたエンジン性能計算について解説する。第4章では部分化学平衡計算を,第5章ではギブス自由エネルギー極小化法を使って,燃焼ガス中の化学種の組成と燃焼温度を求める方法を述べる。第6章では燃焼ガスの化学平衡を考慮した二領域燃焼モデルで燃焼サイクルを計算する方法を述べ,エンジン性能計算に組み込んで計算した結果を紹介する。第7章では燃焼サイクル計算に化学反応計算を加えて,一酸化窒素NOを計算する方法を解説する。また,本文では説明不足と思われる事項については付録で詳しく解説している。

【著者からのメッセージ】
最近のPCは40年前の大型計算機より性能が高いのに,プレゼン資料の作成や表計算などにばかり利用され,数値計算に使われないのはもったいないと思っており,物理や化学に興味がある技術者が,計算コードの作成を通して理解を深められるように,これまで作成してきた計算コードを紹介したいと考えている。教科書に載っている物理や化学の数式を計算コードにすることを難く感じている方が多いように思うので,そのような方々にぜひ読んでもらいたい。

【キーワード】
一次元脈動計算,化学平衡計算,ギブス自由エネルギー極小化法,二領域燃焼モデル,Woschniの式,拡大Zeldovich機構,エンタルピー,内部エネルギー,エントロピー,ギブスの自由エネルギー, 二分法, Newton-Raphson法,マクローリン展開,最小二乗法,燃焼ガスの化学組成,定圧燃焼温度,定容(定積)燃焼温度

☆発行前情報のため,一部変更となる場合がございます

今日では,CAEを利用して工業製品を開発することが当たり前の時代になっており,幸いにも1980年頃の学生時代から定年退職を迎えるまでの40年間に渡って,計算機を使ったエンジン性能の予測に携わってきた筆者は,昨今の充実した開発環境に隔世の感を覚える。

安価なPC(personal computer)を使って,お気に入りの音楽を聴いて,計算を走らせながら,快適に本書を執筆している。そんな強力なツールをInternetの閲覧,文書やプレゼン資料の作成,表計算ソフトを利用するだけではもったいないと思い,物理現象に興味がある技術者が,計算コードの作成を通して理解を深められるように,これまで作成してきた計算コードを紹介したいと考えた。

本書では,エアクリーナ,サージタンク,触媒とマフラを容器に見立て,これらを管で繋いだ単気筒のエンジンモデルを取り上げて,エンジン性能の計算方法と計算コードの中身を解説する。燃焼については,単純にシリンダにエネルギーを与える一領域燃焼モデルに加え,既燃部と未燃部の二つの領域を取り扱う二領域燃焼モデル,最後に,二領域燃焼モデルに一酸化窒素(NO)生成モデルを加えた計算方法について解説する。また,二領域燃焼モデルの肝になる燃焼温度を求めるための化学平衡計算については,紙面を割いて詳しく述べる。

これまでの業務では,プログラム言語にFORTRAN77をおもに使ってきたが,本書では,手軽に入手できるPythonを使って計算コードを作成した。計算コードは,なるべくシンプルにまとめることに心掛け,四則演算,組込関数(ルート(sqrt)やログ(log)など),forループと条件文(if文)のみを使っているので,数値計算プログラム初心者の方でも容易に理解できると思う。ただし,Python言語の入出力の書式は独特なので,初めてPythonに接する方は,まずは本書に記載したままの形で覚えて欲しい。なお,計算コードでキーになる部分については,なるべく詳しく説明するように心掛けている。

Pythonの開発環境は下記のURLからダウンロードして,指示に従って操作すれば,利用できるように設定できる。不慣れな方は,詳しく解説している良書が多数販売されているので,そちらを参考にしてもらうとして,ここではPythonの設定や使用方法に関する説明は控える。なお,本書の計算コードはバージョンPython3.10.11で作成している。

本書で紹介した計算コードは下記のURLからダウンロードできるので,実際に計算を走らせて,いろいろな角度から計算結果を観察して欲しい。計算結果は,CSVファイルで出力するようにしており,Excelなどの表計算ソフトで作図できる。本書の計算コードを,読者の好きなプログラム言語に移行して,読者が必要とする改良を加えて発展させてもらえることを心より願っている。

2025年6月
北田泰造

☆発行前情報のため,一部変更となる場合がございます

1.エンジン性能シミュレータ
☕体積効率と充填効率

2.吸排気脈動計算
2.1 一次元吸排気脈動の計算方法
2.2 管の摩擦損失と熱伝達率の計算式
2.3 衝撃波管の実験データを使った計算の評価
2.4 開放端と閉塞端の境界モデル
2.5 脈動計算コードの解説
2.6 脈動計算の時間刻み自動設定機能
2.7 流量評価用の2容器モデル
 2.7.1 容積境界の計算方法
 2.7.2 体積フラックスの補正
2.8 等エントロピー流れ
 2.8.1 等エントロピー流れの関係式
 2.8.2 圧縮性流体のノズルの式
 2.8.3 音速の式
2.9 2容器モデルの計算コード
 2.9.1 メイン部(flowcheck.py)
 2.9.2 入力関連(read_data.py)
2.10 2容器モデルの計算結果
 2.10.1 流量の整合性評価
 2.10.2 ノズルの式との比較

3.エンジン性能計算
3.1 ピストン変位量の計算
3.2 ピストンによる充填ガスの圧縮・膨張の計算
 3.2.1 比熱比で計算する方法
 3.2.2 内部エネルギーを使って計算する方法
 3.2.3 エンタルピーを使って計算する方法
3.3 熱発生パターンを使った発熱量の設定
3.4 吸排気弁の有効通気面積の求め方
3.5 スロットルの計算方法
3.6 一領域燃焼モデルのエンジン性能計算コード
 3.6.1 計算コードの解説
 3.6.2 入出力ファイルの解説
 3.6.3 リスタートデータの利用方法
3.7 エンジン性能計算の計算結果
 3.7.1 流量と充填量の整合性確認
 3.7.2 エンジン回転数を固定して計算した結果
 3.7.3 エンジン回転数可変と固定の計算結果の比較
☕図示平均有効圧とトルクの関係
 3.7.4 体積効率が高いエンジン回転数の圧力脈動の特徴
3.8 エンジン性能計算の利用例
 3.8.1 吸気管の長さと体積効率の関係
 3.8.2 排気管の長さと体積効率の関係
 3.8.3 吸気バルブタイミングと体積効率の関係
 3.8.4 スロットル時のエンジン性能

4.化学平衡計算
4.1 化学平衡計算とは
4.2 化学平衡を考慮した排出ガス組成の見積り
 4.2.1 計算方法
 4.2.2 計算コード
 4.2.3 計算結果
4.3 Gibbsの自由エネルギーと化学平衡
☕二次方程式の解の公式
4.4 燃焼時の化学平衡組成の計算
 4.4.1 計算方法
 4.4.2 計算例:当量比の影響
 4.4.3 計算例:温度の影響
 4.4.4 計算例:圧力の影響
 4.4.5 計算コードの解説
4.5 定圧燃焼温度の計算
 4.5.1 計算方法
 4.5.2 計算コード
 4.5.3 計算例:当量比と燃焼温度の関係
 4.5.4 計算例:初期温度による燃焼温度の変化
 4.5.5 計算例:圧力による燃焼温度の変化
☕燃焼による圧力増大率
4.6 定容燃焼温度の計算
 4.6.1 計算方法
 4.6.2 計算コード
 4.6.3 計算例:当量比と燃焼温度の関係
4.7 一酸化窒素を除いた化学平衡組成の計算
 4.7.1 計算方法
 4.7.2 計算コード
 4.7.3 計算例:当量比による化学種の変化

5.Gibbs自由エネルギー極小化法による化学平衡計算
5.1 Gibbs自由エネルギー極小化法の計算理論
5.2 Gibbs自由エネルギー極小化法の計算方法
5.3 Newton-Raphson法
5.4 Newton-Raphson法を使ったGibbs自由エネルギー極小化法の解法
 5.4.1 化学平衡組成の計算方法
 5.4.2 化学平衡組成の計算コード
 5.4.3 計算結果:当量比の影響
5.5 Gibbs自由エネルギー極小化法による定圧燃焼温度の計算
 5.5.1 定圧燃焼温度の計算方法
 5.5.2 定圧燃焼温度の計算コード
 5.5.3 計算結果:当量比と燃焼温度の関係
5.6 Gibbs自由エネルギー極小化法による定容燃焼温度の計算
 5.6.1 定容燃焼温度の計算方法
 5.6.2 定容燃焼温度の計算コード
 5.6.3 部分平衡による計算結果との比較

6.燃焼サイクル計算
6.1 二領域燃焼モデル
6.2 熱損失の計算
6.3 エンジン性能計算とのリンク方法
 6.3.1 吸気弁閉時(エンジン性能計算→燃焼サイクル計算)のリンク
 6.3.2 排気弁開時(燃焼サイクル計算→エンジン性能計算)のリンク
 6.3.3 内部EGRの設定(脈動計算→燃焼サイクル計算)
 6.3.4 エンジン性能計算でのガス定数の取扱い
6.4 燃焼サイクル計算とリンクしたエンジン性能計算の計算コード
 6.4.1 計算コードの構成
 6.4.2 エンジン性能計算(メイン部)の計算コード
 6.4.3 二領域燃焼モデルを含む燃焼サイクル計算のコード
 6.4.4 燃焼関係の計算コード(buSub2.py)
 6.4.5 化学関係の計算コード(chSub3.py)
 6.4.6 熱力学データのコード(chData3.py)
 6.4.7 燃焼サイクル計算の出力ファイル
6.5 二領域燃焼計算を使ったエンジン性能計算の計算結果
 6.5.1 一領域燃焼計算を使ったエンジン性能計算との比較
 6.5.2 熱発生開始時期の影響
 6.5.3 当量比の影響
☕CO2とH2Oの解離熱

7.一酸化窒素を含めた燃焼サイクルの計算
7.1 一酸化窒素の化学反応式と計算方法
7.2 一酸化窒素生成量の計算方法
7.3 一酸化窒素を含む燃焼サイクル計算の計算コード
 7.3.1 エンジン性能計算(メイン部)の計算コード(waveEng3.py)
☕一酸化窒素NOの生成熱
 7.3.2 NOを含む二領域燃焼モデルの燃焼サイクル計算コード(engCycle3.py)
 7.3.3 燃焼関係(含むNO)の計算コード(buSub3.py)
 7.3.4 二領域燃焼モデル(含むNO)の化学関係の関数(chSub4.py)
7.4 一酸化窒素の生成を含めた計算結果
 7.4.1 一酸化窒素NOなしとの計算結果の比較
 7.4.2 熱発生開始時期の影響
 7.4.3 当量比の影響

付録
A. 管内の摩擦損失
B. 管とシリンダ壁面の熱伝達
B.1 円管の熱伝達
B.2 エンジンのシリンダからの熱伝達
C. 等エントロピー流れの式
D. 圧縮性流体のノズルの式と音速の関係
E. ピストン変位のマクローリン展開
F. 断熱変化の式
G. 関数カムのバルブリフト設計方法
G.1 上り側の計算
G.2 下り側の計算
H. 熱発生率の計算式
I. 熱力学データの多項式
I.1 最小二乗法とは
I.2 次元への展開と定圧比熱の多項式(四次式)
I.3 定圧比熱の多項式(四次式)の計算コード
I.4 定圧比熱の多項式(四次式)の計算結果
J. 変数nを使って化学種のモル数を表す式
K. Newton-Raphson法
L. 等容度の計算方法
M. 計算結果処理コード
M.1 サイクル平均化コード(Ave.py)
M.2 指定サイクルのデータ抽出コード(pick_cycle.py)

参考文献
あとがき
索引

北田 泰造

北田 泰造(キタダ タイゾウ)

同志社大学在学時に,メタノールの燃焼速度と熱面着火を炭化水素燃料と比較した。三菱自動車工業入社後,軽自動車用3気筒エンジンの開発設計業務で,主に主運動部の一次バランサの計算と設計の担当などを経て,一次元吸排気脈動計算を利用したエンジン性能計算コードの社内開発を担当した後,計算を使ったエンジンの燃焼研究に取り組み,エンジン設計や研究をサポートしてきた。筒内直噴エンジンGDIの筒内流動計算,新開発エンジンの性能予測,車両シミュレータを使った燃費予測,新世代ディーゼルエンジンの燃焼設計などに従事。

関連資料(一般)

  • 本書で紹介した計算コード

関連資料ダウンロードはこちら