【问题标题】:Using Simulink Block in MATLAB在 MATLAB 中使用 Simulink 模块
【发布时间】:2021-01-25 13:47:45
【问题描述】:

我想像使用 MATLAB 中的函数一样使用 Simulink 模块(MATLAB 函数)。这意味着我已经有了一个复杂的 Simulink Model,我只想在 Matlab 中使用 Model 的一些模块。

【问题讨论】:

    标签: function matlab simulink


    【解决方案1】:

    如果您想从 MATLAB 运行 simulink 模型,请使用命令 sim('YourSimulinkModel.slx'), 在您的 simulink 模型中,使用块 To Workspace(地址:simulink/Sinks/To Workspace)。将simulink模型执行后的结果导出到MATLAB Workspace。

    【讨论】:

      【解决方案2】:

      以下是一个简单的 Simulink 系统示例,该系统从 MATLAB 脚本读取变量、运行模型并将输出导出到工作区窗口。模型中使用的任何变量名称都会自动从调用/执行模型的 MATLAB 脚本中提取。输出是通过使用接收器块获得的,允许将模型的一部分直接导出到工作区面板。下面的系统将输入加 2,然后乘以 2。同样,此设置也适用于 fcn,用户定义的功能块。

      Simulink 模型


      MATLAB 脚本

      %Variables used in model%
      Input = 5;
      
      %Calling model and returning results from Simulink model%
      Results = sim('Model.slx');
      Results.Output.Data
      

      使用 MATLAB R2019b 运行

      【讨论】:

        【解决方案3】:

        首先要考虑以下几点:

        - 当您想将其用作函数时,您必须运行整个模型 (Simulink)。部分模型无法运行

        根据以下两个条件,您可以通过两种方式进行:

        1. 您的模型具有用 MATLAB 脚本编写的函数
        2. 您的模型有一个函数,该函数是在 simulink 本身中创建的。(就像使用库模块一样)

        让我们一一看看:

        1. 如果您在 MATLAB 中使用 Interpreted MATLAB function (Interpreted MATLAB fcn) 或只是 simple MATLAB function (fcn) 创建了函数,您实际上可以访问以下代码这些来自您的工作区。复制这些文件的代码,编写自己的函数。

        2. 如果您已经在 Simulink 中创建了函数,并且除了使用模型本身之外别无其他选择,请执行以下操作:

            A. Define all input as variables in your model , using '**from workspace**'
            B. Define all your outputs using : '**To workspace**'
          
            C. Define your input variables in your workspace first.
                   load('data.mat'); % this can be your input data
            D. define your model as a system in a script file
                   sys = 'mysimulinkmodel'
            E. run model from your script file as follows:
                   data_out = sim(sys) or directly, sim("mysimulinkmodel")
          

        运行模型后,您可以访问 data_out 中的所有输出数据。

        希望你能解决这个问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多