我在 Visual Studio 和 Eclipse 中有一个非常大的 C/C++ 软件项目。有一些 SIMULINK 模型形式的第三方软件。目前是否可以:
1) 为 SIMULINK 模型编写 C/C++ 包装函数? 2) 从外部环境(如VS或Eclipse C/C++项目)调用功能来执行集成和进一步的任务?
我知道您可以使用 MEX (MATLAB Exec.) 函数,这些函数是为 MATLAB 使用而封装的 C/C++ 或 FORTRAN。但这对我来说并不理想。
用例
我的用例基于建模和仿真,但我的子系统在数据格式方面非常多样化。 50% 在 C/C++ 中,35% 在 SIMULINK 模型中,其余在二进制可执行文件、目标代码、符号数据等中。我正在做一些复杂的系统建模;抱歉,但出于保护原因无法进一步告诉您。
从我得到的答案来看,人们似乎热衷于使用 Mathworks 提供的功能。我的意图是得到更像是是不是的答案,但到目前为止我也得到了很好的解释。
更新
我将不得不评估 SIMULINK 的嵌入式编码器,看看需要多少额外的努力来完善生成的代码。我读到 Embedded Coder 中有生产级代码生成工具;应该很有趣。
最佳答案
根据您的具体要求,有两种选择:
使用 Simulink Coder 将 Simulink 模型转换为 C。这有效地让您脱离了 Simulink 环境,因此将模型功能集成到您现有的环境中与合并任何其他 C 代码是相同的。当然,您需要访问 Simulink Coder 才能执行此操作。
调用 MATLAB Engine .请注意,您不能只调用 Simulink。您调用 MATLAB 并发出各种 MATLAB 命令来加载、执行和查询 Simulink 模型。
关于c++ - SIMULINK 模型的 C/C++ 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17343942/