【问题标题】:Setting dimension of signal in Simulink/MATLAB function from workspace从工作区设置 Simulink/MATLAB 函数中信号的维度
【发布时间】:2020-06-16 18:12:11
【问题描述】:

假设我有一个 Simulink 模块,其中包含以下内容:

function y  = myFnc(x, par)

y = zeros(1, par(1)) + x;

我在 模型浏览器 中将par 声明为参数,并从工作区读取其值。 现在,Simulink 推断出y 是一个可变大小的信号,具有与之相关的所有非常讨厌的限制。

有什么方法可以参数化工作空间中的信号尺寸,但又以某种方式使信号保持固定大小?

在 C/C++ 中,我只需声明一个常量。

【问题讨论】:

    标签: matlab global-variables global simulink dimensions


    【解决方案1】:

    有一些限制的方法是创建一个具有 const 属性的类,例如:

        classdef DIMS
            properties (Constant)
                NR_SIGNALS          = 10
                LEN_SIG             = 32000 
                BLOCKS              = 2 * DIMS.NR_SIGNALS
            end
        end 
    

    ...并在适用的情况下使用常量属性(例如DIMS.LEN_SIG)作为参数。

    参数化将在模型的编译时固定,甚至在生成的代码中进行硬编码(如果适用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多