В этом примере вы варьируетесь параметры модели и линеаризуете модель в ее номинальных условиях работы с помощью linearize
команда.
Можно обработать в пакетном режиме, линеаризуют модель для изменений параметра в одной рабочей точке, чтобы учиться:
Динамика объекта для различных допусков компонента.
Робастность контроллера к изменениям параметров объекта.
Переходные процессы для того, чтобы изменять усиления контроллера.
scdcascade
модель содержит два каскадных цикла управления с обратной связью. Каждый цикл включает ПИ-контроллер. Модели объекта управления, G1
и G2
, модели LTI.
Для этой модели рабочая точка модели представляет номинальные условия работы системы. Поэтому вы не должны обрезать модель перед линеаризацией. Если ваше приложение включает изменения параметра, которые влияют на рабочую точку модели, необходимо сначала обработать обрезку в пакетном режиме модель для изменений параметра. Затем можно линеаризовать модель в обрезанных рабочих точках. Для получения дополнительной информации смотрите, что Пакет Линеаризует Модель в Нескольких Рабочих точках, Выведенных из Изменений Параметра.
Чтобы исследовать эффекты изменяния контроллера внешнего цикла усиления, линеаризуйте модель в номинальной рабочей точке для каждой комбинации значений усиления.
Откройте модель.
sys = 'scdcascade';
open_system(sys)
Задайте точки ввода и вывода линеаризации для вычисления ответа ввода/вывода с обратной связью системы.
io(1) = linio('scdcascade/setpoint',1,'input'); io(2) = linio('scdcascade/Sum',1,'output');
io(1)
, сигнал, происходящий в выходном порту setpoint
блокируйтесь, ссылочный вход. io(2)
, сигнал, происходящий в выходном порту Sum
блокируйтесь, система выход.
Чтобы извлечь несколько разомкнутый цикл и передаточные функции с обратной связью из той же модели, пакет линеаризует систему с помощью slLinearizer
интерфейс. Для получения дополнительной информации смотрите, Варьируются Значения параметров и Получают Несколько Передаточных функций.
Изменяйте контроллер внешнего цикла усиления, Kp1
и Ki1
, в 20% их номинальной стоимости.
Kp1_range = linspace(Kp1*0.8,Kp1*1.2,6); Ki1_range = linspace(Ki1*0.8,Ki1*1.2,4); [Kp1_grid,Ki1_grid] = ndgrid(Kp1_range,Ki1_range);
Создайте структуру параметра с полями Name
и Value
Имя
указывает который переменная варьироваться по рабочему пространству модели, рабочей области MATLAB® или словарю данных.
params(1).Name = 'Kp1'; params(1).Value = Kp1_grid; params(2).Name = 'Ki1'; params(2).Value = Ki1_grid;
params
6 4 сетка значения параметров, где каждый узел решетки соответствует уникальной комбинации Kp1
и Ki1
значения.
Получите передаточную функцию с обратной связью от ссылочного входа до объекта выход для заданных значений параметров. Если вы не задаете рабочую точку, linearize
использует рабочую точку текущей модели.
G = linearize(sys,io,params);
G
6 4 массив линеаризовавших моделей. Каждая запись в массиве содержит линеаризацию для соответствующей комбинации параметра в params
. Например, G(:,:,2,3)
соответствует линеаризации, полученной путем устанавливания значений Kp1
и Ki1
параметры к Kp1_grid(2,3)
и Ki1_grid(2,3)
, соответственно. Набор значений параметров, соответствующих каждой записи в массиве моделей G
хранится в SamplingGrid
свойство G
. Например, исследуйте соответствующие значения параметров на линеаризацию G(:,:,2,3)
:
G(:,:,2,3).SamplingGrid
ans = struct with fields: Kp1: 0.1386 Ki1: 0.0448
Чтобы изучить эффекты различных значений усиления, анализируйте линеаризовавшие модели в G
. Например, исследуйте переходные процессы на весь Kp2
значения и третий Ki1
значение.
stepplot(G(:,:,:,3))