Simulink® позволяет вам задать физические единицы измерения в качестве атрибутов на сигналах на контурах компонентов модели. Такие компоненты могут быть:
Подсистемы
Модели Simulink, на которые ссылаются
Simulink-PS Converter (Simscape) и PS-Simulink Converter (Simscape) блоки, которые взаимодействуют между Simulink и компонентами, разработанными в Simscape™ и связанных с ним продуктах физического моделирования
Stateflow® графики, таблицы переходов состояний или таблицы истинности
MATLAB Function блоки
Constant блоки
Data Store Memory, Data Store Read и Data Store Write блоки
Путем определения, управления и визуализации сигнальных модулей гарантировать согласованность вычислений по различным компонентам вашей модели. Для примера эта дополнительная степень проверки непротиворечивости полезна, если вы интегрируете многие отдельно разработанные компоненты в большую, общую системную модель.
В моделях Simulink вы задаете модули из unit database. База данных модуля включает модули из следующих блочных систем:
SI
- Международная система единиц измерения
SI (extended)
- Международная система единиц (расширенная)
English
- Английская система модулей
CGS
- Система измерений СГС
На основе типа системы, которую вы моделируете, можно использовать любую комбинацию модулей из этих поддерживаемых единичных систем. Дополнительные сведения о поддерживаемых модулем системах и их модулях см. в разделе Разрешенные Модули.
Можно назначить модули сигналам через эти блоки:
и следующие объекты:
Когда вы добавляете поддерживаемый блок к модели, параметр Unit на блоке устанавливается на inherit
по умолчанию. Эта настройка означает, что блок наследует модуль измерения от сигнала соединения, который имеет явно заданную модуль.
Можно явным образом задать модули для сигналов, используя параметр Unit поддерживаемого блока. Для этого параметра в диалоговом окне содержатся соответствующие предложения, которые помогут вам:
Если вы не предоставляете правильно сформированное единичное выражение, вы получаете ошибку. Правильно сформированные единичные выражения являются комбинацией имен модулей измерения или символов с правильно сбалансированными круглыми скобками и *
, /
, и ^
персонажи. Специальные символы, такие как [
, ]
, {
, }
, <
, >
, \
, "
, &
и так далее не поддерживаются.
По умолчанию блочный порт имеет empty (то есть не заданный) модуль, и параметр Unit установлен на inherit
. Когда вы задаете модуль для одного порта, Simulink проверяет настройку модуля для любого порта, подключенного к ней. Если порт имеет пустой модуль, можно подключить его к другому порту, который имеет любую поддерживаемый модуль. Если для параметра port unit задано значение inherit
он наследует модуль измерения от подключенного порта с заданным модулем.
При работе с безразмерными, безразмерными или без единичных величин примите во внимание следующие рекомендации:
Чистые числа без модулей
Рассмотрите использование 1
, безразмерный модуль СИ. Simulink проверяет модуль, чтобы убедиться, что другие безразмерные величины распространены в. Можно добавлять, умножать и в противном случае манипулировать этими типами чисел.
НеУточнённые модули
Рассмотрите использование пустого модуля, где параметр Unit пуст. Когда этот параметр пуст, Simulink принимает любой модуль, которое распространяется на порт, не возвращая предупреждения.
Целочисленный модуль счёта
Рассмотрите использование count
для обозначения целочисленного модуля. Используйте этот модуль для величин, которые трудно описать, но которые считаются безразмерными или безразмерными, таких как теплообеспеченные состояния или количество ШИМ. Для получения дополнительной информации смотрите count
в допустимых модулях.
Безразмерные физические величины
Безразмерные физические величины представляют определенную физическую величину. Рассмотрите использование физических величин velocity_factor
, refractive_index
, relative_permeability
, strain
, Reynolds_number
, и logical
. Некоторые из этих физических величин, strain
и Reynolds_number
, иметь соответствующие модули. Чтобы задать модули для других физических величин, используйте формат, такой как 1@physical quantity
, для примера, 1@refractive_index
. Simulink выполняет проверку физической величины при распространении. Для примера, если модель пытается добавить размерные физические величины, Simulink возвращает предупреждение.
Чистые масштабированные числа
Рассмотрите использование ppm
, ppb
, ppt
.
Когда вы моделируете физическую систему, можно использовать одно и то же единичное выражение для двух или более сигналов, которые представляют различные физические величины. Для примера модуля выражение N*m
может представлять либо крутящий момент, либо энергию. Чтобы предотвратить ошибочное соединение двух портов с одинаковыми модулями, но представляющими различные физические величины, можно добавить физическую величину к модулю выражению. Для примера - для тех же модулей N*m
, можно задать различные физические величины N*m@torque
и N*m@energy
. Подобно модулям, диалоговое окно содержит предложения по вводу имен физических величин.
Физические величины помогают вам обеспечить дополнительную степень проверки согласованности модулей измерения между подключенными портами. При попытке соединения портов с различными физическими величинами в модели отображается предупреждение.
По умолчанию Simulink.Signal
, Simulink.BusElement
, и Simulink.Parameter
объекты имеют пустые модули. В случае:
Simulink.Signal
объект, пустой модуль означает, что соответствующий сигнал может наследовать модуль от вышестоящего или нисходящего порта.
Simulink.BusElement
объект, пустой модуль означает, что соответствующий сигнал элемента шины также имеет пустой модуль. Можно подключить сигнал к порту с любым модулем, но сигнал не наследует модуль от порта.
Simulink.Parameter
объект не присоединяет модуль измерения к соответствующему значению параметров.
Если вы задаете модуль в Simulink.Signal
или Simulink.BusElement
объект, Simulink применяет атрибут к соответствующей сигнальной линии, когда:
The Simulink.Signal
объект разрешается к сигналу в модели
Вы используете сигнал элемента шины, который сопоставлен с Simulink.Bus
объект с Bus Creator, Bus Selector или Bus Assignment блоком.
Для Simulink.Parameter
Объект не применяет никаких атрибутов. Для всех объектов, если параметр Unit имеет значение, которое не сформировано правильно, вы видите ошибку. Если модуль сформирован правильно, но не определена, при компиляции модели появляется предупреждение. Если единичное выражение содержит специальные символы, такие как [
, ]
, {
, }
, <
, >
, \
, "
, &
и так далее, Simulink заменяет их на символы нижнего подчеркивания (_
).
Примечания к Unit
и DocUnits
свойства, начиная с R2016a:
The DocUnits
свойство теперь Unit
для Simulink.Parameter
или Simulink.Signal
объекты. Если в предыдущем релизе вы использовали DocUnits
параметр Simulink.Parameter
или Simulink.Signal
объект, чтобы содержать текст, который теперь не соответствует спецификациям модулей измерения, simulation возвращает предупреждение при симуляции модели.
Чтобы подавить эти предупреждения, задайте значение параметра конфигурации Units consistency messages 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 с помощью параметра Unit в Ports и Data Manager.
Во время обновления модели Simulink проверяет несоответствия в модулях между входными или выходными портами данных и соответствующими сигналами.
Можно задать модули для выходных данных блоков Constant с помощью свойства Unit в Simulink.Parameter
объект.
Можно включать модули измерения в данные сигнала, которые вы регистрируете или загружаете.
Единицы модулей для логгирования и загрузки заданы с помощью
объекты. При входе в систему с помощью Simulink.SimulationData.Unit
Dataset
или Timeseries
формат, Simulink хранит информацию об модулях измерения, используя Simulink.SimulationData.Unit
объекты. Если вы создаете MATLAB® данные timeseries для загрузки, можно задать Simulink.SimulationData.Unit
объект для Units
свойство timeseries
объект.
Для получения дополнительной информации смотрите Журнал данных сигнала, которые используют модули и загрузку данных сигнала, который использует модули.
По умолчанию можно задать модули из любой из поддерживаемых систем модулей. Однако в крупных проектах моделирования для обеспечения согласованности может потребоваться ограничить системы модулей, которые могут использоваться определенными компонентами вашей модели. Чтобы задать доступные модули системы для модели, в параметр конфигурации <reservedrangesplaceholder1> введите all
или разделенный списками , разделенными запятыми, содержащий один или несколько SI
, SI (extended)
, CGS
, и English
. Не используйте кавычки. Если ваша модель содержит ссылочные модели, можно использовать Allowed unit systems, чтобы ограничить модули в каждом из этих ссылочных моделей. Если ваша модель содержит подсистемы, можно использовать блок Unit System Configuration для ограничения модулей в подсистемах. Можно также опционально использовать блок Unit System Configuration в модели. В этом случае настройки в блоке Unit System Configuration переопределяют все, что вы задаете в Allowed unit systems.
Чтобы ограничить единичные системы в модели:
В параметре Unit Inport, Outport или Signal Specification блока щелкните ссылку.
Если блок Unit System Configuration существует в модели, эта ссылка открывает диалоговое окно блока. В противном случае ссылка открывает параметр конфигурации Allowed unit systems.
Задайте одну или несколько требуемых единичных систем, SI
, SI (extended)
, English
, или CGS
, в списке, разделенном запятыми, или all
, без кавычек.
В связи между родительскими объектами и их потомками (для примера - модель верхней части с ссылочной моделью или подсистемой) можно задать различные системы модуля для каждого компонента. Однако, если дочерний элемент распространяет модуль измерения на родительский элемент, который не находится в единичных системах, заданных для родительского элемента, вы получаете предупреждение.
Чтобы проверить, существуют ли несоответствия модулей, вызванные ограниченными системами модулей измерения в иерархии модели:
Нажмите Ctrl+D и визуально осмотрите модель на наличие предупреждающих значков.
Используйте проверку Model Advisor Identify disallowed unit systems.
Inport | MATLAB Function | Outport | Signal Specification | Simulink.BusElement
| Simulink.Parameter
| Simulink.Signal
| Unit Conversion | Unit System Configuration