Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Расчет концентраций вредных веществ в атмосферном воздухе. Учебное пособие
.pdf
Рис. 8. Интерфейс второй диалоговой формы
61

'расчет параметра m
If F < 100 Then
m = 1 / (0.67 + 0.1 * Sqr(F) + 0.34 * F ^ (1 / 3))
Else
m = 1.47 / F ^ (1 / 3)
End If
'расчет параметра n
If Vm >= 2 Then
N = 1
Else
If Vm >= 0.5 And Vm < 2 Then
N = 0.532 * Vm ^ 2 - 2.13 * Vm + 3.13
Else
If Vm < 0.5 Then
N = 4.4 * Vm
End If
End If
End If
'расчет опасной скорости ветра
If F < 100 And Vm <= 0.5 Then
Um = 0.5
Else
If F < 100 And Vm <= 2 And Vm > 0.5 Then
Um = Vm
Else
62

If F < 100 And Vm > 2 Then
Um = Vm * (1 + 0.12 * Sqr(F))
End If
End If
End If
If F >= 100 And Vm1 <= 0.5 Then
Um = 0.5
Else
If F >= 100 And Vm1 <= 2 And Vm1 > 0.5 Then
Um = Vm1
Else
If F >= 100 And Vm1 > 2 Then
Um = 2.2 * Vm1
End If
End If
End If
'расчет параметра d
If F < 100 And Vm <= 0.5 Then
d = 2.48 * (1 + 0.28 * fe ^ (1 / 3))
Else
If F < 100 And Vm <= 2 And Vm > 0.5 Then
d = 4.95 * Vm * (1 + 0.28 * F ^ (1 / 3))
Else
If F < 100 And Vm > 2 Then
d = 7 * Sqr(Vm) * (1 + 0.28 * F ^ (1 / 3))
End If
63

End If
End If
If F >= 100 And Vm1 <= 0.5 Then
d = 5.7
Else
If F >= 100 And Vm1 <= 2 And Vm1 > 0.5 Then
d = 11.4 * Vm1
Else
If F >= 100 And Vm1 > 2 Then
d = 16 * Sqr(Vm1)
End If
End If
End If
UserForm3.TextBox1.Text = V1
UserForm3.TextBox2.Text = T1
UserForm3.TextBox3.Text = F
UserForm3.TextBox4.Text = Vm
UserForm3.TextBox5.Text = Vm1
UserForm3.TextBox6.Text = fe
UserForm3.TextBox7.Text = m
UserForm3.TextBox8.Text = N
UserForm3.TextBox9.Text = Um
UserForm3.TextBox10.Text = d
UserForm3.Show
End Sub
64

10. Аналогично для кнопки Очистить.
Private Sub CommandButton2_Click()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
TextBox13.Text = ""
TextBox14.Text = ""
TextBox15.Text = ""
End Sub
11. Аналогично для кнопки Выход.
Private Sub CommandButton3_Click()
End
End Sub
12. Оформить User Form3 (рис. 9). Листинг программ для User Form3
следующий.
Private Sub CommandButton1_Click()
N = Val(UserForm2.TextBox1.Text)
H = Val(UserForm2.TextBox2.Text)
65

d = Val(UserForm2.TextBox3.Text)
W0 = Val(UserForm2.TextBox4.Text)
Tg = Val(UserForm2.TextBox5.Text)
Tb = Val(UserForm2.TextBox6.Text)
MSO2 = Val(UserForm2.TextBox7.Text)
M3 = Val(UserForm2.TextBox8.Text)
MNO2 = Val(UserForm2.TextBox9.Text)
A = Val(UserForm2.TextBox13.Text)
n1 = Val(UserForm2.TextBox14.Text)
f1 = Val(UserForm2.TextBox15.Text)
V1 = UserForm3.TextBox1.Text
T1 = UserForm3.TextBox2.Text
F = UserForm3.TextBox3.Text
Vm = UserForm3.TextBox4.Text
Vm1 = UserForm3.TextBox5.Text
fe = UserForm3.TextBox6.Text
m = UserForm3.TextBox7.Text
N = UserForm3.TextBox8.Text
Um = UserForm3.TextBox9.Text
d = UserForm3.TextBox10.Text
CMSO2 = A * MSO2 * f1 * m * N * n1 / (H ^ 2 * (V1 * T1) ^ (1 / 3))
XMSO2 = (5 - f1) / 4 * d * H
CMNO2 = A * MNO2 * f1 * m * N * n1 / (H ^ 2 * (V1 * T1) ^ (1 / 3))
XMNO2 = (5 - f1) / 4 * d * H
CM3 = CMSO2 * M3 / MSO2 * F
XM3 = XMSO2 * (5 - F) / 4
66

With Worksheets("Диаграмма")
.Range("A1").Value = "x"
.Range("B1").Value = "x / XMSO2"
.Range("C1").Value = "s1"
.Range("D1").Value = "C SO2"
.Range("E1").Value = "C NO2"
.Range("F1").Value = "C золы"
End With
i = 2
For x = 50 To 3000 Step 50
XXM = x / XMSO2
XXM3 = x / XM3
If XXM <= 1 Then
s1 = 3 * XXM ^ 4 - 8 * XXM ^ 3 + 6 * XXM ^ 2
Else
If XXM <= 8 And XXM > 1 Then
s1 = 1.13 / (0.13 * XXM ^ 2 + 1)
End If
End If
If XXM3 <= 1 Then
s1_3 = 3 * XXM3 ^ 4 - 8 * XXM3 ^ 3 + 6 * XXM3 ^ 2
Else
67

Рис. 9. Интерфейс третьей диалоговой формы
68

If XXM3 <= 8 And XXM3 > 1 Then
s1_3 = 1.13 / (0.13 * XXM3 ^ 2 + 1)
Else
If XXM3 > 8 And F <= 1 Then
s1_3 = XXM3 / (3.58 * XXM3 ^ 2 - 35.2 * XXM3 + 120)
Else
If XXM3 > 8 And F > 1.5 Then
s1_3 = 1 / (0.1 * XXM3 ^ 2 + 2.47 * XXM3 - 17.8)
End If
End If
End If
End If
Cso2 = CMSO2 * s1
Cno2 = 0.017 * Cso2
C_3 = CM3 * s1_3
With Worksheets("Диаграмма")
.Cells(i, 1).Value = x
.Cells(i, 2).Value = XXM
.Cells(i, 3).Value = s1
.Cells(i, 4).Value = Cso2
.Cells(i, 5).Value = Cno2
.Cells(i, 6).Value = C_3
End With
i = i + 1
Next x
69

UserForm4.TextBox1.Text = CMSO2
UserForm4.TextBox2.Text = XMSO2
UserForm4.TextBox3.Text = CMNO2
UserForm4.TextBox4.Text = XMNO2
UserForm4.TextBox5.Text = CM3
UserForm4.TextBox6.Text = XM3
UserForm4.Show
End Sub
Private Sub CommandButton4_Click()
End
End Sub
Private Sub CommandButton5_Click()
Unload UserForm3
Load UserForm2
End Sub
13. Оформить User Form4 (рис. 10). Листинг программ для User
Form4 следующий.
Private Sub CommandButton1_Click()
Unload UserForm4
Load UserForm3
End Sub
Private Sub CommandButton2_Click()
Unload UserForm4
Load UserForm2
End Sub
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
