LS-Sb88903
.pdfРекомендации по выполнению
Решение задачи оптимизации следует начинать с создания модели системы, представленной на рис. 2 (соответствует варианту №1).
Дискретные элементы, входящие в схему (“Zero-Order Hold”, “DiscreteTime Integrator”), должны характеризоваться временем дискретизации T0 (Sample Time), заданным в варианте. Кроме того, блок “Discrete-Time Integrator” должен соответствовать дискретной форме описания интегратора, заданной преподавателем (“ Эйлер”=”Forward Euler”, “ Прямоугольник”=”Backward Euler”, “ Трапеция”=”Trapezoidal”). В блоках квантования “Quantizer” и “Quantizer1” следует установить величину квантования, равную 0.5. В блоке транспортной задержки “Transport Delay” необходимо зафиксировать время τ , заданное в варианте (где имеется). Величина быстродействия эталонной модели задается в блоках “Transfer Fcn3”, “Transfer Fcn4” и “Transfer Fcn5”. Блок для запоминания значения функционала качества “simout” импортируется из раздела Sinks библиотеки Simulink. В диалоговом окне данного блока в поле “Save format” требуется установить тип “Array”.
Блок регулятора выполнен маскируемой подсистемой. Маскирование выполняется с помощью команды Edit Mask (Редактирование маски) раздела Edit. При этом открывается диалоговое окно, содержащее три вкладки: Icon (Иконка подсистемы); Initialization (Инициализация параметров); Documentation (Окно комментариев). Для определения значений параметров, которыми характеризуется подсистема, используется закладка Initialization. При этом для описания параметров используются: строка Prompt (Пояснение) для ввода названия параметра (например, "коэффициент"); строка Variable (Переменная) для ввода имени переменной, в которой будут храниться значения соответствующего параметра (см. пояснения на рис. 4 и 5).
11
Рис. 4
Рис. 5
12
В зависимости от варианта блок регулятора будет иметь различное содержание (одну либо две интегрирующие части).
После того как структура системы будет сформирована, следует ввести начальные значения параметров регулятора, полученные в ходе выполнения лабораторной работы 1 (см. рис. 6).
Рис. 6
Далее следует запустить процесс моделирования работы системы, установив в качестве входного ступенчатое воздействие величиной 65536 д.е. По его завершении на осциллографе будут зарегистрированы два переходных процесса (ПП): переходный процесс выходной величины с объекта и модели (см. рис. 7). Значение функционала качества Jv=0.007038.
Рис. 7
При успешных результатах моделирования работы системы, следует приступить к ее параметрической оптимизации.
13
Для нахождения минимума функции нескольких переменных в MatLab имеются специальные средства, отличающиеся друг от друга алгоритмами поиска экстремума и количеством варьируемых параметров. Для решения поставленной задачи минимизации функционала будем использовать метод деформированного многогранника. В MatLab для этой цели применяется функция FMINSEARCH, она имеет следующий синтаксис:
x = fminsearch ( fun , x0 [, options]),
где
∙x – n- мерный вектор (n – число варьируемых параметров).
∙fun – подлежащая минимизации функция; это есть некая функция, которая принимает вектор х и возвращает скаляр f, как целевую функцию от
х; функция fun может быть определена, как описатель функции: x=fminsearch(@myf,x0),
где myf есть некая функция MatLab, такая что function f = myf(x).
∙x0 – вектор начальных значений варьируемых параметров.
∙options – параметры опций; параметры оптимизационных опций: Display - уровень отображения, 'off' отображение не производится, 'iter' отображение проводится на каждой итерации, 'final'
отображение |
только |
конечной |
информации, |
'notify' |
||
(принимается |
по |
умолчанию) |
отображение |
только в |
||
случае, |
если |
|
функция |
не |
|
сходится; |
MaxIter |
- максимальное |
число |
допустимых |
|
итераций; |
|
TolX - |
конечное |
допустимое |
отклонение по |
значению х; |
||
options=optimset('param1',value1,'param2',value2,..) - создание |
или |
|||||
редактирование структуры параметров опций оптимизации. |
|
|
||||
Применительно к первому варианту:
∙n = 2;
∙функцию fun определяем, как описатель функции fun=@myf, где myf – есть функция MatLab, написанная пользователем (текст приведён ниже);
∙x0 = [ 3 ; 0.2 ];
∙options = optimset('Display', 'iter','MaxIter',100) - отображение проводится на каждой итерации, максимальное число допустимых итераций 100.
Текст пользовательской функции myf (файл myf.m):
%Используемые |
обозначения: |
||
%myf |
- |
имя |
пользовательской функции |
%х |
- |
вектор значений параметров регулятора |
|
%lab2 |
- |
имя |
фаила модели Simulink |
% Regulator - имя подсистемы регулятора в модели
%Kr,Tr |
- варьируемые параметры в составе регулятора |
%Определение пользовательской функции myf |
|
function |
rez=myf(x); |
%Задание |
значений параметров регулятора |
14
set_param('lab2/ Regulator','Kr',num2str(x(1)), 'Tr',num2str(x(2)));
%Запуск процесса моделирования sim ('lab2');
%Возврат значения функционала качества J rez=simout(end);
Файл пользовательской функции необходимо поместить в каталог файла модели.
Для запуска процесса оптимизации по выбранному методу, необходимо открыть файл модели и ввести в командной строке MatLab функцию поиска минимума в соответствии с её синтаксисом:
x = fminsearch(@myf, [3;0.2], optimset('Display', iter','MaxIter',100))
Ход процесса оптимизации в графическом виде можно наблюдать на осциллографе, а в командном окне MatLab будут выдаваться результаты оптимизации на каждой итерации.
Параметры регулятора на определённом этапе решения поставленной задачи считаются подобранными, если удалось уменьшить значение функционала качества и добиться адекватного совпадения реакции системы на ступенчатое управляющее воздействие с эталонной моделью.
Осциллограммы ПП после оптимизации приведены на рис. 8. Значение функционала качества в данном случае: JV= 0.000045. Значения параметров регулятора: Kr= 2.0586, Tr= 0.073454. Число итераций - 37.
Рис. 8
Так как оптимизация при начальном быстродействии эталонной модели осуществлена вполне успешно, необходимо увеличить быстродействие
15
эталона вдвое и выполнить заново весь процесс оптимизации. При достижении положительных результатов данную процедуру повторяют вновь и вновь. Критерий остановки данного процесса был рассмотрен ранее.
Требования к отчёту
В отчёте следует привести: цель работы; описание задачи и этапов её решения; схему модели Simulink и её подсистем; текст пользовательской функции; функцию FMINSEARCH в соответствии с ее синтаксисом; осциллограммы переходных процессов, значение функционала и параметров регулятора до и после оптимизации; выводы.
Контрольные вопросы
1.Какие средства используются в MatLab для поиска экстремума функции нескольких переменных, опишите синтаксис функции FMINSEARCH?
2.В какой форме необходимо определить пользовательскую функцию, чтобы использовать её в FMINSEARCH?
3.Опишите алгоритм решения поставленной в работе задачи.
16
Работа №3 Разработка системы по принципам модального управления
Цель работы: получение практических навыков по разработке систем по принципам модального управления.
Содержание
Рассматриваются объект управления, математическое описание которого приведено в варианте. Считается, что для всех вариантов τ = 0 , а доступной измерению является только выходная переменная.
В работе требуется для заданного варианта разработать непрерывное наблюдающее устройство и модальный регулятор полного порядка. При расчете коэффициентов наблюдателя и регулятора в качестве стандартных форм n-го порядка рассматриваются:
а) форма Баттерворта
H (s) = s2 |
+ 1.4ω0 s + ω0 |
2 , |
|
|
|
|
|
n=2 |
|
H (s) = s3 |
+ 2ω0 s2 + 2ω0 |
2 s + ω0 |
3 , |
|
|
|
n=3 |
||
H (s) = s4 |
+ 2.6ω0 s3 + 3.4ω0 |
2 s2 |
+ |
2.6ω0 |
3 s + ω0 |
4 ; |
n=4 |
||
б) форма бинома Ньютона
H (s) = s2 |
+ 2ω0 s + ω0 |
2 , |
|
|
|
|
|
n=2 |
|
H (s) = s3 |
+ 3ω0 s2 |
+ 3ω0 |
2 s + ω0 |
3 , |
|
|
n=3 |
||
H (s) = s4 |
+ 4ω0 s3 |
+ 6ω0 |
2 s2 + 4ω0 |
3 s + ω0 |
4 ; |
n=4 |
|||
где ω0 - параметр, характеризующий быстродействие.
Форма распределения корней характеристических уравнений наблюдателя и регулятора задается преподавателем, а требуемое значение
ω0 определяется исходя из желаемого времени переходного процесса tП с
помощью нормированных переходных характеристик, приведенных на рис. 1. Нормированные кривые реакции на единичное управляющее воздействие систем разного порядка с корнями характеристического уравнения, соответствующими распределению по биному, приведены на рис. 1а), а с корнями, соответствующими распределению по Баттерворту, на рис. 1б).
17
1.25 |
|
|
|
|
|
x |
|
|
|
|
|
1 |
|
|
|
|
|
|
n = |
2 3 4 |
|
|
|
0.75 |
|
|
|
|
|
0.5 |
|
|
|
|
|
0.25 |
|
|
|
|
|
0 |
|
|
|
w |
0 t |
|
|
5 |
10 |
15 |
|
0 |
|
|
|||
|
|
|
|
Рис. 1,а |
|
1.25 |
|
|
|
|
|
x |
|
n = |
2 3 4 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
0.75 |
|
|
|
|
|
0.5 |
|
|
|
|
|
0.25 |
|
|
|
|
|
0 |
|
|
|
w |
0 t |
|
|
5 |
10 |
15 |
|
0 |
|
|
|||
|
|
|
|
Рис. 1,б |
|
18
Для разработанной системы требуется оценить реакцию выходной переменной на ступенчатое управление и убедиться, что она совпадает с желаемой, заданной стандартным распределением.
Рекомендации по выполнению
Разработку системы рекомендуется начинать с составления математического описания в виде детализированной структурной схемы. Пример составления такого описания в Simulink, состоящего из объекта, наблюдателя и регулятора, для первого варианта приведен на рис. 2.
Рис. 2
Все параметры на схеме приведены в буквенной форме лишь для наглядности. Моделирование работы системы невозможно будет осуществить, пока буквенные обозначения параметров не будут заменены
конкретными значениями. |
|
Расчет коэффициентов модального регулятора K = [k1 |
k2 ... kn ] и |
наблюдателя L = [L11 L21 ... Ln1 ]T выполняется раздельно. |
Вычисление |
указанных параметров осуществляется с использованием стандартных средств пакета Matlab, требующих описание объекта в векторно-матричной форме:
Xɺ O = AO XO + BO u ,
19
y = CXO , z = DXO ,
где A [ × ] – матрица объекта; B [ × ] – вектор входа; C[ × ] – матрица выхода,
O n n O n 1 r n
y, z - измеряемая и регулируемая переменные.
Для первого варианта AO , BO , C , с учетом введенных на рис. 2
обозначений переменных состояния, следует определить как:
|
|
1 |
|
|
|
|
|
|
|
|||
|
− |
|
|
|
0 |
0 |
|
|
1 |
|
||
|
T1 |
|
||||||||||
|
|
− 1 |
|
|
T |
|
||||||
A = |
1 |
|
0 ;B = |
|
0 |
;C = [0 0 1]. |
||||||
|
|
|
|
|
|
|
|
|
|
|
1 |
|
O |
|
|
|
|
|
|
|
|
O |
|
|
|
T2 |
|
T2 |
|
|
||||||||
|
|
|
|
|
|
|||||||
|
|
0 |
|
k |
0 |
|
0 |
|||||
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В числовом виде, адаптированном для ввода в командной области Matlab, матрицы приведены ниже:
(здесь и далее текст курсивом вводится в командном окне Matlab)
A=[ |
-1/0.01 |
|
0 |
0; |
|
1/0.005 |
-1/0.005 |
0; |
|
|
0 |
|
10 |
0] |
C=[0 |
0 1] |
|
|
|
B=[1/0.01; |
0; |
0] |
|
|
Для расчета коэффициентов наблюдателя требуется задаться быстродействием эталонной модели в 4 раза большим, чем ω0 :
w0=(6/0.12)*4
Далее задается указанный преподавателем полином, вычисляются его корни и сами коэффициенты наблюдателя:
polinom=[1 2*w0 2*w0^2 w0^3] p=(roots(polinom))' L=place(A',C',p)
Результаты вычислений для первого варианта:
L = [1500 3000 100]T .
20
