【控制】基于气动力的导弹姿态控制含Matlab源码附报告

1 简介

对于大气层内飞行的导弹,为了使其准确的完成飞行,首要任务是使其姿态保持稳定。导弹的姿态控制系统是导弹飞行成败的关键系统之一,姿态控制过程和方法一直备受关注,它在导弹设计、使用、储存的整个生命周期中都意义重大。在此背景下,本文针对大气层内导弹的姿态控制方法进行研究。

首先建立了一系列坐标系来描述大气层内导弹的飞行特性,包括弹体坐标系、地面惯性坐标系、速度坐标系和弹道坐标系,之后对这些坐标系之间的变转换关系进行了推导。然后,推导计算大气层内导弹的动力学方程组、运动学方程组、攻角和侧滑角计算模型、弹道倾角和弹道偏角计算模型、气动力模型、气动力矩模型以及重力模型,由上述模型得出导弹的姿态控制系统数学模型。由于大气层内导弹的姿态控制数学模型具有强耦合、非线性的特点,因此先对其进行解耦和线性化处理,而后进行控制器设计。本文应用小扰动假设下的线性化方法,分别建立了各通道的传递函数。之后,运用PD控制方法对三个通道的控制律分别进行设计,使导弹能在要求时间内达到目标姿态。最后,设计MATLAB仿真程序,对控制律进行仿真验证,并对仿真结果进行分析。

仿真结果表明,对大气层内导弹姿态控制模型进行线性化及各通道解耦处理后,应用PD控制方法设计控制律,能够使系统实现快速、稳定的达到目标姿态的目的。

2 部分代码

