F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包) 您所在的位置:网站首页 飞行仿真原理入门 F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)

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

2024-03-02 04:59| 来源: 网络整理| 查看: 265

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

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

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

直到遇到第一个函数

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

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

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

公式为

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

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

这一句就是运行Simulink文件, 

先看输入项

 

 

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

 再看控制模块

总共是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的实数数组。

 这里的代码

对应的公式是

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

 

 

 

 

 

 

 

 

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有