This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tools:a3flightmodeltool [2026/07/19 15:36] – rock | tools:a3flightmodeltool [2026/07/20 12:28] (current) – rock | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| ===== Pages ===== | ===== Pages ===== | ||
| - | * [[tools:arma3_flight_graph_tool: | + | * [[/tools:a3flightmodeltool# |
| - | * [[tools:arma3_flight_graph_tool: | + | * [[tools:a3flightmodeltool# |
| - | * [[tools:arma3_flight_graph_tool: | + | * [[tools:a3flightmodeltool# |
| - | * [[tools:arma3_flight_graph_tool: | + | * [[tools:a3flightmodeltool# |
| - | * [[tools:arma3_flight_graph_tool: | + | * [[tools:a3flightmodeltool# |
| ===== What the tool does ===== | ===== What the tool does ===== | ||
| Line 36: | Line 36: | ||
| * [[https:// | * [[https:// | ||
| - | ====== | + | ====== Flight Model Graph Tool Workflow ====== |
| Follow this process for each aircraft type. Do not tune duplicate editor variants separately unless they use genuinely different physics values. | Follow this process for each aircraft type. Do not tune duplicate editor variants separately unless they use genuinely different physics values. | ||
| Line 172: | Line 172: | ||
| ^ Aircraft ^ Typical extracted config path ^ | ^ Aircraft ^ Typical extracted config path ^ | ||
| - | | A-143 Buzzard | '' | + | | A-143 Buzzard | '' |
| - | | A-149 Gryphon | '' | + | | A-149 Gryphon | '' |
| - | | A-164 Wipeout | '' | + | | A-164 Wipeout | '' |
| - | | Caesar BTT | '' | + | | Caesar BTT | '' |
| - | | F/A-181 Black Wasp II | '' | + | | F/A-181 Black Wasp II | '' |
| - | | KH-3A Fenghuang | '' | + | | KH-3A Fenghuang | '' |
| - | | MQ-4A Greyhawk | '' | + | | MQ-4A Greyhawk | '' |
| - | | To-199 Neophron | '' | + | | To-199 Neophron | '' |
| - | | To-201 Shikra | '' | + | | To-201 Shikra | '' |
| - | | UCAV Sentinel | '' | + | | UCAV Sentinel | '' |
| - | | V-44 X Blackfish | '' | + | | V-44 X Blackfish | '' |
| - | | Y-32 Xi'an | '' | + | | Y-32 Xi'an | '' |
| - | + | ||
| - | Search examples: | + | |
| - | + | ||
| - | <code -> | + | |
| - | rtk rg -n -i 'class .*Plane|simulation *= *" | + | |
| - | rtk rg -n 'class I_Plane_Fighter_04_F|class Plane_Fighter_04_Base_F' | + | |
| - | </ | + | |
| ===== Your addon config ===== | ===== Your addon config ===== | ||
| Line 363: | Line 356: | ||
| For a graph array with '' | For a graph array with '' | ||
| - | < | + | < |
| station_speed_kmh = maxSpeed_kmh * range * i / (N - 1) | station_speed_kmh = maxSpeed_kmh * range * i / (N - 1) | ||
| </ | </ | ||
| Line 378: | Line 371: | ||
| Example for '' | Example for '' | ||
| - | < | + | < |
| station_speed_kmh = 800 * 1.25 * 6 / 13 | station_speed_kmh = 800 * 1.25 * 6 / 13 | ||
| station_speed_kmh = 461.5 | station_speed_kmh = 461.5 | ||
| Line 389: | Line 382: | ||
| If two adjacent points surround 1 g, interpolate between them: | If two adjacent points surround 1 g, interpolate between them: | ||
| - | < | + | < |
| t = (1 - lower_g) / (upper_g - lower_g) | t = (1 - lower_g) / (upper_g - lower_g) | ||
| stall_speed = lower_speed + t * (upper_speed - lower_speed) | stall_speed = lower_speed + t * (upper_speed - lower_speed) | ||
| Line 400: | Line 393: | ||
| Use landing-configuration stall speed if known: | Use landing-configuration stall speed if known: | ||
| - | < | + | < |
| landingSpeed = landing_stall_speed * 1.20 to 1.35 | landingSpeed = landing_stall_speed * 1.20 to 1.35 | ||
| </ | </ | ||
| Line 417: | Line 410: | ||
| Use this relationship as a rough check: | Use this relationship as a rough check: | ||
| - | < | + | < |
| approx_maneuver_speed = stall_speed * sqrt(positive_limit_g) | approx_maneuver_speed = stall_speed * sqrt(positive_limit_g) | ||
| </ | </ | ||
| Line 429: | Line 422: | ||
| In simplified form for each axis: | In simplified form for each axis: | ||
| - | < | + | < |
| friction_force = v * abs(v) * coef2 + v * coef1 + sign(v) * coef0 | friction_force = v * abs(v) * coef2 + v * coef1 + sign(v) * coef0 | ||
| </ | </ | ||
| Line 435: | Line 428: | ||
| The arrays contain three values: | The arrays contain three values: | ||
| - | < | + | < |
| airFrictionCoefs0[] = { X, Y, Z }; | airFrictionCoefs0[] = { X, Y, Z }; | ||
| airFrictionCoefs1[] = { X, Y, Z }; | airFrictionCoefs1[] = { X, Y, Z }; | ||
| Line 449: | Line 442: | ||
| If static thrust is known: | If static thrust is known: | ||
| - | < | + | < |
| baseThrustN = known_static_thrust_N | baseThrustN = known_static_thrust_N | ||
| </ | </ | ||
| Line 455: | Line 448: | ||
| If engine power is known instead: | If engine power is known instead: | ||
| - | < | + | < |
| baseThrustN = power_W / target_speed_mps | baseThrustN = power_W / target_speed_mps | ||
| </ | </ | ||
| Line 467: | Line 460: | ||
| The tool estimates climb from excess power: | The tool estimates climb from excess power: | ||
| - | < | + | < |
| excess_thrust_N = thrust_N - drag_N | excess_thrust_N = thrust_N - drag_N | ||
| excess_power_W = excess_thrust_N * speed_mps | excess_power_W = excess_thrust_N * speed_mps | ||
| Line 585: | Line 578: | ||
| ^ Field ^ Value ^ | ^ Field ^ Value ^ | ||
| - | | Aircraft class | | | + | | Aircraft class | |
| - | | Config version | | | + | | Config version | |
| - | | Baseline preset/ | + | | Baseline preset/ |
| - | | Payload/ | + | | Payload/ |
| - | | Altitude | | | + | | Altitude | |
| - | | Weather/ | + | | Weather/ |
| - | | Changed fields | | | + | | Changed fields | |
| - | | Result | | | + | | Result | |
| - | | Next action | | | + | | Next action | |
| ===== Acceptance criteria ===== | ===== Acceptance criteria ===== | ||