clc;clear;%------------------------定义导弹、大气、地球等固定参数---------------------%Jx=2.95;Jy=168.2;Jz=168.2;m=300;S=0.0616;L=0.3;rho=1.2;g=9.8;i=10000;ii=i/10;t=zeros(1,ii-1);dt=0.001;H=pi/180;K=180/pi;%-------------------------定义初始位置参数---------------------------------%x=zeros(1,i);y=zeros(1,i);z=zeros(1,i);y(1)=30000;%-------------------------定义初始速度参数---------------------------------%V=zeros(1,i);Vx=zeros(1,i);Vy=zeros(1,i);Vz=zeros(1,i);V(1)=2275;Vx(1)=2275;%-------------------------定义初始弹道参数---------------------------------%theta=zeros(1,i);psiv=zeros(1,i);gammav=zeros(1,i);theta(1)=(40*pi)/180;%-------------------------定义初始姿态参数---------------------------------%htheta=zeros(1,i);psi=zeros(1,i);gamma=zeros(1,i);htheta(1)=40*H;psi(1)=0*H;gamma(1)=5*H;htheta0=50*H;psi0=10*H;gamma0=0*H;%---------------------------定义初始舵偏角---------------------------------%deltax=zeros(1,i);deltay=zeros(1,i);deltaz=zeros(1,i);%--------------------------定义初始姿态角速度参数---------------------------%omegax=zeros(1,i);omegay=zeros(1,i);omegaz=zeros(1,i);%-------------------------定义攻角/侧滑角----------------------------------%alpha=zeros(1,i);beta=zeros(1,i);dalpha=0;dbeta=0;%--------------------定义空气动力和空气动力矩-------------------------------%X=zeros(1,i);Y=zeros(1,i);Z=zeros(1,i);Mx=zeros(1,i);My=zeros(1,i);Mz=zeros(1,i);%--------------------------定义控制律参数----------------------------------%Kpx=-1.5;   Kdx=-0.018;Kpy=-1.5;   Kdy=-0.05;Kpz=-1.8;   Kdz=-0.05;%--------------------------------定义绘图用数组----------------------------%hthetat=zeros(1,ii-1);psit=zeros(1,ii-1);gammat=zeros(1,ii-1);omegaxt=zeros(1,ii-1);omegayt=zeros(1,ii-1);omegazt=zeros(1,ii-1);xt=zeros(1,ii-1);yt=zeros(1,ii-1);zt=zeros(1,ii-1);Mxt=zeros(1,ii-1);Myt=zeros(1,ii-1);Mzt=zeros(1,ii-1);deltaxt=zeros(1,ii-1);deltayt=zeros(1,ii-1);deltazt=zeros(1,ii-1);%------------------------定义气动力、气动力矩的插值矩阵---------------------%B = [-6,-4,-2,0,2,4,6];A = [-6;-4;-2;0;2;3;4;6;8;10];CX = [0.926,0.750,0.636,0.583,0.614,0.722,0.888;0.758,0.596,0.511,0.468,0.489,0.570,0.726;      0.644,0.504,0.426,0.398,0.411,0.487,0.614;0.602,0.477,0.399,0.367,0.390,0.458,0.574;      0.650,0.508,0.428,0.410,0.415,0.502,0.627;0.699,0.547,0.463,0.434,0.449,0.533,0.674;      0.762,0.601,0.512,0.471,0.497,0.585,0.739;0.921,0.749,0.628,0.578,0.613,0.735,0.902;      1.136,0.949,0.817,0.763,0.800,0.934,1.115;1.405,1.212,1.080,1.029,1.067,1.200,1.388];CY = [-2.694,-2.563,-2.426,-2.351,-2.427,-2.605,-2.686;-1.854,-1.710,-1.642,-1.593,-1.618,-1.711,-1.800;      -0.920,-0.818,-0.802,-0.794,-0.797,-0.798,-0.873;0.034,0.036,0.015,0.033,0.009,0.004,0.031;      0.930,0.894,0.868,0.808,0.802,0.836,0.928;1.373,1.331,1.275,1.190,1.233,1.257,1.340;      1.825,1.751,1.685,1.566,1.633,1.715,1.787;2.704,2.647,2.460,2.344,2.428,2.583,2.677;      3.411,3.458,3.365,3.276,3.312,3.397,3.392;4.175,4.292,4.283,4.241,4.218,4.263,4.181];CZ = [2.703,1.833,0.932,0,-0.932,-1.833,-2.703;2.619,1.753,0.880,0,-0.880,-1.753,-2.619;      2.479,1.634,0.846,0,-0.846,-1.634,-2.479;2.447,1.620,0.806,0,-0.806,-1.620,-2.447;      2.513,1.670,0.816,0,-0.816,-1.670,-2.513;2.582,1.693,0.829,0,-0.829,-1.693,-2.582;      2.637,1.719,0.845,0,-0.845,-1.719,-2.637;2.717,1.823,0.931,0,-0.931,-1.823,-2.717;      2.700,1.930,1.000,0,-1.000,-1.930,-2.700;2.775,1.999,1.027,0,-1.027,-1.999,-2.775];MX = [-0.035,-0.008,0.030,0,-0.030,0.008,0.035;0.027,0.006,0.020,0,-0.020,-0.006,-0.027;      0.021,0.060,0.008,0,-0.008,-0.060,-0.021;0.000,0.000,0.000,0,0.000,0.000,0.000;      -0.017,-0.034,-0.002,0,0.002,0.034,0.017;-0.032,-0.047,0.001,0,-0.001,0.047,0.032;      -0.034,-0.012,0.037,0,-0.037,0.012,0.034;0.014,0.028,0.038,0,-0.038,-0.028,-0.014;      0.022,0.095,0.025,0,-0.025,-0.095,-0.022;0.007,0.195,0.098,0,-0.098,-0.195,-0.007];MY = [2.096,1.498,0.750,0,-0.750,-1.498,-2.096;1.893,1.314,0.671,0,-0.671,-1.314,-1.893;      1.658,1.126,0.612,0,-0.612,-1.126,-1.658;1.612,1.138,0.530,0,-0.530,-1.138,-1.612;      1.763,1.224,0.564,0,-0.564,-1.224,-1.763;1.873,1.223,0.545,0,-0.545,-1.223,-1.873;      2.010,1.291,0.612,0,-0.612,-1.291,-2.010;2.257,1.549,0.810,0,-0.810,-1.549,-2.257;      2.398,1.838,0.988,0,-0.988,-1.838,-2.398;2.729,2.137,1.126,0,-1.126,-2.137,-2.729];MZ = [2.320,2.042,1.857,1.738,1.848,2.083,2.243;1.617,1.287,1.216,1.243,1.192,1.260,1.456;      0.732,0.501,0.527,0.566,0.519,0.455,0.616;-0.164,-0.181,-0.141,-0.147,-0.132,-0.130,-0.182;      -0.964,-0.898,-0.840,-0.751,-0.729,-0.787,-0.956;-1.366,-1.303,-1.186,-1.050,-1.094,-1.166,-1.322;      -1.763,-1.647,-1.525,-1.334,-1.422,-1.579,-1.713;-2.525,-2.469,-2.077,-1.881,-2.011,-2.349,-2.498;      -3.078,-3.052,-2.793,-2.608,-2.734,-2.994,-3.040;-3.690,-3.709,-3.563,-3.438,-3.493,-3.692,-3.699]; %---------------------------------循环计算--------------------------------%end%-------------------------------绘图--------------------------------------%figure(1)plot(t/100,hthetat*K)title('俯仰角变化曲线')xlabel('时间')ylabel('俯仰角')grid onfigure(2)plot(t/100,psit*K)title('偏航角变化曲线')xlabel('时间')ylabel('偏航角')grid onfigure(3)plot(t/100,gammat*K)title('滚转角变化曲线')xlabel('时间')ylabel('滚转角')grid onfigure(4)plot(t/100,omegaxt*K)title('角速度变化曲线')xlabel('时间')ylabel('滚转角速度')grid onfigure(5)plot(t/100,omegayt*K)title('角速度变化曲线')xlabel('时间')ylabel('偏航角速度')grid onfigure(6)plot(t/100,omegazt*K)title('角速度变化曲线')                                        xlabel('时间')ylabel('俯仰角速度')grid onfigure(7)plot3(zt,xt,yt)title('导弹运动轨迹')xlabel('Z')zlabel('Y')ylabel('X')grid onfigure(8)plot(t/100,Mxt)title('力矩变化曲线')xlabel('时间')ylabel('滚转力矩')grid onfigure(9)plot(t/100,Myt)title('力矩变化曲线')xlabel('时间')ylabel('偏航力矩')grid onfigure(10)plot(t/100,Mzt)title('力矩变化曲线')xlabel('时间')ylabel('俯仰力矩')grid onfigure(11)plot(t/100,deltazt)title('舵偏角变化曲线')xlabel('时间')ylabel('俯仰通道舵偏角')grid onfigure(12)plot(t/100,deltayt)title('舵偏角变化曲线')xlabel('时间')ylabel('偏航通道舵偏角')grid onfigure(13)plot(t/100,deltaxt)title('舵偏角变化曲线')xlabel('时间')ylabel('滚转通道舵偏角')grid on

3 仿真结果

4 参考文献

[1]姚红, 闫野, 周伯昭. 基于Matlab的弹道导弹姿态控制系统设计与仿真软件研究[J]. 系统仿真学报, 2004, 16(11):3.​

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值