基于Simulink的“UAV Toolbox Support Package for PX4 Autopilots”工具箱,可以进行PX4的算法设计,搭建的算法模型可一键下载至Pixhawk飞控板,或者其他基于Pixhawk设计的飞控板。
以下是笔者在姿态控制器设计时,认为需要关注的几个部分:
1、控制系统离散化
程序在硬件上运行时是离散的,例如PID控制器模块中的积分与微分器,信号的采样频率也需要注意。
2、四元数姿态转换
相对于欧拉角,四元数姿态表示方法存储空间小,计算效率高、四元旋转不存在奇异性问题。
3、倾斜与旋转误差分离
倾斜:将坐标轴Z轴对齐,包含俯仰和滚转,对于四旋翼而言,只需改变升力差即可,响应速度较快;
旋转:由反转力矩控制,即偏航,响应时间较长,故采取倾转分离策略。
可对旋转误差进行缩减,使得控制器更关注倾斜控制。
4、信号滤波
一阶惯性环节,对角速度指令、当前角速度、微分前后的信号滤波。
%低通滤波器设计
s=tf(‘s’);
f = 202pi;%滤波器的频率,20hz
Gc = f/(s+f);
t = 0.001;%时间常数,采样时间
LPF = c2d(Gc,t,‘z’)
5、前馈控制
可增加响应速度。
6、控制分配:油门、俯仰、滚转、偏航四个通道控制量分配到四个电机。
传统X型四旋翼无人机分配矩阵:
非中心对称四旋翼无人机:根据旋翼位置进行解算,例如笔者的无人机的分配矩阵是:
7、位置控制回路:HITL (Human in the loop)
就是手动控制,位置控制器待设计。
8、遥控器指令解析
将遥控器信号转化为油门、姿态角(角速度)指令。
实际飞行:熟练控制后可以悬停,还是得加上位置环控制才便于遥控。