Выполните модульное преобразование
Свойство 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, симуляция использует данные объектные значения.
Модульное преобразование включающая температура поддерживает Celsius как температурный модуль. Избегайте использования смешанных температурных модулей, когда вы можете получить ошибку.
| Применяется | Объект: CompileOptions (в объекте configset) |
| Тип данных | boolean |
| Значения данных |
|
| Доступ | Чтение-запись |
SimBiology использует модули включая пустые модули в сотрудничестве с функциями UnitConversion и DimensionalAnalysis.
Когда 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 могут быть установлены в минуту и picomole/liter, соответственно.
Этот пример показывает, как получить и установить 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Присвойте значение лжи к UnitConversion.
set(optionsObj,'UnitConversion', true)