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

М.В.Бураков. Генетический алгоритм. 2008

.pdf
Скачиваний:
281
Добавлен:
11.05.2015
Размер:
2.33 Mб
Скачать

5.3. Настройка ПИД-регулятора

Рассмотрим процесс настройки ПИД-регулятора для объекта, заданного передаточной функцией

W (s) =

2s+

 

.

(5.1)

 

 

 

0,5s

2 s

+

 

 

 

Реакция этого объекта на единичное ступенчатое воздействие показана на рис. 5.6. Очевидно, объект является неустойчивым.

Допустим, что желаемый процесс в системе описывается с помощью передаточной функции

W (s) =

 

 

.

(5.2)

 

 

2

0,5s

+

 

 

 

 

 

Переходный процесс для этой передаточной функции показан на рис. 5.7. Он является апериодическим, а время переходного процесса – около 2 с.

Схема моделирования в Simulink MatLab показана на рис. 5.8. Блоки simout и simout1 служат для накопления двумерных массивов «время-выходная координата».

Для получения массивов выходных координат нужно использовать в Simulink MatLab метод интегрирования с постоянным шагом. Так, при выборе шага 0,01 с и времени моделирования 3 с будет получено 300 точек, которые будут помещены в массивы simout

и simout1.

 

 

1.6

 

 

 

 

 

 

 

 

 

 

1.4

 

 

 

 

 

 

 

 

 

 

1.2

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

4

0.8

 

 

 

 

 

 

 

 

 

y(t)·10

 

 

 

 

 

 

 

 

 

0.6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.4

 

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

–0.2 0

1

2

3

4

5

6

7

8

 

 

 

 

 

 

t

 

 

 

 

Рис. 5.6.

Реакция разомкнутой системы

 

 

 

 

131

 

 

1

 

 

 

 

 

 

 

 

 

0.9

 

 

 

 

 

 

 

 

 

0.8

 

 

 

 

 

 

 

 

 

0.7

 

 

 

 

 

 

 

 

y(t)

0.6

 

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.4

 

 

 

 

 

 

 

 

 

0.3

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

 

0.1

 

 

 

 

 

 

 

 

 

0 0

1

2

t

3

4

5

 

 

 

 

 

 

 

 

 

 

Рис. 5.7.

Описание эталонного процесса

 

 

 

 

 

 

 

 

 

 

 

 

simout

 

 

 

 

1

 

 

 

 

To Workspace

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5s+1

 

 

Scope1

 

 

 

 

 

Transfer Fcn1

 

 

 

 

 

 

 

 

 

 

 

 

Scope

 

 

 

 

 

 

 

 

 

 

 

1

 

ki

 

 

 

 

 

 

 

s

 

 

 

 

 

simout1

 

 

 

 

 

 

 

 

 

 

Integrator

Gain2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2s+1

To Workspace1

 

 

 

 

kp

 

 

 

 

 

 

 

 

 

0.5s2

s+1

 

Step

 

 

 

Gain

 

 

 

 

 

 

 

 

Transfer Fcn

 

 

 

 

 

 

 

 

 

 

 

du/dt

 

kd

 

 

 

 

 

 

 

Derivative

Saturation

Gain1

 

 

 

 

 

Рис. 5.8. Схема моделирования в Simulink MatLab

Поскольку массивы simout и simout1 имеют одинаковую размерность, функцию ошибки можно описать в виде

E =

 

simoutsimout

 

.

(5.3)

 

 

132

Тогда целевую функцию можно описать с помощью файла

function z=pid_reg(X); global kp,

global kd; global ki;

kp=X(1); kd=X(2); ki=X(3); sim(‘pid2’); z=sum(abs(simout-simout1)); end

Переменные, по которым ведется поиск, должны быть объявлены глобальными в командной строке MatLab:

>>global kp;

>>global kd;

>>global ki;

Заметим, что операции присваивания kp=X(1); kd=X(2); ki=X(3);

соответствуют преобразованию «генотип – фенотип».

После запуска Gatool следует указать файл с описанием целевой функции и количество переменных, по которым ведется поиск (рис. 5.9). Остальные параметры приняты по умолчанию.

Фрагмент экрана GATool после окончания процесса оптимизации показан на рис. 5.10.

Рис. 5.9. Параметры запуска GATool

Рис. 5.10. Состояние после окончания оптимизации

133

y(t)

1.4

1.2

1

0.8

0.6

0.4

0.2

0

 

 

 

 

 

3

0

0.5

1

1.5

2

2.5

 

