Модульная спецификация в моделях Simulink

Simulink® позволяет вам задать физические единицы измерения как атрибуты на сигналах на контурах компонентов модели. Такие компоненты могут быть:

  • Подсистемы

  • Модели Simulink, на которые ссылаются,

  • Конвертер Simulink-PS и блоки Конвертера PS-Simulink, которые взаимодействуют через интерфейс между Simulink и компонентами, разработанными в Simscape™ и его связанных физических продуктах моделирования

  • Графики Stateflow®, таблицы перехода состояний или таблицы истинности

  • Блоки MATLAB function

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

В моделях Simulink вы задаете модули от модульной базы данных. Модульная база данных включает модули от следующих модульных систем:

  • SI — Международная система единиц

  • SI (extended) — Международная система единиц (расширена)

  • English — Английская система модулей

  • Cgs Грамм сантиметра вторая система модулей

На основе типа системы вы моделируете, можно использовать любую комбинацию модулей от этих поддерживаемых модульных систем. Для получения дополнительной информации о поддерживаемых модульных системах и модулях они содержат, видят Позволенные Модули.

Можно присвоить модули сигналам через эти блоки:

и эти объекты:

Когда вы добавляете поддерживаемый блок к своей модели, Модульный параметр на блоке устанавливается на inherit по умолчанию. Эта установка означает, что блок наследовал модуль от соединяющегося сигнала, который имеет явным образом заданный модуль.

Можно явным образом задать модули для сигналов с помощью Модульного параметра поддерживаемого блока. Для этого параметра диалоговое окно обеспечивает соответствие с предложениями, чтобы помочь вам:

Если вы не обеспечиваете правильно сформированное модульное выражение, вы получаете ошибку. Правильно сформированные модульные выражения являются комбинацией модульных имен или символов с правильно сбалансированными круглыми скобками и *, / и символами ^. Специальные символы, такие как [, ], {, }, <, >, \, ", &, и т.д не поддержаны.

По умолчанию блочный порт имеет пустое (то есть, незаданный), модуль и Модульный параметр установлены в inherit. Когда вы задаете модуль для одного порта, Simulink Check модульная установка любого порта, соединенного с ним. Если порт имеет пустой модуль, можно соединить его с другим портом, который имеет любой поддерживаемый модуль. Если параметр блока портов устанавливается на inherit, он наследовал модуль от подключенного порта, который имеет заданный модуль.

Задайте физические количества

Когда вы моделируете физическую систему, возможно использовать то же модульное выражение для двух или больше сигналов, которые представляют различные физические количества. Например, модульное выражение N*m может представлять или крутящий момент или энергию. Чтобы предотвратить ошибочную связь двух портов с тем же модулем, но представлением различных физических количеств, можно добавить физическое количество к модульному выражению. Например, для того же модуля N*m, можно задать различные физические количества N*m@torque и N*m@energy. Подобный модулям, диалоговое окно предоставляет предложениям при печати имена физических количеств.

Физические количества помогают вам осуществить дополнительный градус модульной проверки непротиворечивости между подключенными портами. Когда вы пытаетесь соединить порты с различными физическими количествами, модель отображает предупреждение.

Задайте модули в объектах

По умолчанию Simulink.Signal, Simulink.BusElement и объекты Simulink.Parameter имеют пустые модули. В случае a:

  • Объект Simulink.Signal, пустой модуль означает, что соответствующий сигнал может наследовать модуль от порта восходящего направления или порта нисходящего направления.

  • Объект Simulink.BusElement, пустой модуль означает, что соответствующий сигнал элемента шины также имеет пустой модуль. Можно соединить сигнал с портом с любым модулем, но сигнал не наследовал модуль от порта.

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

Если вы задаете модуль в объекте Simulink.Signal или Simulink.BusElement, Simulink применяет атрибут к соответствующей сигнальной линии когда:

  • Объект Simulink.Signal решает к сигналу в модели

  • Вы используете сигнал элемента шины, который сопоставлен с объектом Simulink.Bus с Создателем Шины, Селектором Шины или блоком Bus Assignment.

При использовании любой из этих объектов с блоком Data Store, Simulink не отображает модульного атрибута.

Для объекта Simulink.Parameter Simulink не применяет атрибута. Для всех объектов, если Модульный параметр имеет значение, которое не формируется правильно, вы видите ошибку. Если модуль формируется правильно, но не определен, вы видите предупреждение, когда вы компилируете модель. Если модульное выражение содержит специальные символы, такие как [, ], {, }, <, >, \, ", &, и т.д, Simulink заменяет их на символы нижнего подчеркивания (_).

Custom Unit Properties

