Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УП_Лабы_Оптимизация управления ТП

.pdf
Скачиваний:
74
Добавлен:
11.02.2015
Размер:
4.29 Mб
Скачать

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