мандній кнопці форми. Тут виконуються перетворення текстових значень вихідних параметрів
ланцюга, введених через текстові поля на Form1, в арифметичні значення
глобальних змінних типу Double і LongSub Command1_Click () = CDbl (Text1.Text) 'Перетворення текстового значення в
арифметичне значення глобальної змінної типу Double
R2 = CDbl (Text2.Text) = CDbl (Text3.Text) = CDbl (Text5.Text) = CDbl (Text6.Text)
N = CLng (Text7.Text) 'Перетворення текстового значення в
арифметичне значення глобальної змінної типу Long
Ti = CDbl (Text4.Text) Me 'Вивантажити форму Form1
End Sub
Процедура ініціалізації форми Form1 і установка стартових значень властивостей
Private Sub Form_Initialize () = 8 = True.Height = 15000.Width = 15000
End Sub
Процедура завантаження форми Form1 і ініціалізації її текстових полів
Private Sub Form1_Load (). Text = Empty.Text = Empty.Text = Empty.Text = Empty.Text = Empty.Text = Empty.Text = Empty
End Sub
Модуль форми для виконання команди інтегрувати
Процедура обробки події Click на командній кнопці Command1 форми Form2. Тут запускається процедура
Інтегрувати потокосцепление методом
Рунге-Кутта з постійним кроком
Private Sub Command1_Click ()
Інтегрувати
Sub
Процедура інтегрування нелінійного рівняння методом Рунге-Кутта з перемінним кроком
Private Sub Інтегрувати () K1 As Double, K2 As Double, K3 As Double, K4 As DoubleH As DoubleQ (1 To N) As Double, T (1 To N) As DoubleUс (1 To N ) As Double, Iс (1 To N) As DoubleD As Double, J As Integer, Q1 As Double, Q2 As Double, Q3 As Double EW As Double = 0.001 'Точність інтегрування на кожному кроці задана значенням константи
H = Ti/Nс (1) = E/2 (1) = (((A ^ 2 + 4 * Uс (1) * B) ^ 0.5) - A)/2/BI = 2 To N: For J = 1 To 2 = H * F (Q (I - 1)) = H * F (Q (I - 1) + K1/2) = H * F (Q (I - 1) + K2/2) = H * F (Q (I - 1) + K3) J = 1 Then = Q (I - 1) + (K1 + 2 * K2 + 2 * K3 + K4)/6 = H/2 : GoTo M1 = Q (I - 1) + (K1 + 2 * K2 + 2 * K3 + K4)/6 = Q2 + (K1 + 2 * K2 + 2 * K3 + K4)/6If: Next J = Abs ( Q1 - Q2) Abs (Q1) <1 And D <= 0.001 Or Abs (Q1)> 1 And D <= 0.001 * Abs (Q1) Then (I) = Q2 - (Q1 - Q2)/15 = 2 * H (I) = T (I - 1) + H = H/2m2IfForm2.ProgressBar2 = 0 = N = True = IWithII = 1 To Nс (I) = A * Q (I) + B * Q (I ) ^ 2с (I) = F (Q (I)) ProgressBar1 'Індикатор прогресу в циклі розрахунку
процесів струму і напруги
Min = 0
Max = N = True = IWithISub
'Процедура-функція для розрахунку правій частині інтегрувального рівняння
Private Function F (ByVal Z As Single) As SingleII As Single, A1 As Single, B1 As Single, Ik As Single = 10 = Ik * (3 * R1 + R2)/(R1 + R2 ) = A = B = II - A1 * Z - B1 * Z ^ 2 Function
Процедура обробки події Click на командній 'кнопці Command2 форми Form2. Тут вивантажується форма
Sub Command2_Click () MeSub
Процедура обробки події Click на командній кнопці Command1 'форми Form3. Тут запускається процедура виведення розрахованих перехідних процесів в колонки таблиці елемента управління MSFlexGrid1
Private Sub Command1_Click () I As Long, J As LongJ = 0 To 3.Col = JI = 1 To N - 1MSFlexGrid1 = IJ = 0 Then = Format (T (I), "Scientific" ;) J = 1 Then = Format (Q (I), "Scientific") J = 2 Then = Format (Uс (I), "Scientific") J = 3 Then = Format (I с (I), " Scientific ") IfWithIJSubSub Command2_Click () MeSub
Завантаження форми Form3 c установкою властивостей таблиці MSFlexGrid1
Sub Form_Load () ЗаголовкіГр As Variant I As Double
ЗаголовкіГр = Array ("Час, з", "Заряд, Кл", "Напруга, В", _
"Ток, А")
Caption = "Таблиця перехідного процесу в нелінійній індуктивності"
With MSFlexGrid1 = True = N = 4 = 0 (0) = 500I = 0 To 3 = I (0, I) = ЗаголовкіГр (I) = 3II = 0 To 3 (I) = 1500IWith Sub
Процедура обробки події Click на перемикачі Option1 'форми Form4. Тут виконується висновок Графік Заряду
Sub Option1_Click () X As Long, Y As Long, Y0 As Long, X0 As Long, I As Long
CurrentX = 450: CurrentY ...