F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)

首先我们拿到代码压缩包打开后一定很迷,文件夹下很乱,所以用matlab打开,按文件名称归类再看会更合适。

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第1张图片

在“名称”右边空白右键单击,选择按类型排序,这三个脚本就是我们的主函数所在,可以去看操作手册或者自己领悟,第一个主函数就是runF16Sim.m,点开它

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第2张图片

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第3张图片

 这里的代码有一大堆菜单的输入和输出,只要注意它不要越界,依次向下按要求输入即可,

直到遇到第一个函数

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第4张图片

 需要注意上一次的输入一大推有限制的数据是指对应的扰动,而不是对应的数值,这里赋值的地方才是推力、升降舵、副翼和襟翼

这个函数点进去也是一通操作,直到配平的这里

 这是一个求最小值函数,目标函数就是cost,,计算方法也就是

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第5张图片

公式为

 这个最终求到的cost要非常小,且要多次循环计算,直到cost的值不再变化,当cost很小之后,可以假设cost这些项的值都为零,这样飞行器就会做一个正常的匀速运动,所谓配平就是这样。

 这个函数运行完毕后,回到runF16Sim.m内

这一句就是运行Simulink文件, 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第6张图片

先看输入项

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第7张图片

 

 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第8张图片

这个模块是为了模拟真实条件下的阶跃信号的产生,要给阶跃信号一定的时间 ,所谓的一阶滞后校正即是如此。out就是我们之前说的扰动,阶跃是由之前在造作空间的输入确定的,可以单独看一下这个模块的作用,中间的数字越大,响应越快。

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第9张图片

 再看控制模块

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第10张图片

总共是12+4+1+1共18个输入,分别为12个状态量,4个输入量,一个前向襟翼,一个高低保真率的判断,之后就要作为输入进入最重要的nplant,c文件,首先是调用函数 void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) ,这四个参数,分别是输入的个数,输入数组,输出的个数,输出的数组。mxGetM(XU)是获得XU的行数,mxGetN(XU)是获得XU的列数,mxGetPr(XU)是获得XU的第一个数的指针, mxCreateDoubleMatrix(18, 1, mxREAL)是获得一个18*1的实数数组。

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第11张图片

 这里的代码

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第12张图片

对应的公式是

首先要明确攻角和侧滑角的定义

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第13张图片

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第14张图片

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第15张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第16张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第17张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第18张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第19张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第20张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第21张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第22张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第23张图片 

F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)_第24张图片 

 

 

你可能感兴趣的:(经验分享)