Simulink 仿真加速:配置 MinGW64 编译器并启用加速模式

在使用 MATLAB/Simulink 做仿真时,如果模型比较复杂,普通仿真速度可能会比较慢。Simulink 提供了加速模式,但想要正常使用加速功能,通常需要先配置好 C/C++ 编译器。

本文以 Windows + MATLAB R2024a 为例,记录 MinGW64 编译器安装、环境变量配置、MEX 配置以及 Simulink 加速模式开启的完整过程。

说明:不同 MATLAB 版本对应的编译器支持情况可能不同,建议先到 MathWorks 官方页面确认版本兼容性。

作者已经将下述所有的需要的程序打包好了,可前往GitHub自行下载解压即可: https://github.com/2CM-Embed/mingw-w64---


当然也可以按照以下步骤自行安装


一、准备安装包

为了方便配置,可以提前准备好 MinGW64 编译器压缩包。也可以到 GitHub Release 页面下载对应版本。

到GitHub下载编译器版本:Releases · niXman/mingw-builds-binaries · GitHub

在 Release 页面中找到对应的压缩包文件,下载到本地即可。

二、查看 MATLAB 支持的编译器版本

首先进入 MathWorks 官方编译器支持页面:

https://www.mathworks.com/support/compilers

在页面中选择自己的 MATLAB 版本和系统平台,查看当前版本支持哪些编译器。

如果编译器版本不匹配,MATLAB 后续执行 mex -setup 时可能无法识别,或者提示找不到合适的编译器。

三、安装 MATLAB MinGW 支持包

MATLAB 也可以通过 Add-On 安装 MinGW 支持包。打开下载好的支持包文件,按提示安装附加功能。

安装过程中选择确认即可。

如果使用的是单独下载的 MinGW64 压缩包,也可以直接解压后手动配置环境变量。

四、解压 MinGW64

将下载得到的 MinGW64 压缩包解压到一个固定目录,例如:

E:\MATLAB\mingw64

解压后目录结构大致如下:

需要注意的是,后面配置环境变量时,要指向 MinGW64 的安装目录和 bin 目录。

五、配置 Windows 环境变量

按下 Windows 键,搜索:

环境变量

打开"编辑系统环境变量"。

进入系统属性后,点击:

环境变量

1. 配置用户变量

在用户变量中添加 MinGW64 相关路径,将 MinGW64 的 bin 目录加入 Path:

E:\MATLAB\mingw64\bin

2. 配置系统变量

在系统变量中新建变量

MW_MINGW64_LOC = E:\MATLAB\mingw64

配置完成后,建议关闭并重新打开 MATLAB、命令提示符和 VS Code 等软件,让新的环境变量生效。

六、验证 gcc 是否安装成功

按下快捷键:

Win + R

输入:

cmd

打开命令提示符。

在命令提示符中输入:

gcc -v

如果能看到 gcc 版本信息,说明 MinGW64 的环境变量已经配置成功。

如果提示 gcc 不是内部或外部命令,一般说明 Path 没有配置好,或者配置后没有重新打开终端。

七、在 MATLAB 中配置 MEX

打开 MATLAB,在命令行窗口中输入:

setenv('MinGW_HOME','E:\MATLAB\mingw64')

mex -setup

如果 MATLAB 成功识别 MinGW64,会出现类似提示:

MEX 配置为使用 'MinGW64 Compiler (C)' 以进行 C 语言编译。

然后继续配置 C++ 编译器:

要选择不同的语言,请从以下选项中选择一种命令:

mex -setup C++ (选择此项)

mex -setup FORTRAN

正常情况下会提示:

MEX 配置为使用 'MinGW64 Compiler (C++)' 以进行 C++ 语言编译。

如果 MATLAB 列出了多个 C++ 编译器选项,可以根据提示选择 MinGW64 对应的配置文件。

示例输出如下:

要选择不同的 C++ 编译器,请从以下选项中选择一种命令:

