三种智能算法优化PID参数软件,MATLABAPP开发

今天的主题是:三种智能算法优化常见传递函数的PID参数,采用MATLAB APP Designer 开发。提供代码源程序,可以自行修改源代码(不是封装软件)

这个软件基本涵盖了所有的传递函数类型,传递函数的参数简单易改。采用了三种不同的算法优化PID参数,包括灰狼,粒子群,麻雀算法,且做了简单的对比。结果也采用表格的方式,一目了然。

画面风格如下:

c602b262957b60589244bdcf24e02c47.png

软件一共分为三部分,接下来对每部分展开细讲:

第一部分: 被控对象模型参数设置

59cdca7fe8cebd1dc8471a73af54597b.png

这一部分有一个选项切换卡,点击这个选项切换卡可以切换传递函数,传递函数都是最常见的,基本上包含了所有传递函数的类型。

选择好相应的传递函数后,大家就可以自行修改每一个传递函数对应的参数了。剩余四个传递函数的界面如下:

4a76e09057893ed5ce8ee95473a019b4.png

除此之外,在点击开始运行之前,最好要先手动设置一个P,I,D参数,也就是这里的Kp,Ti,Kd,设置好之后,点击运行按钮,即可开始采用三种优化算法对P,I,D参数进行优化。

点击重置按钮,会将已经设置的参数全部归零。

第二部分: SSA-PSO-GWO优化PID参数---------单位阶跃响应

这一部分是三种算法的优化结果展示。分别为麻雀算法,粒子群算法,灰狼算法,最后一幅图是三个曲线图的综合图。

这里加了一个Running指示灯,当点击运行时,指示灯会变成绿色,当运行结束后,指示灯会变为灰色。

35efc19c3867a4ed131ab188926a0efa.png

这里说一下三种智能算法采用的目标函数:选择常用的ITAE指标和控制量动作的加权。这么做的目的可避免控制量动作过大,造成控制器损坏。目标函数也很方便修改。

第三部分: 三个算法优化后,阶跃响应曲线的参数表

参数表采用表格的方式呈现,一目了然。参数包括:P,I,D参数,超调量,峰值时间,上升时间,调节时间。

847b66cab924dd19755a719f902a7af1.png

代码:

%Ⅰ型
            %if flag~=2 && flag~=3 && flag~=3 && flag~=4 && flag~=5
            if flag==1
                K=app.KEditField.Value;
                assignin("base",'K',K)
                T=app.TEditField.Value;
                assignin("base",'T',T)
                n=app.nEditField.Value;
                assignin("base",'n',n)
                PI_1
            end
            %Ⅱ型
            if flag==2
                K=app.KEditField_2.Value;
                assignin("base",'K',K)
                Tz=[app.T1EditField.Value app.T2EditField.Value app.T3EditField.Value app.T4EditField.Value app.T5EditField.Value];
                assignin("base",'Tz',Tz)
                n=app.nEditField_2.Value;
                assignin("base",'n',n)
                PI_2
            end
            %Ⅲ型
            if flag==3
                K=app.KEditField_3.Value;
                assignin("base",'K',K)
                T=app.TEditField_2.Value;
                assignin("base",'T',T)
                n=app.nEditField_3.Value;
                assignin("base",'n',n)
                tt=app.mEditField_2.Value;
                assignin("base",'tt',tt)
                PI_3
            end
            %Ⅳ型
            if flag==4
                K1=app.K1EditField.Value;
                assignin("base",'K1',K1)
                T1=app.T1EditField_2.Value;
                assignin("base",'T1',T1)
                n1=app.n1EditField.Value;
                assignin("base",'n1',n1)
                tt1=app.m1EditField.Value;
                assignin("base",'tt1',tt1)


                K2=app.K2EditField.Value;
                assignin("base",'K2',K2)
                T2=app.T2EditField_2.Value;
                assignin("base",'T2',T2)
                n2=app.n2EditField.Value;
                assignin("base",'n2',n2)
                tt2=app.m2EditField.Value;
                assignin("base",'tt2',tt2)
                PI_4
            end
            %V型
            if flag==5
                K=app.KEditField_4.Value;
                assignin("base",'K',K)
                T=app.TEditField_3.Value;
                assignin("base",'T',T)
                n=app.nEditField_4.Value;
                assignin("base",'n',n)
                tt=app.mEditField.Value;
                assignin("base",'tt',tt)
                PI_5
            end

获取完整代码方式:后台回复关键词获取。

关键词:PIDAPP

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天吃饺子

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值