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

КТПСА_ЛАБ5_Черкашин

.docx
Скачиваний:
13
Добавлен:
10.05.2020
Размер:
266.87 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ

Кафедра СТ

Отчет по лабораторной работе № 5 по дисциплине: «Компьютерные технологии проектирования систем автоматики»

Выполнил: Проверил:

Ст. гр. АКТСИу-17-1 доцент каф. СТ

Черкашин В.А. Ребезюк Л.Н.

Харьков 2020

5 Проектирование дискретного ПИД-регулятора

с применением инструментария системы блочного моделирования

5.1 Цель работы

Приобретение навыков проектирования дискретного ПИД-регулятора с применением инструментария системы блочного моделирования VisSim.

5.2 входные данные

Дано:

- ПФ объекта управления - двигателя постоянного тока, управляемого по цепи якорь:

где:

kду - коэффициент передачи двигателя по цепи управления (якоря) при регулировании скорости,

kду = 0.1 · (10 + nсп) + 0,25 = 2,25 [об / (сек • В)];

Tя- электромагнитная постоянная времени цепи якоря,

Tя= 0.01 · (6 + 0.33 · nсп) = 0,093 с;

tм - механической постоянной времени двигателя,

tм = 0.1 · (6 + 0.5 · nсп) - 0,02 = 1,08 с;

nсп = 10.

- принцип управления - по отклонению:

- закон управления: ПИД-регулятор, передаточная функция которого

- g (t) = 1 (t).

Необходимо:

  • спроектировать дискретный ПИД-регулятор;

  • исследовать качество управления системой до и после проектирования.

5.3 Ход работы

В ходе выполнения работы, оптимальная настройка проводилось для шага моделирования Step = 0,01.

5.3.1 Параметрический синтез ПФ непрерывного ПИД-регулятора

Во входной системе установили блок ПФ объекта управления в соответствии с индивидуальной вариантой и запустили оптимальная настройка ПИД-регулятора. Структурная схема изображена на рисунке 5.1.

Рисунок 5.1 - Структурная схема модели. После настройки коэффициенты ПИД-регулятора были занесены в параметров его П

5.3.2 Переход к эквивалентной ПФ ПИД-регулятора

Осуществили замену модели непрерывного ПИД-регулятора (построенного на элементарных блоках) с функцией передачи

одним эквивалентным блоком "transferFunction", то есть с дробной передаточной функцией отношения полиномов числителя и знаменателя.

Для этого получили информацию о его ПФ (см. Рисунок 5.2) и создали блок на базе значений с ПФ (см. Рисунок 5.3).

Рисунок 5.2 - Информация о ПФ ПИД-регулятора

Рисунок 5.3 - эквивалентный блок ПИД-регулятора для данного обьеекта управления

Данный блок установили в схема вместо ПИД-регулятора (см. Рисунок 5.4) и сравнили переходные характеристики до и после изменения в схеме (см. Рисунок 5.5).

Рисунок 5.4 - Структурная схема с установленным эквивалентным блоком

Рисунок 5.5 - Переходные характеристики ПИД-регулятора и эквивалентного ему блока

Как видим, даже при точном переносе значений по информации о ПФ к блоку, переходный процесс оказался не идентичным. Колебательность системы немного уменьшилась.

5.3.3 Переход к дискретной ПФ ПИД-регулятора

Выполнили Z-преобразование для эквивалентного блока ПИД-регулятора (см. 5.3), с периодом, равным шагу моделирования, как показано на рисунке 5.6.

В результате получили соответствующий блок преобразования, изображенный на рисунке 5.7.

Рисунок 5.6 - Процесс Z-преобразования (Convert S-> Z)

Рисунок 5.7 - Блок Z-преобразование

5.3.4 Выбор структурной схемы (алгоритма программы) и получения РУ цифрового ПИД-регулятора

Из трех широко распространенных алгоритмов программ, реализующих z-ПФ, выбрали "непосредственный". Определились с его модификацией, которая использует два буфера, как наиболее наглядной. Поскольку непосредственный алгоритм не требует расписаний z-ПФ, сразу записали разностное уравнение (РУ) для оригиналов и привели соответствующую схему, изображенную на рисунке 5.8.

