当前位置: 首页 > news >正文

simulink这边重新第二次仿真时,直接UE5崩溃,然后simulink没有响应

提问 : simulink这边重新第二次仿真时,直接UE5崩溃,然后simulink没有响应

simulink和UE5仿真的时候,simulink这边先停止仿真(也就是官方要求的顺序——注意:如果先在UE5那边停止仿真,如果UE5这边的实例化对象较多的话,很容易在停止仿真以后,出现显存不够的问题),然后UE5那边也停止Play,结果simulink这边重新第二次仿真时,直接UE5崩溃,然后simulink没有响应。搜索一下是否已经有网友出现类似的情况,是否网上已经有相应的解决方案了?

配置信息:

  1. R2024b
  2. UE5.3
  3. 就是使用mathworks的UE5的插件: MathWorksAutomotiveContent,MathWorksSimulation。 然后使用的Simulink中的模块就是3d scence configure(用于open Unreal editor)
  4. 没有在仿真开始前或结束后使用脚本控制过 UE5 编辑器
  5. Windows上面运行

回答:Simulink与Unreal Engine联合仿真——第二次运行崩溃问题

用户反馈的问题场景

多个用户遇到过类似问题:Simulink与Unreal Engine的联合仿真在首次运行时正常,但第二次运行时崩溃。例如,某篇MATLAB Answers帖子中提到,一个包含自定义C/MEX组件的大型Simulink模型首次运行完美,但第二次运行时崩溃(若使用更高内存的机器,第三次运行也会崩溃)。另一个案例中,用户在集成FMU时发现Simulink每次第二次仿真都会崩溃,需要每次重启MATLAB(重启后的首次运行总是成功)。这些反馈与您描述的场景一致(使用R2024b及MathWorksAutomotiveContent/MathWorksSimulation插件在UE5.3中):停止首次仿真后(先停止Simulink,再停止Unreal“播放”模式),尝试第二次联合仿真会导致Unreal Engine崩溃且Simulink无响应。

建议的解决方法和方案

1. 清除残留内存/模块

一个常见建议是在两次运行之间释放所有残留的已分配资源。在MATLAB Answers中,一位资深用户指出,首次运行后,应尝试在MATLAB中执行clear mexclear functions再启动第二次仿真。这会强制MATLAB卸载MEX文件并清除持久化内存,这对首次运行后残留状态导致后续运行崩溃的情况有效。此方法可能适用于当前问题,因为Simulink与UE的联合仿真使用了编译后的插件(可能作为MEX或DLL加载),这些插件在仿真停止后可能无法完全重置。

2. 确保插件与版本兼容

涉及MathWorksSimulation插件的崩溃可能与版本不匹配或项目设置不当有关。MathWorks技术支持工程师建议验证MATLAB版本、支持包和Unreal Engine版本是否完全同步。具体来说,对于R2024b和UE 5.3,需安装最新的Vehicle Dynamics Blockset Interface for Unreal Engine Projects支持包及其插件,并按说明迁移自定义场景。如果使用自定义Unreal场景,请确保遵循所有设置步骤(例如,按MathWorks文档所述,将关卡蓝图重父级到Sim3dLevelScriptActor),以确保联合仿真环境正确初始化。配置错误或过时的MathWorks插件可能导致重新运行时崩溃。

3. 每次运行后重启Unreal编辑器

作为临时措施,部分用户选择在停止首次仿真后关闭Unreal编辑器,并让Simulink在下次运行时重新打开它。虽然这不太理想,但能确保环境干净。由于您的问题出现在同一UE编辑器会话的二次运行中,完全重启该会话可避免触发崩溃的残留状态。(类似地,如FMU用户所做的,每次重启MATLAB/Simulink也是一种简单粗暴的解决方法。)

4. 应用更新或补丁

