文档库 最新最全的文档下载
当前位置:文档库 › MATLABSIMULINK仿真应用及导弹制导系统模拟

MATLABSIMULINK仿真应用及导弹制导系统模拟

东北大学秦皇岛分校

数学软件认识实习报告

MATLAB\SIMULINK仿真应用及导弹制导系统

模拟

学院数学与统计学院

专业信息与计算科学

学号7110211

姓名李振兴

指导教师张尚国李明维

成绩

教师评语:

指导教师签字:

2010年12月27日

1 绪论

1.1 课题的背景及目的

导弹制导系统(missile guidance system)也称导弹导引和控制系统。测量和计算导弹对目标或空间基准线的相对位置,以预定的导引规律控制导弹飞达目标的系统。导引和控制导弹按选定的规律调整飞行路线并导向目标的全部装置。亦称导弹导引和控制系统。其功能是测量、计算导弹实际飞行路线和理论飞行路线的差别,形成制导指令,经过放大和转换,由伺服机构调整导弹的发动机推力方向或舵面偏转角,控制导弹的飞行路线,以允许的误差(脱靶距离)靠近或命中目标。

Matlab是一种具有广泛应用前景的全新的计算机高级编程语言,它集科学计算、图形界面设计、图像处理、声音处理、曲线显示等特点于一身,且其编程效率与可读性、可移植性要高于其他高级语言。

1.1.1 Matlab/Simulink的特点:

1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2)具有完备的图形处理功能,实现计算结果和编程的可视化;

3)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

4)Matlab提供强大的、交互式的二维及三维绘图功能,有一系列绘图函数,可是实现曲线渲染、线框图、伪彩图、光源、等位(值)图、图像显示、体积可视等,而且数据的可视化水平高,易于实现,并具有较强的图形编辑和用户图形界面设计能力。

5)Matlab提供了强大的Simulink系统仿真软件。Simulink提供航空航天飞行器推进系统、控制系统、动力学模块及六自由度和三自由度模型库,可以进行固定质量或者变质量体系的建模与仿真;提供重力场、磁场、大气和风的标准环境模型。可以利用各种转换模块,方便实现坐标转换,能够完成各物理量的单位制转换,也可以方便地构造出导弹飞行所需的数字模型。

1.2课题的研究方法

本课题主要是用MATLAB软件求解常微分方程数值解以及微分方程解的稳定性和数值解法,并建立数学模型,绘制相应导弹的运行模式图,和船只运行过程的图像。利用图像分析导弹与船只运行状态。

1.3 论文构成及研究内容

本课题是基于Matlab强大的绘图计算能力和较强的图像编辑能力,来模拟导弹制导过程中的的运动过程。利用简单的实例来说明导弹的实际运行路线。

2 Matlab/Simulink仿真应用及导弹制导系统模拟

2.1 Simulink仿真

2.1.1 Simulink概述

Simulink是Matlab的重要组成部分。是Matlab环境下对动态系统建模、仿真和分析的软件包。它提供图形用户界面,用户可以用鼠标操作,从模板库中调用标准模板,将它们适当地连接起来,以构成动态系统模型。Simulink与用户交互接口是基于Windows的模型化图形输入,从而可使用户吧更多的精力投入到系统建模的构建。

2.1.2 Simulink模块库

模块库有各个模块组成,整个Simulink模块库包含有若干模块组。例如:常用模块组:Commonly Used Blocks。

连续模块组:Continuous。

非连续模块组:Discontinuties。

离散模块组:Discrete。

逻辑与二进制操作模块组:Logic and Bit Operations。

寻表操作组:Lookup Tables。

等,用户可以自定义模块组。模块作为仿真模型的基本组成单元,其基本操作包括选定、复制、移动、调整、删除、、标志和连接等。

Simulink模块基本操作为:

1)建立简单模型(如图1)

图1.

启动仿真(图2):

图2.

2)模块的操作

模块的操作主要包括模块的选取、复制、调整、旋转、删除、颜色设定、参数设定、注释以及连线。

2.1.3 仿真配置

在系统仿真的过程中必须事先对仿真算法、输出模式等各种仿真参数进行设置。其方法是:打开系统仿真模型,选择模型编辑窗口Simulation菜单下的Configuration Parameters 命令。仿真参数设置地Simulink仿真的一个优点和亮点,也是一个难点。

