• 大小: 2.97KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: Matlab
  • 标签: matlab  

资源简介


迭代学习控制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的矩阵

评论

共有 条评论