基于Quansar的双自由度直升机离散时间控制器 简介:基于Quansar的双自由度直升机,它有两个直流电机驱动器,俯仰角0和偏航角中 离散时间控制器是为这两个螺旋桨使用根轨迹法设计的 分别使用Matlab对所设计的两个控制器进行仿真,分析并比较设计规范与实际仿真结果 同时,列出了与设计相关的详细信息 在确保两个控制器都符合设计规范后,将俯仰和偏航通道耦合,并对结果进行比较和分析 Matlab脚本,复现对应参考文献,可直接运行仿真出图
双自由度直升机控制这事儿吧,说难不难说简单也不简单。这货俯仰和偏航两个自由度相互纠缠,就像你左手画圆右手画方似的。这次咱们用根轨迹法给这俩通道分别设计离散控制器,Matlab里搭完模型再玩耦合测试,整个过程就跟调试无人机飞控似的刺激。
先看系统建模。俯仰通道传递函数长这样:
% 俯仰通道传递函数 s = tf('s'); G_pitch = 0.35/(s*(s+0.15));零点在原点,极点跑到了-0.15的位置。这时候开环响应稳是稳,但动态性能跟乌龟爬似的。咱们需要加点阻尼,让阶跃响应别晃悠得太厉害。
根轨迹设计这块儿有讲究,先给俯仰通道定个性能指标:
% 设计指标 ts_pitch = 2; % 调整时间2秒 OS_pitch = 5; % 超调不超过5% zeta = abs(log(OS_pitch/100))/sqrt(pi^2 + log(OS_pitch/100)^2); sigma = 4/ts_pitch;算出来阻尼比ζ≈0.69,目标极点得往左拉到-2±2j附近。掏出根轨迹图瞅瞅:
rlocus(G_pitch) sgrid(zeta,0) axis([-5 1 -3 3])这时候不加补偿器的话,闭环极点明显在目标区域外晃荡。于是搬出相位超前补偿器:
D_pitch = 4.5*(s+1.2)/(s+5);这个补偿器把根轨迹往左拽,同时抬高高频增益。闭环响应测试时发现超调刚好卡在4.8%,调整时间1.9秒,算是踩线达标。
基于Quansar的双自由度直升机离散时间控制器 简介:基于Quansar的双自由度直升机,它有两个直流电机驱动器,俯仰角0和偏航角中 离散时间控制器是为这两个螺旋桨使用根轨迹法设计的 分别使用Matlab对所设计的两个控制器进行仿真,分析并比较设计规范与实际仿真结果 同时,列出了与设计相关的详细信息 在确保两个控制器都符合设计规范后,将俯仰和偏航通道耦合,并对结果进行比较和分析 Matlab脚本,复现对应参考文献,可直接运行仿真出图
偏航通道就更有意思了,耦合效应明显:
G_yaw = 0.28/(s*(s+0.1));同样套路走一遍,但设计时得留个心眼——偏航通道对俯仰扰动敏感得很。补偿器参数调到飞起:
D_yaw = 3.8*(s+0.8)/(s+4.5);仿真时发现阶跃响应有轻微震荡,把零点从0.8挪到0.85才消停。这种微调就跟调PID参数似的,差之毫厘谬以千里。
耦合测试才是重头戏。单独通道稳如狗,一耦合就翻车:
% 耦合仿真代码 K = [D_pitch, 0; 0, D_yaw]; sys_cl = feedback(G*K, eye(2)); step(sys_cl)结果俯仰通道超调飙到12%,明显是被偏航通道带节奏了。这时候得掏出耦合补偿矩阵,在反馈环里加了个解耦环节才稳住局面。
最后丢个仿真结果对比图(想象这里有张Matlab生成的阶跃响应对比图),蓝线是解耦前的蛇形走位,红线是解耦后的直线飙升。整个过程就像给直升机装了电子稳定系统,从晃晃悠悠到指哪打哪的蜕变。
代码打包放在GitHub上了,跑的时候注意修改采样时间为0.01秒,不然离散化会出妖蛾子。有闲工夫的可以把超前补偿改成滞后-超前试试,说不定能挤出更好的性能余量。