Передаточная функция для заданного набора ввода-вывода с использованием slLinearizer
или slTuner
интерфейс
возвращает передаточную функцию для заданных входов и выходов для модели, связанной с linsys
= getIOTransfer(s
,in
,out
)slLinearizer
или slTuner
интерфейс, s
.
Программное обеспечение обеспечивает выполнение всех постоянных открытий, заданных для s
когда вычисляет linsys
. Для получения информации о том, как getIOTransfer
лечит in
и out
, см. Передаточные функции. Если вы настроили s.Parameters
, или s.OperatingPoints
, или и то, и другое, getIOTransfer
выполняет несколько линеаризаций и возвращает массив передаточных функций.
возвращает передаточную функцию для входов и выходов, заданных linsys
= getIOTransfer(s
,ios
)ios
для модели, связанной с s
. Используйте linio
команда для создания ios
. Программное обеспечение применяет тип ввода-вывода линеаризации для каждого сигнала, заданного в ios
когда вычисляет linsys
. Программное обеспечение также обеспечивает выполнение всех постоянных открытий цикла, заданных для s
.
возвращает подмножество результатов пакетной линеаризации. linsys
= getIOTransfer(___,mdl_index
)mdl_index
задает индекс интересующих линеаризаций в дополнение к любому из входных параметров в предыдущих синтаксисах.
Этот синтаксис используется для эффективной линеаризации, когда требуется получить передаточную функцию только для подмножества результатов пакетной линеаризации.
Получите передаточную функцию с обратной связью от опорного сигнала, r
, на выход объекта, y
, для ex_scd_simple_fdbk
модель.
Откройте ex_scd_simple_fdbk
модель.
mdl = 'ex_scd_simple_fdbk';
open_system(mdl);
В этой модели:
Создайте slLinearizer
интерфейс для модели.
sllin = slLinearizer(mdl);
Чтобы получить передаточную функцию с обратной связью от опорного сигнала, r
, на выход объекта, y
, добавьте обе точки к sllin
.
addPoint(sllin,{'r','y'});
Получите передаточную функцию с обратной связью от r
на y
.
sys = getIOTransfer(sllin,'r','y'); tf(sys)
ans = From input "r" to output "y": 3 ----- s + 8 Continuous-time transfer function.
Программа добавляет вход линеаризации в r
, dr
, и выходной параметр линеаризации в y
.
sys
- передаточная функция от dr
на y
, что равно.
Получите передаточную функцию модели объекта управления, G
, для ex_scd_simple_fdbk
модель.
Откройте ex_scd_simple_fdbk
модель.
mdl = 'ex_scd_simple_fdbk';
open_system(mdl);
В этой модели:
Создайте slLinearizer
интерфейс для модели.
sllin = slLinearizer(mdl);
Чтобы получить передаточную функцию модели объекта управления, используйте u
как вход точка и y
в качестве выходной точки. Чтобы исключить эффекты обратной связи, необходимо прервать цикл. Можно разбить цикл на u
, e
, или y
. В данном примере разорвать цикл на u
. Добавьте эти точки к sllin
.
addPoint(sllin,{'u','y'});
Получите передаточную функцию модели объекта управления.
sys = getIOTransfer(sllin,'u','y','u'); tf(sys)
ans = From input "u" to output "y": 1 ----- s + 5 Continuous-time transfer function.
Второй входной параметр задает u
в качестве входов, в то время как четвертый входной аргумент задает u
как временное открытие цикла.
sys
- передаточная функция от du
на y
, что равно.
Предположим, вы пакетно линеаризируете scdcascade
модель для нескольких передаточных функций. Для большинства линеаризаций вы варьируете пропорциональный (Kp2
) и интегральная составляющая (Ki2
) C2
контроллер в области значений 10%. В данном примере вычислите передаточную функцию разомкнутого контура для внутреннего цикла из e2
на y2
, для максимального значения Kp2
и Ki2
.
Откройте scdcascade
модель.
mdl = 'scdcascade';
open_system(mdl);
Создайте slLinearizer
интерфейс для модели.
sllin = slLinearizer(mdl);
Варьируйте пропорциональный (Kp2
) и интегральная составляющая (Ki2
) C2
контроллер в области значений 10%.
Kp2_range = linspace(0.9*Kp2,1.1*Kp2,3); Ki2_range = linspace(0.9*Ki2,1.1*Ki2,5); [Kp2_grid,Ki2_grid] = ndgrid(Kp2_range,Ki2_range); params(1).Name = 'Kp2'; params(1).Value = Kp2_grid; params(2).Name = 'Ki2'; params(2).Value = Ki2_grid; sllin.Parameters = params;
Чтобы вычислить передаточную функцию без разомкнутого контура для внутреннего цикла, используйте e2
и y2
как точки анализа. Чтобы исключить эффекты внешнего контура, разорвите цикл на e2
. Добавить e2
и y2
на sllin
как точки анализа.
addPoint(sllin,{'e2','y2'})
Определите индекс для максимальных значений Ki2
и Kp2
.
mdl_index = params(1).Value == max(Kp2_range) & params(2).Value == max(Ki2_range);
Получите передаточную функцию без разомкнутого контура от e2
на y2
.
sys = getIOTransfer(sllin,'e2','y2','e2',mdl_index);
Откройте модель Simulink.
mdl = 'scdcascade';
open_system(mdl)
Создайте набор опций линеаризации и установите StoreOffsets
опция.
opt = linearizeOptions('StoreOffsets',true);
Создание slLinearizer
интерфейс.
sllin = slLinearizer(mdl,opt);
Добавьте точки анализа, чтобы вычислить передаточную функцию с обратной связью.
addPoint(sllin,{'r','y1m'});
Вычислите входную/выходную передаточную функцию и получите соответствующие смещения линеаризации.
[sys,info] = getIOTransfer(sllin,'r','y1m');
Просмотр смещений.
info.Offsets
ans = struct with fields: x: [6x1 double] dx: [6x1 double] u: 1 y: 0 StateName: {6x1 cell} InputName: {'r'} OutputName: {'y1m'} Ts: 0
s
- Интерфейс с Simulink® модельslLinearizer
интерфейс | slTuner
интерфейсИнтерфейс к модели Simulink, заданный как slLinearizer
интерфейс или slTuner
интерфейс.
in
- Вход сигнала точки анализаВход сигнала точки анализа, заданное как:
Вектор символов - Имя сигнала точки анализа.
Чтобы определить имя сигнала, сопоставленного с точкой анализа, введите s
. Программа отображает содержимое s
в MATLAB® командное окно, включая имена сигналов точек анализа, имена блоков и номера портов. Предположим, что точка анализа имеет не имя сигнала, а только имя блока и номер порта. Можно задать in
как имя блока. Чтобы использовать точку, не входящую в список точек анализа для s
, сначала добавьте точку используя addPoint
.
Можно задать in
как уникально совпадающий фрагмент полного имени сигнала или блока. Предположим, что полное имя сигнала точки анализа 'LoadTorque'
. Можно задать in
как 'Torque'
пока 'Torque'
не является фрагментом имени сигнала для любой другой точки анализа s
.
Для примера, in = 'y1m'
.
Массив ячеек из символьных векторов или строковых массивов - задает несколько имен точек анализа. Для примера, in = {'y1m','y2m'}
.
out
- Имя выходного сигнала точки анализаВыход сигнала точки анализа, заданное как:
Вектор символов - Имя сигнала точки анализа.
Чтобы определить имя сигнала, сопоставленного с точкой анализа, введите s
. Программа отображает содержимое s
в командном окне MATLAB, включая имена сигналов точек анализа, имена блоков и номера портов. Предположим, что точка анализа имеет не имя сигнала, а только имя блока и номер порта. Можно задать out
как имя блока. Чтобы использовать точку, не входящую в список точек анализа для s
, сначала добавьте точку используя addPoint
.
Можно задать out
как уникально совпадающий фрагмент полного имени сигнала или блока. Предположим, что полное имя сигнала точки анализа 'LoadTorque'
. Можно задать out
как 'Torque'
пока 'Torque'
не является фрагментом имени сигнала для любой другой точки анализа s
.
Для примера, out = 'y1m'
.
Массив ячеек из символьных векторов или строковых массивов - задает несколько имен точек анализа. Для примера, out = {'y1m','y2m'}
.
temp_opening
- Имя временного сигнала открытияИмя временного сигнала открытия, заданное как:
Вектор символов - Имя сигнала точки анализа.
temp_opening
необходимо задать точку анализа, которая находится в списке точек анализа для s
. Чтобы определить имя сигнала, сопоставленного с точкой анализа, введите s
. Программа отображает содержимое s
в командном окне MATLAB, включая имена сигналов точек анализа, имена блоков и номера портов. Предположим, что точка анализа имеет не имя сигнала, а только имя блока и номер порта. Можно задать temp_opening
как имя блока. Чтобы использовать точку, не входящую в список точек анализа для s
, сначала добавьте точку используя addPoint
.
Можно задать temp_opening
как уникально совпадающий фрагмент полного имени сигнала или блока. Предположим, что полное имя сигнала точки анализа 'LoadTorque'
. Можно задать temp_opening
как 'Torque'
пока 'Torque'
не является фрагментом имени сигнала для любой другой точки анализа s
.
Для примера, temp_opening = 'y1m'
.
Массив ячеек из символьных векторов или строковых массивов - задает несколько имен точек анализа. Для примера, temp_opening = {'y1m','y2m'}
.
ios
- Операции линеаризацииОперации линеаризации, созданные с помощью linio
, заданный как объект ввода-вывода линеаризации.
ios
должны задавать сигналы, которые находятся в списке точек анализа для s
. Чтобы просмотреть список точек анализа, введите s
. Чтобы использовать точку, которая не находится в списке точек анализа для s
необходимо сначала добавить точку в список с помощью addPoint
.
Для примера:
ios(1) = linio('scdcascade/setpoint',1,'input'); ios(2) = linio('scdcascade/Sum',1,'output');
Здесь, ios(1)
задает вход, и ios(2)
задает выход.
mdl_index
- Индекс интересующих линеаризацийИндекс для интересующих линеаризаций, указанный как:
Массив логических значений - Логический индекс интересующих линеаризаций. Предположим, что вы варьируете два параметра, par1
и par2
, и хотят извлечь линеаризацию для комбинации par1 > 0.5
и par2 <= 5
. Использование:
params = s.Parameters; mdl_index = params(1).Value>0.5 & params(2).Value <= 5;
Выражение params(1).Value>0.5 & params(2).Value<5
использует логическую индексацию и возвращает логический массив. Этот логический массив имеет тот же размер params(1).Value
и params(2).Value
. Каждая запись содержит логическую оценку выражения для соответствующих записей в params(1).Value
и params(2).Value
.
Вектор положительных целых чисел - Линейный индекс интересующих линеаризаций. Предположим, что вы варьируете два параметра, par1
и par2
, и хотят извлечь линеаризацию для комбинации par1 > 0.5
и par2 <= 5
. Использование:
params = s.Parameters; mdl_index = find(params(1).Value>0.5 & params(2).Value <= 5);
Выражение params(1).Value>0.5 & params(2).Value<5
возвращает логический массив. find
возвращает линейный индекс каждого истинного элемента в логическом массиве
linsys
- Передаточная функция для заданных операций ввода-выводаПередаточная функция для заданных операций ввода-вывода, возвращаемая следующим образом:
Если вы не конфигурировали s.Parameters
и s.OperatingPoints
программное обеспечение вычисляет linsys
использование значений параметров модели по умолчанию. Программа использует начальные условия модели в качестве рабочей точки линеаризации. linsys
возвращается как модель пространства состояний.
Если вы настроили s.Parameters
программа вычисляет линеаризацию только для каждой точки сетки параметра. linsys
возвращается как массив моделей пространства состояний того же размера, что и сетка параметров.
Если вы настроили s.OperatingPoints
программа вычисляет линеаризацию только для каждой заданной рабочей точки. linsys
возвращается как массив моделей пространства состояний того же размера, что и s.OperatingPoints
.
Если вы настроили s.Parameters
и заданные s.OperatingPoints
в качестве одной рабочей точки программное обеспечение вычисляет линеаризацию для каждой сетки параметра. Программа использует заданную рабочую точку в качестве рабочей точки линеаризации. linsys
возвращается как массив моделей пространства состояний того же размера, что и сетка параметров.
Если вы настроили s.Parameters
и заданные s.OperatingPoints
как несколько объектов рабочей точки, программа вычисляет линеаризацию для каждой точки сетки параметра. Программное обеспечение требует, чтобы s.OperatingPoints
- тот же размер, что и сетка параметров, заданная s.Parameters
. Программа вычисляет каждую линеаризацию, используя соответствующие рабочие точки и параметрические точки сетки. linsys
возвращается как массив моделей пространства состояний того же размера, что и сетка параметров.
Если вы настроили s.Parameters
и заданные s.OperatingPoints
как несколько раз моментального снимка симуляции, программное обеспечение моделирует и линеаризирует модель для каждого времени моментального снимка и комбинации сетки точки параметра. Предположим, что вы задаете сетку параметров размера p
и N
время создания снимка. linsys
возвращается как массив моделей пространства состояний размера N
-by- p
.
info
- Информация о линеаризацииИнформация о линеаризации, возвращенная как структура со следующими полями:
Offsets
- Смещения линеаризации[]
(по умолчанию) | структуру | массив структурСмещения линеаризации, возвращенные как []
если s.Options.StoreOffsets
является false
. В противном случае Offsets
возвращается следующим образом:
Если linsys
является одной моделью пространства состояний, тогда Offsets
является структурой.
Если linsys
- массив моделей пространства состояний, затем Offsets
- массив структур с теми же размерностями, что и linsys
.
Каждая структура смещения имеет следующие поля:
Область | Описание |
---|---|
x | Смещения состояний, используемые для линеаризации, возвращаются как вектор-столбец длины nx, где nx - количество состояний в linsys . |
y | Выходные смещения, используемые для линеаризации, возвращаются как вектор-столбец длины ny, где ny - количество выходов в linsys . |
u | Входные смещения, используемые для линеаризации, возвращаются как вектор-столбец длины nu, где nu - количество входов в linsys . |
dx | Производные смещения для систем непрерывного времени или обновленных значений состояний для систем дискретного времени, возвращенная как вектор-столбец nx длины. |
StateName | Имена состояний, возвращенные как массив ячеек, содержащий nx элементов, которые совпадают с именами в linsys.StateName . |
InputName | Входные имена, возвращенные как массив ячеек, содержащий nu элементов, которые совпадают с именами в linsys.InputName . |
OutputName | Выходные имена, возвращенные как массив ячеек, содержащий ny элементов, которые совпадают с именами в linsys.OutputName . |
Ts | Шаг расчета линеаризованной системы, возвращенная как скаляр, который совпадает со шагом расчета в linsys.Ts . Для систем в непрерывном времени, Ts является 0 . |
Если Offsets
является массивом структур, можно сконфигурировать блок LPV System с помощью смещений. Для этого сначала преобразуйте их в необходимый формат с помощью getOffsetsForLPV
. Для получения примера смотрите Аппроксимацию нелинейного поведения с использованием массива систем LTI.
Advisor
- Диагностическая информация линеаризации[]
(по умолчанию) | LinearizationAdvisor
объект | массив LinearizationAdvisor
объектыДиагностическая информация линеаризации, возвращенная следующим []
если s.Options.StoreAdvisor
является false
. В противном случае Advisor
возвращается следующим образом:
Если linsys
является одной моделью пространства состояний, Advisor
является LinearizationAdvisor
объект.
Если linsys
- массив моделей пространства состояний, Advisor
является массивом LinearizationAdvisor
объекты с такими же размерностями, как и linsys
.
LinearizationAdvisor
объекты хранят диагностическую информацию линеаризации для отдельных линеаризированных блоков. Для примера диагностики результатов линеаризации с помощью LinearizationAdvisor
, см. Поиск и устранение проблем с результатами линеаризации в командной строке.
A transfer function является откликом системы LTI в выходной точке линеаризации на вход линеаризации. Вы выполняете линейный анализ передаточных функций, чтобы понять стабильность, характеристики временной области или характеристики частотного диапазона системы.
Можно вычислить несколько передаточных функций для заданного блока. Рассмотрим ex_scd_simple_fdbk
модель:
Можно вычислить передаточную функцию из входного сигнала ссылки в сигнал выхода объекта. The reference input (также упоминается как setpoint), r
, берёт начало в блоке Reference, и plant output, y
, берёт начало в блоке G. Эта передаточная функция также называется передаточной функцией overall closed-loop. Чтобы вычислить эту передаточную функцию, программное обеспечение добавляет вход линеаризации в r
, dr
, и выходной параметр линеаризации в y
.
Программа вычисляет общую передаточную функцию замкнутой системы как передаточную функцию от dr
на y
, что равно (I + G K)-1<reservedrangesplaceholder1> <reservedrangesplaceholder0>.
Заметьте, что передаточная функция от r
на y
равен передаточной функции от dr
на y
.
Можно вычислить plant transfer function из исходных данных объекта входа, u
, на выход объекта, y
. Чтобы изолировать динамику объекта от эффектов цикла обратной связи, введите пропуск цикла (или opening) при y
, e
, или, как показано, в u
.
Программа разрывает цикл и добавляет вход линеаризации, du
, в u
, и выходной параметр линеаризации в y
. Передаточная функция объекта равна передаточной функции от du
на y
, что G.
Точно так же, чтобы получить controller transfer function, вычислите передаточную функцию от входа контроллера, e
, на контроллер выход, u
. Разорвать цикл обратной связи на y
, e
, или u
.
Вы можете использовать getIOTransfer
для получения различных передаточных функций без разомкнутого контура и с обратной связью. Чтобы сконфигурировать передаточную функцию, задайте точки анализа как входы, выходы и открытия (временные или постоянные) в любой комбинации. Программа обрабатывает каждую комбинацию уникально. Рассмотрим следующий код, который показывает несколько различных способов, которые вы можете использовать точку анализа, u
для получения передаточной функции:
sllin = slLinearizer('ex_scd_simple_fdbk') addPoint(sllin,{'u','e','y'}) T0 = getIOTransfer(sllin,'e','y','u'); T1 = getIOTransfer(sllin,'u','y'); T2 = getIOTransfer(sllin,'u','y','u'); T3 = getIOTransfer(sllin,'y','u'); T4 = getIOTransfer(sllin,'y','u','u'); T5 = getIOTransfer(sllin,'u','u'); T6 = getIOTransfer(sllin,'u','u','u');
В T0
, u
задает пропуск цикла. В T1
, u
задает только вход, тогда как в T2
, u
задает вход и проем, также называемые open-loop input. В T3
, u
задает только выход, тогда как в T4
, u
задает выход и открытие, также называемые open-loop output. В T5
, u
задает вход и выход, также называемые complementary sensitivity point. В T6
, u
задает вход, выход и открытие, также называемые loop transfer point. Таблица описывает, как getIOTransfer
рассматривает точки анализа с акцентом на различные виды использования u
.
u Задает... | Как getIOTransfer Обрабатывает точки анализа | Передаточная функция |
---|---|---|
Цикл пропуска Пример кода: T0 = getIOTransfer(sllin,'e','y','u') |
Программное обеспечение останавливает поток сигналов на |
|
Вход Пример кода: T1 = getIOTransfer(sllin,'u','y') |
Программное обеспечение добавляет вход линеаризации, |
|
Разомкнутый контур Пример кода: T2 = getIOTransfer(sllin,'u','y','u') |
Программа ломает поток сигналов и добавляет вход линеаризации, |
|
Выход Пример кода: T3 = getIOTransfer(sllin,'y','u') |
Программное обеспечение добавляет вход линеаризации, |
|
Выходные данные разомкнутого контура Пример кода: T4 = getIOTransfer(sllin,'y','u','u') |
Программное обеспечение добавляет вход линеаризации, |
|
Дополнительная точка чувствительности Пример кода: T5 = getIOTransfer(sllin,'u','u') Совет Вы также можете получить дополнительную функцию чувствительности, используя |
Программное обеспечение добавляет выход линеаризации и вход линеаризации, |
|
Точка передаточной функции цикла Пример кода: T6 = getIOTransfer(sllin,'u','u','u') Совет Можно также получить функцию переноса цикла с помощью |
Программа добавляет выход линеаризации, разрывает цикл и добавляет вход линеаризации, |
|
Программа не изменяет модель Simulink, когда вычисляет передаточную функцию.
Analysis points, используемая slLinearizer
и slTuner
интерфейсов, идентифицируйте местоположения в модели, которые релевантны для линейного анализа и настройки системы управления. Вы используете точки анализа как входы для команд линеаризации, таких как getIOTransfer
, getLoopTransfer
, getSensitivity
, и getCompSensitivity
. В качестве входов команд линеаризации точки анализа могут задать любую передаточную функцию без разомкнутого контура или с обратной связью в модели. Можно также использовать точки анализа, чтобы задать требования проекта при настройке систем управления с помощью таких команд, как systune
.
Location относится к конкретному блоку выхода порту в модели или к элементу шины в таком выходе порте. Для удобства можно использовать имя сигнала, который поступает от этого порта, для обращения к точке анализа.
Можно добавить точки анализа в slLinearizer
или slTuner
интерфейс, s
, при создании интерфейса. Для примера:
s = slLinearizer('scdcascade',{'u1','y1'});
Кроме того, можно использовать addPoint
команда.
Чтобы просмотреть все точки анализа s
, тип s
в командной строке для отображения содержимого интерфейса. Для каждой точки анализа s
отображение включает имя блока и номер порта и имя сигнала, который генерируется в этой точке. Вы также можете программно получить список всех точек анализа, используя getPoints
.
Для получения дополнительной информации о том, как можно использовать точки анализа, см. «Маркируйте интересующие сигналы для анализа и проекта системы управления» и «Маркируйте интересующие сигналы для пакетной линеаризации».
Permanent openings, используемая slLinearizer
и slTuner
интерфейсов, идентифицируйте местоположения в модели, где программное обеспечение нарушает поток сигналов. Программное обеспечение обеспечивает эти открытия для линеаризации и настройки. Используйте постоянные отверстия, чтобы изолировать определенный компонент модели. Предположим, что у вас есть крупномасштабная модель, захватывающая динамику самолета, и вы хотите выполнить линейный анализ только для планера. Можно использовать постоянные отверстия, чтобы исключить все другие компоненты модели. Другой пример - когда у вас есть каскадные циклы в модели и вы хотите анализировать определенный цикл.
Location относится к определенному блоку выхода порту в модели. Для удобства можно использовать имя сигнала, который поступает от этого порта, для ссылки на открытие.
Вы можете добавить постоянные отверстия к slLinearizer
или slTuner
интерфейс, s
, когда вы создаете интерфейс или при помощи addOpening
команда. Чтобы удалить местоположение из списка постоянных проемов, используйте removeOpening
команда.
Просмотр всех открытий s
, тип s
в командной строке для отображения содержимого интерфейса. Для каждого постоянного открытия s
отображение включает имя блока и номер порта и имя сигнала, который инициируется в этом месте. Можно также программно получить список всех открытий постоянного цикла, используя getOpenings
.
addOpening
| addPoint
| getCompSensitivity
| getLoopTransfer
| getSensitivity
| slLinearizer
| slTuner
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.