Модуль суммы, используемая внутри во время симуляции, когда UnitConversion включен
Это свойство определяет модуль величины, которую SimBiology использует внутри во время симуляции модели при UnitConversion
включен. Можно задать это значение для любого вектора символов, представляющего модуль измерения величины, такую как молекула, моль или моль с любым допустимым префиксом. Это также может быть пользовательский модуль, если оно согласуется с суммой в качестве ее размерности. Значение по умолчанию является <automatic>
, что означает, что SimBiology автоматически выбирает модуль измерения суммы для симуляции. SimBiology исследует модули во всех состояниях и выбирает модуль величины, такую что AbsoluteTolerance
из состояний в количестве или величине на объем, по меньшей мере, так же строго, как абсолютная погрешность симуляции, умноженный на наименьший модуль измерения величины. Эта строгость расслабляется соответствующим образом для состояний, которые становятся большими, когда AbsoluteToleranceScaling
включен.
Примечание
Рекомендуется использовать модуль по умолчанию (<automatic>
) или выберите модули для таких состояний, чтобы моделируемые значения не были слишком большими (больше 106) или слишком маленькая (менее 10-6).
Однако для некоторых вариантов ребер может потребоваться изменение AmountUnits
. Предположим, что у вас есть модель с состоянием, которое принимает значения около 10-12 moles для всей симуляции, и вам нужно использовать mole
как его модуль. Тогда может быть уместно задать AmountUnits
на picomole
. В этом случае внутренние значения симуляции будут около 1, а не около 10-12 как в случае по умолчанию. AbsoluteTolerance
симуляции определяется с использованием этого внутреннего значения. Таким образом, путем выбора picomole
как модуль измерения суммы, вы эффективно уменьшаете размер AbsoluteTolerance
. Изменение AmountUnits
свойство тесно связано с изменением AbsoluteTolerance
при рассмотрении эффектов на результаты симуляции.
Даже при использовании модуля по умолчанию все еще может потребоваться изменить AbsoluteTolerance
. Для получения дополнительной информации смотрите Выбор Абсолютной погрешности и Относительной погрешности для Симуляции.
Если вам нужно восстановить поведение симуляции из релизов перед R2015b:
Установите AmountUnit
на mole
. Однако, если модель имеет модули в molecule
, установите модуль измерения равной molecule
вместо этого.
Установите MassUnits
на kilogram
.
Совет
Если у вас есть пользовательская функция и UnitConversion
on (используется ли единица модуля по умолчанию <automatic>
), следуйте рекомендации ниже.
Не-размерять параметры, которые передаются функции, если они еще не безразмерны.
Предположим, что у вас есть пользовательская функция, заданная как y = f(t)
где t
время в часах и y
- концентрация вида в моль/литр. Когда вы используете эту функцию в модели, чтобы задать повторное правило присвоения для образца, задайте ее как: s1 = f(time/t0)*s0
, где time
- время симуляции, t0
является параметром, заданным как 1,0 час, s0
является параметром, заданным как 1,0 моль/литр, и s1
- концентрация вида в моль/литр. Обратите внимание, что time
и s1
не обязательно находиться в тех же модулях, что и t0
и s0
но они должны быть размерно последовательными. Для примера, time
и s1
можно установить в минутах и пикомоле/литре, соответственно.
Применяется к | Объект: Configset |
Тип данных | Вектор символов |
Значения данных | Вектор символов, задающий любой модуль измерения величины. Значение по умолчанию является |
Доступ | Чтение/запись для свойств |