Пакет NCD Blockset
Пакет NCD Blockset (Nonlinear Control Design) предназначен для настройки параметров нелинейной модели методом численной оптимизации по переходному процессу. С помощью ломаных линий задается область, из которой не должен выходить переходный процесс. Интервал, на котором выполняется моделирование, разбивается на небольшие участки шириной . Для этих точек строится система неравенств, которым должна удовлетворять функция, описывающая переходный процесс. На рисунке отрезками красного цвета показано, где эти неравенства нарушены. Требуется выбрать параметры модели так, чтобы нарушений было как можно меньше и величины отклонений были минимальны. В идеале весь переходный процесс вписывается в допустимую область, нарушений вообще нет. Для решения этой задачи в пакете NCD Blockset используются процедуры нелинейной оптимизации с ограничениями из пакета Optimization Toolbox. Сначала надо перетащить в модель Simulinkблок NCD Outport из группы NCD Blockset и подать на его вход сигнал, который надо «вписать» в заданную область. По умолчанию границы области устанавливаются так, чтобы установившееся значение сигнала было равно единице. Если это не так, на входе блока NCD Outport можно поставить дополнительный усилитель (блок Gain), который изменит масштаб. Например, если установившееся значение равно 10, коэффициент усиления надо сделать равным 0.1, чтобы установившееся значение на входе блока NCD Outport было равно 1.
Двойной щелчок по блоку NCD Outport открывает рабочее окно для подбора параметра. Перетаскивая красные полоски вверх и вниз, можно менять границы допустимой области (она залита черным цветом). Можно также перетаскивать влево и вправо вертикальные границы. Щелчок ПКМ по красной полосе позволяет задать параметры ограничения более точно в диалоговом окне. Для того, чтобы разбить полоску на две (сделать более точную границу) надо выделить ее щелчком мыши и щелкнуть по кнопке Split. Чтобы задать параметры поиска, надо выбрать в этом окне пункт верхнего меню Optimization – Optimization Parameters: В поле Tunable variables вводятся через пробел имена переменных, значения которых требуется подобрать. Поля Lower bounds (нижние границы значений переменных) и Upper bounds (верхние границы) необязательны для заполнения. В поле Discretization interval надо ввести величину шага h (см. рисунок выше). От шага зависит количество интервалов и количество ограничений. Чем меньше шаг, тем больше задается ограничений и медленнее работает процедура поиска. С другой стороны, при очень большом шаге снижается точность. Рекомендуется выбирать этот параметр равным 1-2% от общего времени моделирования. Перед запуском процедуры оптимизации надо ввести первое приближение для неизвестных параметров в командном окне Matlab: Kaw = 0.2; После этого следует щелкнуть по кнопке Start в окне блока NCD Outport. Информацию о ходе процесса и сообщения об ошибках можно наблюдать в командном окне Matlab. Обычно для того, чтобы добиться качественных переходных процессов, приходится несколько раз запускать процедуру оптимизации, меняя ограничения и последовательно улучшая результат.
|