文档介绍:飞行器系统仿真《飞行器系统仿真与CAD》学****报告第一部分仿真(40)题目1:给定导弹相对于目标的运动学方程组为r(0)=5km,q(0)=60deg,s(0)=30deg,V=,Vm=,1Ma=340m/s,k=2建立系统的方框图模型;用MATLAB语言编写S—函数用窗口菜单对(1),(2)进行仿真,动态显示结果;(4)用命令行对(1),(2)进行仿真,以图形显示结果答:(1)(2)用MATLAB语言编写S函数function[sys,x0,str,ts]=CAD1_sfun(t,x,u,flag)switchflagcase0[sys,x0,str,ts]=mdlInitializeSizes;case1sys=mdlDerivatives(t,x,u);case3sys=mdlOutputs(t,x,u);case{2,4,9}sys=[];otherwiseerror('unhandledflag=',num2str(flag))endfunction[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;=3;=0;=3;=0;=1;=1;sys=simsizes(sizes);str=[];x0=[5000,pi/3,pi/6];ts=[00];functionsys=mdlDerivatives(t,x,u)vm=*340;v=*340;k=2;dx(1)=vm*cos(x(2))-v*cos(x(2)-x(3));dx(2)=(v*sin(x(2)-x(3))-vm*sin(x(2)))/x(1);dx(3)=k*dx(2);sys=dx;functionsys=mdlOutputs(t,x,u)sys=x;调用S函数的模型框图(3)框图仿真结果:S函数仿真结果:(4)命令输入clear;clc[tx]=sim('CAD1');hSimulink=figure();subplot(3,1,1);plot(t,x(:,1));grid;ylabel('r');subplot(3,1,2);plot(t,x(:,2));grid;ylabel('q');subplot(3,1,3);plot(t,x(:,3));grid;ylabel('sigma');[tx]=sim('CAD1_S');hSFun=figure();subplot(3,1,1);plot(t,x(:,1));grid;ylabel('r');subplot(3,1,2);plot(t,x(:,2));grid;ylabel('q');subplot(3,1,3);plot(t,x(:,3));grid;ylabel('sigma');模型仿真结果:S函数仿真结果:题目2:给出动态方程;(1)用MATLAB语言编写S—函数;(2)用命令行gear/adams法对(1)进行仿真,显示曲线x(t=0:100);(3)建立方框图,用RK45仿真50秒,显示曲线答:(1)用MATLAB语言编写S—函数function[sys,x0,str,ts]=CAD2_sfun(t,x,u,flag)switchflagcase0[sys,x0,str,ts]=mdlInitializeSizes;case1sys=mdlDerivatives(t,x,u);case3sys=mdlOutputs(t,x,u);case{2,4,9}sys=[];otherwiseerror('unhandledflag=',num2str(flag))endfunction[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;=2;=0;=2;=0;=1;=1;sys=simsizes(sizes);str=[];x0=[1,0];ts=[00];functionsys=mdlDerivatives(t,x,u)dx(1)=x(2);dx(2)=1-t*x(1)-(1-x(1)^2)*x(2);sys=dx;functionsys=mdlOutputs(t,x,u)sys=x;(2)直接调用ode数值积分函数进行仿真,系统微分方程CAD2