1 内容介绍
建立基于干扰估计的机器人非线性反馈控制系统并证明其稳定性,在此基础上提出一种适用于机器人跟踪控制的新型自抗扰控制器.该控制器不需实时计算复杂的机器人动态模型,由两个跟踪微分器(TD)构成:一个用于安排系统的过渡过程;另一个用来估计速度和加速度,TD的滤波特性使其对量测噪声具有抑制作用.由被控对象的控制量与所估计加速度的反馈构成的"扩张状态"来自动检测系统模型和外扰的实时作用并实时进行动态补偿.除了和以往的自抗扰控制器一样具有很好的适应能力和很强的鲁棒性外,它还具有需整定参数少的特点.仿真结果表明,该控制器是有效的且具有很强的鲁棒性,而且系统响应快且超调小.
2 部分代码
%% Controller Simulator
%{
仿真验证现有控制器在电容跳变为最大值的情况下最大抑制周期;
%}
clc;
% load('VirdepData.mat');
OriginErrs = Line_M2(16666:16895);
OriginErrs = OriginErrs'; % 0.01mm
OriginErrs = 10.*OriginErrs; % 0.001 mm
CVirErrs = Line_M5(16666:16895);
CVirErrs = 10.*CVirErrs;
MVirErrs = zeros(0);
PreErr = 0;
err_nosmooth = Line_M5(16666);
Maf_1 = Line_M5(16666-3:16666);
% main loop
for loopCnt = 1:1:length(OriginErrs)
OErr = OriginErrs(loopCnt);
if loopCnt == 1
PreErr = CVirErrs(1);
err_s = OErr;
else
% function [ErrL_S,ErrL_nosmooth,Maf_new] = SuppressVibration_V2(SuppressRatio, ...
% capL,tarL,preErr_nosmooth,Maf)
[err_s,err_nosmooth,Maf_1] = SuppressVibration_V2(1,OErr,30,err_s,Maf_1);
PreErr = err_nosmooth;
end
MVirErrs(loopCnt) = err_s;
end
tcf('er-1');figure('name','er-1');
plot(OriginErrs.*1e-3)
hold on
plot(MVirErrs.*(1e-3)-0.13)
hold on
plot(CVirErrs.*1e-3)
hold on
plot(-0.3*ones(1,length(CVirErrs)))
legend('ori','m','c','errline')
3 运行结果
4 参考文献
[1]袁德祥. 基于自抗扰控制技术的AUV运动控制的研究与仿真[D]. 中国海洋大学, 2012.
[2]李殿起, and 段勇. "用跟踪微分器实现机器人自抗扰控制." 兵工学报 37.9(2016):9.