t

Рис. 5.11. Результат генетической настройки ПИД-регулятора

Для поиска решения потребовалось всего около 50 шагов, алгоритм остановился после того, как целевая функция перестала улучшаться.

На рис. 5.11 показано сравнение эталонного переходного процесса и процесса при полученных с помощью ГА коэффициентах. Очевидно, что качество решения удовлетворительное.

5.4.Настройка нечеткого регулятора

5.4.1.Настройка масштабирующих коэффициентов

Общая постановка задачи синтеза НЛР, которая допускает разнообразные конкретизации, описана в п. 3.1.3. Рассмотрим в качестве примера вариант генетического синтеза НЛР ПД-типа.

Нечеткий логический регулятор ПД-типа для каждой пары значений ошибки и ее производной {e, d e/d t} вычисляет значение управления:

u*(t) = Fл(e*(t), (d e(t)/d t)*),

где u*(t), e*(t), (d e(t)/dt)* – нечеткие значения управления, ошибки и ее производной; Fл – закон управления, заданный набором пра-

вил (рис. 5.12).

Если g(t) – задающее воздействие (уставка), а y(t) – сигнал на выходе объекта, то ошибка управления вычисляется по формуле

e(t) = g(t) – y(t).

134

g(t)

 

 

e(t)

 

 

 

 

 

 

 

 

 

kp

 

 

u(t)

 

 

+

 

 

Нечеткий

 

 

+ e(t)

 

 

ku

 

 

 

 

 

регулятор

 

 

 

 

 

z1

kd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(t)

 

 

 

 

 

 

 

 

 

 

 

 

Объект

 

 

 

 

 

 

 

 

 

 

управления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.12.Нечеткий логический регулятор ПД-типа

Отрицательное значение ошибки e(t) означает, что выходной сигнал больше уставки g(t), и его нужно уменьшать; положительное значение e(t) означает, что выходной сигнал меньше уставки, и его нужно увеличивать. Нулевое значение e(t) соответствует, очевидно, равенству g(t) и y(t).

Рассмотрим приращение ошибки управления:

e(t) = e(t) – e(t–1) = g(t) – y(t) – g(t) – y(t–1) = y(t–1) – y(t).

Отрицательный знак ∆e(t) означает, что выходной сигнал уменьшается; положительное значение ∆e(t) означает, что выходной сигнал увеличивается; нулевое значение ∆e(t) соответствует постоянному выходному сигналу.

Поведение ошибки в течение переходного процесса показано на рис. 5.13.

Сделанные замечания позволяют классифицировать все возникающие при управлении ситуации (табл. 5.1).

y(t), g(t)

y(t)

de(t)/dt>0

g(t)

e(t)<0

 

 

 

e(t)>0

 

 

 

de(t)/dt<0

0

t

Рис. 5.13.Изменение ошибки при нормальном протекании переходного процесса

135

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

Описание ситуации

Характеристика ситуации

Управление

 

 

Знак e(t)

Знак ∆e(t)

 

 

 

 

 

 

+

y(t) > g(t) и y(t) ↓

Не требуется (0)

y(t) > g(t) и y(t) ↑

Уменьшение (–)

0

y(t) > g(t) и y(t) = const

Уменьшение (–)

0

y(t) = g(t) и y(t) ↑

Уменьшение (–)

0

+

y(t) = g(t) и y(t) ↓

Увеличение (+)

0

0

y(t) = g(t) и y(t) = const

Не требуется (0)

+

+

y(t) < g(t) и y(t) ↓

Увеличение (+)

+

y(t) < g(t) и y(t) ↑

Не требуется (0)

+

0

y(t) < g(t) и y(t) = const

Увеличение (+)

На основании табл. 5.1 можно сформулировать закон управления в виде таблицы лингвистических правил (табл. 5.2), где «Н» – нулевое значение, «П» – положительное, «О» – отрицательное.

Таблица 5.2. Лингвистические правила при трех термах ЛП

 

Таблица

 

e*(t)

 

 

правил

О

Н

П

 

 

О

О

О

Н

 

 

 

 

 

 

e*(t)

 

Н

О

Н

П

 

 

 

 

 

 

 

 

П

Н

П

П

 

 

 

 

 

 

Табл. 5.2 содержит 9 правил управления (лингвистическое значение управления находится на пересечении строки и столбца). Эти правила имеют универсальный характер, и могут использоваться для любого объекта управления невысокого порядка.

