
飞控中的系统辨识:频域与时域方法从一次炸机说起去年夏天,我在调试一架四轴飞行器的姿态控制器。PID参数已经调得差不多了,悬停表现尚可,但一做大机动动作——比如急加速前飞然后急停——飞机就开始剧烈震荡,最后直接翻了过去。黑匣子数据回放显示,震荡频率大约在8Hz左右,正好是电机-桨叶系统的谐振频率附近。我花了整整两周时间,反复调整PID参数、修改滤波器截止频率,甚至换了不同型号的桨叶,问题依然存在。直到一位老前辈提醒我:“你知道你的系统到底长什么样吗?你连被控对象的传递函数都不清楚,调参就是在瞎蒙。”这句话点醒了我。从那以后,我开始认真研究系统辨识——用实验数据反推系统的数学模型。今天这篇笔记,就聊聊飞控开发中最实用的两种辨识方法:频域法和时域法。为什么需要系统辨识飞控系统本质上是一个多输入多输出的复杂系统。电机、桨叶、机身结构、传感器响应,这些环节串在一起,构成了一个我们并不完全了解的黑箱。理论建模当然可以做,但实际参数往往和理论值相差甚远——电机的时间常数、桨叶的升力系数、机身的阻尼比,这些都会因为制造公差、老化、温度变化而偏离设计值。系统辨识的价值在于:用实测数据说话。你不需要知道每个物理参数的精确值,只需要知道输入和输出之间的关系,就能得到一个足够准确的数学模型,用于控制器设计。频域辨识:扫频法频域辨识的核心思想很简单:给系统输入不同频率的正弦信号,测量输出响应,然后计算每个频率下的幅值比和相位差,从而得到系统的频率响应特性。