Когда вы создаете модель Simulink®, можно использовать символы, чтобы ввести значения и определения для многих типов сущностей в модели. Сущности модели, которые можно задать с символами, включают параметры блоков, параметры конфигурации модели, типы данных, сигналы, свойства сигнала и шинную архитектуру.
Символ, который вводит значение или определение, должен быть легальным идентификатором MATLAB®. Такой идентификатор начинается с буквенного символа, за которым следуют алфавитно-цифровые символы или символы подчеркивания до длины, заданной функцией namelengthmax
. Можно использовать функциональный isvarname
определить, является ли символ легальным идентификатором MATLAB.
Символ вводит значение или определение в модели Simulink путем соответствия некоторому элементу что:
Существует в доступной рабочей области
Имеет имя, которое совпадает с символом
Предоставляет запрошенную информацию
Процесс нахождения элемента, который соответствует символу, называется разрешением символа или решением символа. Соответствующий элемент может предоставить необходимую информацию непосредственно, или может сам быть символом. Символ должен разрешиться к некоторому другому элементу, который предоставляет информацию.
Когда программное обеспечение Simulink компилирует модель, оно пытается разрешить каждый символ в модели, кроме символов в коде MATLAB, который запускается в коллбэке или как часть инициализации маски. В зависимости от конкретной ситуации, элемента, к которому символ твердость может быть переменной, объектом или функцией.
Simulink пытается разрешить символ путем поиска доступных рабочих областей в иерархии для объекта переменная MATLAB или Simulink, имя которого совпадает с символом.
Путь поиска файлов идентичен для каждого символа. Поиск начинается с блока, который использует символ или является источником сигнала, который называется как символ и продвигается вверх. Кроме тех случаев, когда симуляция происходит через sim
команда, поисковый порядок:
Любые рабочие области маски, в порядке от блока вверх (см. Основы маскирования).
Рабочее пространство модели модели, которая содержит блок (см. Рабочие пространства модели).
Базовое рабочее пространство MATLAB (см., Создает и Переменные Редактирования (MATLAB)), или, если модель соединена со словарем данных, словарем (см. то, Что Словарь Данных?). Если словарю данных выбрали свойство Enable dictionary access to base workspace, поиск обрабатывает словарь и базовое рабочее пространство как единое пространство имен.
Если Simulink находит соответствующий элемент в ходе этого поиска, поиск завершает работу успешно в той точке, и символ решает к соответствующему элементу. Результат эквивалентен, если значение того элемента появилось буквально вместо символа, который решил к элементу. Объект, заданный на более низком уровне, затеняет любой объект, заданный на более высоком уровне.
Если никакой элемент соответствия не существует на пути поиска файлов, Simulink пытается оценить символ как функцию. Если функция задана и возвращает соответствующее значение, символ решает ко что возвращенная функция. В противном случае символ остается неразрешенным, и ошибка происходит. Оценка как функция происходит как последний шаг каждый раз, когда иерархический поиск завершает работу не найдя соответствующую переменную рабочей области.
Если модель, которая содержит символ, является моделью, на которую ссылаются, и поиск достигает рабочего пространства модели, но не успешно выполняется там, поиск переходит непосредственно к базовому рабочему пространству или словарю данных, не пытаясь разрешить символ в рабочей области любой родительской модели. Таким образом данный символ решает к тому же элементу, независимо от того, является ли модель, которая содержит символ, моделью, на которую ссылаются. Для получения информации о ссылке модели смотрите Модели - ссылки.
Можно задать любой блочный параметр, который требует числового значения путем задания буквального значения, символа или выражения, которое может содержать символы и буквальные значения. Каждый символ разрешен отдельно, как будто ни один из других не существовал. Различные символы в выражении могут таким образом решить к элементам в различных рабочих областях, и к различным типам элемента.
Когда отдельный символ появляется и решает успешно, его значение вводит значение параметра. Когда выражение появляется, и все символы решают успешно, значение выражения вводит значение параметра. Если какой-либо символ не может быть разрешен или решает к значению несоответствующего типа, ошибка происходит.
Например, предположите, что параметр Gain блока Gain дан как cos(a*(b+2))
. Символ cos
решит к косинусной функции MATLAB и a
и b
должен решить к числовым значениям, которые могут быть получены из тех же или различных типов элементов в тех же или различных рабочих областях. Если символы решают к числовым значениям, значение, возвращенное косинусной функцией, становится значением параметра Gain.
Большинство символов и выражений, которые используют их, вводят числовые значения, но те же методы, которые вводят числовые значения, могут обеспечить любой тип значения, которое подходит для его контекста.
Другое общее использование символов должно назвать объекты, которые предоставляют определения некоторого вида. Например, имя сигнала может решить к объекту сигнала (Simulink.Signal
) это задает свойства сигнала и блок Bus Creator, который параметр Data type может назвать объектом шины (Simulink.Bus
) это задает свойства шины. Можно использовать символы во многих целях, включая:
Задайте типы данных
Задайте источники входных данных
Задайте места назначения записанных данных
Для иерархического разрешения символа все это различное использование символов, или отдельно или в выражениях, является тем же самым. Каждый символ разрешен, если это возможно, независимо от любых других, и результат становится доступным, где символ появился. Единственная разница между одним символом и другой - определенный элемент, к которому символ решает и использование, сделанное из того элемента. Единственное требование - то, что каждый символ должен решить к чему-то, что может по закону появиться в местоположении символа.
Иерархическое разрешение символа пересекает полный путь поиска файлов по умолчанию. Можно обрезать путь поиска файлов при помощи опции Permit Hierarchical Resolution любой подсистемы. Эта опция управляет тем, что происходит, если поиск достигает той подсистемы, не решая к переменной рабочей области. Значения Permit Hierarchical Resolution:
All
Продолжите искать иерархию рабочей области, пытающуюся разрешить символ. Это - значение по умолчанию.
None
Не продолжайте искать иерархию.
ExplicitOnly
Продолжите искать иерархию, только если символ задает значение параметров блоков, память хранилища данных (где никакой блок не существует), или сигнал, или утвердите, что явным образом требует разрешения. Не продолжайте искать неявное разрешение. Смотрите Явное и Неявное Разрешение Символа для получения дополнительной информации.
Если поиск не находит соответствие в рабочей области и завершает работу, потому что значением является ExplicitOnly
или None
, Simulink оценивает символ как функцию. Поиск успешно выполняется или перестал работать в зависимости от результата оценки, как ранее описано.
Модели и некоторые типы сущностей модели сопоставили параметры, которые могут влиять на разрешение символа. Например, предположите, что модель включает сигнал под названием Амплитуда, и что Simulink.Signal
объект под названием Амплитуда существует в доступной рабочей области. Если опция Signal name must resolve to Simulink signal object Амплитудного сигнала будет проверяться, сигнал решит к объекту. Смотрите Средства управления Signal Properties для получения дополнительной информации.
Если опция не проверяется, сигнал может или не может решить к объекту, в зависимости от значения Configuration Parameters> Data Validity> Signal resolution. Этот параметр может подавить разрешение объекта даже при том, что объект существует, или это может указать, что разрешение происходит на основе одного только соответствия имени. Для получения дополнительной информации см. Параметры конфигурации модели: диагностика валидности данных> Разрешение сигнала.
Разрешение, которое происходит, потому что опция, такая как Signal name must resolve to Simulink signal object требует его, называется явным разрешением символа. Разрешение, которое происходит на основе одного только соответствия имени без явной спецификации, называется неявным разрешением символа.
Неявное разрешение символа может быть полезно для быстрого прототипирования. Однако, когда вы завершили быстрое прототипирование, рассмотрите использование явного разрешения символа, потому что неявное разрешение замедляет производительность, усложняет валидацию модели и может иметь недетерминированные эффекты.