PSO、GA与simulink模型联合仿真分析(超详细算法解析)

这篇具有很好参考价值的文章主要介绍了PSO、GA与simulink模型联合仿真分析(超详细算法解析)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

1.联和仿真函数介绍

1.1 assignin函数

1.2 sim函数

1.3  feval函数

2.使用粒子群算法优化simulink模型中的PID调节参数 

2.1实现程序

2.2仿真结果

3.使用遗传算法优化simulink模型中的PID调节参数 

3.1实现程序

3.2仿真结果

4.总结


前言

上几篇文章我们介绍了用常规遗传算法以及其工具箱、粒子群算法求多目标或者多元函数的最大值或者最小值问题,这篇文章将介绍如何利用优化算法与simulink联合仿真,优化控制中需要调节的参数问题。

由于手动调参会非常麻烦,而且即使调节效果较好也难以找到全局最优解,所以非常有必要去使用优化算法全局寻优的能力进行自动调参,本篇文章以典型的PID调参为例进行介绍。其关键的地方在于:①如果在simulink建模,如何实现优化算法与simulink的联合仿真②选择适当的性能指标,或者说目标函数。

1.联和仿真函数介绍

与simulink联合仿真,常见的操作是在matlab命令行语句控制simulink的仿真和优化算法的迭代,当然也可以用s函数将优化算法编写到simulink模块,本文采样前一种,所以有必要介绍其中重要的两个函数。

1.1 assignin函数

作用:为指定工作区中的变量赋值

格式:assignin(ws,var,val) 将值 val 赋给工作区 ws 中的变量 var。

例如,assignin('base','x',42) 将值 42 赋予 MATLAB® 基础工作区中的变量 x

1.2 sim函数

  • 批量仿真
    当Simulink模型已经固定下来需要调参或者需要批量仿真的时候,循环语句+sim()函数能够轻松实现这个目标,而且还可以使数据自动导出保存。
  • 参数优化
    这其实已经是以函数的方式调用simulink模型了,这样的话,MATLAB一众的优化函数自然就能够用上了
  • 性能提升
    使用函数调用以后,仿真的时间是能够降下去的,主要是因为图形界面的开销没有了
格式:[T,X,Y1,...,Yn] =sim('model',Timespan, Options, UT)

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

 更详细的介绍可以官方help文档。

参考链接:

[Matlab] Simulink用得多了,不知道sim()函数你又知多少? - 知乎

对 Simulink 模型进行仿真 - MATLAB sim- MathWorks 中国

1.3  feval函数

[y1,...,yN] = feval(fun,x1,...,xM) 使用函数的名称函数句柄以及输入参数 x1,...,xM 来计算函数的结果。

如:

示例: fun = 'cos'

示例: fun = @sin

再例如以下是等价的:

fh = @eig;
[V,D] = fh(A)

[V,D] = feval(@eig,A)

2.使用粒子群算法优化simulink模型中的PID调节参数 

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

2.1实现程序

这里假设粒子搜索的P、I、D三个维度/变量上下限不一样(虽然设置的一样),它的初始化方法会于单变量函数不同,读者可以细细体会。

对于同一个程序求同一个目标函数的最大值或者最小值有两种方法,一种是将适应度函数取反或者倒数,这样处理后,最优解=群体最佳适应度的相反数或者倒数;第二种是采用相同的适应度函数,但是位置和速度更新上会有变化,详细可以查看我的上篇文章,详细介绍了如何用同一程序稍加改动即可实现求解同一目标函数的最大值和最小值。

上篇文献链接:

粒子群算法PSO求解最大值和最小值案例(超详细注释)_Mr. 邹的博客-CSDN博客

优化性能(ITAE)指标:

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

注:对于这种性能指标只是最小化即可,实际上很多优化问题还会有约束条件,后面会慢慢学习并与大家分享。

本篇文章的粒子群优化PID参数程序 

目标函数:

function z=PSO_PID(x)
assignin('base','Kp',x(1));
assignin('base','Ki',x(2));
assignin('base','Kd',x(3));
[t_time,x_state,y_out]=sim('PID_Model',[0,10]);
z=y_out(end,1);

2.2仿真结果

以简单的被动对象为传递函数,跟踪单位阶跃曲线,模型如下:

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

由于是求最小值,而取目标函数为适应度函数,所以适应度是呈下降的趋势;由于这里PID优化参数中i的变化很小,为了展示其优化的过程,所以将PID3个参数的优化值分别拿出来展示。

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

3.使用遗传算法优化simulink模型中的PID调节参数 

这里直接使用遗传算法库函数GA进行优化,推荐大家去看我下面这篇文章,有关于库函数GA和工具箱的详细使用案例:

遗传算法、遗传算法库函数ga和gamultiobj、遗传算法工具箱GADS实例介绍_Mr. 邹的博客-CSDN博客

3.1仿真结果

PSO、GA与simulink模型联合仿真分析(超详细算法解析)

4.总结

①对于这样在matlab界面仿真分析,实际上每次优化simulink模型都会运行一次,如果模型稍复杂些,可能运行时间会很长,所以还有其他的方法,后续会进行学习与大家分享。

