• 大小: 1.6MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-02
  • 语言: C/C++
  • 标签: Matlab  

资源简介

项目中运用的模糊PID的算法仿真实验和搜集的关于PID各个方向的硕士参考论文,基本包括PID的各个方向:自整定,变论域模糊PID……还有部分模糊PID的c语言源码。

资源截图

代码片段和文件信息

%模糊pid程序
clear all;
a=readfis(‘sanjiao‘);%读取模糊推理的参数

%% 传递函数定义部分
ts=1;  %采样周期
s=tf(‘s‘);
sys=tf(0.2048[200.91]‘inputdelay‘12.97);  %传递函数表达式
dsys=c2d(systs‘z‘);  %将连续的时间模型转换成离散的时间模型
[numden]=tfdata(dsys‘v‘);  %获得离散还建模型的分子分母矩阵

%% 模糊PID参数设定
u_1=0.0;u_2=0.0;u_3=0.0;u_5=0;u_4=0;u_6=0;u_7=0;u_8=0;u_9=0;u_10=0;u_11=0;u_12=0;u_13=0;u_14=0;  
y_1=5;  %初始环境温度设定
y_2=0;y_3=0;
x=[000]‘;  %误差/累加误差/误差积分初始化
error_1=0;  %上一时刻温差初始化
e_1=0.0;  %误差初始化
ec_1=0.0;  %误差变化率初始化

%% PID参数初值初始值
kp0=33;
ki0=0.00001;
kd0 =150; 

%% 升温过程
for k=1:1:1000
time(k)=k*ts; 
rin(k)=40;  %设定温度值

%解模糊部分
k_pid=evalfis([e_1ec_1]a);  %计算模糊推理输出KP.KI.KD参数增量
    kp(k)=kp0+k_pid(1); %Kp解模糊结果(注释掉解模糊结果得到普通PID)
    ki(k)=ki0+k_pid(2); %Ki解模糊结果
    kd(k)=kd0+k_pid(3); %Kd解模糊结果

yout(k)=den(1)*y_1+num(2)*u_13+num(1)*u_14;  %z变换后的离散对象(z变换见word注释)

%输入参数及使用参数计算
error(k)=rin(k)-yout(k);  %输入温度差
x(1)=error(k);   %x为输入温度差
x(2)=error(k)-error_1;  %误差变化率计算
x(3)=x(3)+error(k);  %累计误差计算

%% 积分分离PID开关选择,有利于减小超调量
%M=1不使用积分分离,M=2使用分段式积分分离PID,M=3使用开关式积分分离
M=1;
if M==3  %开关式积分分离
    if abs(error(k)>=1)
        beta=0;
    else beta=0.9;
    end
end

if M==2;  %分段式积分分离PID
    if abs(error(k)>=30&abs(error(k)<=40))beta=0.000000001;
    elseif abs(error(k)>=20&abs(error(k)<=30))beta=0.000001;
        elseif abs(error(k)>=5&abs(error(k)<=20))beta=0.00002;
            elseif abs(error(k)>=0&abs(error(k)<=5))beta=0.00005;
    else beta=0;
    end
    
else if M==1;  %无积分分离PID
         beta=1;
    end
end

%% 实时输出功率计算
u(k)=kp(k)*x(1)+kd(k)*x(2)+ki(k)*x(3)*beta;%实时输出功率功率

% if k==2000;  %增加扰动测试抗扰动性能
% u(k)=-2000;
% end

% if u(k)>1000;  %功率限幅有利于减小超调量
%     u(k)=1000;
% end

%% 迭代过程        
u_14=u_13;
u_13=u_12;
u_12=u_11;
u_11=u_10;
u_10=u_9;
u_9=u_8;
u_8=u_7;
u_7=u_6;
u_6=u_5;
u_5=u_4;
u_4=u_3;
u_3=u_2;
u_2=u_1;
u_1=u(k);
y_3=y_2;
y_2=y_1;
y_1=yout(k);
e_1=x(1);
ec_1=x(2);
error_2=error_1;
error_1=error(k); 
end