y [n] = [133.243193310774 * (1 * x [n] - 1.9083132600716 * x [n-1] + 0 90984800850007 * x [n-2]) - (-1.3333333333333 * y [n-1] + 0. 33333333333333 * y [n-2])] / 1

Рисунок 5.8 - Схема для разностного уравнения цифрового ПИД-регулятора

5.3.5 Написание программы ПИД-регулятора для ЦВМ

В ходе выполнения работы написали программу рекурсивного цифрового фильтра второго порядка, код которого приведен в приложении А.

Процесс настройки изображен на рисунке 5.9.

Рисунок 5.9 - Процесс настройки дискретного ПИД-регулятора

5.3.6 Проверка работоспособности спроектированного цифрового ПИД-регулятора

Структурная схема модели с дискретным ПИД-регулятором и переходным процессом изображена на рисунке 5.10.

Рисунок 5.10 - Структурная схема системы с дискретным ПИД-регулятором

Как видим, переходная характеристика схожа с теми, что были при использовании непрерывного ПИД-регулятора и эквивалентном ему блоке. Это свидетельствует об успешные проектирования дискретного ПИД-регулятора.

Теперь остается проверить качество управления системой для обоих типов ПИД-регулятора.

5.3.7 Исследование качества управления системами до и после изменений

Переходный процесс системы с непрерывным ПИД регулятором (см. рисунок 5.1) и обозначенным временем переходного процесса изображена на рисунке 5.11.

Рисунок 5.11 - Переходный процесс системы с непрерывным ПИД-регулятором

ЛАЧХ и ЛФЧХ с обозначенными запасами устойчивости по амплитуде и фазе изображены на рисунке 5.12.

Рисунок 5.12 - ЛАЧХ и ЛФЧХ входной модели с обозначенными запасами устойчивости

ЛАЧХ системы с обозначенными частотами среза и полосы пропускания представлена ​​на рисунке 5.13.

Рисунок 5.13 - Нули и полюсы замкнутой системы

Измеренные параметры оценки качества управления занесены в таблицу 5.1.

Таблица 5.1 - Значения параметров оценки качества управления

н / п

Наименование параметра

непрерывный ПОД

дискретный ПОД

запас устойчивости

1.

Запас по амплитуда L (A), dB

99,40

98,16

ω (-180º)

15273

17946

2.

Запас по фазе , Град.

71

70

Частота среза (ω С), рад / с.

37,47

39,47

3.

Частота полосы пропускания (ωП), рад / с.

50,75

49

корневые оценки

4.

Степень устойчивости системы

автоматического управления

5.

колебательность системы

автоматического управления

0

точность

6.

Ошибка в установленном режиме

0.0094

0.012

быстродействие

7.

Время переходного процесса tП (Δ = ± 2%), с.

0,3146

0,19

Переходный процесс системы с дискретным ПИД-регуялтором (см. Рисунок 5.10) и обозначенным временем переходного процесса изображена на рисунке 5.15.

Рисунок 5.14 - Переходный процесс системы с непрерывным ПИД-регулятором

ЛАЧХ и ЛФЧХ с обозначенными запасами устойчивости по амплитуде и фазе изображены на рисунке 5.16.

Рисунок 5.15 - ЛАЧХ и ЛФЧХ входной модели с обозначенными запасами устойчивости

ЛАЧХ системы с обозначенными частотами среза и полосы пропускания представлена ​​на рисунке 5.17.

По значениям нулей и полюсов (см. Рис. 5.18) определили степень устойчивости ξ и колебательность μ системы автоматического управления по формулам:

Рисунок 5.16 - Нули и полюсы замкнутой системы

Измеренные параметры оценки качества управления занесены в таблицу 5.1.

ВЫВОДЫ

Во время выполнения лабораторной работы булв проведено исследование модели с ПФ второго порядка и непрерывным ПИД-регулятором, спроектированный дискретный ПИД-регулятор и сравнима качество управления соответствующих моделей.

В ходе выполнения работы, выполнили оптимальная настройка ПИД-регулятора, вывели эквивалентный ему блок, состоящий из полинома, получили его дискретную ПФ с помощью Z-преобразования, сформировали его разностное уравнение и конфигурировали дискретный ПИД-регулятор.

