# openMis **Repository Path**: heray/open-mis ## Basic Information - **Project Name**: openMis - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 导弹设计与制导仿真软件 (Missile Designer) 基于 PyQt5 的交互式导弹设计/制导仿真平台, 采用 **三自由度质点模型**. ## 功能一览 ### 坐标变换 支持六大坐标系的正/逆变换: - **经纬高 (LLA)** — WGS84 椭球 - **地心地固 (ECEF)** - **当地北天东 (NED)** - **发射系** (X 沿方位角水平方向, Y 向上, Z 右手) - **弹体系** (3DOF 下由速度方向定义) - **速度系** (X 沿速度, Y 在竖直平面内向上) 模块: `coords.py` ### 导弹组件参数 (质点动力学) - 质量/燃料/推力/燃烧时间 - 参考面积/直径/命中半径 - 简化气动模型 (零升阻力 Cd0, 诱导阻力 K, 升力线斜率 Clα) - 标准大气模型 (对流层 + 平流层) - 推力/质量随时间变化 - 升力与攻角耦合 (攻角受俯仰指令驱动) ### 目标机动模型 - `constant_vel` — 匀速直线 - `constant_acc` — 匀加速 - `weave` — 蛇形 (横向正弦加速度, 解析积分) - `barrel_roll` — 桶滚 (螺旋轨迹) - `step` — 阶跃机动 - `custom` — 用户自定义轨迹函数 模块: `target.py` ### 制导律 - `PN` — 比例导引 (a = N·Vc·ω_λ × e_r) - `APN` — 增广 PN (目标加速度补偿) - `OPN` — 最优 PN (近似) - `TPN` — 真比例导引 (沿 LOS 法向) - `three_point` — 三点法 (视线制导) - `parallel` — 平行接近法 (零 LOS 角速度) - `adaptive` — 自适应 PN (tgo 估计) PN 类制导可选 **重力补偿** (gravity bias) 选项, 使 PN 只负责转向. 模块: `guidance.py` ### 仿真引擎 - 发射输入: 发射点 (经度/纬度/海拔), 速度大小, 仰角, 方位角 - 目标初始位置: LLA; 速度: 大小/航向/航迹角 (转发射系) - 固定步长 RK4 积分 - 终止条件: 命中/撞地/飞越/超时长 - 输出: 全量时间序列 + LLA 轨迹 + 命中/脱靶/飞行时间 模块: `simulation.py` ### 可视化 (PyQt + matplotlib) - **3D 轨迹图** (发射系, 含导弹与目标) - **2D 投影** (水平面 X-Z + 铅垂面 距离-高度) - **飞行曲线** (速度/高度/航迹角/制导指令/视线角速度/弹目距离) - **结果摘要** (命中/脱靶量/飞行时间/极值等) ## 安装 ```bash pip install -r requirements.txt ``` 依赖: `numpy`, `scipy`, `matplotlib`, `PyQt5` (建议 5.15+). ## 运行 ```bash cd missile_designer python main.py ``` ### 使用流程 1. 左侧标签页填写参数: - **发射点**: 经纬高, 速度/仰角/方位角, 风场 - **导弹**: 质量/推力/气动/几何 - **目标**: LLA 初始位置, 速度, 机动类型与参数 - **制导律**: 选择方法 + 调整 N/k1/k2/步长/时长 2. 顶部工具栏点击 **▶ 运行仿真** (或 `F5`). 3. 右侧标签页查看: 3D 轨迹 / 2D 投影 / 飞行曲线 / 结果. 4. 菜单 **文件 → 保存场景** 可导出为 JSON; **加载场景** 可复现. ## 默认场景 - 发射点: (116.4°E, 39.9°N, 50 m), 速度 800 m/s, 仰角 8°, 方位角 90° - 导弹: 600 kg, 推力 60 kN, 燃烧 15 s - 目标: (117.0°E, 39.9°N, 1000 m), 250 m/s 向西 (迎头) - 制导: **平行接近法**, N=4 - 预期结果: 命中, 脱靶量 < 2 m, 飞行时间 ≈ 49 s ## 文件结构 ``` missile_designer/ ├── main.py # 入口 ├── coords.py # 坐标变换 ├── missile.py # 3DOF 导弹动力学 ├── target.py # 目标机动模型 ├── guidance.py # 制导律 ├── simulation.py # 仿真引擎 ├── ui/ │ ├── main_window.py # 主窗口 + 菜单/工具栏 │ ├── params_panel.py # 参数标签页 │ └── plot_panel.py # 绘图与结果 ├── requirements.txt └── README.md ``` ## 扩展建议 - 在 `target.py` 中添加更复杂的机动模型 (如随机机动) - 在 `missile.py` 中接入真实气动查表 (Cl/Cd = f(Mach, α, β)) - 在 `guidance.py` 中新增现代制导律 (SMC、微分对策等) - 在 `ui/plot_panel.py` 中添加更多图表 (过载历程、能量曲线)