Примечания по свойствам Unit и DocUnits, запускающимся в R2016a:

  • Свойством DocUnits является теперь Unit для объектов Simulink.Signal или Simulink.Parameter. Если в предыдущем релизе вы использовали параметр DocUnits объекта Simulink.Parameter или Simulink.Signal содержать текст, который теперь не выполняет модульные спецификации, моделирование возвращает предупреждение, когда модель моделирует.

    Чтобы подавить эти предупреждения, установите Модульные сообщения несоответствия параметра конфигурации на none. Эта установка подавляет все модульные предупреждения проверки несоответствия.

  • Если у вас есть класс, который выводит от Simulink.Parameter, Simulink.Signal или Simulink.BusElement с ранее заданным свойством Unit, Simulink возвращает ошибку как следующее:

    ​Cannot define property 'Unit' in class 'classname' because
     the property has already been defined in the superclass 'superclass'.

    При использовании это свойство представлять физическую единицу измерения сигнала, удалите свойство Unit из производного класса в R2016a или более позднем релизе. Существующие скрипты продолжают работать, если вы не присваиваете неправильно сформированные модульные выражения полю Unit. В этом случае замените использование Unit с DocUnits, чтобы продолжить мочь присвоить модульное выражение.

    Примечание

    Если вы храните существующие данные в MAT - или файл .sldd, в релизе до R2016a, копируете содержимое свойства Unit к DocUnits сначала. Затем сохраните файл в более раннем релизе прежде, чем загрузить модель в R2016a или более позднем релизе.

Задайте модули для температурных сигналов

При моделировании количеств абсолютной температуры используйте модули, такие как K, degC, degF и degR. При моделировании количеств перепада температур используйте модули, такие как deltaK, deltadegC, deltadegF и deltadegR. Если вы соединяете сигнал, который имеет модуль перепада температур к блоку, который задает модуль абсолютной температуры, Simulink обнаруживает несоответствие.

Задайте модули в блоках MATLAB function

Можно задать модули для данных ввода и вывода блоков MATLAB function при помощи Модульного параметра на Портах и Менеджере данных.

Во время образцового обновления, Simulink Check для несоответствий в модулях между портами данных ввода или вывода и соответствующими сигналами.

Задайте модули для журналирования и загрузки данных сигнала

Можно включать модули в данные сигнала, которые вы регистрируете или загружаете.

Вы задаете модули для журналирования и загрузки использования объекты Simulink.SimulationData.Unit. Когда вы регистрируете использование Dataset или формат Timeseries, Simulink хранит информацию модуля с помощью объектов Simulink.SimulationData.Unit. Если вы создаете данные timeseries MATLAB®, чтобы загрузить, можно задать объект Simulink.SimulationData.Unit для свойства Units объекта timeseries.

Для получения дополнительной информации смотрите Данные сигнала Журнала Который Модули Использования и Данные сигнала Загрузки Который Модули Использования.

Ограничение модульных систем

По умолчанию можно задать модули от любой из поддерживаемых модульных систем. Однако в больших проектах моделирования, чтобы осуществить непротиворечивость, вы можете хотеть ограничить модульные системы, которые могут использовать определенные компоненты вашей модели. Чтобы задать доступные модульные системы для модели, в параметре конфигурации Позволенные модульные системы, вводят all или список, разделенный запятыми, содержащий один или несколько из SI, SI (extended), CGS и English. Не используйте кавычки. Если ваша модель содержит модели, на которые ссылаются, можно использовать Позволенные модульные системы, чтобы ограничить модули в каждой из тех моделей, на которые ссылаются. Если ваша модель содержит подсистемы, можно использовать блок Unit System Configuration, чтобы ограничить модули в подсистемах. Можно также опционально использовать блок Unit System Configuration в модели. В этом случае настройки в блоке Unit System Configuration заменяют то, что вы задаете в Позволенных модульных системах.

Ограничить модульные системы в модели:

  1. В Модульном параметре Inport Выходной порт или блок Signal Specification, щелкает по ссылке.

    Если блок Unit System Configuration существует в вашей модели, эта ссылка открывает блочное диалоговое окно. В противном случае ссылка открывает Позволенный модульный системный параметр конфигурации.

  2. Задайте один или несколько желаемые модульные системы, SI, SI (extended), English или CGS, в разграниченном запятой списке или all, без кавычек.

В отношениях отцов и детей (например, топ-модель с моделью, на которую ссылаются, или подсистемой), можно задать различные модульные системы для каждого компонента. Однако, если дочерний элемент распространяет модуль в родительский элемент, который не находится в модульных системах, заданных для родительского элемента, вы получаете предупреждение.

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

  • Нажмите Ctrl+D и визуально осмотрите модель для предупреждения значков.

  • Использование Образцовая проверка Советника Идентифицирует запрещенные модульные системы.

Смотрите также

| | | | | | | |

Связанные примеры

Больше о

Была ли эта тема полезной?