天天看點

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跟蹤誤差')

      
matlab小車運動軌迹增量式PID控制
matlab小車運動軌迹增量式PID控制
matlab小車運動軌迹增量式PID控制

繼續閱讀