clear all;%清理数据库中所有数据
close all;%关闭所有界面图形
%下面三步是利用Z变换进行离散化
ts=0.001;%对象采样时间,1ms
sys=tf(133,[1,25,0]);%受控对象的传递函数
dsys=c2d(sys,ts,'z');%连续系统转化为离散系统
[num,den]=tfdata(dsys,'v');%离散化后参数,得num和den值
u_1=0;u_2=0;%设定初值,u_1是第(k-1)步控制器输出量
y_1=0;y_2=0;%设定初值,y_1是第(k-1)步系统对象输出量
x=[0,0,0]';%设定误差x1,误差导数x2,误差积分x3的变量初值
x2_1=0;%设定误差导数x2_1的初值
kp=0.6;%设定比例环节系数
ki=0.03;%设定积分环节系数
kd=0.01;%设定微分环节系数
error_1=0;%设定误差error_1的初值
for k=1:1:5000%for循环开始,k从1变化到5000,每步的增量为1
time(k)=k*ts;%仿真时长[0.001 5]s
r(k)=1.0;% 系统输入信号;给定信号
u(k)=kp*x(1)+kd*x(2)+ki*x(3);%PID控制器;PID的控制输出
%规则1:开环控制
if abs(x(1))>0.8%误差的绝对值大于
u(k)=0.45;%控制器输出量等于
elseif abs(x(1))>0.40
u(k)=0.40;
elseif abs(x(1))>0.20
u(k)=0.12;
elseif abs(x(1))>0.01
u(k)=0.10;
end
%Rule2规则2
if x(1)*x(2)>0|(x(2)==0)%if循环开始,说明误差在朝误差绝对值增大方向变化,或误差为某一常值,未发生变化。
if abs(x(1))>=0.05%内嵌if循环开始,如果误差绝对值大于
u(k)=u_1+2*kp*x(1);%控制器输出量施加较强控制
else
u(k)=u_1+0.4*kp*x(1);%控制器输出量施加一般控制
end
end
%Rule3规则3
if (x(1)*x(2)<0&x(2)*x2_1>0)|(x(1)==0)%说明误差的绝对值朝减小的方向变化,或者已经达到平衡状态
u(k)=u(k);%控制器输出量不变
end
%Rule4规则4
if x(1)*x(2)<0&x(2)*x2_1<0%如果误差处于极值状态
if abs(x(1))>=0.05%内嵌if循环开始,如果误差绝对值大于
u(k)=u_1+2*kp*error_1;%控制器输出量施加较强控制
else
u(k)=u_1+0.6*kp*error_1;%控制器输出量施加一般控制
end%内嵌if循环结束
end%if循环结束
%Rule5:规则5;运用PI控制来消除误差
if abs(x(1))<=0.001 %说明误差的绝对值很小,此时加入积分,减少稳态误差
u(k)=0.5*x(1)+0.010*x(3);%控制器输出量用比例和积分输出
end
%对控制输出设限
if u(k)>=10
u(k)=10;%设控制器输出量上限值
end
if u(k)<=-10
u(k)=-10;%设控制器输出量下限值
end
%经过z变换后的离散化对象为
y(k)=-den(2)*y_1-den(3)*y_2+num(1)*u(k)+num(2)*u_1+num(3)*u_2;
error(k)=r(k)-y(k);%系统误差error的表达式,等于系统输入减去输出
%每步计算时的参数更新
u_2=u_1;u_1=u(k);%u(k)代替u_1
y_2=y_1;y_1=y(k);%y(k)代替y_1
x(1)=error(k);%Calculating P 赋误差error值于x1
x2_1=x(2);%赋值前步计算时的误差导数X2的值等于X2_1
x(2)=(error(k)-error_1)/ts;% 求误差导数x2,用于下一步的计算
x(3)=x(3)+error(k)*ts;% 求误差积分x3
error_1=error(k);%赋误差error值于error_1
end
figure(1);
plot(time,r,'b',time,y,'r');%画图,以时间为横坐标,分别画出系统输入、输出随时间的变化曲线
xlabel('time(s)');ylabel('r,y');%标注坐标
figure(2);
plot(time,r-y,'r');%画r-y,即误差随时间的变化曲线
xlabel('time(s)');ylabel('error');
zhuangjia.rar_专家PID_专家pid控制_专家控制_控制_控制系统MATLAB
版权申诉
156 浏览量
2022-09-20
10:07:12
上传
评论 1
收藏 1KB RAR 举报
朱moyimi
- 粉丝: 65
- 资源: 1万+
最新资源
- JSP基于WEB网上论坛设计与实现(源代码+lw+开题报告+答辩PPT+外文翻译).zip
- JSP基于WEB的图书馆借阅系统的设计与实现(源代码+lw).zip
- 数电实验三:74LS151逻辑功能测试、74LS153逻辑功能测试、74LS153全加器、三输入多数表决电路
- 基于python知识图谱抖音舆情数据可视化分析系统python + flask web + mysql + 知识图谱
- jsp基于Web的可维护的数据库浏览器(源代码+lw+答辩PPT).zip
- jsp基于WEB的考务管理系统的设计与实现(源代码+lw).zip
- jsp基于WEB操作系统课程教学网站的设计与实现(源代码+lw).zip
- 数据库课程实践在IDEA上使用java语言采用JDBC技术连接Mysql数据库,实现购物系统.zip
- JSP基于SSH2的网络在线问答系统.zip
- JSP基于Iptables图形管理工具的设计与实现(源代码+lw).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