exponenta event banner

Изменение требований с учетом условий эксплуатации

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

  • Укажите переменную цель настройки, которая явно или неявно зависит от точки проектирования.

  • Принудительно применять цель настройки в подмножестве точек проектирования, но игнорировать ее в других точках проектирования.

  • Исключить проектную точку из определенного участка systune, но сохранить его для анализа или других операций настройки.

  • Устранение точки проектирования на всех этапах проектирования и анализа.

Определение цели настройки переменной

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

Создание различных целей

varyingGoal команда позволяет создавать цели настройки, которые неявно или явно зависят от точки проектирования.

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

[alpha,V] = ndgrid(linspace(0,20,5),linspace(700,1300,5));

Предположим далее, что имеются массивы 5 на 5 целевых полей усиления и целевых полей фазы, соответствующих каждой из точек проектирования, например, следующие.

[GM,PM] = ndgrid(linspace(7,20,5),linspace(45,70,5));

Чтобы применить указанные поля в каждой точке проектирования, сначала создайте шаблон для цели полей. Шаблон представляет собой функцию, которая принимает значения коэффициента усиления и запаса по фазе и возвращает TuningGoal.Margins объект с этими полями.

FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);

Используйте шаблон и массивы полей для создания изменяющейся цели.

VG = varyingGoal(FH,GM,PM);

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

VG.SamplingGrid = struct('alpha',alpha,'V',V);

Использовать VG с systune как вы бы использовать любую другую цель настройки. Использовать viewGoal визуализировать цель настройки и определить точки проектирования, которые не соответствуют целевым полям. Для различных целей настройки, viewGoal график включает ползунки, которые позволяют исследовать цель и производительность системы для определенных точек проектирования. См. раздел Проверка систем управления с планированием усиления.

Функция шаблона обеспечивает большую гибкость при построении целей проектирования. Например, можно записать функцию, goalspec(a,b), который конструирует целевое превышение как нетривиальную функцию параметров (a,b)и сохраните функцию в файле MATLAB ®. Затем вызывается функция шаблона. goalspec:

FH = @(a,b) TuningGoal.Overshoot('r',y',goalspec(a,b)); 

Дополнительные сведения о настройке различных целей см. в разделе varyingGoal справочная страница.

Создание отдельного требования для каждой точки проектирования

Другим способом выполнения требования, которое зависит от точки проектирования, является создание отдельного экземпляра требования для каждой точки проектирования. Этот подход может быть полезен, если цель применима только к нескольким моделям в массиве конструкции. Например, предположим, что требуется применить форму цикла 1/с только к первым пяти точкам проектирования с перекрестной частотой, которая зависит от переменных планирования. Предположим также, что вы создали вектор, wc, которая содержит целевую полосу пропускания для каждой точки проектирования. Затем можно построить один TuningGoal.LoopShape требования к каждой точке проектирования. Связать каждый TuningGoal.LoopShape с соответствующей точкой проектирования с использованием Models свойство требования.

for ct = 1:length(wc)
   R(ct) = TuningGoal.LoopShape('u',wc(ct));
   R(ct).Model = ct;
end

Если wc охватывает все точки проектирования в вашей сетке, этот подход эквивалентен использованию varyingGoal объект. Это полезная альтернатива varyingGoal если требуется наложить зависимость только на несколько точек конструкции.

Создание варианта в модели

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

Например, предположим, что вы хотите ограничить выигрыш от d кому y к количеству, которое зависит от переменных планирования. Предположим, что T0 - массив моделей замкнутой системы в каждой точке проектирования. Предположим, что вы создали таблицу, gmax, из максимальных значений коэффициента усиления для каждой расчетной точки Затем можно добавить другой вывод ys = y/gmax к модели с замкнутым контуром следующим образом.

% Create array of scalar gains 1/gmax
yScaling = reshape(1./gmax,[1 1 size(gmax)]);
yScaling = ss(yScaling,'InputName','y','OutputName','ys');

% Connect these gains in series to y output of T0
T0 = connect(T0,yScaling,T0.InputName,[T0.OutputName ; {'ys'}]);

Максимальное изменение коэффициента усиления в каждой точке проектирования в соответствии с таблицей gmax. Затем можно использовать одно требование, ограничивающее 1 коэффициент усиления от d к масштабированным выходным данным ys.

R = TuningGoal.Gain('d','ys',1);

Такая эффективная нормализация требований перемещает изменчивость потребности из объекта потребности, R, к модели с замкнутым контуром, T0.

В Simulink ® можно использовать аналогичный подход, подавая соответствующие входные и выходные сигналы модели через блок усиления. Затем при линеаризации модели измените значение усиления блока в соответствии с рабочим условием. Например, задайте коэффициент усиления переменной MATLAB и используйте Parameters свойство в slLinearizer для изменения значения переменной с каждым условием линеаризации.

Обеспечение цели настройки в подмножестве точек проектирования

Можно ограничить применение цели настройки подмножеством моделей в конструкторской сетке с помощью Models свойства цели настройки. Укажите модели по их линейному индексу в массиве модели. Например, предположим, что у вас есть цель настройки, Req. Настроить Req применяется к первой и последней моделям в схеме 3 на 3.

Req.Models = [1,9];

При звонке systune с Req в качестве жесткой или мягкой цели, systune проводит в жизнь Req для этих моделей и игнорирует его для остальной части сетки.

Исключить точки проектирования из systune Управляемый

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

SkipModels вариант systuneOptions позволяет указать модели в конструкторской сетке для исключения из настройки. Укажите модели по их линейному индексу в массиве модели. Например, сконфигурировать systuneOptions для пропуска первой и последней моделей в схеме «3 на 3».

opt = systuneOptions;
opt.SkipModels = [1,9];

При звонке systune с optалгоритм настройки игнорирует эти модели.

В качестве альтернативы можно полностью исключить точки конструкции из сетки модели, чтобы они не участвовали ни в одном этапе настройки или анализа. Для этого используйте voidModel, которая заменяет указанные модели в массиве модели на NaN. Эта опция полезна, если сетка выборки включает точки, представляющие неактуальные или нефизические точки проектирования. Используя voidModel позволяет проектировать по сетке точек проектирования, которая является практически обычной.

См. также

| |

Связанные темы