exponenta event banner

Устранение неполадок моделирования

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

  • Допуск интеграции не соблюден

  • CVODES вернул -4 от функции CVODES модуля CVode: At t = ... и h = ... тест сходимости корректора не прошел повторно или с | h | = hmin.

Можно также увидеть одно или несколько из следующих предупреждающих сообщений, которые являются предвестниками потенциальных проблем допуска решателя.

  • Правая сторона системы ОДУ SimBiology приводит к комплексным числам. Мнимая часть результата будет проигнорирована.

  • Правая сторона системы ОДУ SimBiology приводит к бесконечным значениям или значениям NaN. Обычно это указывает на ошибку моделирования и может привести к ошибкам интеграции решателя.

  • Повторяющиеся правила назначения модели SimBiology приводят к комплексным числам. Мнимая часть результата будет проигнорирована.

Советы по решению задач моделирования

Чтобы устранить проблемы моделирования, которые могут вызвать ошибки решателя, воспользуйтесь следующими советами по устранению неполадок.

Повышение производительности за счет ускорения

Можно ускорить моделирование, преобразовав модель в скомпилированный код C, который выполняется быстрее. Дополнительные сведения см. в разделе Ускорение моделирования и анализа модели. Если моделирование все еще медленное после ускорения, могут возникнуть проблемы с допусками решателя. Попробуйте остальные советы, не ускоряя модель.

Отладка модели с помощью MaximumNumberOfLogs и MaximumWallClock

MaximumNumberOfLogs и MaximumWallClock - это некоторые из опций конфигурации, которые можно использовать для остановки моделирования непосредственно перед ошибкой. Затем можно проверить необычные смоделированные значения, такие как отрицательные количества видов.

Например, установить MaximumNumberOfLogs кому 1 получить значения модели сразу после применения правил начального и повторного назначения. Если задано значение 2, и моделирование завершается неуспешно с ошибкой интеграции, то это, вероятно, указывает на ошибку с правилами назначения.

При изменении MaximumNumberOfLogs, многократно моделируйте модель, используя те же условия, которые приводят к ошибке. Модель может моделироваться без ошибок, пока не будет достигнуто определенное значение MaximumNumberOfLogs. Затем проверьте смоделированные значения в окончательное время моделирования. Если отображаются отрицательные значения для определенных состояний, например отрицательные количества видов, проверьте выражения в модели, которые могут повлиять на эти состояния. Обновите выражения, чтобы учесть возможные проблемы, такие как отрицательные значения или деление на 0, путем перегруппировки уравнений и/или вставки некоторых защитных элементов, таких как max(0,x) или max(eps,x), где x - переменная, ответственная за ошибку.

Кроме того, можно просмотреть уравнения модели для проверки начальных условий, таких как количества видов и значения параметров в момент моделирования = 0, чтобы проверить, соответствуют ли значения ожидаемым. Дополнительные сведения см. в разделе getequations или Show Model Equations and Initial Conditions (Показать уравнения модели и начальные условия).

Проверьте решатель ОДУ

Если модель жесткая и выбран неподходящий решатель, размер шага решателя может быть снижен до неоправданно малого уровня по сравнению с интервалом интегрирования. Убедитесь, что вы выбрали либо ode15s или sundials в качестве решателя жестких ОДУ.

Отключить AbsoluteToleranceScaling

Выключить AbsoluteToleranceScaling.

SimBiology использует AbsoluteTolerance и RelativeTolerance для контроля точности интегрирования во время моделирования. В частности, AbsoluteTolerance управляет наибольшей допустимой абсолютной ошибкой на любом этапе моделирования.

Когда AbsoluteToleranceScaling включено (по умолчанию), каждое состояние имеет собственный абсолютный допуск, который может увеличиваться в процессе моделирования. Иногда автоматическое масштабирование является недостаточным для моделей, которые имеют кинетику в значительной степени различных масштабах. Например, скорость реакции может быть порядка 1022, в то время как другой 0.1. Выключением AbsoluteToleranceScaling, вы можете смоделировать модель.

Ослабить допуски

Если ошибка допуска моделирования все еще существует после отключения AbsoluteToleranceScaling, попробуйте ослабить относительные и абсолютные допуски.

Набор RelativeTolerance до 10 m + 1, где m - количество значащих цифр, требуемых в решении X. Если X имеет несколько масштабов, начните с использования меньшего X и увеличьте оттуда, если допуск не соблюден.

Набор AbsoluteTolerance до значения X, которое пренебрежимо мало для вашей проблемы. Аналогично, начинайте с меньшего X и увеличивайтесь оттуда.

Дополнительные сведения см. в разделе Выбор абсолютного допуска и относительного допуска для моделирования.

Набор MassUnits и AmountUnits

MassUnits и AmountUnits свойства определяют соответствующие единицы измерения массы или количества, которые SimBiology использует внутри во время моделирования модели, когда UnitConversion включен. Рекомендуется использовать единицу измерения по умолчанию (<automatic>), но в некоторых случаях вам может потребоваться изменить его.

Изменение MassUnits или AmountUnits к единице, чтобы смоделированные значения не были слишком большими (то есть больше, чем 106) или слишком маленьким (то есть меньше, чем 10-6).

Предположим, что у вас есть модель с состоянием, которое принимает значения вокруг 10-12 молей для всего моделирования. Возможно, следует установить AmountUnits кому picomole. В этом случае значения внутреннего моделирования будут приблизительно 1, вместо того, чтобы вокруг 10-12 как и в случае по умолчанию.

Изменение параметров решателя и параметров моделирования

Опции решателя и моделирования хранятся в объекте набора конфигурации (configset object) модели. Параметры решателя содержат такие настройки, как относительные и абсолютные допуски. Параметры моделирования - это такие параметры, как MaximumNumberOfLogs и MaximumWallClock. В зависимости от того, используется ли интерфейс командной строки или графический интерфейс, способ доступа и изменения параметров различен.

Использование командной строки

Для доступа и изменения SolverOptionsиспользуйте следующие команды, где m1 является моделью SimBiology.

configset = getconfigset(m1);
solverOpts = configset.SolverOptions;
solverOpts.AbsoluteTolerance = 1e-5;
solverOpts.RelativeTolerance = 1e-5;
solverOpts.AbsoluteToleranceScaling = false;

Доступ к параметрам моделирования непосредственно из configset object.

configset = getconfigset(m1);
configset.MaximumNumberOfLogs = 1;
configset.MaximumWallClock = 10;

Использование графического интерфейса

Если используется приложение SimBiology Model Analyzer, можно получить доступ к параметрам, щелкнув Параметры моделирования (Simulation Settings) на вкладке Главная страница (Home).

См. также

| | | | | |

Связанные темы