189 8069 5689

基于matlab的模糊PID控制仿真-创新互联

注:1.本人小白,如有错误还请多多指教

创新互联公司是一家专注于成都做网站、网站设计、外贸营销网站建设与策划设计,旺苍网站建设哪家好?创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:旺苍等地区。旺苍做网站价格咨询:18980820575一、实验设计对象描述及任务 系统描述

  一个温室的室温控制目标是 25℃,温度控制误差范围是(-2℃ ,+2℃),误差的变化率是(-0.5℃ ,+0.5℃), T=10s 为控制周期。被控对象为二阶惯性系统,无时延。建立的对象模型如下:
G ( s ) = K ( T 1 s ) ( T 2 s + 1 ) G(s)=\frac{K}{(T_1s)(T_2s+1)} G(s)=(T1​s)(T2​s+1)K​  其中 K 为系统增益,取值为学号最后两位为 10 ,k=10 ;T1=20 ;T2=58。

控制任务

  设计一个模糊控制器,控制误差和误差变化率的模糊子集不小于5个。设计一个 PID 控制器(包含 P 或 PI 或 PD 或 PID),对相同被控对象进行控制。比较两种控制器的控制效果。

二、实验器材及实验环境

  计算机、Matlab2016 以及 simulink

三、实验方案设计 PID控制设计 1、PID系统结构部框图

  打开 simulink 界面,选择第一个空模板,进入操作界面,打开工具库,搜索需要的工具,选中拖动到空白界面中。根据工具名称,依次选取并连线。双击 Transfer Fcn 根据题目要求,设置传递函数参数如图所示。
  传递函数为:
G = 10 ( 20 x + 1 ) ( 58 x + 1 ) = 10 1160 x 2 + 78 x + 1 G=\frac{10}{(20x+1)(58x+1)}=\frac{10}{1160x^2+78x+1} G=(20x+1)(58x+1)10​=1160x2+78x+110​
  pid仿真图:
pid仿真图
  当 P 的参数为0.19,I 的参数为0.0032,D 的参数为1.9时 PID 曲线接近最好。

2、参数初值及调整

  利用 matlab 自动调节 pid 参数,仿真图如下:
自动pid仿真图
  双击 PID Controller 进入 PID 控制器属性设置界面,根据题目要求设置参数如图所示。
自动调节pid参数

模糊控制系统设计 1、输入模糊化

  隶属度值法是将精确输入量对各语言值的隶属度值作为模糊化结果。因语言值的隶属函数可用离散域上的表格形式表示,也可用连续域上的解析表达式表示,所以这种模糊化方法相当于一个对应的查表或是函数计算过程。

2、隶属度函数设计

  定义输入、输出模糊集。对误差 e 、误差变化 ec 及控制量 Kp 、Ki 、Kd 的模糊集及其论域定义如下:
  NB 和 PB 采用 zmf 和 smf 隶属函数,其它均采用 trimf 隶属函数。e、ec、Kp、Ki 和 Kd 的模糊集均为:{NB,NM,NS,ZO,PS,PM,PB}
  e 的论域为:{-2,-1.5,-1,-0.5,0,0.5,1,1.5,2}
  ec 的论域为:{-0.5,-0.4,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,-0.5}
  Kp 的论域为:{-0.5,-0.4,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,-0.5}
  Ki 的论域为:{-0.1,-0.08,-0.06,-0.04,-0.02,0,0.02,0.04,0.06,0.08,0.1}
  Kd 的论域为:{-2,-1.5,-1,-0.5,0,0.5,1,1.5,2}
  对于第一步中的输入输出变量进行模糊化,各自形成模糊化集合;确定变量论域。误差 e 、误差变化ec及控制量 Kp 、Ki 、Kd 的模糊集和论域确定后,需要对模糊变量确定隶属函数,即对模糊变量赋值,确定论域内元素对模糊变量的隶属度。由系统输出的误差及误差的变化趋势来设计消除系统的误差的模糊控制规则。建立模糊控制表:

