Спецификация единиц измерения в моделях Simulink

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

Можно задать модули для входных и выходных данных блоков 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.

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

  1. В параметре Unit Inport, Outport или Signal Specification блока щелкните ссылку.

    Если блок Unit System Configuration существует в модели, эта ссылка открывает диалоговое окно блока. В противном случае ссылка открывает параметр конфигурации Allowed unit systems.

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

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

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

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

  • Используйте проверку Model Advisor Identify disallowed unit systems.

См. также

| | | | | | | |

Похожие примеры

Подробнее о