matlab小车运动轨迹增量式PID控制
Posted studyer_domi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab小车运动轨迹增量式PID控制相关的知识,希望对你有一定的参考价值。
1、内容简介
略
481-可以交流、咨询、答疑
2、内容说明
PID控制器是一种基于“过去”,“现在”和“未来”信息估计的简单算法。
常规PID控制系统原理框图如图2-1所示,系统主要由PID控制器和被控对象组成。作为一种线性控制器,它根据设定值 rm(t)和实际输出值yout(t)构成控制偏差e(t), 将偏差按比例、积分和微分通过线性组合构成控制量u(t),对被控对象进行控制。对连续时间类型,PID控制方程的标准形式为:
(2-1)
图2-1 PID控制器系统原理框图
式中:e(t) = rm(t) - yout(t),Kp为比例系数,TI为积分时间常数,TD为微分时间常数。
离散PID控制的形式为 :
(2-2)
式中:u(k)为第k次采样时控制器的输出;k为采样序号,k=0,1,2…;e(k)为第k次采样时的偏差值;T为采样周期;e(k-1)为第(k-1)次采样时的偏差值。
离散PID控制算法有如下3类:位置算法、增量算法和速度算法。增量算法为相邻量词采样时刻所计算的位置之差,即
(2-3)
式中:,;
从系统的稳定性、响应速度、超调量和稳态精度等各方面来考虑,、、的作
用如下:
比例系数的作用是加快系统的响应速度,提高系统的调度。越大,系统的响应速度越快,系统的调节精度越高,但易产生超调,甚至会导致系统不稳定。取值过小,则会降低系统的调节精度,使响应速度缓慢,从而延长调节时间,使系统静态、动态特性变坏。
积分作用系数的作用是消除系统的稳态误差。越大,系统的静态误差消除越快,但过大,在响应过程的初期会产生积分饱和现象,从而引起响应过程的较大超调。若过小,将使系统静态误差难以消除,从而影响系统的调节精度。
微分作用系数的作用是改善系统的动态特性,其作用主要是在响应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预报。但过大,会使响应过程提前制动,从而延长调节时间,而且会降低系统的抗干扰能力。
3、仿真分析
clc,clear,close all
load('ysw.mat') % 原始数据
figure,plot(ysw(:,1),ysw(:,2),'*','linewidth',2)
hold on
axis([-50,350,-50,550])
x_pos = ysw(:,1)';
y_pos = ysw(:,2)';
N = length(y_pos);
x_ini = x_pos(1);
y_ini = y_pos(1);
x_real = [];x_real(1) = x_ini;
y_real = [];y_real(1) = y_ini;
error_x = zeros(1,N);
error_y = zeros(1,N);
for i = 2:N
x_ini = x_real(end);
y_ini = y_real(end);
[x_real1,y_real1,error_x1,error_y1] = calculate(x_pos(i),y_pos(i), x_ini, y_ini);
error_x(i) = error_x1;
error_y(i) = error_y1;
x_real = [x_real x_real1];
y_real = [y_real y_real1];
end
time = 1:N;
figure,plot(x_pos,y_pos,'r',x_real,y_real,'*b','linewidth',2);
xlabel('x');ylabel('y');
grid on;axis([-50,350,-50,550])
legend('实际位置','位置跟踪');
figure;plot(time,error_x,'r',time,error_y,'b','linewidth',2);
xlabel('time(s)');ylabel('error');
grid on
title('X,Y跟踪误差')
4、参考论文
略
以上是关于matlab小车运动轨迹增量式PID控制的主要内容,如果未能解决你的问题,请参考以下文章