Если приложение включает вариации параметров, влияющие на рабочую точку модели, необходимо выполнить пакетную обрезку модели для вариаций параметров перед линеаризацией. Этот подход пакетной линеаризации используется при вычислении линейных моделей для линейных систем с изменяющимися параметрами.
Дополнительные сведения о моделях пакетной обрезки для вариаций параметров см. в разделе Рабочие точки пакетного расчета в установившемся состоянии для вариации параметров.
Откройте модель 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. Для этого необходимо сначала преобразовать смещения в требуемый формат. Пример см. в разделе Аппроксимация LPV модели повышающего преобразователя.
offsets = getOffsetsForLPV(info);
findop | linearize | linio | ndgrid