Kp的模糊规则表
e/Δkp/ecNBNMNSZOPSPMPB
NBPBPBPMPMPSZOZO
NMPBPBPMPSPSZONS
NSPMPMPMPSZONSNS
ZOPMPMPSZONSNMNM
PSPSPSZONSNSNMNM
PMPSZONSNMNMNMNB
PBZOZONMNMNMNBNB
Ki的模糊规则表
e/Δkp/ecNBNMNSZOPSPMPB
NBNBNBNMNMNSZOZO
NMNBNBNMNSNSZOZO
NBNBNMNSNSZOPSPS
ZONMNMNSZOPSPMPM
PSNMNSZOPSPSPMPB
PMZOZOPSPSPMPBPB
PBZOZOPSPMPMPBPB
Kd的模糊规则表
e/Δkp/ecNBNMNSZOPSPMPB
NBPSNSNBNBNBNMPS
NMPSNSNBNMNMNSZO
NSZONSNMNMNSNSZO
ZOZONSNSNSNSNSZO
PSZOZOZOZOZOZOZO
PMPBNSPSPSPSPSPB
PBPBPMPMPMPSPSPB
3、输出方法

  采用 centroid 面积重心法进行反模糊化。为了获得准确的控制量,就要求模糊方法能够很好的表达输出隶属度函数的计算结果。重心法是取隶属度函数曲线与横坐标围成面积的重心,作为模糊推理的最终输出值,即:
v 0 = ∫ v v μ v ( v ) d v ∫ v μ v ( v ) d v v_0= \frac{∫_vv μ_v(v)dv}{∫_v μ_v(v)dv} v0​=∫v​μv​(v)dv∫v​vμv​(v)dv​
  对于具有 m 个输出量化级数的离散阈情况:
v 0 = ∑ k = 1 m v k μ v ( v k ) ∑ k = 1 m μ v ( v k ) v_0= \frac{\sum^m_{k=1}v_k μ_v(v_k)}{\sum^m_{k=1}μ_v(v_k)} v0​=∑k=1m​μv​(vk​)∑k=1m​vk​μv​(vk​)​

4、建立Matlab模糊系统

  命令行输入 fuzzy,打开模糊规则编辑器。Edit → Add variables → Input ;Edit → Add variables → Output ;Edit → Add variables → Output 。单击选中,分别对 input1 、input2 、output1 、output2 、output3 进行隶属度编辑。对于输入进行命名,分别为误差 e 和误差变化率 ec 。输出分别命名为 Kp 、Ki 、Kd ,其他不变。
Add variables
  添加隶属度函数(隶属度函数中间范围较窄,两边较宽,以使误差较小时快速稳定)(双击输入或输出框后出现如下图,edit/add mfs ,选择添加的个数即可)并设置相应参数。
e隶属度函数
e隶属度函数
Kp隶属度函数
Ki隶属度函数
Kd隶属度函数
  根据规则表编辑规则(共49条)
规则表编辑
  查看规则编辑器和曲面观测器(view/rules view/surface)
规则编辑器
pi

曲面观测器(Ki)
曲面观测器(Kd)
  保存并导入到 workspace 。
导入到workspace(1)
导入到workspace(2)

5、模糊系统Matlab仿真

  输入为终值为25的阶跃函数。
设置终值
  在库里面找到 Fuzzy Logic Controlller 模块,添加 fuzzypidcyq 。
添加fuzzypidcyq
  模糊 pid 仿真图:
模糊pid仿真图

实验结果对比 单位阶跃输入下模糊系统输出

单位阶跃输入下模糊系统输出

单位斜坡输入时模糊系统输出

单位斜坡输入时模糊系统输出

单位阶跃输入时PID输出

单位阶跃输入时PID输出

单位斜坡输入时PID输出

单位斜坡输入时PID输出

实验结果分析 两种控制器比较

  由仿真结果可见两种控制器对系统的各项性能指标都有了改进,常规 PID 还是有超调量的,模糊控制器的超调量几乎为零。PID 控制在速度上优于模糊控制,并且稳态无波动。PID 控制器仿真稳定速度比模糊控制器快很多。这是因为常规 PID 控制算法计算量小,实时性也好。模糊控制的计算量大,具有较大的惯性和滞后性。

工程文件
链接:https://pan.baidu.com/s/1o1fOZd9x17yya7y5643PVg 
提取码:cyqy

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站题目:基于matlab的模糊PID控制仿真-创新互联
文章源于:http://jkwzsj.com/article/dhgjdh.html

其他资讯