本文在不利用模块控制模块的情况下,使用simulink的常规器件实现模糊控制,虽然和真实的模糊控制有所区别,但实现还是有一定借鉴意义。
题目如下图
控制系统设计如下图
简单介绍一下simulink的基本使用方法,熟悉的人略过,直接看仿真实验搭建
simulink基础操作
第一步:在matlab打开simulink如下图
第二步:选择一个空模块(Blank Model)
第三步:点击如下图,调出库(Library Browser)
第四步:可以在Library Browser中找需要的模块,可以使用下图中1处搜索,常见的可以在下图2,3处找到,4处一般为各种激励如阶跃正弦。找到拖出来即可。
第五步:参数配置,这里介绍一些基本的参数配置,
1)配置仿真时间,本文选择500如下图
2)模块参数,如调出一个传递函数名称如红框,双击可以改参数,改变如右图两处,根据要求的传递参数修改。
3)不常见模块搜索名图下图,第一个可以把数据输出到matlab变量区;第二个为选择器,同样双击可以调节规则。
仿真实验搭建
搭建仿真图如下图,1处即为误差速率(EC),用当前减去前一个值,放大40倍是为了与误差量(E)都处于0-1这个量级;2处就是不同的调节因子U=a*E+(1-a)*EC,具体值可以双击修改;3处为双调节因子时不同情况的选择;4处相当于对误差E取绝对值。
运行得到不同调节因子的数据,则得到的数据会输出到matlab变量窗口如下图,使用数据画图时输入:
最后得到不同因子的阶跃响应如下图
注:该方法没有用模糊模块,虽然看似巧妙,和真的模糊控制还是有差别,只供借鉴。