固定翼飞行器建模(二)——MATLAB/Simulink建模、配平及线性化
迅翼SwiftWing 2024-06-29 08:35:01 阅读 96
前面三期文章带领大家梳理完了固定翼飞行器气动力、气动力矩的建模计算和通用的六自由度动力学模型。在本期文章中参考一个官方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和常量输入,方便我们做进一步的仿真和配平分析。
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建模
飞行器本体建模
飞行器本体建模是包含分为力、力矩建模和动力学建模。
飞行参数
在求解本体动力学部分之前预先计算了一部分飞行参数:
攻角
α
\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]]
本体动力学分为合外力、合外力矩的计算以及六自由度动力学两大部分。
合外力、合外力矩
合外力与合外力矩计算分为三块:气动、发动机、重力。
气动内部建模方式结合视频教程,可以参考前两期文章关于气动力和气动力矩的建模方式。
发动机建模部分考虑了螺旋桨滑流影响,这里不做过多介绍。
重力建模将北东地地面坐标系下的重力左乘一个旋转矩阵获得重力在机体系下的三轴矢量。
需要注意Aerodynamic Forces and Moments封装模块,如果所使用的气动力矩系数已经考虑了重心(center of gravity)和压力中心(center of pressure)的位置差,在计算力和力矩时,可以将cg、cp输入设为0。如果气动模型的气动力矩系数是以压力中心为参考,这里需要输入cg、cp的距离(cg,cp距离差就是气动力对重心的力臂)。
六自由度动力学
输入量为作用在重心心的合外力与和外力矩。输出为北东地速度
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˙。
内部逻辑可参考上一期关于六自由度动力学的文章讲解。需要注意将六自由度动力学模块的姿态表达方式设为欧拉角,方便后续的配平操作。
配平
配平是指找出系统稳态工作点,线性化则是在稳态工作点下,得到飞行器的线性化模型。
在开始配平之前,需要创建好输入控制量端口(使用in模块创建roll、pitch、yaw,throttle可以使用常量代替)
将“模型设置”中的“数据导入/导出”从“工作区加载”取消勾选
打开“模型线性化器”,“Operating Point”,“Trim Model”。
Steady State稳态值勾选代表对该状态量进行约束,及该状态量导数为0。Known已知值勾选代表给定该状态量为固定值;Minimum、Maximum为状态量范围约束;dx Minimum、dx Maximum为配平出状态量允许的稳态值下的误差范围。
Inputs设置输入量是否为固定值以及输入量的取值范围,这里考虑pilot为归一化的摇杆输入,所以对其限幅-1到1;Outputs设置可同理参考Inputs。
假设期望飞行器沿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
点击“Start Trimming”后可以得到配平结果,双击配平结果,单击“Initialize Model”将模型加载到MATLAB Workspace中。重新开始仿真后,查看仿真后结果可以发现,各项状态量除
x
x
x外已经回归到稳态值。
线性化
线性化是在配平得到的稳态工作点下,得到飞行器的线性化模型。
打开模型线性化器,创建一个新的线性化I/Os。假设我们想得到我们在平飞状态下升降舵到机体仰角速度
q
q
q的传递函数,我们将升降舵信号线设置为输入、
q
q
q设置为输出测量。
将工作点设为刚刚配平获得的结果,在LINEARIZE部分点击一个Step响应图可以查看阶跃响应。在Linear Analysis Workspace内可查看得到的状态空间,可将其复制到MATLAB Workspace内做进一步操作,查看其传递函数。
小结
综上所述,我们完成了固定翼飞行器的建模介绍,配平以及在配平工作点下获取我们的线性化模型。 下一期将会带来控制系统的控制器设计。
END
迅翼SwiftWing致力于固定翼技术共享,汇聚固定翼领域技术极客,推动固定翼技术持续创新!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。