Создание, редактирование и управление переменными рабочей области

Чтобы поделиться информацией, такой как значения параметров и типы данных сигналов между отдельными блоками и моделями, вы используете переменные рабочей области. Для примера можно создать числовой MATLAB® переменная в базовом рабочем пространстве и используйте переменную, чтобы задать значение параметра Gain одновременно в нескольких блоках Gain (см. Раздел «Совместное использование и повторное использование значений параметров блоков путем создания переменных»). Можно создать Simulink.Bus объект для явного определения структуры сигнала шины.

Можно хранить переменные рабочей области в базовом рабочем пространстве, рабочих пространствах модели или словарях данных. Чтобы решить, где хранить переменные, смотрите Определение, Где хранить переменные и Объекты для моделей Simulink.

Инструменты для управления переменными

Используйте один или несколько из следующих методов для создания, изменения, хранения и миграции переменных рабочей области:

  • Чтобы поделиться параметрами блоков значениями и создать Simulink.Parameter и Simulink.Signal объекты (для примера, при подготовке к генерации кода) можно использовать Model Data Editor. Можно взаимодействовать со всеми параметрами блоков, сигнальными линиями и состояниями блока сразу в модели. Можно также просмотреть настраиваемые параметры блоков в списке, который можно искать, сортировать и фильтровать.

    • Чтобы создать переменную, в таблице данных начните редактирование камеры, которая соответствует параметрам блоков значению (в столбце Value) или имени сигнала или состояния (в столбце Name). Введите имя переменной, которую вы хотите создать, и нажмите кнопку действия в правой части камеры.

      Если параметры блоков значение уже установлено на простое числовое выражение, можно создать переменную для этого выражения. Щелкните в правой части камеры, которая соответствует значению, затем выберите Create variable. В диалоговом окне «Создание новых данных» задайте имя и расположение новой переменной, затем нажмите Create. Теперь в камере отображается новая переменная.

    • Чтобы изменить переменные с помощью столбцов в таблице данных, нажмите кнопку Show/refresh additional information. Затем таблица данных содержит строки, которые соответствуют переменным и объектам, которые использует модель.

    • Чтобы взаимодействовать с одной переменной за раз (для примера, чтобы просмотреть все свойства переменной сразу), откройте Property Inspector (на вкладке Modeling, под Design, нажмите Property Inspector) и выберите соответствующую строку в таблице данных. Property Inspector показывает свойства выбранной переменной.

    Дополнительные сведения о Model Data Editor см. в разделе Настройка свойств данных при помощи Model Data Editor.

  • Чтобы взаимодействовать с небольшим количеством параметров, сигналов или состояний за раз, используйте отдельные диалоговые окна параметров блоков или Property Inspector, чтобы создать переменные для совместного использования значений параметров блоков и создать и сконфигурировать объекты параметров и сигналов для генерации кода.

    В диалоговом окне или в Property Inspector нажмите кнопку действия рядом со значением параметров блоков, именем сигнала или именем состояния.

  • Чтобы создать и изменить любой тип или класс переменной или объекта, перемещайте переменные между рабочими областями и смотрите все переменные в рабочей области сразу, используйте Model Explorer. Можно также переименовать переменные и точно проанализировать, как целая модель или отдельный блок использует переменные. Смотрите Model Explorer и Править и управлять переменными рабочей области при помощи Model Explorer.

Измените значение переменных переменной или свойство из параметров блоков

В этом примере показано, как изменить значение параметра Gain (Gain блок), значение которого задано числовой переменной. Измените переменную, а не параметры блоков.

  1. Откройте модель f14. Модель загружает переменные в базовое рабочее пространство.

  2. В модели откройте Property Inspector. На вкладке Modeling, под Design, нажмите Property Inspector.

  3. В модели выберите Gain блок, который использует переменную Mw.

  4. В Property Inspector нажмите кнопку рядом со значением параметра Gain. Выберите Open.

  5. В диалоговом окне Data properties введите новое значение переменной в поле Value и нажмите OK.

Интерактивное изменение переменных структуры и массива

Чтобы просмотреть и изменить переменную, значение которой является структурой или массивом, можно запустить Редактор переменных, нажав кнопку поблизости. Выберите один из следующих методов:

  • В Model Explorer выберите переменную на панели Contents. На панели Диалоговое окно (правая панель) появляется кнопка.

  • В Model Data Editor (на вкладке Modeling, нажмите Model Data Editor), на вкладке Parameters, нажмите кнопку Show/refresh additional information. В таблице данных найдите строку, которая соответствует переменной, и в Value столбце начните редактирование значения переменной. Кнопка появится в правой части камеры.

  • В диалоговом окне блока или Property Inspector кнопка появляется рядом со значением параметров блоков, который использует переменную. Нажмите кнопку и используйте опции меню, чтобы открыть диалоговое окно свойств для переменной. Затем в диалоговом окне свойств снова нажмите кнопку, чтобы запустить Редактор переменных. Вы можете использовать этот метод только для объектов параметра, таких как Simulink.Parameter.

Последствия изменения или удаления переменной

