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的主程序,点击运行 ,++迭代寻优完一次屏幕会出现正常的闪烁,然后在它的命令窗口会出现仿真时间。++


基本上就是这些流程

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

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

不清楚的欢迎评论哦!

相关推荐
GJGCY10 小时前
财务智能体落地实践:RPA、大模型与规则引擎如何构建业财自动化闭环?
经验分享·ai·自动化·财务·智能体
汇策研习社13 小时前
改良版ADX指标实战指南:告别传统ADX滞后、震荡误判难题
大数据·经验分享·金融·区块链·fastbull
tcpinchezhuwu14 小时前
教育行业AI落地实践:夜灯公考AI选岗与智能答疑系统架构解析
经验分享
cszn202615 小时前
AI如何自动识别PDF转换废标风险?智能评审项目实践
经验分享
卡梅德生物科技小能手15 小时前
卡美德生物科普MMP9(基质金属蛋白酶9):细胞外基质重塑的关键调节因子
经验分享·深度学习·生活
yyt36304584116 小时前
KlineChartQuant Tooltip 高频交互 200FPS 性能优化完整复盘
前端·经验分享·性能优化·typescript·vue·交互·chrome devtools
LuminousCPP17 小时前
C 语言集中实践全记录:顺序表 + 单链表原理实现与通讯录项目实战【附可运行源码】
c语言·开发语言·数据结构·经验分享·笔记
EW Frontier21 小时前
GRAIL-SCML:一种几何正则化自适应集成似然的波达方向估计算法【附MATLAB代码】
matlab·自适应·宽带·doa估计·波达方向估计·几何正则化·窄带
浩瀚地学1 天前
【面试算法笔记】0202-链表-基本功能实现
java·经验分享·笔记·算法·面试
程高兴1 天前
三相维也纳整流器仿真Simulink(解决过零畸变问题)
matlab