Установка размера сигнала в функции Simulink / MATLAB из рабочего пространства - PullRequest
0 голосов
/ 16 июня 2020

Предположим, у меня есть блок Simulink, который содержит что-то вроде:

function y  = myFnc(x, par)

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

Я объявляю par как Параметр в проводнике модели и читаю его значение из рабочего пространства. Теперь Simulink делает вывод, что y - это сигнал переменного размера со всеми довольно неприятными ограничениями, связанными с ним.

Есть ли способ параметризовать размеры сигналов из рабочего пространства, оставив при этом сигналы фиксированного размера каким-то образом?

В C / C ++ я бы просто объявил константу.

1 Ответ

1 голос
/ 17 июня 2020

Что работает с некоторыми ограничениями, так это создание класса со свойствами, которые являются константными, например:

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

... и использование постоянных свойств (например, DIMS.LEN_SIG) в качестве параметров везде, где это применимо.

Параметризация будет исправлена ​​во время компиляции модели и даже жестко закодирована в сгенерированном коде (если применимо).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...