 
        
        УП_Лабы_Оптимизация управления ТП
.pdf 
End If
End If
If Xp - Xd < 0 Then
If Xp - Xd + zn < 0 Then
sigma = (-1)
End If
End If
Cells(t + 2, 1).Value = t
Cells(t + 2, 2).Value = Xd
Cells(t + 2, 3).Value = y
Cells(t + 2, 4).Value = dz1
Cells(t + 2, 5).Value = z1(t)
Cells(t + 2, 6).Value = dz2
Cells(t + 2, 7).Value = z2(t)
Cells(t + 2, 8).Value = sigma
Cells(t + 2, 9).Value = epsilon
Cells(t + 2, 10).Value = integral
Cells(t + 2, 11).Value = Xp
Next t
End Sub
| 
 | 570 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 550 | 
 | 
 | 
 | 
 | 
 | 
 | 
| град | 530 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| Температура, | 510 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 490 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 470 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 450 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 0 | 50 | 100 | 150 | 200 | 250 | 300 | 
| 
 | 
 | 
 | 
 | Время, сек | 
 | 
 | 
 | 
| Рис. Е.1. Переходный процесс в системе с ПИ-регулятором | |||||||
182
Приложение Ж
Моделирование переходного процесса в системе с ПИД-регулятором (часть 2, лабораторная работа № 5)
Текст программы написан на языке VBA – Visual Basic for Applications.
| Const a3 | = 0.0003 | 
 | 
| Const a2 | = -0.0529 | 'коэффициенты | 
| Const a1 | = 3.0639 | 'статической | 
| Const a0 | = 0.2151 | 'характеристики | 
'Линия регрессии
Function Yx(x As Double) As Double Yx = a0 + a1 * x + a2 * x ^ 2 + a3 * x ^ 3 End Function
Sub ПИД_регулятор()
Dim Xd As Double, Xp As Double, y As Double
Dim z1(0 To 5000), z2(0 To 5000)
Dim dz1 As Double, dz2 As Double
Dim sigma As Integer
Dim epsilon(0 To 5000) As Double, integral As Double
Dim t As Double, i As Double
| Const Tob = 14 | 'постоянная времени объекта | 
| Const tz = 5 | 'время запаздывания объекта | 
| Const Tiz = 14 | 
 | 
| Const Td = 0.4 * Tiz | 
 | 
| Const kp = 0.6 | 
 | 
| Const ki = 1 | 'скорость ИМ | 
| Const Zzad = 50 | 'заданное значение температуры | 
| Const zn = 1 | 'зона нечувствительности регулятора | 
| Xd = 0 | 'начальное положение вала ИМ | 
| Xp = 0 | 
 | 
| sigma = 1 | 
 | 
| integral = 0 | 
 | 
| z1(0) = Yx(Xd) | 
 | 
| z2(0) = Yx(Xd) | 
 | 
| dz1 = 0 | 
 | 
| dz2 = 0 | 
 | 
| epsilon(0) = Zzad - z2(0) | 
 | 
183
Worksheets(2).Activate
Cells(1, 1).Value = "t"
Cells(1, 2).Value = "Xd"
Cells(1, 3).Value = "y"
Cells(1, 4).Value = "dz1"
Cells(1, 5).Value = "z1"
Cells(1, 6).Value = "dz2"
Cells(1, 7).Value = "z2"
Cells(1, 8).Value = "sigma"
Cells(1, 9).Value = "epsilon"
Cells(1, 10).Value = "integral"
Cells(1, 11).Value = "Xp"
Cells(2, 1).Value = 0
Cells(2, 2).Value = Xd
Cells(2, 3).Value = Yx(Xd)
Cells(2, 4).Value = dz1
Cells(2, 5).Value = z1(0)
Cells(2, 6).Value = dz2
Cells(2, 7).Value = z2(0)
Cells(2, 8).Value = sigma
Cells(2, 9).Value = epsilon(t)
Cells(2, 10).Value = integral
Cells(2, 11).Value = Xp
For t = 1 To 500
epsilon(t) = Zzad - z2(t - 1) If Xp >= 100 Then integral = integral
Xp = 100 Else
integral = integral + epsilon(t)
Xp = kp * (epsilon(t) + (1 / Tiz) * integral + Td * (epsilon(t - 1) - epsilon(t)))
End If
Xd = Xd + ki * sigma y = Yx(Xd)
z1(t) = dz1 + z1(t - 1)
dz1 = (1 / Tob) * (y - z1(t)) z2(t) = dz2 + z2(t - 1)
dz2 = (1 / tz) * (z1(t) - z2(t)) If Xp - Xd > 0 Then
If Xp - Xd + zn > 0 Then sigma = 1
184
 
End If
If Xp - Xd + zn < 0 Then sigma = 0
End If End If
If Xp - Xd < 0 Then
If Xp - Xd + zn < 0 Then sigma = (-1)
End If End If
Cells(t + 2, 1).Value = t
Cells(t + 2, 2).Value = Xd
Cells(t + 2, 3).Value = y Cells(t + 2, 4).Value = dz1 Cells(t + 2, 5).Value = z1(t) Cells(t + 2, 6).Value = dz2 Cells(t + 2, 7).Value = z2(t) Cells(t + 2, 8).Value = sigma
Cells(t + 2, 9).Value = epsilon(t) Cells(t + 2, 10).Value = integral Cells(t + 2, 11).Value = Xp
Next t
End Sub
Температура, град
70
60
50
40
30
20
10
0
| 0 | 100 | 200 | 300 | 400 | 500 | 
Время,сек
Рис. Ж.1. Переходный процесс в системе с ПИД-регулятором
185
