本研究结合反步法控制与最小二乘法辨识技术,采用MATLAB进行无人艇航迹跟踪融合仿真实验。通过优化控制策略,提高无人艇的航行精度和稳定性。
无人艇 控制与辨识融合 基于反步法控制方法与最小二乘法辨识的融合仿真 matlab m文件
lear;
close all;
clc;
%状态方程参数
K=0.3554;
T=2.3028;
Y=[0;0]; % [艏向角速度;艏向角]
faid=pi2;%目标艏向角
dt=0.01;
%反步法控制参数
k1=3.3;k2=0.08;
ww0=0;
for i = 1:50/dt % dt采样时间
e = faid - Y(2);
dfaid = 0;
ddfaid = 0;
%反步法控制 a为控制器输出舵角
a = T*K*[e + ddfaid + k1*(dfaid - Y(1))] + T*K*(k2 * (dfaid + k1*e - Y(1)) + Y(1)/T);
% 输出限幅弧度
fz=0.5;
if a < -fz
a = -fz;
else
if a > fz
a = fz;
end
end
%输出变化率限制弧度
bhl=0.2;
if (a-ww0)*dt>bhl
a = ww0 + bhl*dt;
else
if (a-ww0)*dt<-bhl
a = ww0 - bhl*dt;
end
end
ww0=a;
Y=runge_kutta(@kt,Y,dt,a,K,T); %一阶线性
t(i) = dt*(i-1);%时间画图
r(i)=Y(1);%艏向角速度r
f(i)=Y(2);%艏向角fai
b(i)=faid;%目标艏向角
end
figure(1)
plot(t,b,LineWidth, 1.5);
hold on;
plot(t,f,r, LineWidth, 1.5);
legend(目标艏向角,实际艏向角);
xlabel(时间(ts));
ylabel(艏向角(rad));