Модель бензоколонки
Программа моделирования бензоколонки
1. Стартовая форма frmForm1
1.1. Таблица свойств формы 1 (макет на рис. 2)
Объект |
Свойства |
Установки |
Форма 1 |
Name
Caption |
FrmForm1 Модель СМО с 1,2 или 3 каналами |
Командная кнопка 1 |
Name Caption |
Command1 Расчет |
Командная кнопка 2 |
Name Caption |
Command2 Расчет |
Командная кнопка 3 |
Name Caption |
Command3 Выход |
1.2. Процедуры обработки прерываний
Private Sub Command1_Click()
Nkan = Val(txtNk): TZcp = Val(txtTzs): TObcp = Val(txtTobs)
TWmax = Val(txtTwm): Nr = Val(txtNp)
Call Model2
End Sub
Private Sub Command2_Click()
FrmForm1.txtResult = “”
End Sub
Private Sub Command3_Click()
End
End Sub
2. Форма frmForm2
2.1. Таблица свойств формы 2
Объект |
Свойства |
Установки |
Форма 2 |
Name Enabled |
Form2 False |
2.2. Процедура обработки прерываний
Private Sub Form2_Load()
End Sub
3. Модули общего назначения
‘Описание констант и массивов
Public Const Tfin = 10 ‘время окончания работы
Public Const NzMax = 40 ‘максимальное число заявок
Public Tz(Nzmax) ‘массив времени поступления заявок
Public Nob(3) As Integer ‘число обслуженных заявок в каналах
Public TKO(3) ‘время окончания обслуживания заявок
Public TScp, Tobcp, Twmax, Tkmin, TH, TK, z, Ts
Public Snob As Long, Iz As Integer, Nz As Integer, Ir As Integer
Public Nr As Integer, J As Integer, Nkan As Integer, Jmin As Integer 180
Public Sub Model2()
‘Главный модуль
Snob = 0 ‘сумматор числа обслуженных заявок
frmForm1.Enabled = False: FrmForm1.Visible = False
frmForm2.Enabled = True: FrmForm2.Visible = True
For Ir = 1 To Nr ‘начало цикла случайных реализаций
frmForm2.Cls ‘очистка окна формы 2
frmForm2.CurrentX = 600: frmForm2.CurrentY = 200
frmForm2.Print “Расчет ” & Ir & “-й реализации” ‘вывод показаний ‘счетчика числа реализаций в окно формы 2 ‘обнуление локальных переменных
Nz = 0 ‘обнуление числа заявок
Nob(1) = 0: Nob(2) = 0: Nob(3) = 0 ‘обнуление числа обслуженных заявок
TKO(1) = 0: TKO(2) = 0: TKO(3) = 0 ‘время окончания обслуживания
‘заявок в 1, 2 и 3-м каналах
Call ZAJAVKA ‘процедура «Поток заявок»
For Iz = 1 To Nz ‘начало цикла обслуживания заявок
‘выбор номера канала
TKmin = TKO(1)
For J = 1 To Nkan
If TKO(J) < Tkmin Then Tkmin = TKO(J): Jmin = J
Next J
Call SERVICE ‘процедура обслуживания заявки
Next Iz ‘конец цикла обслуживания заявок
‘суммарное число обслуженных заявок:
Snob = Snob + Nob(1) + Nod(2) + Nob(3)
Next Ir ‘конец цикла реализаций
FrmForm2.Enabled = False: FrmForm2.Visible = False
FrmForm1.Enabled = True: FrmForm1.Visible = True
‘показатель эффективности:
Cont = Snob/Nr – 1 + 0.5 * Nkan – 0.5 * Nkan * Nkan
frmForm1.txtResult = Format$(Cont, “#.##”)
End Sub
Sub SAJAVKA
‘Процедура «Поток заявок»
T = 0 ‘модельное время
For J = 1 To Nzmax ‘начало цикла формирования заявок
z = Rnd(1) ‘случайная величина с равномерным распределением
Ts = T – TZcp * Log(z) ‘случайное время поступления заявки
If Ts > Tfin Then Exit For ‘условие прекращения приема заявок
Nz = Nz + 1 ‘счетчик числа заявок
Tz(Nz) = Ts ‘фиксированное время поступления заявки
T = Ts ‘изменение модельного времени
Next J ‘конец цикла формирования заявок
End Sub
Sub SERVICE
‘Процедура «Обслуживания заявок»
J = Jmin ‘номер канала
DTWait = 0 ‘начальное значение времени ожидания
TH = Tz(Iz) ‘время начала обслуживания
If Tz(Iz) < TKO(J) Then ‘проверка необходимости коррктировки
‘корректировка времени начала обслуживания:
DTWait = TKO(J) – Tz(Iz) ‘период ожидания
If DTWait > Twmax Then Exit Sub
‘время начала обслуживания
TH = TKO(J)
End If
Z = Rnd(1) ‘случайная величина с равномерным ‘распределением в интервале (0,1)
TK = TH – Tobcp * Log(z) ‘время окончания обслуживания
If TK > Tfin Then
TKO(J) = Tfin: Exit Sub
End If
Nob(J) = Nob(J) + 1 ‘увеличение числа обслуженных заявок
TKO(J) = TK ‘время окончания обслуживания
End Sub
Другие рефераты на тему «Экономико-математическое моделирование»:
Поиск рефератов
Последние рефераты раздела
- Выборочные исследования в эконометрике
- Временные характеристики и функция времени. Графическое представление частотных характеристик
- Автоматизированный априорный анализ статистической совокупности в среде MS Excel
- Биматричные игры. Поиск равновесных ситуаций
- Анализ рядов распределения
- Анализ состояния финансовых рынков на основе методов нелинейной динамики
- Безработица - основные определения и измерение. Потоки, запасы, утечки, инъекции в модели