Учебные модели Modelica Медицинские подразделения без СИ

Я хочу использовать не-СИ единицы в модели Modelica в медицинском контексте. Я использую Modelica в Dymola. Будучи инженером, я предпочитаю единицы СИ. Но параметры моей модели получены из медицинских публикаций, и я хочу избежать ошибок преобразования. Медицинские подразделения также упрощают общение с врачами.

Например, единица «мм рт. Ст.» (Миллиметры ртутного столба) используется вместо «Па» для давления. Переменные давления определяются в модели следующим образом:

type Pressure_mmHg = Real (final quantity="Pressure", final unit="mmHg")

Перевод модели для симуляции приводит к следующему предупреждению для каждой переменной не-SI в модели (всего ~ 300 предупреждений):

Could not decode the unit symbol "mmHg" appearing in the unit string "mmHg"

Если изменения в модели вызывают новое предупреждение, его почти невозможно обнаружить. Поэтому мне нужно научить Modelica блоку "mmHg".

Мои текущие знания по теме:
- Языковая спецификация Modelica 3.3, Глава 19 Выражения единиц измерения: «Можно поддерживать символы единиц измерения, определенные пользователем». Однако в документе это не уточняется.
- пользователи могут определять единицы отображения (реальный атрибут "displayUnit") для использования в графическом интерфейсе моделирования, если коэффициент преобразования определен в файле "displayunit.mos" в каталоге Dymola следующим образом:

defineUnitConversion("Pa", "mmHg", 760/101325);

Это не вариант, потому что это уменьшает мобильность модели. Это должно быть выполнено вручную на каждом компьютере, на котором запущена модель и требуются права администратора (которых у меня нет).

Заранее спасибо за помощь, это очень ценится!

РЕДАКТИРОВАТЬ (может быть полезно любому, кто столкнется с этим в будущем):
Версии на момент публикации: Стандартная библиотека Modelica 3.2, Dymola Version 2014 (64-bit) 2013-03-25

Я забыл добавить следующее к моим текущим знаниям по этой теме: Physiolibrary 2.1.1 определяет displayUnits для GUI. Для кодирования авторы используют следующий прием:

type Pressure =  Modelica.SIunits.Pressure(displayUnit="mmHg", nominal=133.322387415);

Таким образом, Modelica обрабатывает переменные типа Pressure с единицами Паскаля (Н / м2), но делит каждое значение, введенное в коде, на заданный номинал.

КОРРЕКЦИЯ:
В этом разделе я ранее заявлял, что Physiolibrary использует номинальный атрибут Real для преобразования единиц. Это не вариант. Спасибо Марек Матеяк (автор Physiolibrary) за исправление меня. Единственная цель номинала атрибута - масштабирование численной задачи по соображениям устойчивости.

Ответы на вопрос(3)

Ваш ответ на вопрос