Matlab/Simulink和AMEsim联合仿真(以PSO-PID算法为例)

目录

安装软件和配置环境变量

Matlab/Simulink和AMEsim联合仿真详细流程

非常重要的一点

Simulink模型和AMEsim模型用S-Function建立连接

从AMEsim软件打开Matlab

Matlab里的设置

Matlab的.m文件修改(对于PSO-PID算法)

运行程序


我印象中好像做过Matlab/Simulink和AMEsim联合仿真的分享似的,但翻看了我之前上传的文章又没有,所以这篇文章主要是记录++以Simulink为主的Simulink和AMEsim联合仿真以及操作流程++。

安装软件和配置环境变量

我当时学习主要是看B站的一个UP主上传的视频,目前按照他的方法安装和配置环境变量进行联合仿真,都是可以正常进行的。(只要看软件安装和配置环境,他的例子可以不看,毕竟是要搭建自己的模型)

B站视频:🚪👉:Adams,AMESim,Matlab联合仿真入门

安装包的话在网络上找一找,我的软件版本分别是:

Simcenter Amesim 2020.1

Visual Studio 2019

matlab R2019b

电脑是Windows 11,64位

看了很多网上的资料,AMEsim与Simulink联合仿真的时候用Microsoft Visual Studio C++编译器 比较好。(GNU GCC 64bit是AMEsim自带的。)安装顺序最好是1Visual Studio-2 Amesim-3 matlab

Matlab/Simulink和AMEsim联合仿真详细流程

※非常重要的一点

无论是你的液压模型还是Simulink模型还是matlab的.m文件,都放在一个文件夹下,这个文件夹命名为你需要仿真的项目,要用英文命名,路径不能出现中文!!!

Simulink模型和AMEsim模型用S-Function建立连接

B站视频的P102分40秒 有介绍怎能分别在两个软件里面建立S-Function模块,附上链接。

🚪👉:Matlab为主的AMESim和Matlab联合仿真

我的另外两篇文章也有对S-Function的涉及,感兴趣的可以看看。

🚪👉:AMEsim和Simulink联合仿真生成新的.mexw64液压模型文件

🚪👉:AMEsim第四步simulation报错unable to create an executable for the system解决方法

从AMEsim软件打开Matlab

建立好的液压模型进入第四阶段(Sketch草图-Submodel子模型-Parameter参数-Simulation仿真)即Simulation仿真模式

按理来说只要进入仿真模式就行,但是把上图都点上,以防万一。

通过AMEsim上方工具栏Tools-Matlab打开Matlab软件。

Matlab里的设置

把你刚刚保存的文件夹地址复制一下,输入到下图的位置中回车;

返回上一级列表,把这个文件夹先从路径中删除再从路径中添加(为了确保你的文件夹在仿真的路径中);

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| | |

"设置路径"设置,把最新的路径保存。

Matlab的.m文件修改(对于PSO-PID算法)

常常需要++改动的地方++(因为不同的迭代要求和迭代算法所用的硬件关系,这些参数你需要根据实际情况进行调整)

主程序:

粒子维数、粒子群规模、子程序对应的待优化句柄、迭代次数、速度边界、位置边界

Matlab 复制代码
Dim = 5;                % 维数
SwarmSize = 100;          % 粒子群规模
ObjFun = @PSO_FuzzyPID;   % 待优化函数句柄
MaxIter = 200;            % 最大迭代次数  
MinFit = 0.0001;       % 最小适应值 
Vmax = 1;
Vmin = -1;
Ub = [2 2 10 3 4];      %边界最大值
Lb = [0 0 0 0 0];       %边界最小值

子程序:

更改自己建立的Simulink模型名称,以及每一次仿真时长(如果需要的话)

Matlab 复制代码
function z=PSO_FuzzyPID(x)   %function的名字要与文件名一样    
assignin('base','Kup',x(3));
assignin('base','Kui',x(4));
assignin('base','Kud',x(5));
[t_time,x_state,y_out]=sim('PSO_FuzzyPIDModel',[0,1]); %需要仿真的simulink模型,与其名字一样
z=y_out(end,1);   %返回性能指标输出矩阵

我的另外几篇相关PSO算法联合仿真推荐,感兴趣的可以看看。

🚪👉:基于PSO算法优化PID参数的一些问题

🚪👉:PSO算法寻优模糊PID五个量化/比例因子参数(附代码)

🚪👉:PSO_GA混合算法优化PID参数(附代码)

运行程序

最后一步,是在Matlab打开PSO-PID的主程序,点击运行 ,++迭代寻优完一次屏幕会出现正常的闪烁,然后在它的命令窗口会出现仿真时间。++


基本上就是这些流程

如果帮到了您,可以点一个大大的赞吗?这会对我有很大的帮助。👍

希望我的经历能够给同好们帮助!😀

不清楚的欢迎评论哦!

相关推荐
cdut_suye16 分钟前
踏浪而行,2024年技术创作的星光轨迹
经验分享·笔记·学习方法·热榜·博客之星·学习历程·回顾2024
怪小庄吖2 小时前
翻译:How do I reset my FPGA?
经验分享·嵌入式硬件·fpga开发·硬件架构·硬件工程·信息与通信·信号处理
Evand J2 小时前
matlab绘图——彩色螺旋图
开发语言·matlab·信息可视化
梅见十柒3 小时前
计算机系统原理:一些断言
经验分享·笔记
wenxin-4 小时前
NS3网络模拟器中如何利用Gnuplot工具像MATLAB一样绘制各类图形?
开发语言·matlab·画图·ns3·lr-wpan
联蔚盘云9 小时前
2024.1.22 安全周报
经验分享
硬汉嵌入式10 小时前
《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压
vscode·matlab·开源
汇能感知13 小时前
光谱相机在智能冰箱的应用原理与优势
经验分享·笔记·科技
Tech智汇站14 小时前
Quick Startup,快捷处理自启程序的工具,加快电脑开机速度!
经验分享·科技·学习·学习方法·改行学it
Pandaconda15 小时前
【Golang 面试题】每日 3 题(四十一)
开发语言·经验分享·笔记·后端·面试·golang·go