红外近距空空导弹弹道仿真
文章目录
- 1 引言
- 2 非线性动力学
- 2.1 牛顿动力学-质心动力学
- 2.1.1 弹体坐标系下质心动力学
- 2.1.2 弹道坐标系下质心动力学
- 2.1.3 发射坐标系下质心动力学
- 2.2 欧拉动力学-姿态动力学
- 2.3 导航方程-质心运动学
- 2.4 四元数方程-姿态运动学
- 2.5 扁平地球六自由度运动方程
- 2.5.1 弹体坐标系下六自由度运动方程
- 2.5.2 弹道坐标系下六自由度运动方程
- 2.5.3 发射坐标系下六自由度运动方程
- 3 红外制导方法
- 3.1 红外导引头
- 3.2 制导律
- 4 飞行控制系统
- 4.1 STT/BTT控制
- 4.2 滚转自动驾驶仪
- 4.2.1 两回路滚转驾驶仪
- 4.2.2 带PI校正两回路滚转驾驶仪
- 4.3 姿态自动驾驶仪
- 4.3.1 两回路姿态驾驶仪
- 4.3.2 带PI校正两回路姿态驾驶仪
- 4.4 过载自动驾驶仪
- 4.4.1 经典两回路过载驾驶仪
- 4.4.2 带PI校正两回路过载驾驶仪
- 4.4.3 经典三回路过载驾驶仪
- 4.4.4 伪攻角反馈三回路过载驾驶仪
- 4.5 气动舵机动力学
- 4.5.1 二阶舵机
- 4.5.2 非线性因素
- 5 弹道仿真
- 5.1 目标运动模型
- 5.2 六自由度弹道仿真
- 5.2.1 初始状态
- 5.2.2 目标匀速运动
- 5.2.3 目标滚筒机动(7g)
- 6 参考文献
1 引言
后面加…
2 非线性动力学
导弹飞行动力学实质上是一组非线性变系数微分方程组,可分解为如下几个部分。
2.1 牛顿动力学-质心动力学
2.1.1 弹体坐标系下质心动力学
// 牛顿动力学->质心动力学(弹体系下线速度导数)
double u_body_dot = q_body * v_body - r_body * w_body + (Xbar + thrust) / mass - 2.0 * (q1 * q2 + q0 * q3) * g;
double v_body_dot = p_body * w_body - q_body * u_body + Ybar / mass - (q0 * q0 - q1 * q1 + q2 * q2 - q3 * q3) * g;
double w_body_dot = r_body * u_body - p_body * v_body + Zbar / mass - 2.0 * (q2 * q3 - q0 * q1) * g;
2.1.2 弹道坐标系下质心动力学
2.1.3 发射坐标系下质心动力学
将弹体系下质心动力学转换到发射系下即可得到发射系下质心动力学,此处略。
2.2 欧拉动力学-姿态动力学
姿态动力学一般在弹体系下投影:
// 欧拉动力学->姿态动力学(弹体系下角速度导数)
double p_body_dot = (Lbar - (Jz - Jy) * r_body * q_body) / Jx;
double q_body_dot = (Mbar - (Jy - Jx) * p_body * r_body) / Jz;
double r_body_dot = (Nbar - (Jx - Jz) * q_body * p_body) / Jy;
2.3 导航方程-质心运动学
发射系下导航方程:
// 导航方程->质心运动学(发射系下位置导数)
u_ned = Cn_I2b[0][0] * u_body + Cn_I2b[1][0] * v_body + Cn_I2b[2][0] * w_body;
v_ned = Cn_I2b[0][1] * u_body + Cn_I2b[1][1] * v_body + Cn_I2b[2][1] * w_body;
w_ned = Cn_I2b[0][2] * u_body + Cn_I2b[1][2] * v_body + Cn_I2b[2][2] * w_body;
double x_ned_dot = u_ned;
double y_ned_dot = v_ned;
double z_ned_dot = w_ned;
2.4 四元数方程-姿态运动学
弹体系相对于发射系四元数导数:
// 四元数方程->姿态运动学(弹体系相对于发射系四元数导数)
double q0_dot = 0.5 * (-p_body * q1 - r_body * q2 - q_body * q3);
double q1_dot = 0.5 * (p_body * q0 + q_body * q2 - r_body * q3);
double q2_dot = 0.5 * (r_body * q0 - q_body * q1 + p_body * q3);
double q3_dot = 0.5 * (q_body * q0 + r_body * q1 - p_body * q2);
2.5 扁平地球六自由度运动方程
2.5.1 弹体坐标系下六自由度运动方程
// 扁平地球空空导弹六自由度运动方程
void missile::SixDof(int n, const double* x, double* x_dot)
{// 非线性变系数微分方程组--------------------------------------------------------------------------// 牛顿动力学->质心动力学(弹体系下线速度导数) double u_body_dot = q_body * v_body - r_body * w_body + (Xbar + thrust) / mass - 2.0 * (q1 * q2 + q0 * q3) * g;double v_body_dot = p_body * w_body - q_body * u_body + Ybar / mass - (q0 * q0 - q1 * q1 + q2 * q2 - q3 * q3) * g;double w_body_dot = r_body * u_body - p_body * v_body + Zbar / mass - 2.0 * (q2 * q3 - q0 * q1) * g;// 欧拉动力学->姿态动力学(弹体系下角速度导数) double p_body_dot = (Lbar - (Jz - Jy) * r_body * q_body) / Jx; double q_body_dot = (Mbar - (Jy - Jx) * p_body * r_body) / Jz;double r_body_dot = (Nbar - (Jx - Jz) * q_body * p_body) / Jy;// 导航方程->质心运动学(发射系下位置导数) double x_ned_dot = u_ned;double y_ned_dot = v_ned;double z_ned_dot = w_ned;// 四元数方程->姿态运动学(弹体系相对于发射系四元数导数) double q0_dot = 0.5 * (-p_body * q1 - r_body * q2 - q_body * q3);double q1_dot = 0.5 * (p_body * q0 + q_body * q2 - r_body * q3);double q2_dot = 0.5 * (r_body * q0 - q_body * q1 + p_body * q3);double q3_dot = 0.5 * (q_body * q0 + r_body * q1 - p_body * q2);
}
2.5.2 弹道坐标系下六自由度运动方程
略。
2.5.3 发射坐标系下六自由度运动方程
略。
3 红外制导方法
3.1 红外导引头
3.2 制导律
4 飞行控制系统
4.1 STT/BTT控制
4.2 滚转自动驾驶仪
4.2.1 两回路滚转驾驶仪
4.2.2 带PI校正两回路滚转驾驶仪
4.3 姿态自动驾驶仪
4.3.1 两回路姿态驾驶仪
4.3.2 带PI校正两回路姿态驾驶仪
4.4 过载自动驾驶仪
4.4.1 经典两回路过载驾驶仪
// 舵偏指令
delta_e = ((K_DC * ayc - k_ac * (ay + c * q_body_dot) ) * K_A - k_g * q_body) * k_ACT;
4.4.2 带PI校正两回路过载驾驶仪
4.4.3 经典三回路过载驾驶仪
// 当前过载误差
double error_now = K_DC * ayc - k_ac * ay;// 误差积分
error_ayc = error_ayc + error_now * step;// 舵偏指令
delta_e = (K_A * error_ayc - w_I * alpha - (k_g + c * k_ac * K_A) * q_body) * k_ACT;
4.4.4 伪攻角反馈三回路过载驾驶仪
// 当前过载误差
double error_now = K_DC * ayc - k_ac * ay;// 误差积分
error_ayc = error_ayc + error_now * step;// 舵偏指令
delta_e = (K_A * error_ayc - w_I * alpha - (k_g + c * k_ac * K_A) * q_body) * k_ACT;
4.5 气动舵机动力学
4.5.1 二阶舵机
// 舵机动态模型
double x_dot[6];
x_dot[0] = delta_a_dot;
x_dot[1] = wn * wn * error_a - 2 * wn * ksin * delta_a_dot;
x_dot[2] = delta_e_dot;
x_dot[3] = wn * wn * error_e - 2 * wn * ksin * delta_e_dot;
x_dot[4] = delta_r_dot;
x_dot[5] = wn * wn * error_r - 2 * wn * ksin * delta_r_dot;// 下一舵机状态
delta_a = integrate(x[0], x_dot[0], step);
delta_a_dot = integrate(x[1], x_dot[1], step);
delta_e = integrate(x[2], x_dot[2], step);
delta_e_dot = integrate(x[3], x_dot[3], step);
delta_r = integrate(x[4], x_dot[4], step);
delta_r_dot = integrate(x[5], x_dot[5], step);
4.5.2 非线性因素
// 舵机角速度限幅
if (fabs(delta_a_dot) > 100 / 57.3)
{delta_a_dot = delta_a_dot / fabs(delta_a_dot) * 100 / 57.3;
}
else
{delta_a_dot = delta_a_dot;
}
if (fabs(delta_e_dot) > 100 / 57.3)
{delta_e_dot = delta_e_dot / fabs(delta_e_dot) * 100 / 57.3;
}
else
{delta_e_dot = delta_e_dot;
}
if (fabs(delta_r_dot) > 100 / 57.3)
{delta_r_dot = delta_r_dot / fabs(delta_r_dot) * 100 / 57.3;
}
else
{delta_r_dot = delta_r_dot;
}// 舵机角度限幅
if (fabs(delta_ac) > 20 / 57.3)
{delta_a = delta_ac / fabs(delta_ac) * 20 / 57.3;
}
else
{delta_a = delta_ac;
}
if (fabs(delta_ec) > 20 / 57.3)
{delta_e = delta_ec / fabs(delta_ec) * 20 / 57.3;
}
else
{delta_e = delta_ec;
}
if (fabs(delta_rc) > 20 / 57.3)
{delta_r = delta_rc / fabs(delta_rc) * 20 / 57.3;
}
else
{delta_r = delta_rc;
}
5 弹道仿真
5.1 目标运动模型
5.2 六自由度弹道仿真
5.2.1 初始状态
红外近距空空导弹:速度 300m/s,高度 6000m,位置(0,6000,0);
目标飞机:速度 300m/s,高度 8000m,位置(7000,8000,500);
5.2.2 目标匀速运动
5.2.3 目标滚筒机动(7g)
6 参考文献
后面加。
红外近距空空导弹弹道仿真相关推荐
- 炮弹仿真系统matlab软件下载,基于Matlab/Simulink的导弹六自由度弹道仿真系统设计...
第 11 卷 第 1 期 2011 年 1 月 1671-1815( 2011) 1-0029-06 科 学 技 术 与 工 程 Science Technology and Engineering ...
- 基于51单片机的自动红外感应洗手器proteus仿真程序设计
硬件设计 (末尾附文件) 本设计是基于单片机红外感应自动洗手器的仿真设计,通过红外传感器电路感应,来控制水龙头电磁阀是否打开.完整的实现了基于单片机的红外感应自动洗手器仿真,模拟红外传感器,当有人靠近 ...
- matlab弹道仿真,基于Matlab和Simulink的导弹弹道仿真与应用
第 31 卷 第 3 期 2011 年 6 月 弹 箭 与 制 导 学 报 Journal of Projectiles , Rockets , Missiles and Guidance Vol31 ...
- Matlab实现弹道仿真
1 简介 在导弹的设计,研究中,弹道仿真是一项必不可少的实验工具.如何能够高效地运用MATLAB软件进行弹道全数字仿真是本文主要探讨的问题.针对这一问题,本文给出了一定条件下的弹道仿真结果,以此证明模 ...
- matlab弹道仿真,战役战术导弹弹道仿真在simulink下如何实现
看了你的帖子,想起我当初作这种计算的艰辛,就提一点体会,供你参考把. 弹道计算的知识面比较广, simulink方面:你应该对simulink的连续系统模块.数学模块.逻辑关系模块.表格模块等基本模块 ...
- 弹道仿真软件_【决战决胜14】看,七部仿真试验室如何降本增效?
仿真技术具有安全.经济和可重复等优势,已成为继理论研究.科学实验之后第三种科学研究的有力手段.随着院战术武器从无控简控到精确制导.从单一型号到型谱化系列化.从武器研制到系统集成开发的不断发展,七部半实 ...
- MATLAB 仿真 n年后的比例,基于Matlab的比例导引弹道仿真分析.PDF
基于Matlab的比例导引弹道仿真分析.PDF ·60· 战术导弹技术Ta(·ti(·alMissile TechnologyMay,2009,(3):60-64 [文章编号]1009.1300(20 ...
- Arduino与Proteus仿真实例-简单红外寻迹小车控制仿真
简单红外寻迹小车仿真 1.寻迹小车介绍 红外寻迹小车是一种简单的Line Flower Robot(LFR)自主导向机器人,它会随地面上的线来检测白色表面上的暗线或黑色表面上的白线.LRF跟随线,因此 ...
- 一种高超声速飞行器弹道的仿真方法
一种高超声速飞行器弹道的仿真方法 目录 一.相关研究 二.基本思路 三.巡航段弹道计算 四.俯冲段弹道计算 五.仿真结果 参考文献 一.相关研究 临近空间高超声速飞行器(Near Space Hype ...
最新文章
- 计算机反面的考研专业,2018计算机考研:历年准考证打印常见七大问题
- 入职五年回顾(十六) 2013年11月
- centos7桌面登录root用户_CentOS7从一般用户切换到root用户
- K8S集群搭建:利用kubeadm构建K8S集群
- 1019 数字黑洞 (20 分)(c语言)
- 从 MVC 到前后端分离
- leetcode 1185 python
- Elasticsearch 架构原理—— 新数据写入过程
- play ---------idea
- OpenGL基础39:GLSL内建变量与接口块
- 生成式建模“回归”信息抽取
- 深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
- 科尼数字科技张彬:云设计系统助力行业数字化转型
- 计算机中常用的数学知识
- win10关闭系统更新后,还会提示更新
- python选择文件读入_Python学习-文件的调用-读取
- Android NDK编译常见错误及解决方案
- 【霍克沃兹】测试开发工程
- Eigen::常用操作[转]
- codeforces 规则
热门文章
- Warning [gazebo.cc:215] Waited 1seconds for namespaces.
- 高级运维工程师证书_高级运维工程师的具体职责说明
- postgresql 数据库 等保审计 遇到的问题与办法 (整理)
- 倒数15日开幕!第八届全球云计算大会解锁主论坛重磅嘉宾
- 康考迪亚计算机科学需要gre吗,康考迪亚大学研究生院化学工具专业录取条件
- Win11怎么分区硬盘?
- ORA-01017: invalid username/password; logon denied ORA-02063: 紧接着line(源于DBLINKN~~~)
- 实时数据库和关系数据库的区别
- 电话用计算机接听,怎么用电脑打电话-现在你可以在电脑上接听安卓手机的电话了...
- android监听点击通知栏,android使用NotificationListenerService监听通知栏消息