模糊PID控制
- 格式:pdf
- 大小:674.62 KB
- 文档页数:13
图 7-20 输出模糊变量 D(粮食状态)隶属度函数图 (2) 模糊规则。根据模型特点最多可抽取 125 条规则,而实际上由于样本数据所包含的 一定规律性和重叠性,再加上对模糊规则的进一步筛选,故抽取出了以下 16 条可信推理规
则: 1. If A = PB and B = PB and C = PB then D = D4 2. If A = PB and B = PM and C = PM then D = D4 3. If A = PB and B = ZR and C = ZR then D = D3 4. If A = PB and B = NM and C = NM then D = D2 5. If A = PB and C = NB and D = NB then D = D1 6. If A = PM and B = PB and C = PB then D = D3 7. If A = PM and B = ZR and C = ZR then D = D2 8. If A = PM and B = NM and C = NM then D = D2
9. If A = PM and B = NB and C = NB then D = D1
10. If A = ZR and B = PB and C = PB then D = D2
11. If A = ZR and B = PM and C = PM then D = D2
12. If A = ZR and B = ZR and C = ZR then D = D1
4) 仿真
这里用 MATLAB 6.1 进行训练和预测。选取某粮食储备库 2002 年 4 月、6 月以及 8 月
中的 50 组测量数据经处理后对 BP 网络进行训练。训练完成后,对 9 月中的 6 组测量数据
的储粮状态进行预测,这 6 组数据经数据处理后用模糊语言可分别描述为:
(1) A=NB B=PB C=NM; (2) A=PB B=ZR C=NM;
2. 基于模糊数学的软测量 1) 软测量在粮情测控系统中的应用 (1) 辅助变量的选择。 选择粮食水分、 粮食温度以及空气湿度作为辅助变量, 粮食状态作为主导变量。
(2) 测量的输入数据的预处理。对粮食状态的预测不是根据粮仓中的某一点粮食的温度、 水分以及空气湿度来进行的,因为这样的预测不能全面反映整个粮仓粮食的实际状态。 在 这里我们采用复合滤波法,其原理是:先将 N 个采样点数据按照从小到大的顺序排列,即 x1≤x2≤…≤xN(N≥3),则可认为测量的数据为
x = x1 + x2 + ...... + xN 1 xN 2
这样就可比较客观地反映实际的粮食状态, 预测的结果也比较真实。 根据水分传感器、温度传感器及湿度传感器所测得的数据来表示水分、 温度的高低和湿
度的大小具有模糊性。通常用隶属度描述模糊集,通过隶属度的大小来反映模糊事物接近 其客观事物的程度。
Fuzzy - simulink 有关模糊 PID 问题概述
最近很多 人问我关于模糊 PID 的问题,我就把模糊 PID 的问题综合了一下,希望对大家 有所帮助。 一、模糊 PID 就是指自适应模糊 PID 吗? 不是,通常 模糊控制和 PID 控制结合的方式有以下几种: 1、大误差范围内采用模糊控制,小误差 范围内转换成 PID 控制 的模糊 PID 开关切换控 制。 2、PID 控制与模糊控制并联而成的混合型模糊 PID 控制。 3、利用模糊控制器在线整定 PID 控制器参数的自适应模糊 PID 控制。 一般用 1 和 3 比较多,MATLAB 自带的水箱液位控制 tank 采用的就是开关切换控制。由于 自适应模糊 PID 控制效果更加良好,而且大多数人选用自适应模糊 PID 控制器,所以在这 里主要指自适应模糊 PID 控制器。 二、自适应模糊 PID 的概念 根据 PID 控制器的三个参数与偏差 e 和偏差的变化 ec 之间的模 糊关系,在运行时不断检 测 e 及 ec,通过事 先确定的关系,利用模糊推理的方法,在线修改 PID 控制器的三个参数, 让 PID 参数可自整定。就我的理解而言,它最终还是一个 PID 控制器,但是因为参数可自 动调整的缘故,所以也能解决不少一般的非线性问题,但是假如系统的非线性、不确定性 很严重时,那模糊 PID 的控制效果就会不理想啦。 三、模糊 PID 控制规则是怎么定的? 这个控制规则当然很重要,一般经验: (1)当 e 较大时,为使系统具有较好的跟踪性能,应取较大的 Kp 与较小的 Kd,同时为避 免系统响应出现较大的超调,应对积分作用加以限制,通常取 Ki=0。 (2)当 e 处于中等大小时,为使系统响应具有较小的超调,Kp 应 取得小些。在这种情况下, Kd 的取值对系统响应的影响较大,Ki 的取值要适当。 (3)当 e 较小时,为使系统具有较好的稳定性能,Kp 与 Ki 均应 取得大些,同时为避免系 统在设定值附近出现振荡,Kd 值的选择根据|ec|值较大时,Kd 取较小值,通常 Kd 为中等 大小。 另外主要还得根据系统本身的特性和你自己的经验 来整定,当然你先得弄明白 PID 三个参 数 Kp,Ki,Kd 各自的作用,尤其对于你控制的这个系统。 四、量化因子 Ke,Kec,Ku 该如何确定? 有个一般的公式:Ke=n/e(max),Kec=m/ec(max),Ku=u(max)/l。n,m,l 分别为 Ke,Kec,Ku 的 量化等级,一般可取 6 或 7。e(max),ec(max),u(max)分别为误差,误差变化率,控制输出的 论域。不过通过我实际的调试,有时候这些公式并不 好使。所以我一般都采用凑试法,根
5
湿度大的隶属度函数为
x≤25
f(x)=
0 ≤20 % [ 1+ (3(x 20%)) 2 ] 1
0.01
0 ≤x 20 % <x ≤100 %
由于任意模糊量的隶属度的大小都是在[0,1]之间,因此可将这一区间分为 5 段:0~ 0.2;0.2~0.4;0.4~0.6;0.6~0.8;0.8~1.0.凡是隶属度在 0~0.2 之间的属于“水分含 量低/温度低/湿度低”;在 0.2~0.4 之间的属于“水分含量较低/温度较低/湿度较低”; 在 0.4~0.6 之间的属于“水分含量正常/温度正常/湿度正常”;在 0.6~0.8 之间的属于 “水分含量较高/温度较高/湿度较高”;在 0.8~1.0 之间的属于“水分含量高/温度高/湿 度高”。 2) 软测量模型的建立
3) 模糊推理的实现
这里我们利用 BP 神经网络实现模糊推理。模糊输入变量 A、 B、C 的论域都为[-3,3],
模糊子集都为{PB,PM,ZR,NM,NB},而模糊输出变量 D 的论域为[-2, 3],模糊子集
为{D1, D2, D3, D4}, 则输入层神经元的个数为 21 个,输出层的神经元为 6 个,隐层
该系统中三种传感器分别测得的数据范围:水分为 10%~16%;温度为-30~50℃;湿 度为 20%~98%RH。 水分含量高的隶属度函数为
0
10 %
f(x)=
[ 1+ ( x ≤x 12%) 2 ] 1 ≤12 % 0.02
温度高的隶属度函数为
12 % <x ≤16 %
0
f(x)= [ 1+ ( xx ≤252)5 2 ] 1
运算 A∪B、“交”运算 A∩B 及“补”运算 的隶属函数分别如下: 定义 3 设 A 与 B 分别是 X 和 Y 上的模糊集,其隶属函数分别是μA(x)和μB(x)。模糊条 件语句“若 A 则 B”表示从 X 到 Y 的一个模糊关系,即 A→B,它的隶属函数为
A B (x) = max{ min[ A(x), B (x)],[1 A(x)] }
定义 1 设给定域(指被讨论的全体对象)U,U 到[0,1]闭区间的任一映射
A :U [0,1];u A(u)
都确定 U 的一个模糊子集 A。 其中,称为模糊子集的隶属函数,称为 u 对于的隶属度。 也就是说,论域 u 上的模糊子集 A 由隶属函数μA(u)来表征, μA(u)的取值范围是
[0,1],μA(u)的大小反映了 u 对于 A 从属程度的高低。正确地确定隶属函数是利用模糊 集合解决实际问题的基础。 定义 2 设 A、B 是论域 U 上的两个模糊子集,对于 U 上的每一个元素,规定 A 与 B 的“并”
据你的经验,先确定 Ku,这个直接关系着你的输出是发散的还是收敛的。再确定 Ke,这 个直接关系着输出的稳态误差响应。最后确定 Kec,前面两个参数确定好了,这个应该也 不会难了。 五、在仿真的时候会出现刚开始仿真的时候时间进度很慢,从 e-10 次方等等开始,该怎么 解决? 这时候肯定会有许多人跳出来说是步长的问题,等 你改完步长,能运行了,一看结果,惨 不忍睹!我只能说这个情况有可能是你的参数有错误,但如果各项参数是正确的前提下, 你可以在方框图里 面加饱和输出模块或者改变阶跃信号的 sample time,让不从 0 开始或者 加 个延迟模块或者加零阶保持器看看…… 六、仿真到一半的时候仿真不动了是 什么原因? 仿真图形很有可能发散了,加个零阶保持器,饱和输出模块看看 效果。改变 Ke,Kec, Ku 的参数。 七、仿真图形怎么反了? 把 Ku 里面的参数改变一下符号,比如说从正变为负。模糊 PID 的话改变 Kp 的就可 以。 八、还有人问我为什么有的自适应模 糊 PID 里有相加的模块 而有的没有? 相加的是与 PID 的初值相加。最后出来的各项参数 Kp=△Kp+Kp0,Ki=△Ki+Ki0,Kd=△ Kd+Kd0。Kp0,Ki0,Kd0 分别为 PID 的初 值。有的系统并没有设定 PID 的初值。 九、我照着论文搭建的,什么都是正 确的,为什么最后就是结果不对? 你修改下参数或者重新搭建一遍。哪一点出了点小 问题,都有可能导致失败。 …… 大家还有什么问题就在帖子后面留言哈,如果模型实在是搭建不成功的话可以给我看看, 大家有问题一起 解决!附件里面是两个自适应模糊 PID 的程序,大家可以参考下! 所含文件: