偏航动力学模型:从牛顿到代码
做偏航控制,第一件事是什么?
不是调参数,是搞懂你的飞机到底是怎么转起来的。
我见过太多工程师上来就调PID,结果飞机像个醉汉一样晃来晃去。说白了,你连被控对象的脾气都没摸清,怎么调得好?
刚体转动动力学:绕Z轴那点事
先回忆一下高中物理。一个物体要转动,得有力矩。
对于四旋翼来说,偏航运动就是绕机体Z轴的旋转。这个旋转遵循牛顿第二定律的转动版本:
τ = I · α
其中:
- τ —— 合外力矩(N·m),也就是让飞机转起来的“劲儿”
- I —— 绕Z轴的转动惯量(kg·m²),可以理解为“转动的惯性”
- α —— 角加速度(rad/s²),描述转动快慢的变化
嗯,这里要注意。这个公式是理想情况。实际飞行中,还有空气阻尼、陀螺效应、电机响应延迟……但作为控制工程师,我们得先抓住主要矛盾。
核心认知:偏航动力学本质上是一个二阶系统。转动惯量I决定了系统的“惯性大小”,力矩τ决定了我们能多快改变偏航角速度。
偏航力矩从哪来?四个电机的“阴谋”
四旋翼没有尾舵,偏航力矩全靠四个电机的反扭矩差。
你想想看,螺旋桨旋转时,会给机身一个反方向的扭矩。这就是反扭矩。
具体来说:
- 电机1、3顺时针转 → 产生逆时针反扭矩
- 电机2、4逆时针转 → 产生顺时针反扭矩
当四个电机转速相同时,反扭矩互相抵消,偏航力矩为零。
想让飞机偏航?很简单:让对角电机转速增加,另一对角电机转速减少。
举个例子:
- 想让飞机顺时针偏航 → 增加电机1、3转速,减少电机2、4转速
- 想让飞机逆时针偏航 → 增加电机2、4转速,减少电机1、3转速
我在项目中遇到过一个问题:电机响应速度不一致。左边电机比右边快5ms,结果偏航控制总是过冲。后来加了电机响应补偿才解决。嗯,这些细节后面会讲。
简化偏航模型推导:从物理到传递函数
好了,现在我们把上面的物理关系写成数学形式。
偏航通道的动力学方程:
I_z · ψ̈ = τ_z - D · ψ̇
其中:
- ψ —— 偏航角(yaw angle)
- ψ̇ —— 偏航角速度
- ψ̈ —— 偏航角加速度
- τ_z —— 电机产生的偏航力矩
- D —— 空气阻尼系数(别小看它,高速旋转时阻尼很大)
为什么要加阻尼项D?
你想想看,如果没有阻尼,你给一个力矩,飞机就会一直加速旋转下去。现实中不会这样,空气阻力会限制角速度。
对上面方程做拉普拉斯变换(零初始条件):
I_z · s² · Ψ(s) = τ_z(s) - D · s · Ψ(s)
整理一下:
Ψ(s) / τ_z(s) = 1 / (I_z · s² + D · s)
这就是偏航通道的传递函数。一个典型的二阶系统,但缺少弹性项(没有K·ψ项)。
个人经验:这个模型虽然简单,但足够用于80%的偏航控制参数整定。我一般先用这个模型做仿真,调出大概参数,再上真机微调。省时省力。
偏航动力学知识体系
下面这张图总结了本章的核心逻辑,我建议你多看几遍:
模型参数怎么获取?
理论讲完了,来点实际的。转动惯量I_z和阻尼系数D怎么得到?
我常用的方法有三种:
| 方法 | 操作方式 | 精度 | 适用场景 |
|---|---|---|---|
| CAD估算 | 用SolidWorks等软件建模,自动计算转动惯量 | 中等 | 设计阶段,快速估算 |
| 摆锤实验 | 悬挂飞机,测量摆动周期反算转动惯量 | 较高 | 真机调试前 |
| 系统辨识 | 给偏航通道输入激励信号,记录响应,拟合参数 | 最高 | 精确建模,自适应控制 |
避坑指南:我曾经用CAD估算的转动惯量直接做控制,结果真机偏航响应比仿真慢了30%。后来才发现,电池、负载等附加质量没算进去。建议CAD估算后,至少做一次摆锤实验验证。
模型简化带来的启示
有了这个简化模型,我们能得到什么?
- 转动惯量I_z越大,系统响应越慢。大飞机、重载荷时,P增益要适当加大。
- 阻尼系数D越大,系统越稳定,但响应也越慢。高速飞行时阻尼增大,可以适当减小D增益。
- 模型是二阶无自平衡系统,意味着纯P控制会有稳态误差。这就是为什么偏航控制通常要用PI。
说白了,这个模型就是告诉你:偏航控制的核心矛盾是“响应速度”和“稳定性”之间的权衡。转动惯量是硬件决定的,我们改变不了。但我们可以通过调整控制参数,来匹配这个系统的特性。
我记得刚入行时,带我的老工程师说了一句话,至今受用:
“控制算法不是万能的。你调参数之前,先看看你的模型对不对。模型错了,调死也调不好。”
嗯,这一章就到这里。模型有了,下一章我们聊聊怎么用这个模型来设计偏航控制器。
公众号:蓝海资料掘金营,微信deep3321