图3

1)Solver选项

仿真时间设置:

这里所指的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示。需要设置的有仿真开始时间和仿真结束时间。一般仿真开始时间设为0,而结束时间则视不同情况而定。

仿真步长模式设置

用户可在Type下拉列表框中指定仿真的步长选择方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。

解法器设置

用户可以再Solver下拉列表框中选择变步长模式解法器和固定步长模式解法器。

变步长参数设定

对于变步长模式,用户常用的设置有最大和最小步长参数、相对误差和绝对误差、初始步长以及过零控制。默认情况下,步长自动确定,用auto值表示。

固定步长参数设置

对于固定步长模式,用户常用的设置有:Multiasking、Singletasking、Auto。

2)Data Import\Export选项

Load fron workspace:

选中Input复选框即可从Matlab工作空间获取时间和输入变量,一般时间变量定义为他,输入变量定义为u。Initial state用来定义从Matlab工作空间获取的状态初始值的变量名。Simulink通过设置模型的输入端口,实现在仿真过程中从工作空间读入数据。常用的输入端口模块为信号与系统模块库(Signal &Systems)中的In1模块,设置其中的参数时,选中Input复选框,并在后面的文本框中输入输入数据的变量名,可以用命令窗口或M文件编辑器输入数据。Simulink根据输入端口参数中设置的采样时间读取输入数据。

Save to work

用来设置保存在Matlab工作空间的变量类型和变量名。可以选择保存的选项时间、端口输出、状态和最终状态。选中某一选项前面的复选框并在该选项后面的文本框中输入变量名,就会把想要的数据保存到指定的变量中。

Save options

用来设置存往工作空间的有关选项。

2.1.4 子系统的创建及封装

1)子系统的创建

用户可以通过以下两种方式建立子系统:先添加模块,再将模块组合到子系统中。或先构建空白子系统,再把子系统块所包含的模块添加进去。Simulink子系统的作用是使系统更加简洁,可读性高;而且子系统可以反复调用,节省时间。

压缩子系统方法:

建立如图所示的系统模型图,

图4.

生成的子系统模块Subsystem:

图15.

2)子系统的封装

可以将Simulink子系统包装成一个模块,并且可以像使用Simulink内部模块一样使用它,这样可以将子系统内部结构隐藏起来,访问时只出现一个参数设置对话框,所需要的参数在对话框中来进行设置。

图17.

2.1.5 S-函数应用及对单摆进行仿真实验

使用S-函数对单摆系统进行仿真具体步骤:

图 18.

1) 利用S-函数对单摆进行建模。

2) 利用Simulink 进行仿真,并对其位移进行分析 3) 利用S-函数动画模块来演示单摆的运动效果。 单摆的运动方程为:

)sin(K M θθθ

g d F u -=+ 其中,u 为作用在单摆上的外力;d K 为阻尼系数;g F 为单摆重力。

令θ=1x ,θ

=2x ,则动力学方程为 ??

????-+-=??????)sin(K 122

1x F u x x x g d

根据状态方程,在模版的基础上编写S-函数

function [sys, x0,str, ts]=dbyd(t,x,u,flag,d,g,a,m)

%标志flag控制仿真流程

switch flag,

case 0,[sys,x0,str,ts]=mdlInitializeSizes(a);

case 1,sys=mdlDerivatives(t,x,u,d,g,m);

case 2,sys=mdlUpdate(t,x,u);

case 3,sys=mdlOutputs(t,x,u);

case 9,sys=mdlTerminate(t,x,u);

otherwise error(['Unhandled flag = ' ,num2str(flag)]);

end

%初始化例程子函数

function [sys,x0,str,ts]=mdlInitializeSizes(a)

sizes = simsizes;

sizes.NumContStates = 2;

sizes.NumDiscStates = 0;

sizes.NumOutputs = 1;

sizes.NumInputs =1;

sizes.DirFeedthrough =0;

sizes.NumSampleTimes =1;

sys = simsizes(sizes);

x0=a;

str = [];

ts = [0, 0];

%计算导数例程子函数

function sys = mdlDerivatives(t,x,u,d,g,m)

dx(1)=x(2);dx(2)=-d*x(2)-m*g*sin(x(1))+u;sys = dx;

%状态更新例程子函数

function sys = mdlUpdate(t,x,u)

sys = [];

%计算输出例程子函数

function sys = mdlOutputs(t,x,u)

sys = x(1);

function sys=mdlGetTimeOfNextVarHit(t,x,u)

sampleTime = 1; sys = t + sampleTime;

function sys=mdlTerminate(t,x,u) sys = [];

构建Simulink模型仿真图并对Signal Generator模块、S-function模块进行参数设置

图19.单摆Simulink仿真模型图

图20.Signal Generator模块参数设置

图21.S-Function模块参数设置在命令窗口输入并运行:

>> d=0.6;g=10;a=[0;0];m=0.4;

图21. 摆仿真效果

进行动态仿真,建立动态仿真模型图:

图22. 修改后的Simulink模型

动态仿真效果图:

图23. 单摆动态效果

2.2 导弹跟踪问题实例

例:A方导弹基地发现正北120km处海面有敌对方舰只正以90km/h的速度向正东方行驶,该基地立即发射导弹跟踪追击。已知导弹速度为450km/h ,导弹的制导系统能使导弹在任何时刻都对准敌舰飞行。试模拟导弹与敌舰的运动轨迹,根据模拟结果,导弹在何时何处击中敌舰?

2.2.1 分析问题

1)建立坐标系:

