
基于专家PID控制的MATLAB程序代码.pdf
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
该PDF文档提供了基于专家系统优化的PID控制器在MATLAB中的实现方法和源代码,适用于自动控制领域的学习与研究。
本段落总结了专家PID控制的MATLAB程序代码,并讲解了其原理及实现方法。专家PID控制是一种直接型专家控制器,基于受控对象特性和各种知识设计,无需精确模型信息,而是利用专家经验来确定PID参数。
对于图1中展示的二阶系统单位阶跃响应误差曲线分析得出五种情况:
1. 当 e(k) >M 时(这里假设 M 是一个阈值),说明误差绝对值较大。无论误差趋势如何,都应使控制器输出保持定值以快速减小误差,并避免超调现象。
2. 若e(k)>0 或者 e(k)=0,则表示误差朝向其绝对值增大的方向变化或为常数不变;若此时的误差大于预设阈值M 2,可采取强控制措施来减少误差。如果未达到此条件,可以采用较弱的控制作用。
3. 当e(k) < e(k-1),且 e(k)e(k -1)<0 或者 e(k)=0时,表明系统已趋向于稳定状态或其绝对值正在减小;此时建议保持控制器输出不变。
4. 若误差处于极值点(即e(k) < e(k - 1)同时e(k) > e(k-2),且|e(k)|>M 2),可采取较强控制手段。若 |e(k)|< M 2,则应使用较轻的控制作用。
5. 当误差绝对值非常小时,可以加入积分环节以降低稳态误差。
在MATLAB程序中实现专家PID控制的方法如下:
```matlab
clear all;
close all;
ts=0.001; %采样时间为1ms
sys=tf(5.235e005,[1,87.35,1.047e004,0]); %建立被控对象的传递函数模型dsys=c2d(sys,ts,z); %采用零阶保持器法将连续系统离散化[num,den]=tfdata(dsys,v);%获取离散化后的分子分母多项式系数u_1=0;u_2=0;u_3=0;%控制变量 u(k-1), u(k-2) 和 u(k-3) 的初始值y_1=0;y_2=0;y_3=0;%输出变量 y(k-1), y(k-2) 和 y(k-3) 的初始值x=[0,0,0]; x2_1=0; %利用常规 PID方法整定出来的PID参数kp=0.6; ki=0.03; kd=0.01; error_1=0;%误差e(k-1)的初值for k=1:500 %k为采样步数 time(k)=k*ts; r(k)=1.0; %输入信号为单位阶跃函数 u(k)=kp*error_1+ki*sum(error_1)+kd*(error_1-error_2);%控制器输出计算 y(k)=num(1)*u(k)+num(2)*u(k-1)+num(3)*u(k-2); %系统响应计算 error_2=error_1; error_1=r(k)-y(k); %误差更新end
```
通过以上MATLAB程序,可以实现专家PID控制策略,以达到快速调整误差并减少超调的目的。
全部评论 (0)


