A25 Модель химико-технологического процесса
состоит из классов Заказ и Main и эксперимента Simulation.
Класс «Заказ» является шаблоном, в соответствии с которым в модели создаются все транзакты.
Транзакты после создания проходят ряд этапов согласно схеме моделируемого процесса. За продвижение заказов отвечает в программе логическая цепь из компонентов основной библиотеки Anylogic.
Создаются заказы в блоке «СырьёПоступает», затем в блоке timeMeasureStart фиксируется время старта транзакта. После этого наступает этап экструдирования, который происходит одновременно на трёх линиях. Если экструдер загружен на 100%, то лишнее сырьё будет находиться перед (блок ОчередьЭкструдер). Задержка на время экструдирования имитируется с помощью блока экструд_ние. Следующий этап «вырубка» так же имитируется двумя блоками ОчередьВырубка,вырубка. Аналогично для всех оставшихся этапов используются по два блока:
Завершает логическую цепь продвижения заказов во времени блок timeMeasureEnd и sink().
В первом блоке фиксируется время выполнения цикла выпуска — этому моменту соответствует событие, когда все 15 заказов обработаны. А в блоке удаляются обработанные заказы и выполняется один раз за период моделирования следующий код:
if (sink.count() == 15) {
времяВыпуска=time()-времяВыпуска;
pauseSimulation();
}
Распределение заказов в разные последовательности реализовывается с помощью кода ниже:
времяВыпуска=time();
int newindex=uniform_discr(0, 14);
while(индексыMap.containsValue(newindex))
newindex=uniform_discr(0, 14);
индексыMap.put((int)СырьёПоступает.count(),newindex);
agent.индекс=newindex;
text1.setText(text1.getText()+» -> «+newindex);
Интерфейс модели дополняет схема химико-технологического процесса и числовые характеристики двух показателей.