Выполнение размерного анализа модели
DimensionalAnalysis свойство определяет, следует ли выполнять размерный анализ модели перед моделированием. Является свойством CompileOptions объект. CompileOptions содержит опции времени компиляции модели и является свойством объекта configset объект. Когда DimensionalAnalysis имеет значение trueпрограммное обеспечение SimBiology ® проверяет, соответствуют ли физические количества блоков, участвующих в реакциях и правилах, и являются ли они применимыми .
Например, рассмотрим реакцию a + b —> c. Используя кинетику массового действия, скорость реакции определяется как a*b*k, где k - постоянная скорости реакции. Если указать, что начальные суммы a и b равны 0.01M и 0.005M соответственно, то единицы k являются 1/(M*second). При указании k с другим эквивалентным определением единицы измерения, например, 1/[(moles/liter)*second], DimensionalAnalysis проверяет соответствие физических величин. Если физические величины не совпадают, появляется ошибка, и модель не моделируется.
Преобразование единиц требует анализа размеров. Если DimensionalAnalysis выключается, а ты сворачиваешь UnitConversion на, затем DimensionalAnalysis включается автоматически. Если UnitConversion включен, и вы отключаете DimensionalAnalysis, то UnitConversion автоматически отключается.
Если в модели имеются вызовы функций MATLAB ®, размерный анализ игнорирует любые выражения, содержащие вызовы функций, и генерирует предупреждение.
Действительными физическими количествами для скоростей реакции являются количество/время, масса/время или концентрация/время.
| Относится к | Объект: CompileOptions (в configset объект) |
| Тип данных | boolean |
| Значения данных |
|
| Доступ | Чтение/запись |
Примечание
SimBiology позволяет возведение любой безразмерной величины в степень до любой безразмерной мощности. Например, можно записать следующее выражение, если оба x и a безразмерны: (x + 3)^(a + 0.5)
Примечание
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 единицы измерения могут быть установлены на минуту и пикомоль/литр соответственно.
В этом примере показано, как извлекать и устанавливать DimensionalAnalysis от значения по умолчанию 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: true
DimensionalAnalysis: trueПолучить CompileOptions объект.
optionsObj = get(configsetObj,'CompileOptions')
Compile Settings:
UnitConversion: true
DimensionalAnalysis: trueНазначение значения false кому DimensionalAnalysis.
set(optionsObj,'DimensionalAnalysis', false)