Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мдп печать сддать.docx
Скачиваний:
2
Добавлен:
07.09.2019
Размер:
349.89 Кб
Скачать

4. Алгоритм программы для определения параметров адаптивного регулятора

В работе были определены параметры генетического алгоритма, обеспечивающие наилучшие результаты оптимизации для выбранной схемы. Были подобраны параметры адаптивного регулятора с помощью генетического алгоритма.

Шаг 1: На вход подаем хромосому. Специальной записью открываем генетический алгоритм

Шаг 2: Записываем в определенной форме знаменатель

Шаг3: Открываем схему и указываем, где будут изменяться параметры

Шаг4: Параметры подобранные генетическим алгоритмом записываем в схему

Шаг5:Ищем ошибку между эталонным выходом и результатами, полученными с помощью генетического алгоритма.

Программа:

function y=my_ga(T)

str=['[' num2str(T) ' ' '1' ']'];

set_param('sxemka/Transfer Fcn', 'Denominator', str)

[a,b,out]=sim('sxemka');

load Y;

y=mean(abs(yout-out));

В данном примере было взято апериодическое звено

Рис.7.Схема апериодического звена

При помощи генетического алгоритма была подобрана постоянная времени звена T. Далее приведено окно интерфейса генетического алгоритма.

Рис.8.Интерфейс генетического алгоритма

Для сравнения результатов были рассмотрены различные варианты оценивания ошибок, сведенные в таблицу:

Mean(среднее арифметическое)

Std(среднеквадратическое отклонение)

Nanstd (оценка среднеквадратичного отклон.выборки)

mad(среднее абсолютное отклонение от среднего значения)

1

1,99124

2,00066

1,97299

1.98808

2

1,99434

1,97887

1,98162

1.98368

3

1,98764

1,9831

1,97598

1.98801

4

2,00398

1,98849

1,94879

1.9879

5

1,98733

1,97433

1,9844

1.99786

6

1,9637

1,98555

1,97252

1.97608

7

2,00152

1,98073

1,98235

1.98052

8

1,98481

1,98518

1,98356

1.98244

9

1,97535

1,98502

1,98167

1.9835

10

1,99293

1,98189

1,97646

1.99077

Таблица № 1

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

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

Рис.9. Схема с двумя апериодическими звеньями

Рис.10. Переходный процесс

Программа для схемы с двумя апериодическими звеньями:

function y=my_ga(T)

str1=['[' num2str(T(1)) ' ' '1' ']'];

str2=['[' num2str(T(2)) ' ' '1' ']'];

set_param('sxemka2/Transfer Fcn1','Denominator', str1),

set_param('sxemka2/Transfer Fcn2','Denominator', str2),

[a,b,out]=sim('sxemka2');

load Y;

y=mean(abs(yout(1:800)-out(1:800)));

С помощью генетического алгоритма были подобраны постоянные времени T1 и T2.Были построены графики, по которым видно, что генетический алгоритм подбирает параметры корректно и близкие к исходным из чего следует, что его можно применять для более сложных и реалистичных схем.

Таблица №2

Mean(среднее арифметическое)

Std(среднеквадратическое отклонение)

Nanstd(оценка среднеквадратичного отклон.выборки)

mad(среднее абсолютное отклонение от среднего значения)

T1

T2

T1

T2

T1

T2

T1

T2

1

2,15866

2,82144

2,78325

2,19525

3,1287

1,88798

2,16566

2,8129

2

2,85226

2,12451

2,68733

2,21497

2,9546

2,01898

2,95846

2,2584

3

2,34015

2,61776

2,16853

2,79612

2,9906

2,00492

3,00258

2,15585

4

2,31597

2,65491

2,96332

2,03892

2,13285

3,00145

3,2499

1,78942

5

2,85226

2,12451

2,83254

2,81649

2,0579

2,93812

2,95186

2,25491

6

2,85226

2,12451

2,00315

2,9895

2,94162

2,0412

3,0584

1,87361

7

1,92793

3,09461

2,12854

2,69258

3,06835

1,93942

2,99749

1,99707

8

2,86954

2,12374

2,10815

2,88774

1,97164

2,97665

2,91766

