Принципы построения универсальной автоматизированной имитационной модели

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

В настоящее время реальным средством достижения желаемого эффекта является применение специализированных языков модели­рования. Однако до сих пор использование существующих языков моделирования позволяло преодолеть лишь часть возникающих труд­ностей, а снижение трудоемкости оказалось недостаточным для того, чтобы коренным образом изменить ситуацию в области имитации сложных систем. Запись моделирующего алгоритма при помощи лю­бого из применяемых языков опирается на представление процесса функционирования системы в некотором специальном виде (напри­мер, в виде последовательности событий, упорядоченных в соответ­ствии с характерными для данной системы закономерностями изме­нений состояний во времени). Вручную такое представление можно построить в обозримое время для сравнительно простых систем. Ког­да же моделируемый объект формализуется как многоуровневая иерар­хическая структура из элементов, которые сами являются достаточно сложными системами, упомянутое представление по мере роста слож­ности системы становится все менее доступным и в конечном счете выходит за пределы возможностей человека. Даже для систем сред­ней сложности подготовка имитационных моделей с помощью суще­ствующих языков моделирования требует немало времени и сил, осо­бенно на отладку получаемых таким способом программ, которые, к тому же, оказываются обычно далеко не оптимальными с точки зре­ния реализации их на ЭВМ.

В рамках каждого из существующих языков моделирования фор­мализация объектов опирается на математические схемы определен­ного класса. Когда речь идет об объектах большой сложности, требу­ется охватить системы, отдельные части которых описываются различными математическими схемами. В этом случае использова­ние какого-нибудь одного языка моделирования может привести к потере точности описания реальных объектов или усложнению про­грамм. Наконец применение языков требует от пользователей неко­торых специальных знаний и известных практических навыков.

Языки моделирования (как и вообще языки программирования) являются и будут оставаться весьма эффективным инструментом спе­циалистов, разрабатывающих программное обеспечение ЭВМ. Для пользователя же должны быть разработаны более простые средства подготовки задач и общения с ЭВМ.

Все это подчеркивает необходимость дальнейшего совершенство­вания средств автоматизации имитационного моделирования, кото­рое, помимо основной цели — уменьшения трудоемкости ручных ра­бот и охвата систем, представляющих собой сложные структуры из разнородных элементов, — должно иметь в виду также снижение тре­бований к подготовке пользователя по программированию, форма­лизации и методам решения задач на ЭВМ.

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

Программа имитации должна быть построена по модульному прин­ципу, при котором все элементы системы описываются единообраз­но в виде некоторой стандартной математической схемы — модуля. В качестве модуля следует выбирать динамическую систему доста­точно общего вида, охватывающую как детерминистические, так и стохастические объекты, функционирующие в непрерывном и диск­ретном времени.

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

Различие систем по составу, характеру и параметрам элементов, а также структуре их сопряжения не оказывает влияния на вид про­граммы имитации, а учитывается в исходных данных для моделиро­вания (значениях параметров и начальных состояний элементов в таб­лицах сопряжения и т. д.). Поскольку реальные элементы системы описываются математическими схемами, в общем случае отличаю­щимися от выбранного модуля, предусматривается возможность ав­томатического преобразования математических моделей элементов к стандартному виду, определяемому выбранным модулем.

Все процедуры обслуживания модели, связанные с вводом в ЭВМ исходных данных, их расположением в памяти, преобразованием элементов системы и схем сопряжения к стандартному виду, настрой­кой модели на реальный объект и конкретную задачу, фиксацией, обработкой и анализом результатов моделирования и т. д., которые могут быть формализованы, программируются для выполнения при помощи ЭВМ. Таким образом, речь идет о создании весьма универ­сального пакета прикладных программ, называемого далее автома­тизированной имитационной моделью (АИМ) и способного настраиваться на имитацию любых реальных объектов из заранее определенного класса.

Построение АИМ требует формализованных схем трех уровней общности: 1) для описания реальных элементов системы (схемы фор­мализации моделируемого объекта); 2) более общих схем для имита­ции процесса функционирования системы (модули); 3) еще более общих схем для обработки и анализа результатов моделирования (схе­мы анализа). Увеличение числа схем формализации позволяет охва­тить более широкий класс реальных объектов (расширить проблем­ную ориентацию АИМ) и делает АИМ более удобной, более гибкой при практическом применении. Вместе с тем оно, естественно, тре­бует увеличения числа программ преобразования математических мо­делей элементов системы к стандартному виду.

Стандартный вид математических моделей элементов системы и схем сопряжения, обеспечивая возможность построения универсаль­ных программ имитации процесса функционирования системы, тем самым приводит к единой форме выдачи результатов моделирования. Это существенно для построения библиотеки стандартных программ обработки и анализа результатов моделирования, которая является одной из неотъемлемых частей АИМ.

Изложенное позволяет заключить, что АИМ должна осуществ­лять по крайней мере следующую совокупность операций:

• ввод и формирование массива исходных данных для моделиро­вания;

• преобразование элементов системы и схем сопряжения к стан­дартному виду;

• имитацию модуля и взаимодействие элементов системы;

• обработку и анализ результатов моделирования;

• управление моделью.

Естественно, что эта совокупность функций может пополниться по мере автоматизации новых процедур, входящих в подготовку или эксплуатацию модели. При решении задач на АИМ (в том числе и при переходе к моделированию новых объектов) практически отпа­дает необходимость в программировании, за исключением, быть мо­жет, развития библиотек анализа результатов моделирования и стан­дартных процедур имитации.

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