В комбинированных моделях переменные могут изменяться как дискретно, так и непрерывно. Поведение системы имитируется путем вычисления значений непрерывных переменных через небольшие отрезки времени, называемые шагом интегрирования, и вычисления значений дискретных переменных в моменты свершения событий.
В комбинированном моделировании применяются два типа событий: временные события (события, свершение которых планируется в определенные моменты времени) и события состояния (эти события не планируются, а происходят тогда, когда система достигает определенного состояния). Например, событие "открытие диода" в схеме, показанной на рисунке, произойдет, когда напряжение на диоде станет положительным, а событие "закрытие диода"- когда ток в цепи достигнет нуля.
Отметим, что процедура определения "события состояния" аналогична процедуре "сканирование активностей", в которой событие также не планируется, а инициируется определенным состоянием системы. Возможность возникновения события состояния должна проверяться при каждом продвижении модельного времени.
При проведении экспериментов с имитационными моделями обычно соотносят между собой три представления времени:
- реальное время, в котором происходит функционирование реальной системы;
- модельное (или системное) время, в масштабе которого организуется работа модели;
- машинное время, отражающее затраты времени ЭВМ на проведение имитации.
В программной реализации имитационных моделей можно выделить две составляющие: язык описания модели и программу управления модельным временем.
Если первую составляющую выбирают исходя из удобств описания модели (язык, ориентированный на описание событий, действий или процессов), то вторую – исходя из возможностей управления динамикой модели. Поскольку для реализации моделей сложных систем требуются большие затраты машинного времени, существует проблема выбора способа управления модельным временем.
Механизм продвижения системного времени по-разному реализуется в непрерывных и дискретных моделях. В первом случае состояние моделируемой системы меняется как непрерывная функция времени, и, как правило, это изменение описывается системами дифференциальных уравнений. Соответственно, продвижение модельного времени зависит от численных методов решения дифференциальных уравнений.
Динамика дискретных моделей определяется событиями, и изменения состояния системы происходят в моменты времени наступления событий. Продвижение модельного времени в этом случае осуществляется путем перевода часов от момента наступления одного события к моменту наступления следующего.
Поскольку в моделях сложных систем непрерывные и дискретные процессы часто невозможно разделить и ни одним из них нельзя пренебречь, приходится использовать комбинированные (дискретно-непрерывные) модели, в которых способ продвижения времени должен удовлетворять обоим видам процессов.