Сравнение качеств управления системами выявило почти полную сходство по корневым оценкам и запасами устойчивости, но дискретный ПИД-регулятор обладает большим быстродействием, что наверняка связано с неточной информацией о ПФ непрерывного ПИД-регулятора (см. рисунок 5.5).

В цифровой технике цифровой ПИД-регулятор - это программа на Си, реализующая разностное уравнение, обычно исчисляется цифровых сопроцессора.

Приложение А. Код программы

Таблица 5.1 - код программы на С ++

файл pid.cpp

#include <math.h> #include <condefs.h> #pragma hdrstop # define EXPORT32 __declspec (dllexport) // ------------------------------------------------ --------------------------- struct z_TF_INFO {double k; // коэффициент усиления double b0, b1, b2; // коэффициенты полинома числителем double a0, a1, a2; // коэффициенты полинома знаменателя}; // ------------------------------------------------ --------------------------- extern "C" {double buffer_x [2] = {0,0}, buffer_y [] = {0,0}; double c, help_y; // ************ Функция размещения параметров ******************************** / / ************ вызывается VisSim-ом при создание блока ********************** EXPORT32 long WINAPI zWPA (short FAR * ppCount) {* ppCount = 7; // число записываемых в файл vsm параметров модели пользователя return sizeof (z_TF_INFO);} // ************ Процедура инициализации параметров *************************** // **** ******** вызывается VisSim-ом после PA функции ************************ EXPORT32 void WINAPI zWPI (z_TF_INFO * zTF) {zTF-> k = 133.243193310774; zTF-> b0 = 1; zTF-> b1 = -1.9083132600716; zTF-> b2 = 0. 90984800850007; zTF-> a0 = 1; zTF-> a1 = -1.3333333333333; zTF-> a2 = 0.33333333333333;} // ************ Функция изменения параметров ********************************* // ************ вызывается VisSim-ом при нажатии правой клавиши мыши ********* EXPORT32 LPSTR WINAPI zWPC (z_TF_INFO * zTF) {return "k; b0; b1; b2; a0; a1; a2";} // ************ Процедура Simulation Start ********************************* ** // ************ вызывается VisSim-ом на первом шаге моделирования ************ EXPORT32 long WINAPI zWSS (z_TF_INFO * zTF, long * runCount) {buffer_x [0] = 0; buffer_x [1] = 0; buffer_y [0] = 0; buffer_y [1] = 0; help_y = 0 c = 0; return 0;} // ************ Процедура Simulation End ********************************* **** // ************ вызывается VisSim-ом на последнем шаге моделирования ********* EXPORT32 long WINAPI zWSE (z_TF_INFO * zTF, long * runCount) {return 0;} // ************ Это базовая процедура в DLL ******************************* *** // ************ вызывается VisSim-ом на каждом шаге моделирования ************ EXPORT32 void WINAPI zW (z_TF_INFO * zTF, double FAR x [] double FAR y []) {if (x [0] == 1 && c == 0) { // Непосредственный алгоритм с двумя буферами help_y = (zTF-> k * (x [1] * zTF-> b0 + buffer_x [0] * zTF-> b1 + buffer_x [1] * zTF-> b2) - (buffer_y [0] * zTF-> a1 + buffer_y [1] * zTF-> a2)) / zTF-> a0; buffer_x [1] = buffer_x [0]; buffer_x [0] = x [1]; buffer_y [1] = buffer_y [0]; buffer_y [0] = help_y; // Непосредственный алгоритм с одним буфером / * double help; help = (x [1] - (buffer_x [0] * zTF-> a1 + buffer_x [1] * zTF-> a2)) / zTF-> a0; help_y = (help * zTF-> b0 + buffer_x [0] * zTF-> b1 + buffer_x [1] * zTF-> b2) * zTF-> k; buffer_x [1] = buffer_x [0]; buffer_x [0] = help; * / } Y [0] = help_y; c = x [0]; // организованна синхронизация блока по фронту}; // ------------------------------------------------ --------------------------- } // end extern "C" { // ------------------------------------------------ --------------------------- int WINAPI DllEntryPoint (HINSTANCE hinst, unsigned long reason, void *) {return 1;}