Задайте выборки параметров для пакетной линеаризации

Об Параметр Выборок

Параметры блоков сконфигурируйте Simulink® моделировать несколькими способами. Для примера можно использовать блочные параметры, чтобы задать различные коэффициенты или шаги расчета контроллера. Можно также использовать дискретный параметр, как вход управления в блок Multiport Switch, чтобы управлять путем данных в модели. Изменение значения параметра помогает вам понять его влияние на поведение модели.

При использовании любого из Simulink Control Design™ инструментов линеаризации (или настройки с slTuner или Control System Tuner) можно задать набор параметров блоков значений, при которых можно линеаризировать модель. Полное множество значений называется parameter grid или parameter samples. Инструменты пакетно-линеаризируют модель, вычисляя линеаризацию для каждого значения в сетке параметров. Можно варьировать несколько параметров, таким образом расширяя размерность сетки параметра. При использовании инструментов линеаризации в командной строке, linearize команду или slLinearizer или slTuner интерфейсов, вы задаете выборки параметров, используя структуру с полями Name и Value. В Model Linearizer или Control System Tuner вы используете графический интерфейс, чтобы задать выборки параметров.

Какие параметры могут быть отобраны?

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

Для получения дополнительной информации смотрите Эффективность пакетной линеаризации, когда вы изменяете значения параметров.

Варьируйте один параметр в командной строке

Чтобы изменить значение одного параметра для пакетной линеаризации с linearize, slLinearizer, или slTuner, задайте сетку параметра как структуру, имеющую два поля. The Name поле содержит имя переменной рабочей области, которая задает параметр. The Value поле содержит вектор значений для этого параметра, которые берутся во время линеаризации.

Для примера, Watertank модель имеет три параметра, заданные как переменные рабочего пространства MATLAB, a, b, и A. Следующие команды задают сетку параметра для одинарного параметра A.

param.Name = 'A';
param.Value = Avals;

Здесь, Avals - массив, задающий значения выборок для A.

В следующей таблице перечислены некоторые общие способы определения выборок параметров.

Тип образца параметра в пространствеКак задать выборки параметров
Линейно изменяющиесяparam.Value = linspace(A_min,A_max,num_samples)
Логарифмически изменяющиесяparam.Value = logspace(A_min,A_max,num_samples)
Случайныйparam.Value = rand(1,num_samples)
Обычайparam.Value = custom_vector

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

param.Name = 'Kpid(1)';
param.Value = Kpvals;

После создания структуры param:

  • Передайте его в linearize как param входной параметр.

  • Передайте его в slLinearizer как param входной параметр, при создании slLinearizer интерфейс.

  • Установите Parameters свойство существующего slLinearizer интерфейс с param.

Варьируйте один параметр в графических инструментах

Чтобы задать изменения одного параметра для пакетной линеаризации в Model Linearizer, на вкладке Linear Analysis, в раскрывающемся списке Parameter Variations, нажмите Select parameters to vary. (В Control System Tuner раскрывающийся список Parameter Variations находится на вкладке Control System.)

Нажмите Manage Parameters. В диалоговом окне Выбрать переменные модели проверьте параметр, который будет изменяться. В таблице перечислены все переменные в рабочем пространстве MATLAB и рабочем пространстве модели, которые используются в модели, настраиваемые или нет.

Примечание

Если параметр не является переменным скаляром, нажмите Specify expression indexing if necessary и введите выражение, которое разрешается до числового скаляра значения. Для примера, если A является вектором, введите A(3) для определения третьей записи в A. Если A является структурой, и скалярный параметр, который вы хотите изменить, является Value поле этой структуры введите A.Value. Индексированная переменная появится в списке переменных.

Нажмите OK. Выбранная переменная появится в таблице Parameter Variations. Используйте таблицу, чтобы задать значения параметров вручную или сгенерировать значения автоматически.

Вручную задайте значения параметров

Чтобы задать значения вручную, добавьте строки в таблицу , нажав Insert Row и выбрав один из Insert Row Above или Insert Row Below. Затем отредактируйте значения в таблице по мере необходимости.

Когда вы возвращаетесь на вкладку Linear Analysis и линеаризируете модель, Model Linearizer линеаризируется при всех значениях параметров, перечисленных в таблице Parameter Variations.

Примечание

В Control System Tuner, когда вы закончите указывать изменения параметров, необходимо применить изменения, прежде чем продолжать настройку. Для этого на вкладке Parameter Variations нажмите Apply. Control System Tuner применяет указанные изменения параметров, перезапускает вашу модель и обновляет все существующие графики.

Автоматическое генерирование значений параметров

Чтобы сгенерировать значения автоматически, нажмите Generate Values. В диалоговом окне Generate Parameter Values, в столбце Values, введите выражение для значений параметров, которые вы хотите для переменной. Для примера введите такое выражение, как linspace(A_min,A_max,num_samples), или [10:2:30].

Щелкните Overwrite, чтобы заменить значения в таблице Parameter Variations сгенерированными значениями.

Когда вы возвращаетесь на вкладку Linear Analysis и линеаризируете модель, Model Linearizer вычисляет линеаризацию для каждого из этих значений параметров.

Примечание

В Control System Tuner, когда вы закончите указывать изменения параметров, необходимо применить изменения, прежде чем продолжать настройку. Для этого на вкладке Parameter Variations нажмите Apply. Control System Tuner применяет указанные изменения параметров, перезапускает вашу модель и обновляет все существующие графики.

Многомерные сетки параметров

Когда вы варьируете больше чем один параметр за раз, вы генерируете сетки параметров более высокой размерности. Для примера, изменение двух параметров приводит к матрице параметров, а изменение трех параметров приводит к 3-D сетке параметров. Примите во внимание следующую сетку параметров:

Здесь вы варьируете значения трех параметров, a, b и c. Эти выборки образуют сетку 3 на 4 на 5. При пакетной линеаризации вашей модели, ss массив моделей, sys, - результат пакетной обработки. Точно так же, когда пакет обрезает вашу модель, вы получаете массив объектов рабочей точки.

Изменение нескольких параметров в командной строке

Чтобы изменить значение нескольких параметров для пакетной линеаризации с linearize, slLinearizer, или slTuner, задайте выборки параметров как массив структур. Структура имеет запись для каждого параметра, значение которого вы варьируете. Структура для каждого параметра такая же, как описано в Vary Single Parameter в командной строке. Можно задать Value поле для параметра, чтобы быть массивом любой размерности. Однако размер Value поле должно совпадать со всеми параметрами. Соответствующие записи массива для всех параметров, также называемые parameter grid point, должны соответствовать требуемой комбинации параметров. Когда программное обеспечение линеаризирует модель, оно вычисляет линеаризацию - ss модель - для каждой точки сетки. Программное обеспечение заполняет SamplingGrid свойство каждой линеаризированной модели с информацией о параметрической точке сетки, которой соответствует модель.

Задайте Полную Сетку

Предположим, что ваша модель имеет два параметра, значения которых вы хотите варьировать, a и b:

a={a1,a2}b={b1,b2}

Вы хотите линеаризировать модель для каждой комбинации a и b, также называемой full grid:

{(a1,b1),(a1,b2)(a2,b1),(a2,b2)}

Создайте прямоугольную сетку параметра с помощью ndgrid.

a1 = 1;
a2 = 2;
a = [a1 a2];

b1 = 3;
b2 = 4;
b = [b1 b2];

[A,B] = ndgrid(a,b)
>> A

A =

     1     1
     2     2

>> B

B =

     3     4
     3     4

Создайте массив структур, params, который задает сетку параметра.

params(1).Name = 'a';
params(1).Value = A;

params(2).Name = 'b';
params(2).Value = B;

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

[P1,...,PN] = ndgrid(p1,...,pN);

Здесь, p1..., pN являются параметрами выборочных векторов.

Создайте массив структур N 1 x.

params(1).Name = 'p1';
params(1).Value = P1;
...
params(N).Name = 'pN';
params(N).Value = PN;

Задайте подмножество полной сетки

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

{(a1,b1),(a1,b2)}

Создайте массив структур, params, который задает сетку этого параметра.

A = [a1 a1];
params(1).Name = 'a';
params(1).Value = A;

B = [b1 b2];
params(2).Name = 'b';
params(2).Value = B;

Изменение нескольких параметров в графических инструментах

Чтобы изменить значение нескольких параметров для пакетной линеаризации в Model Linearizer или Control System Tuner, откройте диалоговое окно Select model variables, как описано в разделе Vary Single Parameter in Graphical Tools. В диалоговом окне проверьте все переменные, которые вы хотите изменить.

Примечание

Если параметр, который вы хотите изменить, не является скалярной переменной, нажмите Specify expression indexing if necessary и введите выражение, которое разрешается до скалярного значения. Для примера, если A является вектором, введите A(3) для определения третьей записи в A. Если A является структурой, и скалярный параметр, который вы хотите изменить, является Value поле этой структуры введите A.Value. Индексированная переменная появится в списке переменных.

Нажмите OK. Выбранные переменные появляются в таблице Parameter Variations. Каждый столбец таблицы соответствует одной выбранной переменной. Каждая строка в таблице представляет один полный набор значений параметров, при которых можно линеаризировать модель. Когда вы линеаризируете, Model Linearizer вычисляет столько линейных моделей, сколько строк в таблице. Используйте таблицу, чтобы задать комбинации значений параметров вручную или сгенерировать комбинации значений автоматически.

Вручную задайте значения параметров

Чтобы задать значения вручную, добавьте строки в таблицу , нажав Insert Row и выбрав один из Insert Row Above или Insert Row Below. Затем отредактируйте значения в таблице по мере необходимости. Для примера следующая таблица задает линеаризацию в четыре значения параметров парах: (Ki2,Kp2) = (3,5,1), (3,5,2), (5,1) и (5,2).

Когда вы возвращаетесь на вкладку Linear Analysis и линеаризируете модель, Model Linearizer вычисляет линеаризацию для каждой из этих пар значение параметров.

Примечание

В Control System Tuner, когда вы закончите указывать изменения параметров, необходимо применить изменения, прежде чем продолжать настройку. Для этого на вкладке Parameter Variations нажмите Apply. Control System Tuner применяет указанные изменения параметров, перезапускает вашу модель и обновляет все существующие графики.

Автоматическое генерирование значений параметров

Чтобы сгенерировать значения автоматически, нажмите Generate Values. В диалоговом окне Generate Parameter Values, в столбце Values, введите выражение для значений параметров, которые вы хотите для каждой переменной, например linspace(A_min,A_max,num_samples), или [10:2:30]. Например, следующая запись генерирует пары значение параметров для всех возможных комбинаций Kp1 = [0.1,0.15,0.2,0.25,0.3] и Kp2 = [0.03,0.04,0.05].

Щелкните Overwrite, чтобы заменить значения в таблице Parameter Variations сгенерированными значениями.

Когда вы возвращаетесь на вкладку Linear Analysis и линеаризируете модель, Model Linearizer вычисляет линеаризацию для каждой из этих пар значение параметров.

Примечание

В Control System Tuner, когда вы закончите указывать изменения параметров, необходимо применить изменения, прежде чем продолжать настройку. Для этого на вкладке Parameter Variations нажмите Apply. Control System Tuner применяет указанные изменения параметров, перезапускает вашу модель и обновляет все существующие графики.

См. также

| | | | | |

Похожие темы