固定翼飞行器建模(二)——MATLAB/Simulink建模、配平及线性化
创始人
2024-12-27 15:10:59
0

请添加图片描述

前面三期文章带领大家梳理完了固定翼飞行器气动力、气动力矩的建模计算和通用的六自由度动力学模型。在本期文章中参考一个官方Simulink示例,带领大家完成固定翼的建模、配平以及线性化

视频教程参考如下:
https://www.bilibili.com/video/BV1fC411H7vH/?spm_id_from=333.337.search-card.all.click&vd_source=443165114dee1cc184b8fbc7d4d7f90f

建模介绍

首先这个模型分为pilot输入,environment环境输入以及飞行器本体三部分建模。
![[Pasted image 20240226235414.png]]在这里插入图片描述

pilot输入

pilot为操纵杆,输出包含六个量:升降舵、副翼、方向舵、襟翼;发动机螺旋桨的转速的压力
这里我对原始模型文件进行了修改,去掉了原本的pilot摇杆,改用在外部使用in和常量输入,方便我们做进一步的仿真和配平分析。
![[Pasted image 20240224222533.png]]

environment

environment为环境建模,包含三部分:重力 g g g、空气密度 ρ \rho ρ、外界风场 u , v , w w i n d ; p , q , r w i n d u,v,w_{wind};p,q,r_{wind} u,v,wwind​;p,q,rwind​建模
![[Pasted image 20240224170331.png]]

飞行器本体建模

飞行器本体建模是包含分为力、力矩建模和动力学建模。

飞行参数

在求解本体动力学部分之前预先计算了一部分飞行参数:

  • 攻角 α \alpha α,侧滑角 β \beta β,空速 V V V
  • { p , q , r } t o t a l = { p , q , r } b o d y + { p , q , r } w i n d \{p,q,r\}_{total}=\{p,q,r\}_{body}+\{p,q,r\}_{wind} {p,q,r}total​={p,q,r}body​+{p,q,r}wind​
  • 动压 Q = 1 2 ρ V 2 Q=\frac{1}{2}\rho V^2 Q=21​ρV2
    ![[Pasted image 20240224170232.png]]
    本体动力学分为合外力、合外力矩的计算以及六自由度动力学两大部分。
    ![[Pasted image 20240224170603.png]]

合外力、合外力矩

合外力与合外力矩计算分为三块:气动、发动机、重力。
![[Pasted image 20240224215201.png]]
气动内部建模方式结合视频教程,可以参考前两期文章关于气动力和气动力矩的建模方式。
在这里插入图片描述
发动机建模部分考虑了螺旋桨滑流影响,这里不做过多介绍。
![[Pasted image 20240224220433.png]]
重力建模将北东地地面坐标系下的重力左乘一个旋转矩阵获得重力在机体系下的三轴矢量。
![[Pasted image 20240224220445.png]]
需要注意Aerodynamic Forces and Moments封装模块,如果所使用的气动力矩系数已经考虑了重心(center of gravity)和压力中心(center of pressure)的位置差,在计算力和力矩时,可以将cg、cp输入设为0。如果气动模型的气动力矩系数是以压力中心为参考,这里需要输入cg、cp的距离(cg,cp距离差就是气动力对重心的力臂)。
![[Pasted image 20240224220714.png]]

六自由度动力学

输入量为作用在重心心的合外力与和外力矩。输出为北东地速度 v n , v e , v d v_n,v_e,v_d vn​,ve​,vd​;北东地位置 x e , y e , z e x_e,y_e,z_e xe​,ye​,ze​;姿态欧拉角 ϕ , θ , ψ \phi,\theta,\psi ϕ,θ,ψ;北东地坐标系到机体系的旋转矩阵 D C M b e DCM_{be} DCMbe​;机体系下速度 u , v , w u,v,w u,v,w;机体角速度 p , q , r p,q,r p,q,r;机体角加速度 p ˙ , q ˙ , r ˙ \dot{p},\dot{q},\dot{r} p˙​,q˙​,r˙;机体系下加速度 u ˙ , v ˙ , w ˙ \dot{u},\dot{v},\dot{w} u˙,v˙,w˙。
内部逻辑可参考上一期关于六自由度动力学的文章讲解。需要注意将六自由度动力学模块的姿态表达方式设为欧拉角,方便后续的配平操作。
![[Pasted image 20240227000129.png]]

