УП_Лабы_Оптимизация управления ТП
.pdfEnd 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