Выполнить преобразование единиц
UnitConversion свойство указывает, следует ли выполнять преобразование единиц измерения для модели перед моделированием. Является свойством CompileOptions объект. CompileOptions содержит опции времени компиляции модели и является свойством объекта configset объект.
Когда UnitConversion имеет значение true, программное обеспечение SimBiology ® преобразует соответствующие физические величины в одну согласованную единичную систему для их разрешения. Это преобразование готовится к правильному моделированию, но количества видов возвращаются в указанных пользователем единицах.
Например, рассмотрим реакцию a + b —> c. Используя кинетику массового действия, скорость реакции определяется как a*b*k где k - постоянная скорости реакции. Если указать, что начальные суммы a и b равны 0.01M и 0.005M соответственно, то единицы k являются 1/(M*second). При указании k с другим эквивалентным определением единицы измерения, например, 1/((molecules/liter)*second), UnitConversion происходит после DimensionalAnalysis.
Преобразование единиц требует анализа размеров. Если DimensionalAnalysis выключается, а ты сворачиваешь UnitConversion на, затем DimensionalAnalysis включается автоматически. Если UnitConversion включен, и вы отключаете DimensionalAnalysis, то UnitConversion автоматически отключается.
Если UnitConversion ошибка, то при моделировании появляется ошибка (sbiosimulate).
Если UnitConversion имеет значение false, при моделировании используются заданные значения объекта.
| Относится к | Объект: CompileOptions (в configset объект) |
| Тип данных | boolean |
| Значения данных |
|
| Доступ | Чтение/запись |
Примечание
SimBiology использует единицы, включая пустые единицы, связанные с DimensionalAnalysis и UnitConversion функции.
Когда DimensionalAnalysis и UnitConversion являются оба false, единицы не используются. Однако SimBiology все еще выполняет минимальный уровень размерного анализа, чтобы решить, находится ли скорость реакции в измерениях количества/времени или концентрации/времени.
Когда DimensionalAnalysis является true и UnitConversion является false, единицы измерения (если не пустые) должны иметь согласованные размеры, чтобы SimBiology могла выполнять размерный анализ. Однако единицы измерения не преобразуются.
Когда UnitConversion имеет значение true (который требует DimensionalAnalysis быть true), SimBiology выполняет размерный анализ и преобразует все в согласованные единицы. Поэтому необходимо указать непротиворечивые единицы, и никакие единицы не могут быть пустыми. Если у вас есть безразмерный параметр, вы все равно должны установить его единицу измерения в dimensionless.
Совет
При наличии пользовательской функции и UnitConversion включен, следуйте рекомендации ниже.
Без размерности параметры, передаваемые функции, если они еще не безразмерны.
Предположим, что у вас есть пользовательская функция, определенная как y = f(t) где t время в часах и y - концентрация вида в моль/литр. При использовании этой функции в модели для определения повторяющегося правила назначения, например, определите его как: s1 = f(time/t0)*s0, где time - время моделирования, t0 - параметр, определенный как 1,0 час, s0 - параметр, определяемый как 1,0 моль/л, и s1 - концентрация вида в моль/литр. Обратите внимание, что time и s1 не обязательно находиться в тех же единицах, что и t0 и s0, но они должны быть размерно последовательными. Например, time и s1 единицы измерения могут быть установлены на минуту и пикомоль/литр соответственно.
В этом примере показано, как извлекать и устанавливать unitconversion от значения по умолчанию true кому false в наборе конфигурации по умолчанию в объекте модели.
Импорт модели.
modelObj = sbmlimport('oscillator')SimBiology Model - Oscillator
Model Components:
Models: 0
Parameters: 0
Reactions: 42
Rules: 0
Species: 23
Получить configset объекта модели.
configsetObj = getconfigset(modelObj)
Configuration Settings - default (active)
SolverType: ode15s
StopTime: 10.000000
SolverOptions:
AbsoluteTolerance: 1.000000e-006
RelativeTolerance: 1.000000e-003
RuntimeOptions:
StatesToLog: all
CompileOptions:
UnitConversion: false
DimensionalAnalysis: trueПолучить CompileOptions объект.
optionsObj = get(configsetObj,'CompileOptions')
Compile Settings:
UnitConversion: false
DimensionalAnalysis: trueПрисвойте значение false UnitConversion.
set(optionsObj,'UnitConversion', true)