123F/303GのC510モデルをCJ4(型式C25C)へ。FR24(時間)×CJ4 Performance Manual(燃料)で master の仮値を実測較正。ETE・燃料の即修正に続き、本命の距離連動ブロック燃料モデルを実装。壁打ち記録 2026-07-24 / 実装・法令根拠の確定 2026-07-27。
ゴールは新規作成でなく、master aircraft_types C25C の「仮値・要校正」を実測へ置換すること。flight-calc は型式パラメータ化済み(cfgFromMaster())で、値を更新すればワーカー再デプロイ不要で即ライブ。
| 項目 | 旧(仮) | 新(較正) | 出所 | 状態 |
|---|---|---|---|---|
cruise_kmh | 835 | 729 | FR24 実効速度 | 反映済 PR#686 |
burn_cruise_lbph | 1500 | 1200 | CPP FL410高速巡航 | 反映済 PR#687 |
burn_hold_lbph | 900 | 910 | CPP 低高度実測 | 反映済 PR#687 |
burn_cruise_lbph(CJ4) | — | 不使用 | 距離連動モデルが代替 | 2026-07-27 |
burn_alt_lbph | 1800 | 1800 | 意図的に据置(下記) | 結論済 2026-07-27 |
max_fuel_lb | 5828 | 5828 | 諸元(妥当) | 据置 |
alt_kmh | 370 | 370 | 意図的に据置(下記) | 結論済 2026-07-27 |
aircraft.default_taxi_fuel(JA77KC) | 未設定(既定85) | 250 | CJ4実勢・運航規程2-10定義 | migration 適用待ち |
| 固定分(20/首都圏30)・季節α | flight-calcにC510値ハードコード(型式共通) | — | per-type化は別PR | |
FR24公式APIで 日本CJ4母集団5機(JA77KC/JA11AY/JA01BJ/JA01KJ/JA01RC)の過去1年 583便を収集(全C25C・時刻欠落0)。C510 Model F 手法を適用し、同一空港/短時間/ICAO欠落/明白な訓練を除外した 有効333便で較正。
| 指標 | 値 | 備考 |
|---|---|---|
| cruise_kmh(実効) | 729 | 旧835はMAE9.38で過大。グリッド最小≈730 |
| 固定分 base / 首都圏 | 18.8 / 21.1 分 | 首都圏はRJTT欠落168便でサンプル痩せ・確度低 |
| 季節α | 冬-1.64 春-1.30 夏-0.19 秋-0.73 | 符号/大小がC510と相似=手法の裏付け |
| 全体MAE | 6.34分 | JA77KC限定でも6.37=母集団モデルが有効 |
cruise_kmh=729は真対気速度(≈835)でなく「固定分を引いた実効速度」。固定分と組で使うもの。反映は cruise_kmh のみ先行。固定分・αはflight-calcがC510値ハードコードのため据置(per-type化は別PR)。
525C飛行規程)第4章に燃料表は無い。 中身は離陸距離・上昇“勾配/率”・着陸距離=認証性能のみ。燃料計画データは別冊
CITATION CJ4 PERFORMANCE MANUAL (525CPP-03) にある(CLIMB/CRUISE/DESCENT/HOLDING)。これが燃料の一次資料。
このエンジンの用途は代理店オーダー時のテクラン要否=レンジ判定(飛行高度は入力しない)。判定が効くのは長距離レグ=機体が高高度で効率よく巡航する領域。よって代表値は高高度巡航を採る。短距離のclimb込み実効値(~1450)はレンジ判定には過大で、テクランを過剰要求し直行レグを潰す。
| 項目 | 採用値 | 根拠(CPP, ISA+0, A/I OFF, TWO ENG) |
|---|---|---|
burn_cruise_lbph | 1200 | FL410 高速巡航 ≈1185(FL430≈1090/経済≈790-905) |
burn_hold_lbph | 910 | 14000lb 低高度 ≈910-925 |
抽出は PyMuPDF の座標ベース再構成でCPPから直接(スクショ不要・数値そのまま)。抽出環境: PyMuPDF/pdftotext 利用可。
単一 burn_cruise は「巡航燃費×空中時間」でしか出せず、長距離で高高度=低燃費に飛ぶ実態を捉えられない。レグ距離(→ETE)から巡航FLを自動割当し、climb+cruise+descent のブロック燃料を積むのが本命。高度入力なしで現実的なレンジ判定になる。
| ETE | 20分 | 30分 | 40分 | 60分 | 80分 | 90分↑ |
|---|---|---|---|---|---|---|
| 巡航FL | FL100 | FL150 | FL200 | FL300 | FL400 | FL450 |
既存のETEをそのまま使え、高度入力が要らない。割り当てたFLで CPP の TAS・巡航FF・上昇燃料を引く。
| 適用範囲 | CJ4(C25C)のみ。C510は blockFuel=null で従来式のまま(回帰確認済)。 |
| 大元ファイル | mcj-companyapps/frontend/flight-calc/flight-calc.js(本番の計算エンジン)。mcj-sales / mcj-reservation のコピーは完全同期(旧コピーは fuelNeed/planDay 欠落の古い版だった)。 |
| データ源 | CPP 525CPP-03 を PyMuPDF 座標再構成で抽出(手打ち転記なし・生成スクリプト経由)。 CLIMB p6-7(240KIAS/M0.64・ISA・A/I OFF・海面からの累計 [min/nm/lb] × 18高度 × 5重量)/ CRUISE p12-47(各高度の最大巡航推力(1)行・ISA+0 [KTAS/総FF] × 18高度 × 4重量)/ DESCENT p74(NORMAL 2000fpm・12000lb・海面まで [min/nm/lb] × 18高度) |
| 時間の出し方 | 上昇・降下は表の累計値の点引き(重量のみ線形補間、高度は表グリッドにスナップ/分布の仮定なし)。巡航時間だけ「残距離÷KTAS」、残距離=大圏距離−上昇距離−降下距離。 |
| 短距離の扱い | 上昇距離+降下距離がレグ距離を超える場合、収まる高度までグリッドを1段ずつ下げる。 |
| 離陸重量 | 満タン前提の搭載燃料から Taxi Fuel を差し引いた重量(運航規程2-10「Taxi Fuel は計画離陸重量には算入しない」)。planDay では持ち越し燃料を反映。 |
| 検算 | 未実施 ForeFlight で RJNA-RJFK / RJTT-ROAH 等を突合予定。 |
ETE と性能表の時間は一致しない。羽田→伊丹なら ETE 63分に対し性能表の profile は35分で、差の28分は ETE の固定分(20/首都圏30分)=SID/STARで大圏より伸びる分+出発ベクター・到着進入。ここは実際に燃料を食う時間なので必ず計上する(落とすと短距離が2割軽くなる)。単価の候補は2つ:
| 案 | 単価 | RJNA→RJFK(FL370) | RJTT→ROIG(FL450) |
|---|---|---|---|
| (a) 低高度 | burn_hold 910 pph | 場周 290lb / F_D 1633 | 場周 366lb / F_D 3173 |
| (b) 巡航 ← 採用 | 当該FLの巡航FF | 場周 467lb / F_D 1809 | 場周 379lb / F_D 3187 |
(b) を採用(2026-07-27)=安全側。 差が出るのは巡航FFの高い中距離だけで、テクラン判定が効く長距離(FL450)では両案が13lb差に収束する(FL450の巡航FF≈943 ≈ hold 910)。よって判定結果はほぼ同じで、迷うなら重い方。副作用として短距離レグの F_D は実勢より重く出る(羽田→伊丹 1757lb)。単価はコード1行なので、ForeFlight検算後に見直し可能。
「代替燃料の計算高度に法的制約(10000ft等)はあるか」を一次資料で確認した。結論:代替空港までの飛行に高度の指定は無い。高度が明記されているのは待機の1500ftのみ。
| 区分 | 規定 | 出所 | エンジンの実装 |
|---|---|---|---|
| Mission | 着陸地までの飛行を終わるまでに要する量 | 施行規則153条 | 距離連動ブロック燃料 F_D |
| Contingency | 目的地上空1,500ft で5分 or Mission の5% の多い方 | 運航規程2-10 | max(F_D×5%, burn_hold×5/60) |
| Alternate | 目的地で進入復行を行い代替空港に着陸するまでの量。高度指定なし | 施行規則153条 / 運航規程2-10 | burn_alt × (rAlt/alt_kmh)(据置) |
| Hold | 代替空港上空450m(1,500ft)で30分(代替選定時)/代替なしIFRは目的地上空1500ftで45分/VFRは巡航高度で30(昼)45(夜)分 | 施行規則153条 / 運航規程 表2-1 | burn_hold × 30/60 |
| Taxi | Engine始動から離陸までの量。計画離陸重量には算入しない | 運航規程2-10 | F_Taxi=250lb、離陸重量から控除 |
burn_alt / alt_kmh を据え置く理由:高度制約が無い=裁量だが、規程の Alternate Fuel は進入復行(go-around)込みの定義で、ブロック燃料モデルは進入復行を含まない。現行式は代替220kmで1,071lb、ブロック燃料換算だと777lb。差の約300lbが実質そのgo-aroundカバーになるため、緩めずに据え置く。max_fuel_lb 5,828 は諸元(usable fuel)で較正不要。
| 区間 | 距離 | 巡航FL | 旧 F_D | 新 F_D | うち場周 | F_Extra | 判定 |
|---|---|---|---|---|---|---|---|
| RJTT→RJOO 羽田→伊丹 | 404km | FL310 | 1261 | 1757 | 850 | 3152 | OK |
| RJNA→RJFK 名古屋→鹿児島 | 691km | FL370 | 1532 | 1809 | 467 | 2886 | OK |
| RJTT→RJCC 羽田→新千歳 | 820km | FL450 | 1951 | 1751 | 406 | 2715 | OK |
| RJTT→ROAH 羽田→那覇 | 1555km | FL450 | 3148 | 2692 | 387 | 1225 | OK |
| RJTT→ROIG 羽田→石垣 | 1939km | FL450 | 3777 | 3187 | 379 | 1277 | OK |
| ROAH→RJCC 那覇→新千歳 | 2242km | FL450 | 4104 | 3443 | 240 | 939 | OK(旧はテクラン) |
短距離は場周分が効いて旧より重く、長距離は高高度の低燃費が効いて 12〜16% 軽い。判定が変わるのは 那覇→新千歳(テクラン必須→直行OK)の1本で、これが本来の狙い。閾値 ex_ok/ex_may/ex_tech=800/600/700 は据置(2026-07-27 判断)。
※この表は実装時点の値。代替空港は PR#693(CJ4 必要滑走路長 1500m・「必要長以上OK」へ統一)の前の選定によるため、F_Extra は下の検算メニュー表が最新。
下表は本番API /api/feasibility の実出力(JA77KC・4名+荷物40kg=ペイロード1,025lb・満タン F_TOT 5,828lb・代替自動・7月・#691/#693 反映後 2026-07-27)。
同条件で ForeFlight を引き、F_D と ETE を突き合わせる。距離帯を散らして、巡航FLが FL310 / FL370 / FL450 に分かれるよう選定した。
| # | 区間 | 距離 | 巡航FL | ETE | F_D (上昇/巡航/降下/場周) | 代替空港 | F_ALT | F_Extra | テクラン判定 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | RJTT→RJOO 羽田→伊丹 | 404km 218nm | FL310 449kt/1882pph | 63分 block 99 | 1,757 419/294/193/850 | 神戸 26km | 126 | 3,152 | 直行OK |
| 2 | RJNA→RJFK 名古屋→鹿児島 | 691km 373nm | FL370 438kt/1463pph | 77分 block 107 | 1,809 506/607/229/467 | 宮崎 69km | 337 | 2,886 | 直行OK |
| 3 | RJTT→RJCC 羽田→新千歳 | 820km 443nm | FL450 390kt/943pph | 98分 block 148 | 1,751 752/330/263/406 | 丘珠 46km | 222 | 3,062 | 直行OK |
| 4 | RJBE→RJCC 神戸→新千歳 | 1,064km 575nm | FL450 390kt/943pph | 108分 block 138 | 1,914 752/650/263/249 | 丘珠 46km | 222 | 2,891 | 直行OK |
| 5 | RJTT→ROAH 羽田→那覇 | 1,555km 840nm | FL450 390kt/943pph | 157分 block 197 | 2,692 752/1290/263/387 | 徳之島 220km | 1,071 | 1,225 | 直行OK |
| 6 | ROAH→RJCC 那覇→新千歳 | 2,242km 1,211nm | FL450 390kt/943pph | 205分 block 245 | 3,443 752/2188/263/240 | 丘珠 46km | 222 | 1,285 | 直行OK 旧モデルはテクラン必須 |
全レグ共通:F_Taxi 250lb / F_Hold 455lb(910pph×30分)/ F_TOT 5,828lb。F_Cont は 88 / 90 / 88 / 96 / 135 / 172lb(Mission5% と 1500ft5分の大きい方)。F_Extra = F_TOT −(F_Taxi+F_D+F_Cont+F_ALT+F_Hold)、判定は OK≥800 / 可能性≥600 / 未満はテクラン必須。
| # | 区間 | 採用(b) 巡航FF | (a) 低高度910pph なら | 差 | 判別力 |
|---|---|---|---|---|---|
| 2 | 名古屋→鹿児島 | 1,809 | 1,633 | 176 | 最大。ここだけ見れば決まる |
| 1 | 羽田→伊丹 | 1,757 | 1,317 | 440 | 差は最大だが短距離は判定に影響しない |
| 3 | 羽田→新千歳 | 1,751 | 1,737 | 14 | ほぼ無し(FL450) |
| 4 | 神戸→新千歳 | 1,914 | 1,905 | 9 | ほぼ無し(FL450) |
| 5 | 羽田→那覇 | 2,692 | 2,679 | 13 | ほぼ無し(FL450) |
| 6 | 那覇→新千歳 | 3,443 | 3,435 | 8 | ほぼ無し(FL450) |
burn_hold 910pph へ戻す(flight-calc.js の fMnvr 1行)。cruise_kmh=729 実測較正のまま)。
突き合わせる相手は ForeFlight のトリップ燃料(taxi を除く、離陸→着陸)。本モデルの F_D も taxi を含まない。条件は ISA・A/I OFF・無風(本モデルの性能表がその条件)なので、ForeFlight側も可能なら風なしで引くと比較しやすい。代替空港は #693 で CJ4 の必要滑走路長が 1500m・「必要長以上OK」に変わった後の選定(丘珠1,500mが新千歳の代替として成立)。
| 項目 | 決定 | 理由 |
|---|---|---|
| ゴール | master C25C仮値の実測較正(ETE+燃料) | flight-calcは型式パラメータ化済でコード改修不要(燃料本命を除く) |
| ETE母集団 | 日本CJ4 5機+77KC(583便) | 77KC単体は母数不足。固定分/風は日本空域が必要 |
| ETE反映 | cruise_kmh 729 のみ先行 | 固定分/αはC510値ハードコード=per-type化は別PR |
| 燃料一次資料 | CJ4 Performance Manual(525CPP) | 認証AFMに燃料表は無い |
| 燃料エンジンの用途 | テクラン要否=レンジ判定(高度入力なし) | 判定が効くのは長距離=高高度効率巡航の領域 |
| burn_cruise即修正 | 1500→1200(高高度巡航) | 短距離climb込み実効値はレンジ判定に過大 |
| 巡航FL割当 | h=ETE×500ft, ≤FL450 | 乗員ヒアリング。既存ETEを流用でき高度入力不要 |
| 距離連動の範囲 | CJ4のみ | C510は精度良好で据置 |
| 実装先 | companyapps flight-calc(大元) | sales等はここを参照/同期 |
| 場周分の単価 | 当該FLの巡航FF(案b) | 安全側。長距離では案aと13lb差=判定はほぼ同じ(2026-07-27) |
| 代替燃料の高度 | 法的制約なし=現行式を据置 | 153条/規程とも代替までの高度指定なし。差300lbが進入復行分のカバー |
| F_Taxi | 85(C510既定) → 250 | CJ4実勢。CPPにtaxi表は無し。離陸重量には算入しない(規程2-10) |
| 閾値 ex_ok/may/tech | 800/600/700 据置 | 燃料が正確化した後も運用感覚を変えない(2026-07-27) |
| 降下重量 | 12,000lb 列で固定 | 14,000/10,000列との差は±15lb=無視できる |
2026-07-27_cj4_taxi_fuel.sql を --remote 適用(JA77KC default_taxi_fuel null→250、他機は無変更を確認)。/api/feasibility が距離連動モデルで応答することを本番で確認)。companyapps / mcj-sales は Pages 自動デプロイ。反映メモ:master D1は --remote 必須。aircraft_types の値更新はワーカー再デプロイ不要だが、今回は flight-calc のコード変更を含むため reservation ワーカーは手動デプロイが要る。
MCJ Engineering ・ CJ4 較正まとめ 2026-07-24 / 実装・法令根拠 2026-07-27 ・ 参照: c510-flight-time-model.html / tools/flight-time-analysis / 525CPP-03 / 運航規程 Rev.12 / 航空法施行規則153条