资源简介
项目中运用的模糊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
- 上一篇:C语言开发简单的学生成绩管理系统
- 下一篇:mfc实现八皇后问题
相关资源
- 关联规则fpgrowthc、c#和matlab算法附讲解
- 轴承表面质量缺陷识别与统计系统
- 先进pid控制及其matlab仿真64898
- 声纹识别MATLAB
- Matlab图像嵌入VC++界面的实现
- C++ 水果分类识别matlab代码,有详细的
- sedumi matlab凸优化工具箱
- matlab转C代码
- 发动机声音识别matlab仿真
- 伪彩色增强算法 适用于c、matlab编程
- 基于MATLAB图像处理课程设计
- matlab算法实现声纹识别,带界面
- 数字图像处理与机器视觉(Visual C++与
- MIL视频目标跟踪官方源码MATLAB与C++两
- 能对二值图像进行腐蚀、膨胀、开闭
- 精通MATLAB与C&C++混合程序设计第3版源
- mingw-w64-v7.0.0 (1).zip
- NSGA II代码实现集合包含、讲解及 网络
- Matlab安装MinGW-w64 C/C++ 编译器
- 《数字图像处理与机器视觉-VC++与Ma
- 《高等应用数学问题的MATLAB求解》配
- 中英语种识别matlab程序包含40个测试音
- psins导航算法源码C语言、matlab
- 数字图像处理与机器视觉 Visual C++与
- 三维重建代码合集.zip
- 高斯滤波+卡尔曼滤波+粒子滤波C++&M
- MATLAB单双目标定程序(Opencv C++)
- 精通Matlab与C C++ 混合程序设计
- 数字图像处理与机器视觉 visual C++与
- Visual_C++_MATLAB图像处理与识别实用案例
评论
共有 条评论