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

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

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

Откройте модель 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);

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

| | |

Похожие темы