3.1 Структура программы

Выделим основные составные части проекта: Form1 («Задание связей между рабочими станциями») — форма для создания связей между станциями, FormTabl («Создание матрицы связей») — форма для задания коэффициентов связей, FormMultiMass («Модель многофазной многопоточной системы обслуживания») — форма для ввода входных параметров, FormRes («Результаты моделирования многофазной системы обслуживания») — форма для вывода результатов моделирования, ModStation1 — основной вычислительный модуль.

На Form1 помещены следующие компоненты: Frame — для разделения формы на несколько областей, Line и Shape — для графического отображения связей между станциями, CommandButton — для обозначения станций, реализации процедуры задания связей между станциями и перехода к другим формам.

На FormTabl помещены компоненты: Label — для обозначения названий строк и столбцов матрицы связей, TextBox — для обозначения матрицы связей и ввода коэффициентов, CommandButton — для запуска проверки правильности задания коэффициентов связей и перехода к другим формам.

На FormMultiMass помещены компоненты: Frame — для разделения формы на несколько областей, TextBox — для ввода параметров, Label — для обозначения названия вводимого параметра, OptionButton — для организации выбора типа распределения, ProgressBar — для обозначения прохождения процесса моделирования, CommandButton — для начала ввода параметров, запуска процесса моделирования, перехода к другим формам и выхода из программы.

На FormRes помещены компоненты: SSTab — для разделения формы на две страницы (графиков и числовых результатов), Frame — для разделения страницы числовых результатов на несколько областей, Label — обозначения названия выводимого показателя, PictureBox — для вывода графических результатов моделирования, TextBox — для вывода числовых результатов моделирования, CommandButton — для возвращения к формам, используемым для ввода входных параметров.

3.2 Алгоритм работы программы

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

Обобщенный алгоритм работы программы показан на рис. 2:

 


 

Начало

 

 


Ввод исходных данных

 

 


Н Ввод Д

 корректен?

 

Создание массива переходов Н Расчет по

формулам?

Переход к первой станции Д

 

Создание входного массива на текущей станции

Расчет по имита- Расчет по

 ционной модели формулам

Нужна Д

сортировка?

 

Сортировка Вывод рассчитанных

Н показателей

 

 


Создание выходного массива на текущей станции

Н Продолжать

работу?

Н Последняя Конец

 станция?

Переход к  Д

следующей Д

станции рис. 2



Программу можно поделить на две части: имитационная модель системы и расчетно-формульная модель. Для начала функционирования любой модели необходимо задать ряд входных параметров. Пользователь должен выбрать тип распределения времени прихода заявок на первую станцию (экспоненциальное — DistIndex = 0 или нормальное — DistIndex = 1) и тип распределения времени обслуживания заявок по станциям (экспоненциальное — DistIndex1 = 0 или нормальное — DistIndex1 = 1). Выбор осуществляется с помощью связанных пар компонентов OptionButton. Также пользователь задает количество рабочих станций — m (m = 1 — 10), число заявок на входе — n, среднее время между заявками во входном потоке — Ta и, при нормальном распределении на входе, стандартное отклонение (в % от среднего) — DTa (перечисленные параметры вводятся с помощью компонентов TextBox). Затем, при помощи компонентов CommandButton на форме «Задание связей между рабочими станциями», задаются связи между станциями, каждая из которых обозначаются линией, соединяющей две станции с кружком на том конце, куда связь приходит, далее, с помощью матрицы связей на форме «Создание матрицы связей», задаются весовые коэффициенты связей — pi(i). Матрица составлена из компонентов TextBox. Далее, для каждой станции, также при помощи компонентов TextBox, задается среднее время обслуживания — Ts(k), вероятность снятия заявки на выходе i-ой станции — Pr(k) и, при нормальном распределении времени обслуживания, стандартное отклонение (в % от среднего) — DTs(k).

После ввода весовых коэффициентов связей предусмотрена процедура проверки на корректность ввода. В случае некорректного задания коэффициентов, пользователю выдается сообщение об этом — MsgBox, и строка матрицы связей, в которой были заданы некорректные значения, очистится. Корректность проверяется через суммарные коэффициенты перехода: суммарный коэффициент перехода в конце каждой строки должен равняться единице. Так как коэффициенты определены типом Single, то для избежания ошибок, которые могут возникнуть в результате погрешности вычислений, производимых с переменными этого типа, проверка на равенство 1 заменяется проверкой на принадлежность интервалу (0.9999; 1.0001).

Далее, рассмотрим отдельно структуру каждой части.


Информация о работе «Разработка и исследование имитационной модели разветвленной СМО (системы массового обслуживания) в среде VB5»
Раздел: Радиоэлектроника
Количество знаков с пробелами: 98051
Количество таблиц: 44
Количество изображений: 8

0 комментариев


Наверх