📄 plotpi.m
字号:
% ====================================
% 互偶水槽PID整定比较和响应指标计算
% ====================================
%
% 清屏,清理工作空间,命令窗口
clear all;
close all;
clc
% PI整定效果数据加载
wwa=load('responsePI5'); % 加载响应曲线法整定PID的数据responsePI5
wwb=load('SMCPI5'); % 加载SMC法整定PID的数据SMCPI5
wwc=load('boundPI5');
wwa(:,2)=wwa(:,5); % T2高度传感器检测数据放到wwa(:,2)
wwb(:,2)=wwb(:,5); % T2高度传感器检测数据放到wwa(:,2)
wwc(:,2)=wwc(:,5); % T2高度传感器检测数据放到wwa(:,2)
% 两种PID响应曲线比较(数据未滤波)
figure;
plot(wwa(:,1),wwa(:,2),'r',wwa(:,1),wwa(:,3),'g',wwb(:,1),wwb(:,2),'k',wwb(:,1),wwb(:,3),'y',wwc(:,1),wwc(:,2),'m',wwc(:,1),wwc(:,3),'b')
grid;
legend('响应曲线法整定PI响应','响应曲线法整定输入','SMC整定PI响应','SMC整定输入','稳定边界整定PI响应','稳定边界整定输入',4);
title('PI整定效果响应曲线(未滤波)')
xlabel ('Time(s)');
ylabel('Respones(V)')
% 移动平均滤波器M=25进行滤波处理
M = 25;
b = ones(M,1)/M;
%y1 = medfilt1(wwa(:,2),55); % Median filtering
%y2 = medfilt1(wwb(:,2),55); % Median filtering
[y1,delay] = filter(b,1,wwa(:,2)); % 响应曲线法滤波
[y2,delay] = filter(b,1,wwb(:,2)); % SMC滤波
[y3,delay] = filter(b,1,wwc(:,2)); % 稳定边界法滤波
figure; % 数据响应曲线比较
plot(wwa(:,1),y1,'r',wwa(:,1),wwa(:,3),'g',wwb(:,1),y2,'k',wwb(:,1),wwb(:,3),'y',wwc(:,1),y3,'m',wwc(:,1),wwc(:,3),'b')
grid;
legend('响应曲线法整定PI响应','响应曲线法整定输入','SMC整定PI响应','SMC整定输入','稳定边界整定PI响应','稳定边界整定输入',4);
xlabel ('Time(s)');
ylabel('Respones(V)')
title('移动平均滤波器(M=25)处理')
% --------------------------------
% 响应曲线法整定PID综合指标
% --------------------------------
disp('***************************************************************************************')
disp(' 响应曲线法整定指标')
disp('***************************************************************************************')
for i6=1:length(wwa(:,1))-1
if wwa(i6,3)~=wwa(i6+1,3)
temp9=i6; % temp9为t0时所对应的数组下标
end
end
quanlity(y1,wwa,temp9);
% --------------------------------
% 响应曲线法整定PID综合指标
% --------------------------------
disp('****************************************************************************************')
disp(' SMC法整定指标')
disp('****************************************************************************************')
for i6=1:length(wwb(:,1))-1
if wwb(i6,3)~=wwb(i6+1,3)
temp9=i6; % temp9为t0时所对应的数组下标
end
end
quanlity(y2,wwb,temp9);
% --------------------------------
% 稳定边界法整定PID综合指标
% --------------------------------
disp('****************************************************************************************')
disp(' 稳定边界法整定指标')
disp('****************************************************************************************')
for i6=1:length(wwc(:,1))-1
if wwc(i6,3)~=wwc(i6+1,3)
temp9=i6; % temp9为t0时所对应的数组下标
end
end
quanlity(y3,wwc,temp9);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -