Симуляция модели

SimBiology позволяет моделировать динамическое поведение модели. До и во время симуляции SimBiology выполняет ряд шагов, включая преобразование реакций модели и правил скорости в набор обыкновенных дифференциальных уравнений (ОДУ), которые математически описывают динамику модели.

В частности, до начала симуляции SimBiology:

  1. Проверка модели. Для получения дополнительной информации смотрите Верификация модели.

  2. Определяет начальные условия, то есть значения в начале симуляции. В частности, SimBiology сначала инициализирует величины на основе значений, заданных в модели. Во-вторых, значения обновляются путем замены их соответствующими альтернативными значениями из вариантов, если таковые имеются. Затем значения обновляются на основе начальных присвоений и повторных присвоений. SimBiology оценивает начальные назначения и повторные назначения как набор одновременных ограничений, и их порядок не влияет на окончательные значения количества. Для получения дополнительной информации смотрите Порядок оценки правил.

  3. Создает ОДУ на основе реакций модели и правил скорости. В частности, левая сторона (LHS) каждой ОДУ представляет производную по времени от величины модели. Правая сторона (RHS) определяется с использованием реакционных потоков, которые получают из скоростей реакции. Для получения дополнительной информации смотрите Вывод ОДУ из реакций.

  4. Преобразует дозы в переходы состояния, которые происходят в определенные времена симуляции.

  5. Преобразует функции события в переходы состояния, которые зависят от условий, заданных в триггерах события.

Когда симуляция начинается, то есть во времени симуляции = 0, SimBiology:

  1. Обновляет значения на основе начальных назначений и повторных назначений.

  2. Применяет любые переходы состояния из-за дозирования, заданного во время симуляции = 0.

  3. Регистрирует обновленные значения количества.

Примечание

События не могут вызвать переходы во время = 0, поскольку события применяются только тогда, когда триггер изменяется с false на true. Если триггер равен true во времени симуляции = 0, то переход не произошел и событие не запускается.

Во время симуляции SimBiology использует решатель для вычисления решений для ОДУ в разное время. В частности, решатель определяет соответствующие временные шаги и выполняет следующие на каждом шаге.

  1. Обновляет значения для всех повторных назначений.

  2. Проверяет условие триггера каждого события. Если он переключается с false на true на данном временном шаге, то он применяет изменения состояния в соответствии с функциями события и обновляет значения для любых повторных назначений.

  3. Регистрирует обновленные значения количества.

Чтобы увидеть систему ОДУ модели, используйте getequations в командной строке или следуйте инструкциям в Show Model Equations и Initial Conditions для приложения SimBiology Model Builder.

Примечание

Если модель имеет алгебраические уравнения, необходимо задать один из следующих решателей дифференциально-алгебраического уравнения (ДАУ): sundials, ode15s, ode23t. SimBiology преобразует алгебраические уравнения в алгебраические ограничения и решает их вместе с остальными ОДУ. Для получения дополнительной информации о доступных решателях см. Раздел «Выбор решателя симуляции».

См. также

Похожие примеры

Подробнее о