• Регистрация
Андрей Студенцов
Андрей Студенцов +2.50
н/д

Маска для S-функции с параметрами из Base Workspace

15.04.2020

Здравствуйте.

Есть модель от поставщика, где важные подсистемы обращены в S-функции, при этом поставщик не делал для них масок. Для удобства работы с моделью я хочу сделать к этим S-функциям маски, в которых параметры отображаются списком, по одной строке на параметр.

Маску в приложенной модели я сделал вручную. Собственно, вопросов у меня два:

  1. как отобразить значения параметров из Base Workspace в этой маске?
  2. возможно ли автоматизировать создание такой маски для S-функции с произвольным числом параметров?

Теги

    15.04.2020

    Ответы

    • Павел Рословец
      Павел Рословец +239.28
      15.04.2020 12:01

      Добрый день!

      Чтобы взять значения из  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

       

      • Андрей Студенцов
        Андрей Студенцов +2.50
        15.04.2020 17:08

        Я так понимаю, команды Матлаба не работают в любом произвольном месте. Не подскажете, что делать в этом случае?

        • Павел Рословец
          Павел Рословец +239.28
          15.04.2020 17:35

          Работают. На скриншоте никаких проблем не вижу. Единственное - если вы задаете параметр маски, то evalin можно не использовать, можете сразу обращаться к переменным из Workspace. evalin пригодится внутри маски, в ее коде.

          • Андрей Студенцов
            Андрей Студенцов +2.50
            16.04.2020 09:39

            К сожалению, на скриншоте проблемы есть. Мне было нужно, чтобы в маске вместо нулей отображались значения параметров, подтянутые из Base Workspace, а этого не происходит.