预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共51页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《飞行器系统仿真与CAD》学习报告 第一部分仿真(40) 题目1:给定导弹相对于目标的运动学方程组为 r(0)=5km,q(0)=60deg,(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) switchflag case0 [sys,x0,str,ts]=mdlInitializeSizes; case1 sys=mdlDerivatives(t,x,u); case3 sys=mdlOutputs(t,x,u); case{2,4,9} sys=[]; otherwise error('unhandledflag=',num2str(flag)) end function[sys,x0,str,ts]=mdlInitializeSizes sizes=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) switchflag case0 [sys,x0,str,ts]=mdlInitializeSizes; case1 sys=mdlDerivatives(t,x,u); case3 sys=mdlOutputs(t,x,u); case{2,4,9} sys=[]; otherwise error('unhandledflag=',num2str(flag)) end function[sys,x0,str,ts]=mdlInitializeSizes sizes=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数值积分函数进行仿真,系统微分方程: functiondx=CAD01_02odefun(t,x) dx(1)=x(2); dx(2)=1-(1-x(1)*x(1))*x(2)-t*x(1); dx=dx'; 调用ode解算器入口: clear;clc; [tx]=ode15s(@CAD01_02odefun,0:10