②对于粒子群算法而言Kp、Ki、Kd三个变量参数其实就是一个粒子的三个维度,或者说三个搜索的最优位置坐标,而适应度值即为最小化的ITAE性能指标

注:由于本人也是在不断地学习期间,所以如果文章中有什么错误,欢迎大家指正批评,谢谢!文章来源地址https://www.toymoban.com/news/detail-463951.html

到了这里,关于PSO、GA与simulink模型联合仿真分析(超详细算法解析)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 对比 GA 、PSO 、DE三种算法 求解连续优化问题的性能

    摘要: 演化计算又称为进化算法、进化计算,是一种元启发式方法。搜索过程是从一个初始解的集合(称为初始种群)开始的,种群中的每一个解都沿着一定的轨迹搜索,每前进一步称为种群的进化,得到的解集称为种群的一代。这样便增加了在庞大解空间中找到最优解的概

    2024年02月08日
    浏览(39)
  • 基于遗传算法改进的支持向量机多分类仿真,基于GA-SVM的多分类预测,支持相机的详细原理

    背影 支持向量机SVM的详细原理 SVM的定义 SVM理论 遗传算法的原理及步骤 SVM应用实例,基于遗传算法优化SVM的多分类预测 完整代码包括SVM工具箱:https://download.csdn.net/download/abc991835105/88175549 代码 结果分析 展望 多分类预测对现代智能化社会拥有重要意义,本文用遗传算法改进

    2024年02月13日
    浏览(38)
  • simulink与modelsim联合仿真buck闭环设计 主电路用simulink搭建,控制电路完全有verilog语言实现

    simulink与modelsim联合仿真buck闭环设计  主电路用simulink搭建,控制电路完全有verilog语言实现(包括DPWM,PI补偿器) 适用于验证基于fpga的电力电子变换器控制,由于控制回路完全由verilog语言编写,因此仿真验证通过,可直接下载进fpga板子,极大缩短了开发数字电源的研发周期。

    2024年01月16日
    浏览(43)
  • 【PX4&Simulink&Gazebo联合仿真】在Simulink中使用ROS2控制无人机进入Offboard模式起飞悬停并在Gazebo中可视化

    本篇文章介绍如何使用ROS2控制无人机进入Offboard模式起飞悬停并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。 环境: MATLAB : R2022b Ubuntu :20.04 LTS Windows :Windows 10 ROS :ROS2 Foxy Python: 3.8.2 Visual Studio :Visual Studio 2019 PX4 :1.13.0 ROS2的应用程序管道非常简单,这要

    2024年02月22日
    浏览(59)
  • 【PX4&Simulink&Gazebo联合仿真】在Simulink中使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化

    本篇文章介绍如何使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。 环境: MATLAB : R2022b Ubuntu :20.04 LTS Windows :Windows 10 ROS :ROS2 Foxy Python: 3.8.2 Visual Studio :Visual Studio 2019 PX4 :1.13.0 ROS2的应用程序管道非常简单,这要

    2024年02月22日
    浏览(69)
  • 【Simulink专题】Simulink模型设置(二):诊断、硬件实现、模型引用、仿真目标

    Simulink中模型设置是关乎着整个模型的运行模式以及代码生成样式,不同的设置关乎着不同的结果,今天就给大家讲解下作者对整个模型设置的理解,有疑问的地方还需要大家多多指出,谢谢 使用版本:MATLAB 2022a 【Simulink专题】Simulink模型设置(一):求解器、数据导入/导出

    2024年01月18日
    浏览(42)
  • 基于GA遗传优化的混合发电系统优化配置算法matlab仿真

    目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1遗传算法基本原理 4.2 混合发电系统优化配置问题 4.3 基于GA的优化配置算法 染色体编码 初始种群生成 适应度函数 选择操作 交叉操作 变异操作 5.完整工程文件       基于GA遗传优化的混合发电系统优化配置

    2024年01月25日
    浏览(48)
  • MPC(模型预测控制)-Simulink仿真

    一、为什么使用MPC控制器? ① MPC可以处理多输入耦合控制多输出的问题: ② MPC可以处理对于控制量有约束的问题 比如,驾驶汽车的时候,汽车速度和转角都有上限 ③ MPC具有预测效果 即MPC考虑的不是根据当前参考值进行控制,而是根据预测时间内的参考去预测当前的控制量,

    2024年01月25日
    浏览(44)
  • MATLAB 之 Simulink系统的仿真与分析

    系统的模型建立之后,选择仿真参数和数值算法,便可以启动仿真程序对该系统进行仿真。 在系统仿真过程中,事先必须对仿真算法、输出模式等各种仿真参数进行设置。在模型编辑窗口打开仿真参数设置对话框有以下方法。 (1) 单击工具栏中的 Model Configuration Parameters 按

    2024年02月03日
    浏览(42)
  • Simulink|光伏并网逆变器低电压穿越仿真模型

    目录 主要内容      模型研究    1.模型总览 2.boost模块 3.Inverter模块 4.控制模块 5.信号模块   结果一览    下载链接  该模型为光伏逆变器低电压穿越仿真模型,采用boost加NPC拓扑结构,基于MATLAB/Simulink建模仿真。模型具备中点平衡SVPWM控制,正负序分离控制,pll,可进

    2024年01月23日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包