%% 画图部分
showrule(a);
%timerin‘b‘
figure(1);
plot(timerin‘b:‘‘LineWidth‘1.5)
hold on;
plot(timeyout‘r‘‘LineWidth‘2);
hold on;
xlabel(‘时间/s‘);ylabel( ‘实时温度曲线/℃‘);
legend(‘设定温度‘‘模糊PID‘);
title(‘温度变化曲线图‘);
grid on;
hold on;

figure(2);plot(timekp‘r‘‘LineWidth‘1.5);
xlabel(‘时间/s‘);ylabel( ‘Kp值 ‘);
title(‘Kp变化曲线图‘);
grid on;

figure(3);plot(timeki‘g‘‘LineWidth‘1.5);
xlabel(‘时间/s‘);ylabel( ‘Ki值 ‘);
title(‘Ki变化曲线图‘)
grid on;

figure(4);plot(timekd‘b‘‘LineWidth‘1.5);
xlabel(‘时间/s‘);ylabel( ‘Kd值 ‘);
title(‘Kd变化曲线图‘)
grid on;

figure(5);plot(timeu‘m‘‘LineWidth‘1.5);
xlabel(‘时间/s‘);ylabel( ‘输出PWM ‘);
title(‘实时输出功率‘)
grid on;

figure(6);
plotfis(a);%绘制模糊推理系统的推理过程结构框图此处可以进行模糊PID的参数修改,在第3行读取模糊PID参数修改读取名字即可
fuzzy sanjiao.fis

%% 以下为响应性能指标评价
%误差泛函数指标,4项指标越小越好
k=1:1:1000;
IAE=trapz(kabs(error(k)))         % IAE 
ISE=trapz(kerror(k).^2)           % ISE 
ITAE=trapz(kk.*abs(error(k)))     % ITAE
ITSE=trapz(kk.*(error(k).^2))     % ITSE

%% 传

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-12-18 10:50  PID硕士期刊论文及源码\
     目录           0  2019-12-17 23:49  PID硕士期刊论文及源码\Matlab仿真源码\
     文件      456206  2019-12-17 23:47  PID硕士期刊论文及源码\Matlab仿真源码\Matlab仿真程序说明.docx
     目录           0  2019-12-17 23:24  PID硕士期刊论文及源码\Matlab仿真源码\模糊PID\
     文件        4373  2019-12-17 21:57  PID硕士期刊论文及源码\Matlab仿真源码\模糊PID\fuzzy_PID.m
     文件        2342  2019-11-09 19:07  PID硕士期刊论文及源码\Matlab仿真源码\模糊PID\sanjiao.fis
     文件      493694  2019-12-17 23:18  PID硕士期刊论文及源码\Matlab仿真源码\模糊PID\模糊PID参数性能影响.pptx
     文件         166  2019-12-17 22:27  PID硕士期刊论文及源码\Matlab仿真源码\模糊PID\说明.txt
     目录           0  2019-12-17 23:50  PID硕士期刊论文及源码\Matlab仿真源码\遗传整定模糊PID\
     文件        5387  2019-12-17 23:14  PID硕士期刊论文及源码\Matlab仿真源码\遗传整定模糊PID\ga_fuzzy_pid.m
     文件        2342  2019-11-09 19:07  PID硕士期刊论文及源码\Matlab仿真源码\遗传整定模糊PID\sanjiao.fis
     文件        2188  2019-12-04 00:53  PID硕士期刊论文及源码\Matlab仿真源码\遗传整定模糊PID\subprogram.m
     文件         234  2019-12-17 23:24  PID硕士期刊论文及源码\Matlab仿真源码\遗传整定模糊PID\说明.txt
     文件      852303  2019-12-17 23:20  PID硕士期刊论文及源码\Matlab仿真源码\遗传整定模糊PID\遗传整定PID参数影响.pptx
     文件         112  2019-12-18 10:52  PID硕士期刊论文及源码\完整项目百度网盘链接.txt
     目录           0  2019-12-17 23:28  PID硕士期刊论文及源码\项目核心C源码\
     文件        7642  2016-09-02 14:18  PID硕士期刊论文及源码\项目核心C源码\pid_fuzzy.c
     文件         542  2016-09-02 14:18  PID硕士期刊论文及源码\项目核心C源码\pid_fuzzy.h
     文件          54  2019-12-17 23:29  PID硕士期刊论文及源码\项目核心C源码\说明.txt

评论

共有 条评论