Может оказаться, что при трех термах закон управления будет слишком грубым, близким к релейному. Чтобы избежать этого, добавим еще по два терма, разбив каждое значение «О» и «П» на два: «ОМ», «ОБ» и «ПМ», «ПБ» («Отрицательный Малый», «Отрицательный Большой» и «Положительный Малый», «Положительный Большой»). Тогда описание правил может быть задано табл. 5.3, которая описывает, очевидно, уже 25 правил.

Поскольку нечеткие правила заданы, для синтеза НЛР требуется выбрать описание ЛП, входящих в правила.

136

Таблица 5.3.Лингвистические правила при пяти термах ЛП

Таблица

 

 

e*(t)

 

 

правил

Об

Ом

Н

пм

пб

 

Об

Об

Об

Ом

Ом

Н

 

 

 

 

 

 

 

 

Ом

Об

Ом

Ом

Н

пм

e*(t)

Н

Ом

Ом

Н

пм

пм

 

пм

Ом

Н

пм

пм

пб

 

 

 

 

 

 

 

 

пб

Н

пм

пм

пб

пб

 

 

 

 

 

 

 

Будем использовать при синтезе НЛР пакет Fuzzy Logic toolbox из библиотеки Simulink [72]. В этом пакете с помощью графического редактора FIS Ed it, вызываемого командой

>> fuzzy

можно описать ЛП, правила управления, а также просмотреть поверхность отклика регулятора.

При описании ЛП следует учитывать две общие рекомендации:

– необходимо, чтобы термы ЛП Ai обеспечивали нечеткое разбиение базовой шкалы U так, чтобы примерно выполнялось условие

N

µAi (x ) = , x U;

i=

– термы должны сгущаться в области нуля и разряжаться по краям базовой шкалы.

Первая из этих рекомендаций гарантирует отсутствие «белых пятен» в базе правил, а вторая обеспечивает повышение точности управления [73].

Таким образом, каждая из ЛП может быть единообразно описана в виде, показанном на рис. 5.14.

На рис. 5.14 базовая шкала нормирована – приведена к диапазону [–1, 1]. Однако в реальности каждая ЛП обладает собственной базовой шкалой, которую требуется определить или уточнить. Таким образом, в рассмотренной постановке задача генетического синтеза НЛР сводится к поиску значений масштабирующих коэффициентов kp, kd, ku (см. рис. 5.12) для каждой ЛП.

Окно ввода лингвистических правил FIS Ed it показано на рис. 5.15.

Поверхность отклика регулятора при нормированных значениях переменных показана на рис. 5.16. Очевидно, она является

137

Рис. 5.14.Описание ЛП

Рис. 5.15.Окно ввода лингвистических правил

138

Рис. 5.16.Поверхность отклика НЛР

существенно нелинейной (для обычного ПД-регулятора это – плоскость).

Пусть объект управления описывается передаточной функцией (5.1). В разомкнутом состоянии этот объект неустойчив (см.

рис. 5.6).

Схема генетического обучения НЛР показана на рис. 5.17. Задан более быстрый эталонный роцесс. Целевая функция при обучении НЛР будет почти такой же, как при обучении ПИД-регулятора:

function z=Fuzzy_reg(X); global k1,

global k2; global k3;

k1=X(1); k2=X(2); k3=X(3); sim(‘Fuz_reg’); z=sum(abs(simout-simout1)); end

Параметры запуска GATool показаны на рис. 5.18. Остальные параметры приняты по умолчанию.

139

 

 

1

 

 

To Workspace1

 

 

simout

simout1

 

 

0.05s+1

 

 

To Workspace

 

 

Transfer Fcn1

 

 

 

 

 

 

 

k2

 

 

 

 

 

Gain

 

k3

2s+1

 

 

 

 

0.5s2 s+1

Step

 

 

 

Gain1

du/dt

k1

Fuzzy Logic

Transfer Fcn

 

 

 

Saturation

Controller

 

 

 

 

 

 

 

Derivative

Gain2

 

 

 

Рис. 5.17.Схема обучения НЛР в Simulink MatLab

Рис. 5.18.Параметры запуска при настройке нечеткого контроллера

Фрагмент экрана GATool после окончания процесса оптимизации показан на рис. 5.19.

Получен несколько неожиданный результат – оказалось, что коэффициент k1 почти равен нулю, т. е. при управлении не требуется учитывать значение производной.

Сравнение заданного и полученного переходных процессов показано на рис. 5.20. НЛР демонстрирует излишнюю чувствитель-

Рис. 5.19.Состояние после завершения поиска коэффициентов

140