Когда вы изменяете или удаляете переменную, изменение может повлиять на несколько блоков и моделей, которые используют переменную. Чтобы оценить влияние путем определения, где используется переменная, используйте Model Explorer (см. Анализ использования переменной в модели). Однако анализировать использование переменных можно только для моделей, которые открыты во время анализа. Перед выполнением анализа откройте любые модели, которые, как вы подозреваете, используют переменную.

Модели и блоки используют переменные через разрешение имен (см. Разрешение символа). Когда вы изменяете имя переменной, не внося соответствующих изменений в зависимые блоки и модели, блоки и модели генерируют ошибки. Вместо этого, чтобы переименовать переменную в контексте одной или нескольких моделей, смотрите Переименовать переменную по всей модели.

Когда блок или модель не могут получить доступ к нужной переменной, она генерирует ошибку в Diagnostic Viewer. В некоторых случаях можно использовать кнопки в Средство просмотра Diagnostic, чтобы исправить ошибку (для примера, путем восстановления удаленной переменной). Чтобы увеличить вероятность того, что вы можете использовать Diagnostic Viewer для восстановления от отсутствия переменной, используйте следующие методы:

  • Сохраните переменные в словаре данных вместо базового рабочего пространства. Со словарем данных вы получаете дополнительные опции для восстановления. Для получения информации о словарях данных смотрите Что такое словарь данных?.

  • Для каждой модели сохраните соответствующий Simulink® файл кэша доступен. Например, когда вы делитесь моделью с кем-то другим, делитесь и файлом кэша. Когда вы берете последние файлы проекта модели из системы контроля версий, берите файл кэша из системы непрерывного интегрирования или последней папки сборки. Файл кэша сохраняет информацию, которую Simulink Coder™ может использовать, чтобы помочь вам восстановиться после отсутствия переменной. Дополнительные сведения о файлах кэша Simulink см. в разделе «Обмен файлами кэша Simulink для более быстрой симуляции».

Анализ использования переменной в модели

Чтобы проанализировать способы, которыми модель использует переменные, используйте Model Explorer. Вы можете:

  • Определите, где переменная используется в модели.

  • Определите, использует ли модель переменную.

  • Определите, какие переменные в рабочей области не используются моделью.

Для получения дополнительной информации см. «Редактирование и управление переменными рабочей области при помощи Model Explorer».

Переименуйте переменную во всей модели

В этом примере показано, как переименовать переменную в Model Data Editor.

  1. Откройте модель f14. Модель загружает переменные в базовое рабочее пространство.

  2. В модели на вкладке Modeling нажмите Model Data Editor. В Model Data Editor смотрите вкладку Parameters.

  3. В модели кликните маркированный Gain блок Mw.

    В редакторе Model Data Editor в Value столбце показано, что блок использует переменную Mw. Предположим, вы хотите переименовать эту переменную.

  4. В Model Data Editor нажмите кнопку Show/refresh additional information.

    Теперь таблица данных содержит строки, которые соответствуют переменным рабочей области, которые использует модель.

  5. Активируйте кнопку Change scope.

    Теперь в таблице данных показана информация об элементах данных в подсистемах.

  6. В Filter contents поле введите Mw.

    Таблица данных показывает строки, которые соответствуют переменной и блокам, которые используют переменную.

  7. В строке, которая представляет Mw, щелкните правой кнопкой мыши и выберите Rename All.

  8. В диалоговом окне Select a system щелкните имя модели f14 чтобы выбрать его в качестве контекста для переименования переменной Mw.

  9. Снимите флажок Search in referenced models, начиная с f14 не ссылается ни на какие модели и нажатие кнопки OK.

    Если Search in referenced models выбран, можно переименовать целевую переменную везде, где она используется в иерархии модели-ссылки. Однако переименование целевой переменной во всей иерархии может занять больше времени.

    Флажок Update diagram to include recent changes по умолчанию снимается, чтобы сэкономить время, избегая ненужных обновлений диаграмм модели. Установите флажок, чтобы включить последние изменения, внесенные вами в модель, путем принудительного обновления схемы.

  10. В диалоговом окне Rename All введите новое имя переменной в поле New name и нажмите OK.

  11. Еще раз нажмите Show/refresh additional information. Поскольку операция переименования изменила имя переменной и значения некоторых параметров блоков, для получения более точной информации в Model Data Editor необходимо щелкнуть Show/refresh additional information.

Программное взаимодействие с переменными

В командной строке можно создать и изменить переменные в базовом рабочем пространстве путем ввода таких команд, как myVar = 15;. Чтобы программно создавать, изменять и хранить переменные в другой рабочей области, такое как рабочее пространство модели, используйте программный интерфейс для целевой рабочей области. Таблица показывает интерфейсы и методы, которые можно использовать для программного управления переменными.

Целевая рабочая областьМетод или интерфейс
Базовое рабочее пространствоВводите команды в командной строке.
Моделируйте рабочую областьСм. Simulink.ModelWorkspace.
Словарь данныхСм. Раздел «Хранение данных в словаре программно».

Чтобы программно перечислить переменные, которые использует или не использует модель, см. Simulink.findVars.

Чтобы программно получить доступ к переменным в целях протягивания значений параметров блоков, рассмотрите использование Simulink.SimulationInput объекты вместо изменения переменных через программные интерфейсы рабочей области. См. «Оптимизация, оценка и развертка Параметров блоков значений».

Похожие темы