psopidforobj.m

来自「pso优化bp神经网络的程序,是师兄论文里的程序,希望对大家有用!」· M 代码 · 共 47 行

M
47
字号
%对一个串级系统进行仿真,并且计算绝对误差的矩积分

function Q=PsoPidForObj(kp,ki);
% kp=0.5;
% ki=2;

dt=4;
LP=1000;
k=1;
t=20;
delay=round(120/dt);

%初始化中间变量
x1=0;
x2=0;
x3=0;
x=zeros(1,delay);
%误差
e=0;
R=1;
Q=0;

%中间常数
c1=exp(-dt/t);
d1=1-c1;

for i=1:LP/dt     
    %误差,前一时刻误差
    e=R-x(delay);
    %外环PID
    x1 = x1+dt*e*ki;
    
    r=kp*e+x1;
    x2=x2*c1+d1*r;
    x3=x3*c1+d1*x2;
    
    for j=delay:-1:2
        x(j)=x(j-1);
    end
    x(1)=x3;    
    out(i)=x(delay);
    % 目标值   
    Q=Q+dt*dt*abs(e)*i;    
end
% Q
% figure(2)
% plot(out);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?