图 24.

2)建立数学模型:

时刻t 导弹的位于为P(x(t),y(t)),其速度可由水平分速度与垂直分速度合成

22

2d d d d w v t y t x =??

? ??+??? ?? 导弹方向指向敌艇,故有

x t v y H x y e --=d d ? )(d d d d x

t v y H t x t y e --= Vw =450 (km/h) Ve =90 (km/h)

导出一阶微分方程组

????

??????

???

??

?

?

==--+=--+=0)0(0

)0()

(1d d )

(1d d 22y x x t v y H v t x

x t v y H v t x e w e w

3)利用解析方法求解: 消去 t ,化为二阶方程

λ

=+-1

)()

(22

2dy dx y H y d x d ,

)(w

e

v v =

λ 连同初始条件

0,

00

====o

y y dy

dx x

设dy

dx

p =

降阶得到一阶可分离变量方程 y

H p dy dp

-+=

12λ ?])()[(

21λ

λH

y H y H H p ---= 解得代入将,dy dx

p =

2

111]1)()1()([21λ

λλλλλλλ-+---+-=-+H

y H H H y H x 导弹击中艇时y=H, 得到此时其位置和时刻

2778.0,)km (2512

≈===-=

=e v L

T t H L x λλ

4) 利用Euler 方法(数值方法)求解: Euler 方法十分简单, 就是用差商代替微商,即

k

k k

k k

k k

k t t y y t y dt dy t t x x t x dt dx --=???--=???++++1111, 通常取Δt 为常数τ,就得到由第k 步的值到第k+1步的值之间的关系式 ,t = t k +1时导弹位置为(x k +1 ,y k +1)

???

?

????

????

?

????

==--++=--++=++0,0)

(1)(100212

1y x y H x t v v y y x t v y H v x x

k k k e w k

k k k e k w k k ττ 计算到H H k k ≥<+1y ,y 停止,取L ≈k x

2.2.2 利用Matlab 进行建模

1)求微分方程(组)数值解的MATLAB 命令

ode23 2/3阶Runge-Kutta 法;

ode45 4/5阶Runge-Kutta 法; ode15s 刚性方程组的解法;

ode23s 刚性方程组的解法

[T,Y]=solver(‘odefun ’,tspan,y0,options);

solver 取上述四个函数之一,不同的函数代表不同的内部算法,ode45是最常用的求解微分方程命令,它采用变步长四阶Runge-Kutta 法和五阶Runge-Kutta-Felhberg 法, ode23与ode45类似,只是精度低一些,对于刚性方程,宜采用ode15s 或ode23s 。 字符串odefun 是用于表示待解方程写成的M 文件名;

tspan=[t0 tf]表示自变量初值t0和终值 tf ,y0表示函数的初始向量;

Options 用于设计求解的误差限(该参数可以缺省,缺省时相对误差是3-10,绝对误 为6-10);输出列向量T 表示节点T n t t t ),,(10 ,输出矩阵Y 表示微分方程(组)数值解;

2)Matlab 计算机求解 建立M 文件fun1.m 如下:

