Порядок работы с пакетом NCD

advertisement
Красноярский государственный университет цветных металлов и золота
Кафедра автоматизации производственных процессов
ЦМ
Дисциплина “Интегрированные
системы
управления и проектирования”
Красноярск 2005 г.
Лабораторная работа № 4a
“Изучение пакета проектирования нелинейных
систем управления NCD системы MATLAB 6
для расчета оптимальных настроек регуляторов”
ЦЕЛЬ РАБОТЫ
1. Ознакомиться с составом и назначением программного пакета NCD системы
MATLAB 6.
2. Ознакомиться с основными методами и примерами использования программного
пакета NCD для моделирования и анализа систем управления.
3. Освоить расчет и настройку одноконтурных САР в среде NCD системы MATLAB 6.
МЕТОДИКА ВЫПОЛНЕНИЯ РАБОТЫ
1. Открыть рабочее окно программы MATLAB 6 и запустить Simulink.
2. Изучая теоретические сведения о пакете NCD, вводить в рабочем окне команды,
приводимые в описании пакета и выделенные желтым цветом.
3. Закончив изучение теоретических сведений о пакете NCD, выполнить задание по
моделированию СУ.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Пакет NCD (The Nonlinear Control Design Blockset) представляет графический интерфейс пользователя (Graphical User Interface - GUI) для осуществления проектирования
систем управления (СУ) во временной области. С помощью NCD пакета можно найти оптимальные параметры настройки для нелинейной модели системы в SIMULINK, которые
обеспечат требуемый переходной процесс по заданным графически ограничениям в окне
временной области. Любое число переменных SIMULINK, включая скалярные, векторные
и матричные величины, могут быть объявлены настраиваемыми или оптимизируемыми.
Для этого надо ввести имена переменных в соответствующем диалоговом боксе. Границы
неопределенности можно задать для любых переменных для модели робастной СУ.
Пакет NCD делает процесс достижения требуемого переходного процесса и оптимизации настраиваемых параметров интуитивным и легким. Для использования пакет NCD
необходимо лишь включить в схему модели SIMULINK специальный NCD блок. Для это-
го блок соединяет с требуемым сигналом модели, чтобы показать, вы хотите установить
какие-то ограничения на этот сигнал во временной области.
Пакет NCD автоматически преобразует ограничения во временной области в ограничения задачи оптимизации параметров СУ и затем решит задачу, используя алгоритмы и
процедуры, заложенные в пакете Optimization. Задача оптимизации переменных с учетом
наложенных ограничений, сформулированная в NCD-пакете, последовательно вызывает
симуляцию работы модели СУ в SIMULINK, сравнивает полученные результаты с заданными ограничениями переходного процесса и, используя градиентный метод, изменяет
настраиваемые параметры для достижения заданной формы процесса.
Пакет NCD позволяет вводить неопределенность в задание динамических параметров
объекта управления, проводить симуляцию методом Монте Карло, задавать верхние и
нижние границы настраиваемых переменных и изменять критерий достижения цели.
Ход процесса оптимизации можно видеть в графическом окне задания ограничений
прямо при выполнении симуляции. По окончанию процесса результаты можно просмотреть в рабочем окне MATLAB. Промежуточные результаты выводятся там после каждого
шага симуляции. Оптимизацию параметров можно прервать до ее окончания с целью вывода промежуточных результатов или изменения модели.
Порядок работы с пакетом NCD
Пакет NCD использует задание верхних и нижних границ отклика СУ с помощью
ограничительных линий в графическом окне. Эти ограничительные линии можно растягивать, перемещать, разбивать и открывать различными способами. NCD-блок можно
подключать к любой модели, созданной ранее в SIMULINK. Для этого нужно:
1. Подсоединить NCD-блок ко всем сигналам, которые вы желаете ограничить.
2. Подать на вход СУ воздействие (ступенчатое, импульсное, по данные наблюдения),
для которого требуется получить желаемый переходной процесс.
3. В рабочей области MATLAB задать начальные, наилучшие по предварительной
оценке значения настраиваемых переменных.
4. Двойным щелчком мыши по NCD-блоку вызвать графическое окно задания ограничений для каждой выходной величины.
5. Изменяя, перемещая, разбивая ограничительные линии с помощью меню, мыши
или горячих клавиш, задать требуемый вид переходного процесса каждой выходной величины.
6. Открыть диалоговый бокс Optimization Parameters (Параметры оптимизации), выбирая опцию Parameters (Параметры) из меню Optimization (Оптимизация). Выбрать период дискретизации – примерно 1-2 % от полного диапазона времени симуляции. Напечатать имена настраиваемых переменных, отделяя их пробелами или точками.
7. При необходимости открыть диалоговой бокс Uncertain Variables (Неточно определенные переменные), выбирая опцию Uncertainty (Неопределенность) из меню Optimization (Оптимизация). Начальные значения этих неточно определенных переменных принимаются равными номинальным значениям и задаются в рабочем окне MATLAB.
8. Задать в SIMULINK начальный и конечный момент времени симуляции посредством выбора опции Simulation (Моделирование), Parameters (Параметры), Solver (Решатель) меню и задания в диалоговом окне значений Start time и Stop time.
9. Нажать кнопку Start или выбрать опцию Start в меню Optimization.
Пример расчета нелинейной СУ
Рассмотрим СУ одномерного (SISO) объекта с ПФ второго порядка с интегральным
регулятором, приведенную на рис. 1.
Рис.1
Для вызова этой модели необходимо набрать в рабочем окне MATLAB команду
ncdtut1.
Коэффициент усиления И-регулятора Kint должен быть таким, чтобы обеспечить следующие показатели качества регулирования при единичном ступенчатом воздействии:
- максимальное перерегулирование
10%;
- максимальное время нарастания
10%;
- максимальное время регулирования
30%.
Из-за наличия в СУ нелинейного элемента и звена транспортного запаздывания обычные методы расчета СУ могут не дать желаемого результата.
Перед началом работы необходимо инициализировать переменные модели СУ, напечатав в рабочем окне MATLAB
zeta =1;w0 =1: Kint =0.3;
Начальное значение Kint было выбрано после построения переходной характеристики
для линеаризованной модели СУ при нескольких значениях Kint.
Задание ограничений
Для открытия окна ограничений дважды щелкните мышью по NCD-блоку. Заголовок
открывшегося окна (рис. 2) будет содержать имя модели SIMULINK в которую включен
NCD-блок (в нашем случае ncdtut1).
Окно ограничений содержит оси отклика (Response) и времени (Time), панель меню
вверху, панель управления внизу и верхнюю и нижнюю ограничительные линии, заданные по умолчанию. Окно ограничений имеет заданные по умолчанию размеры и положение. Их можно изменять при помощи мыши.
Верхняя и нижняя ограничительные линии задают пределы области, в которую должен попасть сигнал отклика СУ. По умолчанию эта область задает время нарастания 5
секунд и время регулирования 15 секунд. Эти границы необходимо изменить, чтобы они
соответствовали указанным ранее значениям. Для задания положения ограничительной
линии времени нарастания установите указатель мыши на вертикальную линию, соответствующую 5 секундам. Нажмите и удерживайте нажатой левую кнопку мыши.
Рис.2.
Указатель мыши изменит свою форму и станет двунаправленной влево/ вправо стрелкой. В этом режиме можно изменять границу (по времени) между двумя уровнями ограничительной линии снизу. Перетащите вертикальную линию на отметку 10 секунд и отпустите мышь.
Рис. 3.
При необходимости более точной установки линий можно включить сетку, выбрав опцию Grid в панели Style. Для более точной установки линий следует использовать диалог
Constraint Editor, который появляется при щелчке правой кнопкой мыши по нужному
сегменту ограничительной (горизонтальной) линии.
Для установки верхней ограничительной линии нажмите и удерживайте нажатой левую кнопку мыши где-нибудь на верхней линии. Она изменит свой цвет, а указатель мыши станет двунаправленной вверх/вниз стрелкой. В этом режиме линию можно перемещать вертикально.
Не отпуская кнопки мыши, перетащите нижнюю границу верхней ограничительной
линии до значения 1,1 по оси Response, как показано на рис. 4
Рис. 4.
И, наконец, время регулирования тоже нуждается в изменении. Установите курсор
мыши на верхнюю вертикальную линию со временем 15 секунд и перетащите ее на значение 30 секунд. Затем повторите эту операцию с нижней вертикальной линией на уровне 15
секунд. Окончательный вид фигуры ограничений должен быть как на рис. 5.
Рис. 5.
При необходимости ограничительные линии можно устанавливать под углом к горизонтали. Для этого необходимо взять мышью конец линии и перемещать его в нужном
направлении.
Пример такого перемещения ограничительной линии показан на рис. 6.
Рис. 6.
Перед началом оптимизации пакету NCD необходимо указать, какие величины следует изменять и настраивать. Для этого откройте диалоговый бокс Optimization Parameters
(Параметры оптимизации), выбрав опцию Parameters (Параметры) меню Optimization
(Оптимизация). Напечатайте Kint в текстовом поле Tunable Variables (Настраиваемые переменные) (рис. 7).
Рис. 7.
Если существует несколько настраиваемых переменных, то их печатают разделяя
пробелом.
Можно также изменять интервал дискретизации. Чем он больше, тем менее точна оптимизация. Обычно достаточно интервала один-два процента от полного времени симуляции.
Выполнение оптимизации
После задания ограничений в окне NCD-блока и объявления настраиваемых переменных начинают выполнение оптимизации нажатием кнопки Start на панели управления в
нижней части окна или выбором опции Start в меню Optimization. После этого NCD–пакет
автоматически преобразует данные об ограничениях процесса и настраиваемых переменных в данные для решения проблемы оптимизации и вызывает процедуру constr. Она использует алгоритм последовательного квадратичного программирования SQP и квазиНьютоновский метод градиентного поиска.
После решения проблемы MATLAB выводит сообщение
Processing uncertainty information.
No uncertainty modeled.
Setting up call to optimization routine.
Done plotting the initial response.
Start time: 0
Stop time: 50.
There are 102 constraints to be met in each simulation.
There are 1 tunable variables.
There are 1 simulations per cost function call.
f-COUNT
MAX{g}
STEP
Procedures
3
0.996809
1
6
0.105261
1
Hessian modified twice
9
0.0169783
1
Hessian modified twice
12 - 0.00909374
1
Hessian modified twice
13
- 0.00945939
1
Hessian modified twice
Optimization Converged Successfully
Active Constraints:
40
62
Чтобы узнать новые, оптимизированные значения настраиваемых переменных, надо
напечатать их имена в окне MATLAB:
Kint
и MATLAB ответит
Kint =
0.1881
Во время оптимизации NCD–пакет выводит информацию о неопределенности параметров объекта, числе ограничений на одну симуляцию и числе симуляций.
Первая колонка выводимой информации f -COUNT показывает полное число обращений к функции стоимости (cost function), вторая MAX{g} – максимум (взвешенный)
нарушения ограничений (т.е. функции стоимости). Это число должно уменьшаться в ходе
оптимизации. Когда MAX{g} становится отрицательным, то цель оптимизации достигнута. В данном случае это случилось после 12-го обращения к функции стоимости.
Третья колонка размер шага, используемого алгоритмом линейного поиска. Четвертая колонка выводит специальные сообщения, относящиеся к алгоритму последовательного квадратичного программирования SQP.
Если критерий окончания процедуры оптимизации достигнут, выводится сообщение
Optimization Converged Successfully. В конце сообщения выводятся активные ограничения, т.е. те, что запрещают дальнейшее уменьшение функции стоимости. Вывод всей этой
информации можно запретить, убрав галочку в боксе Display optimization information
диалогового бокса Optimization parameters.
Когда NCD–пакет начинает оптимизацию, он рисует начальный отклик СУ белым
цветом. Для просмотра этого отклика до начала оптимизации следует выбрать опцию Initial response меню Options. Просмотр начального отклика СУ помогает лучшим образом
определить требуемые ограничения на переходной процесс.
Учет неопределенности параметров системы
В конкретном случае точные динамические параметры объекта могут быть неизвестны. Известно лишь какими они должны быть и каковы возможны отклонения этих параметров от желаемых значений. Например, пусть параметр объекту управления zeta изменяется на 5% от своего номинального значения, а параметр w0 изменяется в пределах от
0.7 до 1.45.
Пакет NCD позволяет вести расчет оптимальных настроек контроллеров и регуляторов и в условиях неопределенности значений некоторых параметров объекта. Для этого
откройте диалоговый бокс Uncertain Variables, выбрав опцию Uncertainty из меню Optimization, и напечатайте имена неопределенных точно параметров и пределы их изменения,
как это показано на рис. 8. Пакет NCD автоматически учтет эти неопределенности в ходе
оптимизации.
Рис. 8.
По умолчанию пакет NCD ведет оптимизацию только для номинальных значений параметров объекта. Для учета неопределенности параметров надо отметить соответствующие строки в диалоговом боксе.
Для оптимизации в условиях случайного изменения параметров в пределах от нижнего
до верхнего значения следует отметить птичкой бокс Constrain Monte Carlo simulations и
указать число симуляций по методу Монте-Карло в строке Number of Monte Carlo simulations. Хотя увеличения числа симуляций ведет к получению более робастной СУ, это увеличивает время оптимизации. Обычно рекомендуется брать как можно меньше число симуляций и использовать метод Монте-Карло только для целей анализа.
С диалоговым боксом, заполненным, как показано на рис. 8, снова начните оптимизацию. Обратите внимание, что пакет NCD рисует два начальных графика и обновляет два
других. Эти графики строятся с учетом верхних и нижних пределов изменения настраиваемых параметров.
PID Контроллер
В данной задаче рассчитывается СУ одномерного (SISO) объекта с ПФ третьего порядка
G( s ) 
1.5
,
50s3  a 2 s 2  a1 s  1
где номинальные значения коэффициентов a2 = 43 и a1= 3.
Модель объекта имеет нелинейные элементы - ограничения скорости нарастания (
0.8) и насыщения (2)
Кроме того, объект характеризуется значительными изменениями динамических параметров. Так, коэффициент a2 в знаменателе ПФ может изменяется между 40 и 50, а коэффициент a1 - от 1,5 до 4,5 при номинальном значении, равном 3.
Рис. 9.
Описание задачи
Необходимо рассчитать PID контроллер так, чтобы замкнутая СУ отвечала следующим требованиям:
• максимальное перерегулирование было не более 20 %;
• максимальное время нарастания равнялось 10 с;
• максимальное время установления (регулирования) было не более 30 с.
Далее необходимо, чтобы замкнутая СУ была робастной к возможным отклонениям
параметров объекта из-за не точного определения динамических параметров ОР.
Постановка задачи
Модель ncddemo1 в SIMULINK включает объект (Plant) и контроллер (PID) как показано на рис. 9. Чтобы открыть модель, напечатайте в командном окне MATLAB
ncddemo1.
Обратите внимание, что нелинейные элементы включены в модель объекта. На вход
модели подается ступенчатое воздействие (Step). NCD блок присоединен к выходу объекта, поскольку именно этот сигнал необходимо видоизменять.
Просмотр диалога блока в опции Simulation (Моделирование), Parameters (Параметры)
показывает, что каждая симуляция продолжается 100 секунд.
Дважды щелкните на блоке ncd1init для инициализации настраиваемых и не точно
определенных переменных.
Не точно определенные переменные a2 и a1 инициализируются при своих номинальных значениях 40 и 3 соответственно. Настраиваемые параметры Kp, Ki, и Kd инициализируются при 0.63, 0.0504, и 1.9688 соответственно. Данные значения являются результатом использование метода Ziegler-Nichols для определения параметров настройки PID
контроллеров.
Этот метод заключается в следующем:
• Устанавливают коэффициенты интегральной Ki и дифференциальной Kd составляющих PID-закона регулирования равными нулю и увеличивают коэффициент Kp пропорциональной составляющей до тех пор, пока СУ становится неустойчивой.
• Обозначают это значение Ku и измеряют период колебаний Pu.
• Принимают следующие значения:
Kp = 3 Ku/5, Ki = 6 Ku / (5 Pu), и Kd = 3 Ku Pu/40.
Двойной щелчок на блоке ncd1init также определяет ограничиваемые параметры во
временной области для данного сеанса моделирования.
Дважды щелкните на блоке NCD, чтобы открыть фигуру NCD Blockset для задания
ограничений на переходной процесс в СУ. Нижние и верхние ограничивающие линии задают ограничения на максимальное динамическое отклонение, время нарастания, и время регулирования (установления) выходной величины.
Решение задачи
Перед запуском оптимизации откройте диалог Optimization Parameters (Параметры
Оптимизации), выбирая опцию Parameters в меню Optimization, и посмотрите, как заданы
Tunable Variables (Настраиваемые Переменные). Также откройте диалог Uncertain Variables (Неопределенные Переменные), выбирая Uncertainty (Неопределенность) в меню Optimization. Посмотрите, как заданы Uncertainty (Неопределенность, Неточность) в параметрах a2 и a1 и обратите внимание, что оптимизация осуществляется только для номинальных значений параметров объекта.
Нажмите кнопку Start или выберите опцию Start из меню Optimization, или, удерживая нажатой клавишу ускорения, нажмите t, чтобы начать оптимизацию. Наблюдайте изменения и улучшение в реакции СУ в течение оптимизации. Время оптимизации, измене-
ние функции стоимости (costfunction), и окончательные значения настраиваемых переменных могут отличаться для различных компьютеров. Однако, оптимизация должна
привести к созданию контроллера, который отвечает всем ограничениям.
Теперь вернитесь к диалогу Uncertain Variables , задайте верхние и нижние значения
неточных параметров объекта. Нажмите кнопку Start для начала процесса оптимизации
при неопределенности параметров. Может оказаться, что все ограничения теперь могут
быть и не достигнуты, но максимальное отклонение от ограничения меньше чем 0.01.
Учитывая степень неопределенности в динамике объекта, такой результат можно считать
весьма впечатляющим.
Вы можете поэкспериментировать, если хотите, перемещая границы ограничений в
попытке достичь лучшей характеристики системы. Например, уменьшите время нарастания или максимальное динамическое отклонение. Для этого перед изменением ограничений необходимо остановить симуляцию работы модели.
Практическое задание
1. По данным табл. 1 в соответствии с номером своего варианта по рис. 10 создайте модель СУ статическим объектом второго порядка (блоки Transfer Fcn или Zero Pole библиотеки Linear и блок Transport Delay -Транспортное запаздывание - библиотеки
Nonlinear) с ПИД-реулятором (блок PID Controller библиотеки Additional Linear) в цепи
обратной отрицательной связи.
Рис. 10.
На вход модели СУ подается ступенчатое воздействие (блок Step библиотеки Sources), выход модели подключен к NCD-блоку (блок NCD Outport библиотеки NCD Blockset в библиотеке Blocksets & Toolboxes). Для создания обратной связи используйте на входе модели
блок Sum библиотеки Linear. Выделив мышью модель объекта управления, преобразуйте
ее в подсистему Объект с помощью команды Create Subsystem меню Edit.
2. Дважды щелкнув мышью по NCD-блоку, откройте его. Выбрав пункт Time Range (Пределы изменения времени) меню Options, задайте верхнюю границу времени для графика
переходного процесса. Ее величина берется примерно 5-6 T1об (табл. 1).
3. Выберите пункт Parameters меню Optimization и в строке Tunable Variables (Настраиваемые переменные) открывшегося диалога введите имена через пробел: Kp Ki Kd. В строке Discretization interval (Интервал дискретизации) укажите шаг квантования раз в 100
меньший верхней границы времени для графика переходного процесса. В строках
Variable Tolerance и Constant Tolerance укажите значения в 10-50 раз меньше шага квантования. Поставьте птичку в боксе Display optimization information (Показывать инфор-
мацию об оптимизации). Остальные птички в боксах уберите. Затем нажмите кнопку Done
(Сделано).
4. При необходимости измените фигуру ограничений для переходного процесса, перемещая ограничивающие линии.
5. В рабочем окне Matlab введите ориентировочные значения настроек регулятора, поставив их вместо знака ? в строку:
Kp= ?, Ki= ?, Kd= ?
6. В открытом окне NCD-блока выберите пункт Initial response меню Options и посмотрите
отклик СУ на ступенчатое воздействие при начальных, неоптимизированных настройках
регулятора. Если вид процесса очень далек от желаемого, nо измените начальные
настройки регулятора Kp= ?, Ki= ?, Kd= ? в рабочем окне Matlab и вновь выберите пункт
Initial response для просмотра начального отклика системы.
7. Выберите пункт Start меню Optimization или нажмите кнопку Start на нижней панели
управления окна NCD-блока и запустите оптимизацию настроек ПИД-регулятора. По
окончанию процесса оптимизации выведите новые, оптимизированные значения параметров настройки регулятора, набрав в рабочем окне Matlab команду
Kp, Ki, Kd
8. Для последующей защиты сохраните модель СУ под своим именем на сервере.
Таблица 1.
№ варианта
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Параметры объекта регулирования
Kоб
T1об, с
Т2об, с
об, с
0,9
1,1
52
35
6
2,7
0,75
0,8
2,4
0,12
1,6
0,32
1,8
54
61
2,3
0,6
1,2
51
33
6,5
3,0
0,7
0,9
2,4
23
55
21
62
23
14
3,5
17
19,5
31
17
37
64
21
8
3,1
22
58
23
64
25
15
3,7
0,8
7
17
7
18
10
5
1,1
6,3
4,7
9,6
4,3
10
22
7,4
2,7
1,2
6,8
15
8
17
11
6,1
1,3
0,1
2
8
3
9
5
1,2
0,1
0,5
2,2
1
1,5
1,6
2,5
4,2
0,5
0,2
1,2
4,4
1,5
6
2
1,3
0,2
Таблица 2
Оптимальные параметры настройки регуляторов для
статических объектов первого порядка с запаздыванием
Тип
регулятора
ИП-
Параметры
настройки апериодический
Тип переходного процесса
Кр
1/(4,5 A) *
Кр
0,3 В *
Кр
0,6 В
ПИТи
0,6 Тоб
Кр
0,95 В
ПИДТи
2,4 об
Тд
0,4 об
* Примечание: А = КобТоб; В = Тоб/(Кобоб).
с 20%-м
перерегулированием
с min  y2 dt
1/(1,7A)
0,7 В
0,7 В
0,7 Тоб
1,2 В
2,0 об
0,4 об
1/(1,7 A)
0,9 В
1,0 В
1,0 Тоб
1,4 В
1,3 об
0,5 об
Контрольные вопросы для защиты
1. Состав и назначение пакета NCD.
2. Запуск и работа с пакетом NCD.
3. Задание ограничений на вид переходного процесса в окне NCD-блока.
4. Задание параметров оптимизации переходного процесса в NCD-блоке.
5. Вывод информации о процессе оптимизации.
6. Учет неопределенности задаваемых параметров модели ОУ.
7. Метод Ziegler-Nichols для определения параметров настройки PID контроллеров
8. Порядок выполнения практического задания.
Download