Уравнение скорости реакции в объекте реакции
ReactionRate
свойство определяет уравнение скорости реакции. Можно задать ReactionRate
с или без KineticLaw
свойство. KineticLaw
задает тип скорости реакции. addkineticlaw
функция конфигурирует ReactionRate
на основе KineticLaw
и разновидности и параметры заданы в кинетических свойствах объектов закона SpeciesVariableNames
и ParameterVariableNames
.
Реакция происходит в обратном направлении если Reversible
свойство верно. Это отражается в ReactionRate
. ReactionRate
включает прямой и противоположный уровень, если обратимый.
Можно задать ReactionRate
без KineticLaw
. Используйте set
функция, чтобы задать уравнение скорости реакции. SimBiology® программное обеспечение добавляет переменные разновидностей при создании reactionObj
использование addreaction
метод. Необходимо добавить переменные параметра (к modelObj
в этом случае). Смотрите пример ниже.
После того, как вы задаете ReactionRate
без KineticLaw
и вы позже конфигурируете reactionObj
использовать KineticLaw
, ReactionRate
сброшен, пока вы не задаете SpeciesVariableNames
и ParameterVariableNames
.
Для получения информации о размерном анализе для скоростей реакции смотрите, Как Оценены Скорости реакции.
Примечание
Если вы устанавливаете ReactionRate
свойство к выражению, которое не непрерывно и дифференцируемо, смотрите Используя События, чтобы Обратиться к Разрывам в Выражениях Правила и Скорости реакции прежде, чем симулировать вашу модель.
Применяется | Объект: реакция |
Тип данных | Символьный вектор |
Значения данных | Вектор символов, задающий скорость реакции. Значением по умолчанию является '' (пустой символьный вектор). |
Доступ | Чтение-запись |
Создайте модель, добавьте реакцию и присвойте выражение для уравнения скорости реакции.
Создайте объект модели, и затем добавьте объект реакции.
modelObj = sbiomodel('my_model'); reactionObj = addreaction(modelObj, 'a -> c + d');
Создайте кинетический объект закона для объекта реакции типа 'Henri-Michaelis-Menten'
.
kineticlawObj = addkineticlaw(reactionObj, 'Henri-Michaelis-Menten');
reactionObj
Свойство KineticLaw сконфигурировано к kineticlawObj
.
'Henri-Michaelis-Menten'
кинетический закон имеет две переменные параметра (Vm
и Km
) и одна переменная разновидностей (S
) то, что необходимо установить. Чтобы установить эти переменные, сначала создайте переменные параметра как объекты параметра (parameterObj1, parameterObj2
) с именами Vm_d
и Km_d
и присвойте их kineticlawObj
.
parameterObj1 = addparameter(kineticlawObj, 'Vm_d'); parameterObj2 = addparameter(kineticlawObj, 'Km_d');
Установите имена переменных для кинетического объекта закона.
set(kineticlawObj,'ParameterVariableNames', {'Vm_d' 'Km_d'}); set(kineticlawObj,'SpeciesVariableNames', {'a'});
Проверьте, что скорость реакции описывается правильно в объекте ReactionRate
реакции свойство.
get (reactionObj, 'ReactionRate')
MATLAB® возвращается:
ans = Vm_d*a/(Km_d + a)
Создайте модель, добавьте реакцию и задайте ReactionRate
без кинетического закона.
Создайте объект модели, и затем добавьте объект реакции.
modelObj = sbiomodel('my_model'); reactionObj = addreaction(modelObj, 'a + b -> c + d');
Задайте ReactionRate
и проверьте присвоение.
set (reactionObj, 'ReactionRate', 'k*a'); get(reactionObj, 'ReactionRate')
MATLAB возвращается:
ans = k*a
Вы не можете симулировать модель, пока вы не добавляете параметр k
к modelObj
.
parameterObj = addparameter(modelObj, 'k');
SimBiology добавляет параметр в modelObj
с Value
по умолчанию= 1.0
для параметра.
В этом примере показано, как задать пользовательскую скорость реакции для кинетики Хилла, которая совместима с DimensionalAnalysis
функция SimBiology.
Этот пример полезен особенно, если вы используете встроенного Хилла кинетический закон, но имеете кинетическую реакцию с экспонентой нецелого числа и не можете проверить модель, потому что размерный анализ перестал работать. У встроенного Хилла кинетический закон есть следующее выражение: . Предположим , затем можно переписать уравнение можно следующим образом: . Переопределенный Хилл кинетическое уравнение совместимо с Размерным Анализом и позволяет вам иметь экспоненту нецелого числа.
Создайте модель SimBiology.
m1 = sbiomodel('m1');
Добавьте отсек, две разновидности и реакцию.
c1 = addcompartment(m1, 'cell'); s1 = addspecies(m1,'a'); s2 = addspecies(m1,'b'); r1 = addreaction(m1, 'a -> b');
Добавьте предопределенный Хилл кинетический закон для реакции.
k1 = addkineticlaw(r1, 'Hill-Kinetics');
Отобразите выражение уровня встроенного кинетического закона.
k1.Expression
ans = Vm*S^n/(Kp + S^n)
Задайте параметры, значения и модули.
p1 = addparameter(k1, 'Vm', 1.0); p2 = addparameter(k1, 'n', 1.5); p3 = addparameter(k1, 'Kp', 2.828); set(k1, 'ParameterVariableNames', {'Vm','n','Kp'}); set(k1, 'SpeciesVariableNames', {'a'}); set(s1, 'InitialAmount', 2.0); set(s1, 'InitialAmountUnits', 'mole/liter'); set(s2, 'InitialAmountUnits', 'mole/liter'); set(c1, 'CapacityUnits', 'liter'); set(p1, 'ValueUnits', 'mole/liter/second'); set(p2, 'ValueUnits', 'dimensionless'); set(p3, 'ValueUnits', 'mole/liter');
Проверьте модель.
verify(m1)
Error using SimBiology.Model/verify --> Error reported from Dimensional Analysis: Dimensional analysis failed for reaction 'a -> b'. When using the power function, both the base and exponent must be dimensionless or the exponent must be an explicit integer constant (for example 2 in 'x^2').
Вы видите сообщение об ошибке, потому что SimBiology только позволяет возведение в степень любой безразмерной величины к любой безразмерной степени.
Переопределите скорость реакции так, чтобы это было совместимо с размерным анализом и позволило экспоненту нецелого числа.
r1.ReactionRate = 'Vm / ( (Kh/a)^n + 1 )'; k1.KineticLaw = 'Unknown';
Задайте значение и модули для Kh
параметр.
p4 = addparameter(k1, 'Kh', 2.0); set(p4, 'ValueUnits', 'mole/liter');
Проверьте модель.
verify(m1)
Вы больше не видите сообщение об ошибке.
Симулируйте модель.
[t,x,names] = sbiosimulate(m1);
Постройте график результатов.
plot(t,x); xlabel('Time'); ylabel('Amount'); legend(names);