偏航动力学模型:从牛顿到代码

做偏航控制,第一件事是什么?

不是调参数,是搞懂你的飞机到底是怎么转起来的。

我见过太多工程师上来就调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 · α 偏航力矩来源 电机反扭矩差 对角增减转速 简化偏航模型 I_z · ψ̈ = τ_z - D · ψ̇ 传递函数:1/(I_z·s² + D·s) 控制参数整定基础 转动惯量I_z → 影响响应速度 阻尼系数D → 影响稳定性 偏航控制参数整定

模型参数怎么获取?

理论讲完了,来点实际的。转动惯量I_z和阻尼系数D怎么得到?

我常用的方法有三种:

方法 操作方式 精度 适用场景
CAD估算 用SolidWorks等软件建模,自动计算转动惯量 中等 设计阶段,快速估算
摆锤实验 悬挂飞机,测量摆动周期反算转动惯量 较高 真机调试前
系统辨识 给偏航通道输入激励信号,记录响应,拟合参数 最高 精确建模,自适应控制

避坑指南:我曾经用CAD估算的转动惯量直接做控制,结果真机偏航响应比仿真慢了30%。后来才发现,电池、负载等附加质量没算进去。建议CAD估算后,至少做一次摆锤实验验证。

模型简化带来的启示

有了这个简化模型,我们能得到什么?

  • 转动惯量I_z越大,系统响应越慢。大飞机、重载荷时,P增益要适当加大。
  • 阻尼系数D越大,系统越稳定,但响应也越慢。高速飞行时阻尼增大,可以适当减小D增益。
  • 模型是二阶无自平衡系统,意味着纯P控制会有稳态误差。这就是为什么偏航控制通常要用PI。

说白了,这个模型就是告诉你:偏航控制的核心矛盾是“响应速度”和“稳定性”之间的权衡。转动惯量是硬件决定的,我们改变不了。但我们可以通过调整控制参数,来匹配这个系统的特性。

我记得刚入行时,带我的老工程师说了一句话,至今受用:

“控制算法不是万能的。你调参数之前,先看看你的模型对不对。模型错了,调死也调不好。”

嗯,这一章就到这里。模型有了,下一章我们聊聊怎么用这个模型来设计偏航控制器。


公众号:蓝海资料掘金营,微信deep3321