Параметры блоков конфигурируют 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
, задайте сетку параметра как структуру, имеющую два поля. 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
.
Чтобы задать изменения одного параметра для пакетной линеаризации в Model Linearizer, на вкладке 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 и линеаризуете модель, 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
, задайте выборки параметра как массив структур. Структура имеет запись для каждого параметра, значение которого вы варьируетесь. Структура для каждого параметра эквивалентна описанный в, Варьируются Один Параметр в Командной строке. Можно задать 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;
Чтобы варьироваться значение нескольких параметров для пакетной линеаризации в Model Linearizer или Control System Tuner, откройте диалоговое окно переменных модели Select, как описано в Варьируются Один Параметр по Графическим Инструментам. В диалоговом окне проверяйте все переменные, вы хотите варьироваться.
Примечание
Если параметр, вы хотите варьироваться, не является скалярной переменной, нажмите 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, в столбце Значений, вводят выражение для значений параметров, которые вы хотите для каждой переменной, такой как 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 применяет заданные изменения параметра, повторно линеаризует вашу модель и обновляет все существующие графики.
ndgrid
| linspace
| logspace
| rand
| slLinearizer
| slTuner
| linearize