检查MATLAB R2024b或支持包是否有更新,这些更新可能修复联合仿真中的稳定性问题。MathWorks会定期发布修复崩溃的更新——例如,官方技术支持团队提到R2024b Update 5中修复了一个崩溃漏洞。虽然该修复针对不同模块,但也凸显了使用最新更新的重要性。升级到最新MATLAB版本(如R2025a,若可用)或安装R2024b的最新更新,可能包含提升Unreal联合仿真可靠性的修复。务必确保UE5.3项目和MathWorks插件为MathWorks提供的最新版本

社区和技术支持洞察

目前,在MATLAB Answers或Unreal Engine社区等公开论坛中,尚未发现与“UE5编辑器在第二次Simulink运行时崩溃”完全相同的问题。然而,“第二次运行崩溃”的模式在相关场景中已被确认。社区反馈强调运行间清理资源是主要解决方法。总之,首次运行后清除MEX函数、验证插件安装/配置正确性、重启仿真环境是用户和MathWorks工作人员的主要建议。如果问题持续存在,可能是未被发现的漏洞——建议联系MathWorks技术支持并提供详细信息,他们有时会提供补丁或针对性指导(尤其是在您已按推荐顺序停止仿真但仍崩溃的情况下)。

参考来源:

  • MATLAB Answers用户报告(2024年12月):描述首次运行成功、第二次运行导致MATLAB/Simulink崩溃的问题。
  • MATLAB社区专家推荐方案:建议首次仿真后使用clear mex避免后续运行崩溃。
  • MathWorks技术支持关于Unreal Engine插件问题的建议:确保版本同步和场景正确设置,防止MathWorksSimulation插件崩溃。
  • GitHub上关于FMU导致二次运行崩溃的讨论:确认此问题在另一联合仿真场景中的复现性(首次运行正常,第二次崩溃)。
  • MathWorks技术支持团队关于更新中崩溃修复的说明:强调更新MATLAB(R2024b Update 5或更高版本)可解决特定崩溃问题,说明应用最新补丁的价值。

实验1: MATLAB命令行执行clear mex和clear functions

在第一次仿真后,在simulink这端停止仿真(ue5那边自动停止仿真),然后在MATLAB命令行里面,先后输入clear mex和clear functions, 然后再运行simulink。然后点击UE5的仿真。结果还是UE5崩溃,情况和之前没有任何不同。

只运行clear mex不运行clear functions和两个都运行的区别是,如果两个都运行,那么当第二次simulink这一端进行仿真的时候,在编译过程上和第一次完全一样。然而还是出现了同样的问题,说明不是simulink这端的问题,可能问题出现在ue5那边。

实验2:第一次仿真结束后,关闭Unreal Editor,重新启动(在simulink内启动)

没有任何问题。

结论

暂时先用重启Unreal Editor的方法

相关文章:

  • linux 故障处置通用流程-36计+1计
  • 比较运算符:==、!=、>、<、>=、<=
  • 【C/C++】进一步介绍idl编码
  • 《动手深度学习》8.2文本预处理—代码分析
  • 运行labelme
  • java day15 (数据库)
  • Oracle实用参考(13)——Oracle for Linux静默安装(1)
  • FAST(Features from Accelerated Segment Test)角检测算法原理详解和C++代码实现
  • dvwa8——SQL Injection(Blind)
  • Hive开窗函数的进阶SQL案例
  • 使用PyQt5的图形用户界面(GUI)开发教程
  • 【hive sql】窗口函数
  • QT聊天项目DAY13
  • C# Wkhtmltopdf HTML转PDF碰到的问题
  • RDMA简介3之四种子协议对比
  • 图神经网络实战——图属性度量方法详解
  • 人机融合智能 | 可穿戴计算设备的多模态交互
  • java从azure中读取用户信息
  • 【Pandas】pandas DataFrame sample
  • 微软重磅发布Magentic UI,交互式AI Agent助手实测!
  • h5做的分销网站/怎样在百度做广告宣传
  • 网站开发的毕业设计论文框架/太原百度seo排名
  • 山东网页制作网站/温州seo优化
  • 网站站内链接怎么做/人际网络营销2900
  • 做网络推广网站有哪些/百度知道
  • 网站301做下/网站seo优化培训