粒子群优化模糊PID控制的量化因子和比例因子出现问题?请问能帮忙看看么?
第一个问题:在我运行时,出现:"FuzzyLogicController':Initializationcommandscannotbeevaluated.Attempt...
第一个问题:在我运行时,出现:"Fuzzy Logic Controller': Initialization commands cannot be evaluated. Attempt to modify 'fuzwiz' which is a locked (read-only) library" 当我再次运行的时候,上述错误就消失了。请问这是为什么啊?哪里出错了?
第二个问题:我的程序一直不停的运行,最后我就强制停止运行,会出现一下错误:
Error using PSO_FUZZY_PID (line 7)
Simulation aborted
Error in pso (line 28)
fSwarm(i,:) = feval(ObjFun,Swarm(i,:)); % 粒子群的适应值
(以粒子群位置的第i行为输入,求函数值,对应输出给适应值)
请问这是为什么?
因为看您经常回答关于matlab的问题,我又实在不知道出错在哪,请您帮忙看看,因为上传不了文件,我就以图片形式传了我的程序和mdl文件。谢谢 展开
第二个问题:我的程序一直不停的运行,最后我就强制停止运行,会出现一下错误:
Error using PSO_FUZZY_PID (line 7)
Simulation aborted
Error in pso (line 28)
fSwarm(i,:) = feval(ObjFun,Swarm(i,:)); % 粒子群的适应值
(以粒子群位置的第i行为输入,求函数值,对应输出给适应值)
请问这是为什么?
因为看您经常回答关于matlab的问题,我又实在不知道出错在哪,请您帮忙看看,因为上传不了文件,我就以图片形式传了我的程序和mdl文件。谢谢 展开
2个回答
展开全部
1、我在多个版本下进行过测试,情况不尽相同。其中在某个版本的确出现过一次这个问题,但后来一直未能复现那个现象,所以未能进一步分析。
2、大致看了一下程序的思想:这个程序通过粒子群方法对几个增益系数进行优化,目标函数通过对模型仿真足够长的时间求积分型性能指标ITAE,而模型本身则又通过模糊逻辑对PID控制系数进行调整。
程序的绝大多数运行时间都消耗在调用Simulink模型进行仿真上。从我电脑上的情况看,运行一次仿真有时需要十几分钟,有时甚至十几个小时都没结束(与待优化的几个增益系数取值有关),而根据主程序pso的参数设置,每一代迭代就需要调用粒子群规模的次数30,最多可能迭代50代,也就是最多可能仿真1500次。这样很自然会造成【一直不停的运行】,而如果强制停止运行,很自然就是位于调用Simulink进行仿真的那行代码上。
3、对于题主现在的程序,我有几点疑问:
(1)当前的模型使用了FLS,然后用pso方法进行优化,是否有比较可信的文献支撑?仅就对这个系统进行控制来说,总感觉有点把简单问题复杂化了,应该有更简单的做法。希望题主能提供更多的一些背景资料(例如主要参考文献)。
(2)模型中存在一些比较可疑甚至错误的地方。例如,使用Derivative模块提供微分信号是不可靠的做法,而FLC模块前应该用Mux而不是Add(这个错误是致命的,可能求解时间过长的原因主要就是它,我没进一步研究)。
(3)PID系数相当于都叠加了一个基准,这种做法的必要性及其来源?
2、大致看了一下程序的思想:这个程序通过粒子群方法对几个增益系数进行优化,目标函数通过对模型仿真足够长的时间求积分型性能指标ITAE,而模型本身则又通过模糊逻辑对PID控制系数进行调整。
程序的绝大多数运行时间都消耗在调用Simulink模型进行仿真上。从我电脑上的情况看,运行一次仿真有时需要十几分钟,有时甚至十几个小时都没结束(与待优化的几个增益系数取值有关),而根据主程序pso的参数设置,每一代迭代就需要调用粒子群规模的次数30,最多可能迭代50代,也就是最多可能仿真1500次。这样很自然会造成【一直不停的运行】,而如果强制停止运行,很自然就是位于调用Simulink进行仿真的那行代码上。
3、对于题主现在的程序,我有几点疑问:
(1)当前的模型使用了FLS,然后用pso方法进行优化,是否有比较可信的文献支撑?仅就对这个系统进行控制来说,总感觉有点把简单问题复杂化了,应该有更简单的做法。希望题主能提供更多的一些背景资料(例如主要参考文献)。
(2)模型中存在一些比较可疑甚至错误的地方。例如,使用Derivative模块提供微分信号是不可靠的做法,而FLC模块前应该用Mux而不是Add(这个错误是致命的,可能求解时间过长的原因主要就是它,我没进一步研究)。
(3)PID系数相当于都叠加了一个基准,这种做法的必要性及其来源?
追问
最近重新翻了一下相关资料,确实这里是个明显的错误,应该是Mux而不是Add
.以前没有注意到这个问题,所以我重新进行了一下仿真,运行出错。应该说在模糊自整定PID这一块的模型搭建的就有问题,包括对量化因子、比例因子和PID控制器的初始值选值这一块都有问题,那么后面的优化也就出现问题了,这应该是个致命的错误吧。之前,麻烦您了。
追答
您可以再试一试,有问题再追问。
我总觉得现在的做法是把简单问题复杂化了,不过也可以理解,很多论文为了发表或者毕业,都是类似的路数,否则采用传统的做法,就算效果好,也体现不出创新啊 ;-p
来自:求助得到的回答
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询