2,15813

9

2,1568

2,7689

2,3005

2,86329

3,06855

1,93942

3,17888

1,84571

10

2,3031

2,67116

2,94825

2,06585

3,0786

2,00315

3,05844

1,98617

Далее приведем несколько графиков для сравнения исходных параметров и параметров, которые подобрал генетический алгоритм.

Среднеарифметическое отклонение между эталонным выходом и результатом работы генетического алгоритма:

Рис.11. Переходный процесс

Среднее абсолютное отклонение от среднего значения между эталонным выходов и результатом работы генетического алгоритма:

Рис.12.Переходный процесс

Оценка среднеквадратичного отклонения выборки:

Рис.13 Переходный процесс

Оценка среднеквадратичного отклонения между эталонным выходов и результатом работы генетического алгоритма:

Рис.14 Переходный процесс

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

Схема электрогидравлического привода:

Рис.15 Адаптивный регулятор электрогидравлического привода

Программа, реализующая подбор коэффициентов с помощью генетического алгоритма:

function e=ga1(K)

EGSP_param

str1=['[' num2str((K(1))) ']'];

str2=['[' num2str((K(2))) ']'];

set_param('EGSP_23_01_11/Subsystem2/R2','Gain', str1),

set_param('EGSP_23_01_11/Subsystem2/k','Gain', str2),

sim('EGSP_23_01_11');

e=mean(abs(Um(1:2000)-Y(1:2000)));

Алгоритм программы:

Шаг 1: На вход подаем хромосому. Специальной записью открываем генетический алгоритм

Шаг2: Открываем параметры, которые необходимо записать для корректной работы схемы.

Шаг 3: Записываем в определенной форме знаменатель

Шаг4: Открываем схему и указываем, где будут изменяться параметры

Шаг5: Параметры подобранные генетическим алгоритмом записываем в схему

Шаг 6: Ищем среднеарифметическое отклонение выхода от входа

Полученные результаты записывает в таблицу.

Таблица №3

Mean

(средне арифметическое отклонение)

k

R2

1

2.89065

1.94878

2

2.35616

2.17708

3

1.49655

2.66265

4

2.43947

1.40594

5

2.05684

1.13364

6

2.52374

2.15762

7

3.69106

1.68813

8

2.43326

2.46422

9

2.13478

0.61822

10

2.2229

2,76678

Далее приведен график на котором видно ,что генетический алгоритм подбирает практически оптимальные параметры, для корректной работы схемы.

Рис.17. Переходный процесс

В данной работе была написана программа для поиска параметров электрогидравлического привода. Параметр Um-эталонная модель, Y-работа привода с параметрами, которые подобрал генетический алгоритм.

Программа была распараллелена.

Основная программа для запуска моделирования ЭГП

clc

tic;

[x,fval]=ga(@ga1,2)

options = gaoptimset(@ga);

options.PopInitRange=[0;100]

toc;

T=toc

Алгоритм программы:

Шаг 1:. Специальной записью открываем генетический алгоритм

Шаг2: Открываем параметры, которые необходимо записать для корректной работы схемы. Функции генетического алгоритма, которые необходимо настроить.

Шаг3:Записываем необходимые опции для корректной работы генетического алгоритма

Шаг4: Выполнение программы

Весь листинг программ представлен в Приложение 1 и Приложение 2

Алгоритм параллельной программы:

Первая часть программы отвечает за распараллеливание алгоритма на два компьютера.

Шаг 1:. Специальной записью открываем генетический алгоритм

Шаг2: Открываем параметры, которые необходимо записать для корректной работы схемы.

Шаг3:Записываем первый и второй коэффициент, которые будет необходимо подобрать программе

Шаг 4: Прописываем все пути к необходимым нас схемам и коэффициентам которые нужны для правильного результата.

Шаг5:Открываем самую главную схему

Шаг 6:Вычисляем ошибку выхода от входа.

Результат работы параллельной программы и генетического алгоритма:

В результате совместной работы генетического алгоритма и программы распараллеливания с помощью пакета Matlab, были получены два коэффициента, необходимые для корректной работы электрогидравлического привода

Результат работы программы:

x =

2.3672 1.9092