Пакет линеаризует модель в нескольких рабочих точках, выведенных от изменений параметра

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

Для получения дополнительной информации о моделях обрезки пакета для изменений параметра смотрите, что Пакет Вычисляет Установившиеся Рабочие точки для Изменения Параметра.

Откройте модель Simulink.

sys = 'watertank';
open_system(sys)

Отличайтесь параметры A и b в 10% их номинальной стоимости. Задайте три значения для A и четыре значения для b, создав сетку значения 3 на 4 для каждого параметра.

[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),...
                         linspace(0.9*b,1.1*b,4));

Создайте массив структур параметра, задав имя и узлы решетки для каждого параметра.

params(1).Name = 'A';
params(1).Value = A_grid;
params(2).Name = 'b';
params(2).Value = b_grid;

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

opspec = operspec(sys);

Обрежьте модель с помощью заданной спецификации рабочей точки, сетки параметра и набора опции. Подавите отображение отчета поиска рабочей точки.

opt = findopOptions('DisplayReport','off');
[op,opreport] = findop(sys,opspec,params,opt);

findop обрезает модель для каждой комбинации параметра с помощью только одной образцовой компиляции. op является массивом 3 на 4 объектов рабочей точки, которые соответствуют заданным узлам решетки параметра.

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

io(1) = linio('watertank/Desired  Water Level',1,'input');
io(2) = linio('watertank/Water-Tank System',1,'output');

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

Пакет линеаризует модель в обрезанных рабочих точках с помощью заданных точек ввода-вывода и изменений параметра.

G = linearize(sys,op,io,params);

G является массивом 3 на 4 линеаризовавших моделей. Каждая запись в массиве содержит линеаризацию для соответствующей комбинации параметра в params. Например, G(:,:,2,3) соответствует линеаризации, полученной путем устанавливания значений A и параметров b к A_grid(2,3) и b_grid(2,3), соответственно. Набор значений параметров, соответствующих каждой записи в образцовом массиве G, хранится в свойстве SamplingGrid G. Например, исследуйте соответствующие значения параметров на линеаризацию G(:,:,2,3):

G(:,:,2,3).SamplingGrid
ans = 

  struct with fields:

    A: 20
    b: 5.1667

Когда линеаризация пакета для изменений параметра, можно получить смещения линеаризации, которые соответствуют рабочим точкам линеаризации. Для этого установите опцию линеаризации StoreOffsets.

opt = linearizeOptions('StoreOffsets',true);

Линеаризуйте модель с помощью заданной сетки параметра и возвратите смещения линеаризации в структуре info.

[G,~,info] = linearize('watertank',io,params,opt);

Можно затем использовать смещения, чтобы сконфигурировать блок LPV System. Для этого необходимо сначала преобразовать смещения в требуемый формат. Для примера см. Приближение LPV Модели Конвертера Повышения.

offsets = getOffsetsForLPV(info);

Смотрите также

| | |

Похожие темы