【问题标题】:MATLAB deploytool simulink Undefined function 'load_system'MATLAB deploytool simulink 未定义函数'load_system'
【发布时间】:2015-09-25 17:45:33
【问题描述】:

我正在使用一个 MATLAB m 文件代码,它加载一个 simulink 文件、运行它并在一个复杂的并行循环中多次评估它。

它在 MATLAB 环境下完美运行。当通过deploytool命令编译代码,安装并从命令行运行时,我会遇到困难。

在加载模型的那一行,

mymodel= ... ;
load_system(mymodel);

我收到以下错误

C:\Program Files\mymain\application>Warning: Name is nonexistent or not a directory: model
> In path at 109
  In addpath at 86
  In run_main at 3
Warning: Name is nonexistent or not a directory: data
> In path at 109
  In addpath at 86
  In run_main at 4
Warning: Name is nonexistent or not a directory: graphics
> In path at 109
  In addpath at 86
  In run_main at 5
Starting parallel pool (parpool) using the 'local' profile ... connected to 2 workers.
Initializing ...
Undefined function 'load_system' for input arguments of type 'char'.

Error in run_main (line 40)


MATLAB:UndefinedFunction

我不关心警告(因为我不关心大多数其他 MATLAB 警告)但是我收到关于无法识别函数以打开 simulink 模型('load_system')的错误:

Undefined function 'load_system' for input arguments of type 'char'.

我进行了搜索,发现了以下问题:

load_system using MCR

Deployment of Simulink Models

第一个链接说

我只是感到困惑:部署工具是要编译成 C++ 还是 .NET? 是应该提高速度还是成为单机是唯一的优势?

这两个链接的问题在于它们都在谈论策略。但是如何实现它们呢?如何编译使用load_systemsim 命令加载和仿真模型的 MATLAB 代码?

任何人都可以为一个非常简单的 MATLAB 代码(m 文件)示例提供逐步解决方案来模拟模型然后编译它们吗?

【问题讨论】:

  • 您无法编译 load_system 和 sim 命令。您需要 MATLAB 来运行它们。

标签: matlab deployment compilation simulink


【解决方案1】:

文档屏幕截图的第一句话很重要。正如@Navan(在评论中)所提到的,Simulink 功能与 MATLAB Compiler 不兼容。也就是说,任何使用 Simulink 功能(load_systemsim 等)的 m 代码在使用 MATLAB 编译器时都不会执行。

假设您可以访问 Simulink Coder,并且您的模型不包含阻止其转换为 c 代码的功能,那么您唯一的选择就是分两部分开发您的应用程序:

  1. 使用您的 Simulink 模型:使用 Simulink Coder 从您的模型创建可执行文件。文档中有几个这样做的例子,包括Using RSIM Target for Batch Simulations。有多种命令行选项可用于通过 mat 文件将新参数集和输入传递给可执行文件。仿真结果(即通常写入 MATLAB 工作区的内容)被写入可执行文件创建的 mat 文件。
  2. 在您的 MATLAB 代码中:将所有 Simulink 功能替换为对步骤 1 中创建的可执行文件的调用(通常使用 system 函数,如链接示例中所示)。在此调用之前,您需要创建一个mat 文件,其中包含所有参数;调用后,您需要从可执行文件创建的 mat 文件中读取结果。

这不是一个简单的过程,而是可行的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多