Маска для S-функции с параметрами из Base Workspace
15.04.2020
Здравствуйте.
Есть модель от поставщика, где важные подсистемы обращены в S-функции, при этом поставщик не делал для них масок. Для удобства работы с моделью я хочу сделать к этим S-функциям маски, в которых параметры отображаются списком, по одной строке на параметр.
Маску в приложенной модели я сделал вручную. Собственно, вопросов у меня два:
- как отобразить значения параметров из Base Workspace в этой маске?
- возможно ли автоматизировать создание такой маски для S-функции с произвольным числом параметров?
Ответы
Добрый день!
Чтобы взять значения из Base Workspace, надо использовать функцию
evalin
https://docs.exponenta.ru/matlab/ref/evalin.html
https://mathworks.com/help/matlab/ref/evalin.html
Есть возможность скопировать маску от одного блока к другому
https://docs.exponenta.ru/simulink/slref/simulink.mask.copy.html
https://nl.mathworks.com/help/simulink/slref/simulink.mask.copy.html
Для автоматизации создания произвольных масок есть набор функций
https://docs.exponenta.ru/simulink/block-masks.html
https://nl.mathworks.com/help/simulink/block-masks.html
Я так понимаю, команды Матлаба не работают в любом произвольном месте. Не подскажете, что делать в этом случае?
Работают. На скриншоте никаких проблем не вижу. Единственное - если вы задаете параметр маски, то evalin можно не использовать, можете сразу обращаться к переменным из Workspace. evalin пригодится внутри маски, в ее коде.
К сожалению, на скриншоте проблемы есть. Мне было нужно, чтобы в маске вместо нулей отображались значения параметров, подтянутые из Base Workspace, а этого не происходит.