自动控制原理分享报告——模糊PID控制仿真步骤)

自动控制原理分享报告——仿真步骤


qiqi

参考https://wenku.baidu.com/view/140a0da702020740be1e9bcb.html

https://wenku.baidu.com/view/140a0da702020740be1e9bcb.html

PID模型

原理展示

simulink展示

.
.

模糊控制模型

原理展示

本伺服电机跟踪系统的总体结构框图如下图所示,我们可以看到输入模糊逻辑控制器的输入语言量选择偏差 e 和偏差率 ec ,输出语言变量为 ∆Kp、∆Ki、∆Kd ,构造一个双输入三输出的模糊控制器,语言变量的模糊集合为{NB,NM,NS,0,PS,PM,PB},由 7 个模糊值将集合划分开,分别对应负大、负中、负小、零、正小、正中、正大。 e、ec、∆Kp 、∆Ki 和 ∆Kd 的量化论域范围都取为{-3,-2,-1,0,1,2,3}。量化因子 Ke=3/emax,Kec=3/ecmax,缩放因子:Kp=3/pmax,Ki=3/imax,Kd=3/dmax。
z

仿真演示

  1. Matlab命令窗输入 fuzzy ,弹出如下窗口:
    z
    我们可以选择增加输入(Add Variable)来实现双入单出控制结构。如图:
    .
    输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。

首先我们要确定描述输入输出变量语言值的模糊子集,并设置输入输出变量的论域,然后我们为模糊语言变量选取相应的隶属度函数。

在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。首先我们打开Member Function Edit窗口.如下图所示:
https://img-blog.csdnimg.cn/20191216204556676.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NTU0NDI4,size_16,color_FFFFFF,t_70
按照原理中给出的参数进行设计:
将范围设到[-3,3],隶属函数添加到7
.
然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。最终结果如下图:
.
根据控制规则表,各参数之间的调节规则可以
写成条件语句的形式,如下:
If e is Ai,and ec is Bi,Then k_p is Ci,and k_i isDi,and k_d is Ei
  在FIS Editor菜单栏下的Edit中打开“Rules”,即可进行规则的添加,依照上述规则,添加完成后,如下
..
将其导出 fis文件的保存
这一步有坑,需要注意因为,一般大家保存文件都是,把文件保存在某个文件夹里面,这无可厚非,绝大多数情况也是这样的。包括在一般的matlab编程中,保存文件也是保存在matlab可以“识别”的空间里面,即我们的.m所在的文件中。然而,对于这个模糊控制器fis文件,更加要注意的是需要”To Workspace” 而不是“To file”(大多数情况我们存matlab文件是“To file”)。我之前也一直是这么保存、打开fis文件。然而,在下面的第三步中“基于Matlab的Simulink Library 的控制器”,需要用到fis逻辑,并且在命令窗口也能够把这个fis文件读入(或者也叫加载吧,但是命令是 readfis)也没问题,不报错。然而,就算在编译仿真的时候老是通过不了,主要 错误就是找不到那个fis文件(“未定义函数或变量”),然而在命令窗口是明明可以读取的。如下图所示:
正常导出
.
读取结果:
.
运行报错:
z
刚开始,实在找不出问题,就去百度,也有几个人遇到此问题,不是沉贴多年的僵尸贴就是随便顶的。不过,有一个用户提到过 存储的路径问题,也就是存储到Workspace还是File的。这里的是workSpace,一定要注意
应该如下:
.
进行如下设置,
.

建立simulink模型,如下图:
.
导入。
.

..
运行报错,原因是模型的输入输出参数不对应,但不知道为什么。

卡到这里,目前搜到的结果
https://ww2.mathworks.cn/matlabcentral/answers/128865-invalid-setting-for-input-port-dimensions-of-induction-demux-the-dimensions-are-being-set-to-1-t

https://zhidao.baidu.com/question/80136039.html

错误问题分析:论文的仿真的传函不正确,根据刚刚模糊原理的讲解,应该加入一个PID控制模块。
https://blog.csdn.net/m0_37763336/article/details/89325795 结合这篇参考,我们加入了PID控制模块,参数选外部参数
.
最终图:.
结果图:
.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值