function f = fun1(t,x) a=450;b=90;c=120;

f(1) = a/(sqrt(1+((c-x(2))/(b*t-x(1))))^2); f(2) = a/(sqrt(1+((b*t-x(1))/(c-x(2))))^2);\ f=f(:);

在MATLAB 命令框中输入命令:

>>clear;[t,x]=ode45(@fun1,[0 0.4],[0.01;0]);plot(t,x(:,1),t,x(:,2),':');

>>clear;[t,x]=ode45(@fun1,[0 0.4],[0.01;0]);plot(x(:,1),x(:,2)); %画出导弹运动图 >>hold on %在同一个图形坐标上继续作图 >>plot(x,y,‘-’)%画一条经过y 值为120的横线

图25.

有图像可以看出导弹的运行轨迹,知:在大约27分钟时刻,导弹击中船只。 2.3 用Simulink 建立弹道仿真模型

根据物理知识,可以建立导弹运动三维公式:

目标质心的运动学方程(为了简化方程,将地面面坐标系Axyz 视为惯性坐标系,并把矢量坐标系投影到弹道坐标系2Ox ,2y ,2z ,经过变换得):

??????????=??????

??

?

?????????-2x 22F F c os x x v

m m m

m m F dt d mv dt

d mv dt dv m ?θθ

目标质心运动学方程:

???????

???=???????

?

?

?????????-vm m m m

m vm

m m m m v v v dt dz dt dy dt dx ?θθ?sin cos sin cos

根据目标运动及相对运动方程组,在Simulink 环境下编辑三维比例导引导弹的仿真模

型,鉴于该模型整体编辑时比较复杂,为了使这个系统便于观察和操作,可以通过把模块组成子系统来简化模型。整个仿真模型如图。模型中包含3个子系统:目标云动模块、导弹追踪模块和虚拟现实显示模块。

图27.导弹仿真模型

目标运动模块

该模块通过应用目标质心的动力学方程式,根据目标质心作用力2x F、2y F、2z F,求出

?;再通过目标质心的运动学方程式,即可计算目标的速度m v、弹道倾角mθ、弹道偏角vm

出每一时刻目标位置(m x,m y,m z)

可视化仿真及结果分析

VR Sink模块可实现Simulink模型与虚拟场景的连接。在Simulink模型窗口中双击VR Sink模块,在弹出的参数对话框中,单机Browse按钮,选中保存的Missile_Target.wrl文件,在右侧显示的节点结构中分别选择导弹、目标Translation和rotation选项,以此来接收Simulink模型中导弹、目标的位置和姿态信号,选定后在VRSink模块上会出现相应的输入端口。

图28.

通过Simulink模型输出的信号不能被虚拟现实模块直接接收,故将位置信号通过VR

Signal Expander模块扩展为虚拟信号;为了真实反应导弹和目标在运动过程中的姿态变化,使其时刻沿轨迹的切线方向运动,将弹道倾角和弹道偏角先转换为方向余弦矩阵,然后通过RotationMatrix2VR模块将方向余弦矩阵转换为虚拟现实模块所需要的旋转矢量,最终实现Simulink模型。

3 结论

本文通过对Simulink基础建模的应用,来模拟导弹追击船只的动力学系统,利用Simulink仿真,实现了导弹运行过程的可视化,来帮助解决导弹等相关建模问题。利用它提供一个动态系统建模、仿真和综合分析的集成环境,高效、灵活的建立模型。营造了一个使人有置身于真正的现实世界中感觉的环境。这对于优化导弹运行规律、研究导弹的外弹道特性提供了有力的帮助,亦可作为教学和演示使用。

参考文献

[1]赵广元. MATLAB与控制系统仿真实践[M]. 北京: 北京航空航天大学出版社, 2009.

[2]张德丰.雷晓平.周燕. MATLAB基础与工程应用[M]. 北京: 清华大学出版社,2011.

[3]李庆杨. 数值分析[M]. 北京: 清华大学出版社,2008.

[4]罗小明. 弹道导弹攻防对抗的建模与仿真[M]. 北京: 国防工业出版社.2009.

[5]王正. 林王琪. MATLAB/Simulink与控制系统仿真[M]. 北京:电子工业出版社.2008

相关文档
相关文档 最新文档