資源簡介
迭代學習控制PID學習率參數優化matlab程序,有注釋,適合初學者。
代碼片段和文件信息
clear?all
clc
%求:KpKiKd
%本程序說明:針對一種連續系統的傳遞函數,先把它轉換為離散,目的是
%求Markov矩陣,通過矩陣運算,求出最佳的適合學習的KpKiKd參數.
disp(‘原始連續傳遞函數H(s)為:‘);
num2=[0?40?20];
den2=[10?34?16];
%%顯示連續的傳遞函數
sys=tf(num2den2);
%%波特圖
%?figure(1)
%?bode(sys)
[A?B?C?D]=tf2ss(num2den2);
?????disp(‘狀態方程系數ABCD‘);
??????A
??????B
??????C
??????D
%求離散系統,連續系統轉換為離散
Ts=0.4;%采樣時間.自己設定,程序入口的參數
Number=60/Ts?+1;%求仿真過程中的數據點個數
[num?den]=c2dm(num2den2Ts‘zoh‘);%傳遞函數,用零階保持器
Ut=ones(1Number);?t=linspace(060Number);
sysLs=tf(numden-1);
%%顯示轉換后離散傳遞函數
?disp(‘轉換為z傳遞函數H(z)為:‘)
?sysLs
%[yld?ylx]=step(num2den2t);%連續系統階越,結果與下式相同
[yd?yx]=dstep(numdenNumber);
SystemStop=0;%系統能否繼續運行標志
[pz]=pzmap(sys);
for?i=?1:length(p)
????if?p(i)>=0
????????disp?(‘此系統有極點位于右半平面,不穩定,不適合學習控制,程序終止‘)
???????????p;
????????SystemStop=1;%系統能否繼續運行標志
????break;
????end??%退出for循環
end
if?SystemStop==1
????return;%系統停止
end
%求Hp傳遞矩陣,目的是求markov矩陣
temp1=0;temp2=0;
Hp=zeros(1Number-1)?;
for?i=1?:?Number-1%其實就是對應Kp的矩陣
- 上一篇:matlab實現語音處理
- 下一篇:matlab 轉stl格式文件
評論
共有 條評論