配平

配平是指找出系统稳态工作点,线性化则是在稳态工作点下,得到飞行器的线性化模型。
在开始配平之前,需要创建好输入控制量端口(使用in模块创建roll、pitch、yaw,throttle可以使用常量代替)
![[Pasted image 20240224222503.png]]
将“模型设置”中的“数据导入/导出”从“工作区加载”取消勾选
![[Pasted image 20240224222443.png]]
打开“模型线性化器”,“Operating Point”,“Trim Model”。
Steady State稳态值勾选代表对该状态量进行约束,及该状态量导数为0。Known已知值勾选代表给定该状态量为固定值;Minimum、Maximum为状态量范围约束;dx Minimum、dx Maximum为配平出状态量允许的稳态值下的误差范围。
![[Pasted image 20240224222907.png]]
Inputs设置输入量是否为固定值以及输入量的取值范围,这里考虑pilot为归一化的摇杆输入,所以对其限幅-1到1;Outputs设置可同理参考Inputs。
![[Pasted image 20240224223330.png]]
假设期望飞行器沿x方向, y = 0 y=0 y=0水平直线飞行,可做如下约束: y e = 0 , y e ˙ = 0 ; x e = − 2202 , x e ˙ = 0 y_e=0,\dot{y_e}=0;x_e=-2202,\dot{x_e}=0 ye​=0,ye​˙​=0;xe​=−2202,xe​˙​=0
![[Pasted image 20240224223721.png]]
点击“Start Trimming”后可以得到配平结果,双击配平结果,单击“Initialize Model”将模型加载到MATLAB Workspace中。重新开始仿真后,查看仿真后结果可以发现,各项状态量除 x x x外已经回归到稳态值。
![[Pasted image 20240224224420.png]]

线性化

线性化是在配平得到的稳态工作点下,得到飞行器的线性化模型。
打开模型线性化器,创建一个新的线性化I/Os。假设我们想得到我们在平飞状态下升降舵到机体仰角速度 q q q的传递函数,我们将升降舵信号线设置为输入、 q q q设置为输出测量。
![[Pasted image 20240226233221.png]]
将工作点设为刚刚配平获得的结果,在LINEARIZE部分点击一个Step响应图可以查看阶跃响应。在Linear Analysis Workspace内可查看得到的状态空间,可将其复制到MATLAB Workspace内做进一步操作,查看其传递函数。
请添加图片描述
在这里插入图片描述

小结

综上所述,我们完成了固定翼飞行器的建模介绍,配平以及在配平工作点下获取我们的线性化模型。 下一期将会带来控制系统的控制器设计。

END

迅翼SwiftWing致力于固定翼技术共享,汇聚固定翼领域技术极客,推动固定翼技术持续创新!

相关内容

热门资讯

第一实锤!wePoKe外挂辅助... 自定义新版wePoKe系统规律,只需要输入自己想要的开挂功能,一键便可以生成出wePoKe专用辅助器...
第9个了解!微扑克脚本外挂辅助... 第9个了解!微扑克脚本外挂辅助器插件,微扑克辅助钻石(有挂解密)-哔哩哔哩;1、很好的工具软件,可以...
第9实锤!wepoke挂软件透... 第9实锤!wepoke挂软件透明挂辅助插件,wpk如何才能稳定长期收益(有挂透视)-哔哩哔哩;1、这...
第六个了解!微扑克必备外挂辅助... 自定义新版微扑克必备系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克必备专用辅助器,不...
第两个了解!wepOKER外挂... 自定义新版wpkplus系统规律,只需要输入自己想要的开挂功能,一键便可以生成出wpkplus专用辅...
第五个了解!德扑之心外挂透明挂... 第五个了解!德扑之心外挂透明挂辅助神器,weopke系统规律(有挂详细)-哔哩哔哩;德扑之心原来是有...
1分钟了解!微扑克机器人外挂透... 自定义新版微扑克模拟器系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克模拟器专用辅助器...
Go语言入门之函数 Go语言之函数函数这种语法元素的诞生,源于将大问题分解为若干小任务与代码复用ÿ...
Mac更新完系统出现两步报错及... Mac更新完系统,通过命令行准备编译C++文件时,报错&...
Nginx和Tomcat实现负...  🏡作者主页:点击! 🐧Linux基础知...