Параметры блоков конфигурируют модель Simulink® несколькими способами. Например, можно использовать параметры блоков, чтобы задать различные коэффициенты или шаги расчета контроллера. Можно также использовать дискретный параметр, как вход управления к Многопортовому блоку switch, чтобы управлять информационным каналом в модели. Отличаясь значение параметра помогает вам понять его влияние на поведение модели.
При использовании любого из инструментов линеаризации Simulink Control Design™ (или настраивающийся с slTuner
или Control System Tuner) можно задать набор значений параметров блоков, в которых можно линеаризовать модель. Полный набор значений называется parameter grid или parameter samples. Пакет инструментов - линеаризует модель, вычисляя линеаризацию для каждого значения в сетке параметра. Можно отличаться несколько параметров, таким образом расширяя размерность сетки параметра. При использовании инструментов линеаризации командной строки, команды linearize
или slLinearizer
или интерфейсов slTuner
, вы задаете выборки параметра с помощью структуры с полями Name
и Value
. В Linear Analysis Tool или Control System Tuner, вы используете графический интерфейс, чтобы задать выборки параметра.
Можно отличаться любой параметр модели, значение которого дано переменной в рабочем пространстве модели, рабочей области MATLAB® или словаре данных. В случаях, где переменные параметры весь настраиваемые (Simulink), инструменты линеаризации требуют, чтобы только одна образцовая компиляция вычислила передаточные функции для переменных значений параметров. Эта эффективность особенно выгодна для моделей, которые являются дорогими, чтобы неоднократно компилировать.
Для получения дополнительной информации смотрите Пакетную Эффективность Линеаризации, Когда Вы Будете Отличаться Значения параметров.
Чтобы отличаться значение одного параметра для пакетной линеаризации с linearize
, slLinearizer
или slTuner
, задает сетку параметра как структуру, имеющую два поля. Поле Name
содержит имя переменной рабочей области, которая задает параметр. Поле 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
.
Чтобы задать изменения одного параметра для пакетной линеаризации в Linear Analysis Tool, во вкладке Linear Analysis, в Parameter Variations выпадающий список, нажимают Select parameters to vary
. (В Control System Tuner Parameter Variations выпадающий список находится во вкладке Control System.)
Нажмите Manage Parameters. В диалоговом окне переменных модели Select проверяйте параметр, чтобы отличаться. Таблица приводит все переменные в рабочем пространстве 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 и линеаризуете модель, Linear Analysis Tool линеаризует во всех значениях параметров, перечисленных в таблице 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 и линеаризуете модель, Linear Analysis Tool вычисляет линеаризацию для каждого из этих значений параметров.
В Control System Tuner, когда вы закончены, задав ваши изменения параметра, необходимо применить изменения прежде, чем продолжить настройку. Для этого во вкладке Parameter Variations, нажмите Apply. Control System Tuner применяет заданные изменения параметра, повторно линеаризует вашу модель и обновляет все существующие графики.
Когда вы отличаетесь больше чем один параметр за один раз, вы генерируете сетки параметра более высокой размерности. Например, отличаясь два параметра приводят к матрице параметра, и отличаясь, три параметра приводят к 3-D сетке параметра. Рассмотрите следующую сетку параметра:
Здесь, вы отличаетесь значения трех параметров, a, b и c. Выборки формируют 3 4 5 сетками. Когда пакет, линеаризующий вашу модель, массив модели ss
, sys
, является пакетным результатом. Точно так же, когда пакет, обрезающий вашу модель, вы получаете массив объектов рабочей точки.
Чтобы отличаться значение нескольких параметров для пакетной линеаризации с linearize
, slLinearizer
или slTuner
, задает выборки параметра как массив структур. Структура имеет запись для каждого параметра, значение которого вы отличаетесь. Структура для каждого параметра эквивалентна описанный в, Отличаются Один Параметр в Командной строке. Можно задать поле Value
для параметра, чтобы быть массивом любой размерности. Однако размер поля Value
должен соответствовать для всех параметров. Соответствующие записи массива для всех параметров, также называемых parameter grid point, должны сопоставить с желаемой комбинацией параметра. Когда программное обеспечение линеаризует модель, оно вычисляет линеаризацию — модель ss
— для каждого узла решетки. Программное обеспечение заполняет свойство SamplingGrid
каждой линеаризовавшей модели с информацией об узле решетки параметра, которому соответствует модель.
Предположим, что ваша модель имеет два параметра, значения которых вы хотите отличаться, a и b:
Вы хотите линеаризовать модель для каждой комбинации a и b, также называемого full grid:
Создайте прямоугольную сетку параметра с помощью 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
является демонстрационными векторами параметра.
Создайте 1 x массив структур N.
params(1).Name = 'p1'; params(1).Value = P1; ... params(N).Name = 'pN'; params(N).Value = PN;
Если ваша модель является комплексной, или вы отличаетесь, значение многих параметров, линеаризуя модель для полной сетки может стать дорогим. В этом случае можно задать подмножество полной сетки с помощью подобного таблице подхода. Используя пример в Задают Полную Сетку, предполагают, что вы хотите линеаризовать модель для следующих комбинаций a и b:
Создайте массив структур, params
, который задает эту сетку параметра.
A = [a1 a1]; params(1).Name = 'a'; params(1).Value = A; B = [b1 b2]; params(2).Name = 'b'; params(2).Value = B;
Чтобы отличаться значение нескольких параметров для пакетной линеаризации в Linear Analysis Tool или Control System Tuner, откройте диалоговое окно переменных модели Select, как описано в Отличаются Один Параметр по Графическим Инструментам. В диалоговом окне проверяйте все переменные, вы хотите отличаться.
Если параметр, вы хотите отличаться, не является скалярной переменной, нажмите Specify expression indexing if necessary и введите выражение, которое решает к скалярному значению. Например, если A
является вектором, введите A(3)
, чтобы задать третью запись в A
. Если A
является структурой и скалярным параметром, вы хотите отличаться, поле Value
той структуры, введите A.Value
. Индексируемая переменная появляется в списке переменных.
Нажмите OK. Выбранные переменные появляются в таблице Parameter Variations. Каждый столбец в таблице соответствует одной выбранной переменной. Каждая строка в таблице представляет один полный набор значений параметров, в которых можно линеаризовать модель. Когда вы линеаризуете, Linear Analysis Tool вычисляет столько же линейных моделей, сколько существуют строки в таблице. Используйте таблицу, чтобы задать комбинации значений параметров вручную или сгенерировать комбинации значения автоматически.
Чтобы задать значения вручную, добавьте строки в таблицу путем нажатия
на Insert Row и выбора Insert Row Above
или Insert Row Below
. Затем отредактируйте значения в таблице по мере необходимости. Например, следующая таблица задает линеаризацию в четырех парах значения параметров: (Ki2,Kp2)
= (3.5,1), (3.5,2), (5,1), и (5,2).
Когда вы возвращаетесь к вкладке Linear Analysis и линеаризуете модель, Linear Analysis Tool вычисляет линеаризацию для каждой из этих пар значения параметров.
В Control System Tuner, когда вы закончены, задав ваши изменения параметра, необходимо применить изменения прежде, чем продолжить настройку. Для этого во вкладке Parameter Variations, нажмите Apply. Control System Tuner применяет заданные изменения параметра, повторно линеаризует вашу модель и обновляет все существующие графики.
Чтобы сгенерировать значения автоматически, нажмите
Generate Values. В диалоговом окне Generate Parameter 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 и линеаризуете модель, Linear Analysis Tool вычисляет линеаризацию для каждой из этих пар значения параметров.
В Control System Tuner, когда вы закончены, задав ваши изменения параметра, необходимо применить изменения прежде, чем продолжить настройку. Для этого во вкладке Parameter Variations, нажмите Apply. Control System Tuner применяет заданные изменения параметра, повторно линеаризует вашу модель и обновляет все существующие графики.
linearize
| linspace
| logspace
| ndgrid
| rand
| slLinearizer
| slTuner