總結:PID該怎么調,我們該注意什么
①先要保證電機的輸出是線性的,微型四軸等沒有電調的最好先對電機的油門行程和供電電壓進行矯正,保證對電機的控制輸入和電機輸出的力矩程線性關系。
②嚴格注意自己控制程序中的每一步是否有線程安全的問題,不要讓四軸的一次控制運算中使用了不是同一時間的狀態測量值。
③用陀螺作為微分項能減少姿態解算誤差帶來的干擾,但要小心有可能會破壞了PID的控制模型導致控制效果變壞。
④作者強烈建議你使用Kp Ti Td的PID參數形式。
⑤記住Kp Ti Td參數變化對系統產生的影響是什么樣的。
⑥注意調參的時候你是怎么固定你的四軸的。
⑦選擇我上面提到的我的兩種調參方法的一種整定參數。
⑧不要相信僅用PID能調出完美的四軸控制器,PID僅僅能讓你的四軸飛起來而已,更不要相信增量式PID能在四軸的姿態控制中有所作為,牛逼的開源不開源四軸都不僅僅使用了PID控制器。
⑨不要手賤報控制專業
這里附上MATLAB的仿真代碼
[plain] view plain copy%% lynx的四軸飛行器PID調試模型
clc,clear
%被控線性模型
TfPitchNum = [-0.00004584 0.0001312 0.0009171 0.000228];
TfPitchDen = [1 -2.514 2.087 -0.5657];
sysPitch = tf(TfPitchNum,TfPitchDen,0.04); %重新構造無噪聲輸入的模型
%ltiview(sysPitch)
sysPitchZpk = zpk(sysPitch);
%使用標準PID參數的柿子,這個是一個可用的參數
Kp = 6.5;
Ti = 0.8;
Td = 1.1;
% %臨界穩定增益
% Kp = 11.6;
% Ti = 1000;
% Td = 0;
% %齊格勒-尼克爾思整定方法
% Kp = 11.6*0.6;
% Ti = 0.5*1.1;
% Td = 0.125*1.1+0.5;
Ts = 0.04
Ki = Kp*Ts/Ti; %0.3
Kd = Kp*Td/Ts; %17
p2 = Kd;
p1 = -Kp-2*p2;
p0 = Kp+Ki+p2;
ControlSys1Num = [p0 p1 p2];
ControlSys1Den = [1 -1 0];
ControlSys1 = tf(ControlSys1Num,ControlSys1Den,0.04);
SysOpen = series(ControlSys1,sysPitchZpk);
SysSum = feedback(SysOpen,1)
ltiview(SysSum)
ltiview(SysOpen)
%ltiview(ControlSys1)
tf(ControlSys1)
評論
查看更多