Принципы построения универсальной автоматизированной имитационной модели
Радикальный способ снижения трудоемкости при увеличении сложности моделируемых объектов — автоматизация процедур, охватывающих построение и реализацию моделей.
В настоящее время реальным средством достижения желаемого эффекта является применение специализированных языков моделирования. Однако до сих пор использование существующих языков моделирования позволяло преодолеть лишь часть возникающих трудностей, а снижение трудоемкости оказалось недостаточным для того, чтобы коренным образом изменить ситуацию в области имитации сложных систем. Запись моделирующего алгоритма при помощи любого из применяемых языков опирается на представление процесса функционирования системы в некотором специальном виде (например, в виде последовательности событий, упорядоченных в соответствии с характерными для данной системы закономерностями изменений состояний во времени). Вручную такое представление можно построить в обозримое время для сравнительно простых систем. Когда же моделируемый объект формализуется как многоуровневая иерархическая структура из элементов, которые сами являются достаточно сложными системами, упомянутое представление по мере роста сложности системы становится все менее доступным и в конечном счете выходит за пределы возможностей человека. Даже для систем средней сложности подготовка имитационных моделей с помощью существующих языков моделирования требует немало времени и сил, особенно на отладку получаемых таким способом программ, которые, к тому же, оказываются обычно далеко не оптимальными с точки зрения реализации их на ЭВМ.
В рамках каждого из существующих языков моделирования формализация объектов опирается на математические схемы определенного класса. Когда речь идет об объектах большой сложности, требуется охватить системы, отдельные части которых описываются различными математическими схемами. В этом случае использование какого-нибудь одного языка моделирования может привести к потере точности описания реальных объектов или усложнению программ. Наконец применение языков требует от пользователей некоторых специальных знаний и известных практических навыков.
Языки моделирования (как и вообще языки программирования) являются и будут оставаться весьма эффективным инструментом специалистов, разрабатывающих программное обеспечение ЭВМ. Для пользователя же должны быть разработаны более простые средства подготовки задач и общения с ЭВМ.
Все это подчеркивает необходимость дальнейшего совершенствования средств автоматизации имитационного моделирования, которое, помимо основной цели — уменьшения трудоемкости ручных работ и охвата систем, представляющих собой сложные структуры из разнородных элементов, — должно иметь в виду также снижение требований к подготовке пользователя по программированию, формализации и методам решения задач на ЭВМ.
Для создания имитационных моделей в рамках традиционных методов ранее приходилось составлять программы моделирования отдельно для каждого варианта системы с учетом различия по составу, структуре и типам элементов. Такой подход приводил к недопустимо большим затратам времени и вытекающему отсюда снижению оперативности имитационного моделирования.
Программа имитации должна быть построена по модульному принципу, при котором все элементы системы описываются единообразно в виде некоторой стандартной математической схемы — модуля. В качестве модуля следует выбирать динамическую систему достаточно общего вида, охватывающую как детерминистические, так и стохастические объекты, функционирующие в непрерывном и дискретном времени.
Схема сопряжения, содержащая множества входных и выходных контактов всех элементов системы и внешней среды и операторы сопряжения на всех уровнях иерархии, может быть приведена к заранее определенному стандартному виду. Отсюда следует, что необходимо построение универсальной программы имитации, пригодной для всевозможных систем рассматриваемого типа.
Различие систем по составу, характеру и параметрам элементов, а также структуре их сопряжения не оказывает влияния на вид программы имитации, а учитывается в исходных данных для моделирования (значениях параметров и начальных состояний элементов в таблицах сопряжения и т. д.). Поскольку реальные элементы системы описываются математическими схемами, в общем случае отличающимися от выбранного модуля, предусматривается возможность автоматического преобразования математических моделей элементов к стандартному виду, определяемому выбранным модулем.
Все процедуры обслуживания модели, связанные с вводом в ЭВМ исходных данных, их расположением в памяти, преобразованием элементов системы и схем сопряжения к стандартному виду, настройкой модели на реальный объект и конкретную задачу, фиксацией, обработкой и анализом результатов моделирования и т. д., которые могут быть формализованы, программируются для выполнения при помощи ЭВМ. Таким образом, речь идет о создании весьма универсального пакета прикладных программ, называемого далее автоматизированной имитационной моделью (АИМ) и способного настраиваться на имитацию любых реальных объектов из заранее определенного класса.
Построение АИМ требует формализованных схем трех уровней общности: 1) для описания реальных элементов системы (схемы формализации моделируемого объекта); 2) более общих схем для имитации процесса функционирования системы (модули); 3) еще более общих схем для обработки и анализа результатов моделирования (схемы анализа). Увеличение числа схем формализации позволяет охватить более широкий класс реальных объектов (расширить проблемную ориентацию АИМ) и делает АИМ более удобной, более гибкой при практическом применении. Вместе с тем оно, естественно, требует увеличения числа программ преобразования математических моделей элементов системы к стандартному виду.
Стандартный вид математических моделей элементов системы и схем сопряжения, обеспечивая возможность построения универсальных программ имитации процесса функционирования системы, тем самым приводит к единой форме выдачи результатов моделирования. Это существенно для построения библиотеки стандартных программ обработки и анализа результатов моделирования, которая является одной из неотъемлемых частей АИМ.
Изложенное позволяет заключить, что АИМ должна осуществлять по крайней мере следующую совокупность операций:
• ввод и формирование массива исходных данных для моделирования;
• преобразование элементов системы и схем сопряжения к стандартному виду;
• имитацию модуля и взаимодействие элементов системы;
• обработку и анализ результатов моделирования;
• управление моделью.
Естественно, что эта совокупность функций может пополниться по мере автоматизации новых процедур, входящих в подготовку или эксплуатацию модели. При решении задач на АИМ (в том числе и при переходе к моделированию новых объектов) практически отпадает необходимость в программировании, за исключением, быть может, развития библиотек анализа результатов моделирования и стандартных процедур имитации.
Имитация функционирования элемента системы заключается в настройке модуля на данный элемент (поиске в архиве во внешней памяти строки, соответствующей данному элементу, и считывании содержимого в участке оперативной памяти, отведенного для хранения параметров имитируемого элемента) и реализации полученной модели на ЭВМ. Последняя обеспечивается основными подпрограммами: определения момента выхода на границу пространства состояний, реализации скачка состояния в момент выхода на границу или в момент поступления входного сигнала. Имитация взаимодействия между элементами сводится к определению адреса и содержания сигнала и передаче его в соответствии с адресом. Важную роль играет установление строгой очередности событий в процессе функционирования системы, которая в масштабах всей системы автоматически обеспечивается специальным построением алгоритма моделирования (регистровый метод). Сбор сведений, позволяющих получить характеристики моделируемого процесса, заключается в фиксации состояний элементов системы в так называемые опорные моменты времени (в моменты скачков), так как в силу принятой кусочной линейности движения мы можем легко вычислить любые состояния между скачками.