F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)
首先我们拿到代码压缩包打开后一定很迷,文件夹下很乱,所以用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的实数数组。
这里的代码
对应的公式是
首先要明确攻角和侧滑角的定义
F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)相关推荐
- Pytorch|YOWO原理及代码详解(二)
Pytorch|YOWO原理及代码详解(二) 本博客上接,Pytorch|YOWO原理及代码详解(一),阅前可看. 1.正式训练 if opt.evaluate:logging('evaluating ...
- 标准oc算法的推导与99行代码详解
文章目录 标准oc算法的推导与代码详解 问题描述 OC算法的数学描述 结果展示 OC算法的matlab代码及注释 参考文献 标准oc算法的推导与代码详解 对于变密度的参数化方法,设计变量x为材料相对密 ...
- VINS技术路线与代码详解
VINS技术路线 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探 ...
- 常见字典用法集锦及代码详解
目录 前言 字典的简介 1. 字典对象 1.1 Add 方法 1.2 Exists 方法 1.3 Keys 方法 1.4 Items 方法 1.5 Remove 方法 1.6 RemoveAll 方法 ...
- 深度篇——目标检测史(七) 细说 YOLO-V3目标检测 之 代码详解
返回主目录 返回 目标检测史 目录 上一章:深度篇--目标检测史(六) 细说 YOLO-V3目标检测 下一章:深度篇--目标检测史(八) 细说 CornerNet-Lite 目标检测 论文地址:< ...
- FPN论文解读 和 代码详解
FPN论文解读 和 代码详解 论文地址:[Feature Pyramid Networks for Object Detection](1612.03144v2.pdf (arxiv.org)) 代码 ...
- java一个方法排他调用_Java编程实现排他锁代码详解
一 .前言 某年某月某天,同事说需要一个文件排他锁功能,需求如下: (1)写操作是排他属性 (2)适用于同一进程的多线程/也适用于多进程的排他操作 (3)容错性:获得锁的进程若Crash,不影响到后续 ...
- 简单跑酷java代码_如何实现一个简单的跑酷游戏?(代码详解)
本篇文章给大家带来的内容是介绍如何实现一个简单的跑酷游戏?(代码详解).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 采用的物理引擎是:Phaser.js 官网地址:http:// ...
- nodeJS入门——新建一个项目及代码详解
nodeJS入门--新建一个项目及代码详解 有了解nodejs的童鞋们知道,nodejs有很多的依赖,那么我们在新建一个项目的时候,如何快速的导入这些依赖从而创建一个nodejs项目呢,接下来会 ...
最新文章
- LSTM 为何如此有效?这五个秘密是你要知道的
- LINUX系统管理员技术(Admin)-------第三天
- PPT文字怎样规划 哪里可以代做PPT
- 数据库跟尾过多的错误,能够的原因阐发及处置惩罚设备
- VMWare安装Ubuntu18时卡住
- 常见的一些 Hash 函数
- C++运算符重载(10)
- thinkphp三级分销小程序源码_山东谷道微信小程序商城源码带后台 公众号平台三级分销系统...
- 李航老师亲自推荐的《统计学习方法》课件下载
- plantUml活动图(新语法)
- c语言注释符的作用有哪两种,C语言编程的注释符号是?
- oracle12c新特点之可插拔数据库(Pluggable Database,PDB)
- 第三百一十八节,Django框架,信号
- 解决 Eclipse不支持tomcat9
- 吉林大学计算机数据中心排名,2018年度中国医院排行榜发布,吉大一院跻身50强!...
- SnapGene如何设计sgRNA,构建载体,对靶基因进行敲除
- 技术岗的职业规划_技术人员职业发展规划
- 玄学:那些年我为之疯狂的超能力(有音频版)
- php条件查询,PHP-----多条件查询(示例代码)
- IDEA打可执行jar包详细教程(包含依赖的所有jar包)
热门文章
- SAP 查找SPRO用户化实施指南对应Tcode(知识来自Tiger老胡)
- 利用php的mcrypt模块加密解密(AES、DES等等)
- 网络广告课堂笔记[转]
- c语言指针占两个字符,怎么 判断一个字符串指针的前二个字符是f:quot
- tomcat访问其他html文件类型,tomcat配置mime-mapping 实现自动匹配文件类型html等
- 【负荷预测】年月日及时间序列负荷预测(Python代码实现)
- 图像质量评估(9) -- 杂散光(炫光,Flare,Glare)
- 看不到小说?直接爬虫
- 远程控制预付费集中抄表系统
- 四元数非正式笔记梳理_Quaternion kinematics for the error-state Kalman filter