Как сделать множественный ввод и вывод в MS-Function Matlab

#matlab #function #simulink

#matlab #функция #simulink

Вопрос:

Я создал функцию в Matlab, которая автоматически создает блоки ввода и вывода.

У меня есть M-S-функция и эти блоки вывода и ввода.

Теперь я хочу соединить со строкой эти ввод и вывод с помощью M-S-функции, и я не знаю, как это сделать.

Как добавить больше входных и выходных портов в M-S-Function?

Вот так:

введите описание изображения здесь

Это должно быть сгенерировано в функции программно.

Комментарии:

1. Вы говорите о S-функции m-code? Если это так, количество входов и выходов определено в m-коде (и не будет изменяться программно). Вы бы присоединили блоки ввода к входным портам S-функции с помощью add_line .

2. Я пытался с помощью add_line, но у этой S-функции нет 2 или более входов и выходов, у него есть только один вход и выход, я хочу добавить больше входов и выходов к этой функции. Возможно ли это?

3. Если это S-функция с m-кодом уровня 1 (которую вы не должны писать), тогда у нее будет только 1 входной порт, и вам нужно mux объединить сигналы, прежде чем помещать их в S-функциональный блок. Если это S-функция m-кода уровня 2, то количество портов не будет установлено до тех пор, пока блок не будет инициализирован (поэтому модель просматривает код и видит, сколько входов и выходов ему нужно для работы). Вероятно, вам потребуется принудительная инициализация, чтобы заставить это работать.

4. Это S-функция уровня 2. Как я могу выполнить эту инициализацию с помощью кода?

5. modelname([],[],[],'compile') принудительно перекомпилирует. За этим должно последовать modelname([],[],[],'term') его освобождение.