Когда вы создаете модель Simulink®, можно использовать символы, чтобы обеспечить значения и определения для многих типов сущностей в модели. Образцовые сущности, которые можно задать с символами, включают блочные параметры, параметры конфигурации модели, типы данных, сигналы, свойства сигнала и шинную архитектуру.
Символ, который обеспечивает значение или определение, должен быть легальным идентификатором MATLAB®. Такой идентификатор запускается с буквенного символа, сопровождаемого алфавитно-цифровыми символами или символами подчеркивания до длины, данной функциональным namelengthmax
. Можно использовать функциональный isvarname
, чтобы определить, является ли символ легальным идентификатором MATLAB.
Символ обеспечивает значение или определение в модели Simulink путем соответствия некоторому элементу что:
Существует в доступной рабочей области
Имеет имя, которое совпадает с символом
Предоставляет запрошенную информацию
Процесс нахождения элемента, который соответствует символу, называется разрешением символа или решением символа. Соответствующий элемент может предоставить необходимую информацию непосредственно, или это может самостоятельно быть символ. Символ должен решить к некоторому другому элементу, который предоставляет информацию.
Когда программное обеспечение Simulink компилирует модель, оно пытается разрешить каждый символ в модели, кроме символов в коде MATLAB, который запускается в обратном вызове или как часть инициализации маски. В зависимости от особого случая, элемента, к которому символ твердость может быть переменной, объектом или функцией.
Симулинк пытается разрешить символ путем поиска доступных рабочих областей в иерархии для объекта переменная MATLAB или Симулинк, имя которого совпадает с символом.
Путь поиска файлов идентичен для каждого символа. Поиск начинается с блока, который использует символ или является источником сигнала, который называет символ и продолжает вверх. Кроме тех случаев, когда моделирование происходит через команду sim
, поисковый порядок:
Любые рабочие области маски, по порядку от блока вверх (см. Основные принципы Маскирования).
Рабочее пространство модели модели, которая содержит блок (см. Рабочие пространства модели).
Базовое рабочее пространство MATLAB (см., Создает и Переменные Редактирования (MATLAB)), или, если модель соединяется со словарем данных, словарем (см. то, Что Словарь Данных?). Если словарь данных имеет Предоставить доступ к выбранному свойству базового рабочего пространства, поиск обрабатывает словарь и базовое рабочее пространство как единое пространство имен.
Если Simulink находит соответствующий элемент в ходе этого поиска, поиск отключает успешно в той точке, и символ решает к соответствующему элементу. Результат эквивалентен, если значение того элемента появилось буквально вместо символа, который решил к элементу. Объект задал на более низком уровне тени любой объект, заданный в более высоком уровне.
Если никакой элемент соответствия не существует на пути поиска файлов, Симулинк пытается оценить символ как функцию. Если функция задана и возвращает соответствующее значение, символ решает ко что возвращенная функция. В противном случае символ остается неразрешенным, и ошибка происходит. Оценка как функция происходит как последний шаг каждый раз, когда иерархический поиск отключает не найдя соответствующую переменную рабочей области.
Если модель, которая содержит символ, является моделью, на которую ссылаются, и поиск достигает рабочего пространства модели, но не успешно выполняется там, поиск переходит непосредственно к базовому рабочему пространству или словарю данных, не пытаясь разрешить символ в рабочей области любой родительской модели. Таким образом данный символ решает к тому же элементу, независимо от того, является ли модель, которая содержит символ, моделью, на которую ссылаются. Для получения информации об образцовой ссылке смотрите Модели - ссылки.
Можно задать любой блочный параметр, который требует числового значения путем обеспечения литерального значения, символа или выражения, которое может содержать символы и литеральные значения. Каждый символ разрешен отдельно, как будто ни один из других не существовал. Различные символы в выражении могут таким образом решить к элементам на различных рабочих областях, и к различным типам элемента.
Когда отдельный символ появляется и решает успешно, его значение обеспечивает значение параметра. Когда выражение появляется, и все символы решают успешно, значение выражения обеспечивает значение параметра. Если какой-либо символ не может быть разрешен или решает к значению несоответствующего типа, ошибка происходит.
Например, предположите, что параметр Усиления блока Gain дан как cos(a*(b+2))
. Символ, который cos
разрешит к косинусной функции MATLAB, и a
и b
, должен решить к числовым значениям, которые могут быть получены из тех же или различных типов элементов в тех же или различных рабочих областях. Если символы решают к числовым значениям, значение, возвращенное косинусной функцией, становится значением параметра Усиления.
Большинство символов и выражений, которые используют их, обеспечивают числовые значения, но те же методы, которые обеспечивают числовые значения, могут обеспечить любой тип значения, которое подходит для его контекста.
Другое общее использование символов должно назвать объекты, которые предоставляют определения некоторого вида. Например, имя сигнала может решить к объекту сигнала (Simulink.Signal
), который задает свойства сигнала, и параметр Типа данных блока Bus Creator может назвать объект шины (Simulink.Bus
), который задает свойства шины. Можно использовать символы во многих целях, включая:
Задайте типы данных
Задайте источники входных данных
Задайте места назначения записанных данных
Для иерархического разрешения символа все это различное использование символов, или отдельно или в выражениях, является тем же самым. Каждый символ разрешен, если это возможно, независимо от любых других, и результат становится доступным, где символ появился. Единственная разница между одним символом и другой - определенный элемент, к которому символ решает и использование, сделанное из того элемента. Единственное требование - то, что каждый символ должен решить к чему-то, что может по закону появиться в местоположении символа.
Иерархическое разрешение символа пересекает полный путь поиска файлов по умолчанию. Можно обрезать путь поиска файлов при помощи Разрешения Иерархический Параметр разрешения любой подсистемы. Эта опция управляет тем, что происходит, если поиск достигает той подсистемы, не решая к переменной рабочей области. Разрешение Иерархические значения Разрешения:
Все
Продолжите искать иерархию рабочей области, пытающуюся разрешить символ. Это - значение по умолчанию.
'none'
Не продолжайте искать иерархию.
ExplicitOnly
Продолжите искать иерархию, только если символ задает блочное значение параметров, память хранилища данных (где никакой блок не существует), или сигнал, или утвердите, что явным образом требует разрешения. Не продолжайте искать неявное разрешение. Смотрите Явное и Неявное Разрешение Символа для получения дополнительной информации.
Если поиск не находит соответствие в рабочей области и отключает, потому что значением является ExplicitOnly
или None
, Simulink оценивает символ как функцию. Поиск успешно выполняется или перестал работать в зависимости от результата оценки, как ранее описано.
Модели и некоторые типы образцовых сущностей сопоставили параметры, которые могут влиять на разрешение символа. Например, предположите, что модель включает сигнал под названием Амплитуда, и что объект Simulink.Signal
под названием Амплитуда существует в доступной рабочей области. Если имя Амплитудного сигнала Сигнала должно решить к опции объекта Сигнала Simulink, проверяется, сигнал решит к объекту. Смотрите Средства управления Signal Properties для получения дополнительной информации.
Если опция не проверяется, сигнал может или не может решить к объекту, в зависимости от значения Параметров конфигурации> Законность Данных> разрешение Сигнала. Этот параметр может подавить разрешение объекта даже при том, что объект существует, или это может указать, что разрешение происходит на основе одного только соответствия имени. Для получения дополнительной информации см. Образцовые параметры конфигурации: диагностика законности данных> Разрешение сигнала.
Разрешение, которое происходит, потому что опция, такая как имя Сигнала должна решить к объекту Сигнала Simulink, требует, чтобы это было названо явным разрешением символа. Разрешение, которое происходит на основе одного только соответствия имени без явной спецификации, называется неявным разрешением символа.
Неявное разрешение символа может быть полезно для быстрого анализа прототипа. Однако, когда вы сделаны, моделируя, рассматриваете использование явного разрешения символа, потому что неявное разрешение замедляет производительность, усложняет проверку допустимости модели и может иметь недетерминированные эффекты.