Можно задать физические единицы измерения на Simulink® сигналы. Для получения дополнительной информации смотрите Модули в Simulink.
Интерфейсные блоки, такие как Simulink-PS Converter и PS-Simulink Converter, обрабатывают контур между физической сетью Simscape™ и блоками Simulink, соединенными с ним. Эти блоки конвертера также обрабатывают модульные преобразования физического сигнала:
На блоке Simulink-PS Converter вы задаете модуль с помощью параметра Input signal unit. Этот модуль должен быть соразмерным с модулем физического сигнала в выходном порту PS блока, который выведен от места назначения сигнала в физической сети. Параметр Input signal unit предоставляет информацию директору производства Simscape, который выполняет необходимое модульное преобразование и масштабирует значение сигналов соответственно.
На блоке PS-Simulink Converter вы задаете модуль с помощью параметра Output signal unit. Этот модуль должен быть соразмерным с модулем входного физического сигнала, войдя в блок. Блок применяет усиление, равное коэффициенту преобразования прежде, чем вывести Сигнал Simulink.
Если вы задаете физическую единицу измерения на Сигнале Simulink, соединенном с Simulink-PS Converter или блоком PS-Simulink Converter, программное обеспечение сравнивает этот модуль с модулем, заданным в блоке. Если значение параметров не совпадает с физической единицей измерения Сигнала Simulink, соединенного с блоком, вы получаете предупреждение.
Когда вы добавляете новый модуль в свой модульный реестр Simscape, при помощи pm_addunit
функция и использование этот модуль в блоке Simulink-PS Converter или PS-Simulink Converter:
Если ваше модульное определение конфликтует с тем в базе данных Simulink, вы получаете предупреждение о несовместимом модуле.
Если вы добавляете модуль, который не существует в базе данных Simulink, вы получаете предупреждение о неопределенном модуле.
Обратите внимание на то, что эти предупреждения применяются только к базе данных Simulink; физическая сеть Simscape работает как ожидалось.
Например, вы хотите просмотреть частоту вращения двигателя в оборотах в секунду, а не обороты в минуту (rpm
):
Добавьте новый модуль rps
, заданный в терминах или rpm
:
pm_addunit('rps', 1/60, 'rpm');
Открыть Моторную модель Постоянного электромагнита в качестве примера, в MATLAB® Командное окно, введите:
ssc_dcmotor
Симулируйте модель. Исследуйте результаты симуляции в Моторном окне scope об/мин.
Откройте Распознающуюся подсистему (определяемый как w
в блок-схеме), дважды кликните блок PS-Simulink Converter и введите rps
как значение параметров Output signal unit.
Повторно выполните симуляцию.
Модель работает правильно с осциллографом, отображающим результаты в оборотах в секунду.
Однако выходной Сигнал Simulink блока PS-Simulink Converter теперь отображает значок предупреждения с сообщением The units 'rps' are undefined
. Подробное сообщение объясняет, что модули не заданы в модульной базе данных Simulink.
Если вы проблема a pm_getunits
команда, вы видите rps
в списке модулей возврата, что означает, что модуль успешно задан в модульном реестре Simscape. Другими словами, предупреждение применяется только к модульной проверке Simulink.
Чтобы выключить модульные предупреждения несоответствия, в командном окне MATLAB, введите:
set_param('ssc_dcmotor','UnitsInconsistencyMsg','none');
Другой способ избежать модульных предупреждений несоответствия состоит в том, чтобы добавить те же модули в вашу модульную базу данных Simulink. Для получения информации о том, как создать и загрузить пользовательскую модульную базу данных Simulink, видит Работу с Пользовательскими Модульными Базами данных.