MinGW64 Compiler (C++) mex -setup:E:\MATLAB\R2024a\bin\win64\mexopts\mingw64_g++.xml C++

MinGW64 Compiler with Windows 10 SDK or later (C++) mex -setup:E:\MATLAB\R2024a\bin\win64\mexopts\mingw64_g++_sdk10+.xml C++

选好之后会提示:

已将 options 文件 'C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2024a\mex_C++_win64.xml' 重命名为 'C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2024a\mex_C++_win64_backup.xml'。

MEX 配置为使用 'MinGW64 Compiler (C++)' 以进行 C++ 语言编译。

八、测试 MEX 是否可用

配置完成后,可以用 MATLAB 自带示例测试 MEX 编译功能:

mex timestwo.c

如果输出:

使用 'MinGW64 Compiler (C)' 编译。 MEX 已成功完成。

说明 MEX 编译器配置成功。

如果出现模型文件名错误,例如:

'SinglePhase_L_Rect_V1.0.slx' is not a valid Simulink model file name.

这通常不是编译器问题,而是 Simulink 模型文件名不符合规范。建议模型文件名不要包含特殊字符,例如中文标点、空格、特殊符号等。

MEX 配置完成后,打开 Simulink 模型。

在 Simulink 工具栏中找到仿真模式选项,将普通模式切换为:

加速

启用加速模式后,Simulink 会利用编译器生成中间代码,从而提升仿真速度。对于复杂模型,速度提升会比较明显。

十、常见问题总结

1. MATLAB 找不到 MinGW64

检查环境变量中是否配置了:

MW_MINGW64_LOC

以及 Path 中是否包含:

E:\MATLAB\mingw64\bin

配置后需要重新打开 MATLAB。

2. cmd 中输入 gcc -v 没反应

一般是 Path 没有配置正确。确认 gcc.exe 是否位于:

E:\MATLAB\mingw64\bin

然后把该路径加入系统 Path 或用户 Path。

3. mex -setup 找不到编译器

可以先在 MATLAB 中手动指定:

setenv('MinGW_HOME','E:\MATLAB\mingw64')

然后再执行:

mex -setup mex -setup C++

先确认 MEX 编译是否成功:

mex timestwo.c

如果 MEX 测试都失败,说明编译器配置还没有完成。应先解决 MEX 问题,再开启 Simulink 加速模式。

十一、总结

整个配置流程可以概括为:

下载 MinGW64 解压到固定目录 配置 Windows 环境变量 cmd 中用 gcc -v 验证 MATLAB 中执行 mex -setup 测试 mex timestwo.c Simulink 中切换到加速模式

配置成功后,Simulink 仿真速度可以明显提升,尤其适合电力电子、电机控制、控制系统等计算量较大的模型。

如果后续更换 MATLAB 版本,建议重新检查 MathWorks 官方编译器支持页面,并重新执行 mex -setup。

相关推荐
leo__5208 小时前
MATLAB实现牧羊人算法
开发语言·算法·matlab
leo__5209 小时前
MATLAB实现UKF(无迹卡尔曼滤波)原理
人工智能·matlab
fie88899 小时前
LBP + HOG 特征检测与识别 MATLAB 实现
数据结构·算法·matlab
feifeigo1239 小时前
马尔可夫决策过程(MDP)MATLAB 实现
开发语言·matlab
飞舞哲11 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
jllllyuz11 小时前
HVDC 高压直流输电系统 MATLAB/Simulink 仿真全集
开发语言·matlab
隔窗听雨眠11 小时前
Unity与Simulink联合仿真:实现无人机目标追踪系统
unity·无人机·cocos2d·simulink
阿里matlab建模师14 小时前
【机场停机位分配】matlab实现基于遗传算法的机场停机位分配优化研究
开发语言·算法·数学建模·matlab·全国大学生数学建模竞赛
神仙别闹1 天前
基于 MATLAB DCT 的图像编码器并进行调试分析
matlab