Модель передаточной функции
Использование tf
создать реальные или комплексные модели передаточной функции или преобразовать динамические системы в форму передаточной функции.
Передаточные функции являются представлением частотного диапазона линейных инвариантных по времени систем. Например, рассмотрите динамическую систему SISO в непрерывном времени, представленную передаточной функцией sys(s) = N(s)/D(s)
, где s = jw
и N(s)
и D(s)
называются числителем и полиномами знаменателя, соответственно. The tf
объект модели может представлять передаточные функции SISO или MIMO в непрерывном времени или дискретном времени.
Можно создать объект модели передаточной функции либо путем определения его коэффициентов непосредственно, либо путем преобразования модели другого типа (такого как модель пространства состояний ss
) в форму transfer-function. Для получения дополнительной информации см. раздел Передаточных функций.
Можно также использовать tf
для создания обобщенного пространства состояний (genss
) моделирует или неопределенное пространство состояний (uss
(Robust Control Toolbox)) модели.
создает модель передаточной функции в непрерывном времени, устанавливая sys
= tf(numerator
,denominator
)Numerator
и Denominator
свойства. Например, рассмотрите динамическую систему SISO в непрерывном времени, представленную передаточной функцией sys(s) = N(s)/D(s)
, входные параметры numerator
и denominator
являются коэффициентами N(s)
и D(s)
, соответственно.
создает модель передаточной функции в дискретном времени, устанавливая sys
= tf(numerator
,denominator
,ts
)Numerator
, Denominator
, и Ts
свойства. Например, рассмотрите динамическую систему SISO в дискретном времени, представленную передаточной функцией sys(z) = N(z)/D(z)
, входные параметры numerator
и denominator
являются коэффициентами N(z)
и D(z)
, соответственно. Чтобы оставить шаг расчета неопределенным, установите ts
входной параметр в -1
.
создает модель передаточной функции с свойствами, унаследованными от динамической системы sys
= tf(numerator
,denominator
,ltiSys
)ltiSys
, включая шаг расчета.
s = tf('s')
создает специальную переменную s
который можно использовать в рациональном выражении, чтобы создать модель передаточной функции в непрерывном времени. Использование рационального выражения иногда может быть проще и интуитивнее, чем определение полиномиальных коэффициентов.
numerator
- Коэффициенты числителя передаточной функцииNy
-by- Nu
массив ячеек векторов-строкКоэффициенты числителя передаточной функции, заданные как:
A вектора-строки полиномиальных коэффициентов.
Система координат Ny
-by- Nu
массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny
количество выходов и Nu
- количество входов.
Когда вы создаете передаточную функцию, задайте коэффициенты числителя в порядке убывания степени. Например, если числитель передаточной функции 3s^2-4s+5
, затем задайте numerator
как [3 -4 5]
. Для передаточной функции в дискретном времени с числителем 2z-1
, задать numerator
на [2 -1]
.
Также свойство tf
объект. Для получения дополнительной информации см. раздел «Числитель».
denominator
- Коэффициенты знаменателя передаточной функцииNy
-by- Nu
массив ячеек векторов-строкКоэффициенты знаменателя, заданные как:
A вектора-строки полиномиальных коэффициентов.
Система координат Ny
-by- Nu
массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny
количество выходов и Nu
- количество входов.
Когда вы создаете передаточную функцию, задайте коэффициенты знаменателя в порядке убывания степени. Для образца, если знаменатель передаточной функции 7s^2+8s-9
, затем задайте denominator
как [7 8 -9]
. Для передаточной функции в дискретном времени со знаменателем 2z^2+1
, задать denominator
на [2 0 1]
.
Также свойство tf
объект. Для получения дополнительной информации см. «Знаменатель».
ts
- Шаг расчетаШаг расчета, заданный как скаляр. Также свойство tf
объект. Для получения дополнительной информации см. Т.
ltiSys
- Динамическая системаДинамическая система, заданная как SISO или MIMO динамическая системная модель или массив динамических системных моделей. Динамические системы, которые можно использовать, включают:
Непрерывные или дискретные числовые модели LTI, такие как tf
, zpk
, ss
, или pid
модели.
Обобщенные или неопределенные модели LTI, такие как genss
или uss
(Robust Control Toolbox) модели. (Использование неопределенных моделей требует программного обеспечения Robust Control Toolbox™.)
Получившаяся передаточная функция принимает
текущие значения настраиваемых компонентов для настраиваемых блоков проекта системы управления.
номинальные значения модели для неопределенных блоков проекта системы управления.
Идентифицированные модели LTI, такие как idtf
(System Identification Toolbox), idss
(System Identification Toolbox), idproc
(System Identification Toolbox), idpoly
(System Identification Toolbox), и idgrey
(System Identification Toolbox) модели. Чтобы выбрать компонент идентифицированной модели для преобразования, задайте component
. Если вы не задаете component
, tf
преобразует измеренный компонент идентифицированной модели по умолчанию. (Использование идентифицированных моделей требует System Identification Toolbox™ программного обеспечения.)
m
- Статический коэффициент усиленияСтатический коэффициент усиления, заданный как скаляр или матрица. Статический коэффициент усиления или коэффициент усиления в установившемся состоянии системы представляет отношение выхода к входу в установившемся условии.
component
- Компонент идентифицированной модели'measured'
(по умолчанию) | 'noise'
| 'augmented'
Компонент идентифицированной модели для преобразования, заданный как один из следующих:
'measured'
- Преобразуйте измеренный компонент sys
.
'noise'
- Преобразуйте шумовой компонент sys
'augmented'
- Преобразуйте как измеренную, так и шумовые компоненты sys
.
component
применяется только тогда, когда sys
является идентифицированной моделью LTI.
Для получения дополнительной информации об идентифицированных моделях LTI и их измеренных и шумовых компонентах, смотрите Идентифицированные модели LTI.
sys
- Модель выходной системыtf
объект модели | genss
объект модели | uss
объект моделиСистемная модель, возвращенная как:
Передаточная функция (tf
) объект модели, когда numerator
и denominator
входные параметры являются числовыми массивами.
Обобщенная модель пространства состояний (genss
) объект, когда numerator
или denominator
входные параметры включают настраиваемые параметры, такие как realp
параметры или обобщенные матрицы (genmat
). Для получения примера смотрите Настраиваемый Lowpass фильтр.
Модель неопределенного пространства состояний (uss
) объект, когда numerator
или denominator
входные параметры включают неопределенные параметры. Использование неопределенных моделей требует программного обеспечения Robust Control Toolbox. Для получения примера смотрите Передаточную Функцию с Неопределенными Коэффициентами (Robust Control Toolbox).
Numerator
- Коэффициенты числителяNy
-by- Nu
массив ячеек векторов-строкКоэффициенты числителя, заданные как:
A вектора-строки полиномиальных коэффициентов в порядке убывания степени (для Variable
значения 's'
, 'z'
, 'p'
, или 'q'
) или в порядке возрастания степени (для Variable
значения 'z^-1'
или 'q^-1'
).
Система координат Ny
-by- Nu
массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny
количество выходов и Nu
- количество входов. Каждый элемент массива ячеек задает коэффициенты числителя для заданной пары вход/выход. Если вы задаете оба Numerator
и Denominator
как и массивы ячеек, они должны иметь одинаковые размерности.
Коэффициенты Numerator
может быть либо реальным, либо комплексным.
Denominator
- Коэффициенты знаменателяNy
-by- Nu
массив ячеек векторов-строкКоэффициенты знаменателя, заданные как:
A вектора-строки полиномиальных коэффициентов в порядке убывания степени (для значений Variable
значения 's'
, 'z'
, 'p'
, или 'q'
) или в порядке возрастания степени (для Variable
значения 'z^-1'
или 'q^-1'
).
Система координат Ny
-by- Nu
массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny
количество выходов и Nu
- количество входов. Каждый элемент массива ячеек задает коэффициенты числителя для заданной пары вход/выход. Если вы задаете оба Numerator
и Denominator
как и массивы ячеек, они должны иметь одинаковые размерности.
Если все записи SISO передаточной функции MIMO имеют один и тот же знаменатель, можно задать Denominator
в качестве вектора-строки при задании Numerator
как массив ячеек.
Коэффициенты Denominator
может быть либо реальным, либо комплексным.
Variable
- Переменная отображения передаточной функции's'
(по умолчанию) | 'z'
| 'p'
| 'q'
| 'z^-1'
| 'q^-1'
Переменная отображения передаточной функции, заданная как один из следующих:
's'
- По умолчанию для моделей в непрерывном времени
'z'
- По умолчанию для моделей в дискретном времени
'p'
- Эквивалентно 's'
'q'
- Эквивалентно 'z'
'z^-1'
- Обратное 'z'
'q^-1'
- Эквивалентно 'z^-1'
Значение Variable
отражается на отображении, а также влияет на интерпретацию Numerator
и Denominator
векторы коэффициентов для моделей в дискретном времени.
Для Variable
значения 's'
, 'z'
, 'p'
, или 'q'
коэффициенты упорядочены в нисходящих степенях переменной. Например, рассмотрим вектор-строку [ak ... a1 a0]
. Полиномиальный порядок задан как .
Для Variable
значения 'z^-1'
или 'q^-1'
коэффициенты упорядочены в возрастающих степенях переменной. Например, рассмотрим вектор-строку [b0 b1 ... bk]
. Полиномиальный порядок задан как .
Для примеров смотрите Задать полиномиальное упорядоченное расположение в передаточной функции дискретного времени, Модель передаточной функции с использованием рационального выражения и Модель передаточной функции дискретного времени с использованием рационального выражения.
IODelay
- Задержка транспортировки0
(по умолчанию) | скалярный | Ny
-by- Nu
массивЗадержка транспортировки, указанная как одно из следующего:
Скаляр - Задает задержку переноса для системы SISO или ту же задержку переноса для всех пар вход/выход системы MIMO.
Ny
-by- Nu
массив - Задайте отдельные задержки транспорта для каждой входно-выходной пары системы MIMO. Здесь, Ny
количество выходов и Nu
- количество входов.
Для систем непрерывного времени задайте задержки транспорта в модуле времени, заданной TimeUnit
свойство. Для систем в дискретном времени задайте задержки транспорта в целочисленных множителях шага расчета, Ts
.
InputDelay
- Входная задержка0
(по умолчанию) | скалярный | Nu
-by-1 векторВходная задержка для каждого входного канала, заданная как одно из следующего:
Скаляр - Задает входную задержку для системы SISO или ту же задержку для всех входов мультивхода.
Nu
-by-1 вектор - Задайте отдельные задержки входных параметров для входа мультивхода, где Nu
- количество входов.
Для систем непрерывного времени задайте входные задержки в модуле времени, заданной TimeUnit
свойство. Для систем в дискретном времени задайте входные задержки в целочисленных множителях шага расчета, Ts
.
Для получения дополнительной информации см. раздел Задержки в линейных системах.
OutputDelay
- Выход0
(по умолчанию) | скалярный | Ny
-by-1 векторВыходная задержка для каждого выходного канала, заданная как одно из следующего:
Скаляр - Задает выходную задержку для системы SISO или ту же задержку для всех выходов мультивыхода.
Ny
-by-1 вектор - Задайте отдельные выходные задержки для вывода мультивыхода, где Ny
- количество выходов.
Для систем непрерывного времени задайте выходные задержки в модуле времени, заданной TimeUnit
свойство. Для систем в дискретном времени задайте выходные задержки в целочисленных множителях шага расчета, Ts
.
Для получения дополнительной информации смотрите Задержки в Линейных системах.
Ts
- Шаг расчета0
(по умолчанию) | положительный скалярный | -1
Шаг расчета, заданная как:
0
для систем непрерывного времени.
A положительной скалярной величины, представляющее период дискретной дискретной системы времени. Задайте Ts
в модуле времени, заданной TimeUnit
свойство.
-1
для системы в дискретном времени с неопределенным шагом расчета.
TimeUnit
- модули измерения переменной времени'seconds'
(по умолчанию) | 'nanoseconds'
| 'microseconds'
| 'milliseconds'
| 'minutes'
| 'hours'
| 'days'
| 'weeks'
| 'months'
| 'years'
| ...Модули переменной времени, заданные как одно из следующего:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Изменение TimeUnit
не влияет на другие свойства, но изменяет общее поведение системы. Использовать chgTimeUnit
для преобразования между модулями времени без изменения поведения системы.
InputName
- Входные имена каналов''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВходные имена каналов, заданные как одно из следующих:
Вектор символов, для моделей с одним входом.
Массив ячеек из векторов символов для мультивходов.
''
, имена для каких-либо входов каналов не заданы.
Кроме того, можно назначить входные имена для мультивходов с помощью автоматического расширения вектора. Для примера, если sys
является моделью с двумя входами, введите:
sys.InputName = 'controls';
Имена входа автоматически расширяются на {'controls(1)';'controls(2)'}
.
Можно использовать сокращённое обозначение u
для ссылки на InputName
свойство. Для примера, sys.u
эквивалентно sys.InputName
.
Использование InputName
кому:
Идентифицируйте каналы на отображении модели и графиках.
Извлечение подсистем систем MIMO.
Задайте точки соединения при соединении моделей.
InputUnit
- Входные модули канала''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВходные модули канала, заданные как один из следующих:
Вектор символов, для моделей с одним входом.
Массив ячеек из векторов символов для мультивходов.
''
, никаких модулей, заданных для любых входных каналов.
Использование InputUnit
для определения модулей входного сигнала. InputUnit
не влияет на поведение системы.
InputGroup
- Входные группы каналовВходные группы каналов, заданные как структура. Использование InputGroup
присвоение входных каналов систем MIMO группам и указание каждой группы по имени. Имена полей InputGroup
являются именами групп, а значения полей являются входными каналами каждой группы. Для примера:
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
создает входные группы с именем controls
и noise
которые включают входные каналы 1
и 2
, и 3
и 5
, соответственно. Затем можно извлечь подсистему из controls
входы для всех выходов с помощью:
sys(:,'controls')
По умолчанию InputGroup
- структура без полей.
OutputName
- Выходы каналов''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВыходы каналов, заданные как одно из следующих:
Вектор символов, для моделей с одним выходом.
Массив ячеек из векторов символов для мультивыходов.
''
, имена для каких-либо выходов каналов не заданы.
Кроме того, можно назначить выходные имена для мультивыходов с помощью автоматического расширения вектора. Для примера, если sys
является двухвыпускной моделью, введите:
sys.OutputName = 'measurements';
Выходы данных автоматически расширяются на {'measurements(1)';'measurements(2)'}
.
Можно также использовать сокращённое обозначение y
для ссылки на OutputName
свойство. Для примера, sys.y
эквивалентно sys.OutputName
.
Использование OutputName
кому:
Идентифицируйте каналы на отображении модели и графиках.
Извлечение подсистем систем MIMO.
Задайте точки соединения при соединении моделей.
OutputUnit
- модули выходного канала''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВыход модулей канала, заданный как один из следующих:
Вектор символов, для моделей с одним выходом.
Массив ячеек из векторов символов для мультивыходов.
''
, никакие модули не заданы для каких-либо выходов каналов.
Использование OutputUnit
для определения модулей выходного сигнала. OutputUnit
не влияет на поведение системы.
OutputGroup
- Выходы каналовВыходные группы каналов, заданные как структура. Использование OutputGroup
присвоение выходных каналов систем MIMO группам и указание каждой группы по имени. Имена полей OutputGroup
- имена групп, а значения полей являются выходными каналами каждой группы. Для примера:
sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5];
создает выходные группы с именем temperature
и measurement
которые включают выходные каналы 1
, и 3
и 5
, соответственно. Затем можно извлечь подсистему из всех входов в measurement
выходы с использованием:
sys('measurement',:)
По умолчанию OutputGroup
- структура без полей.
Name
- Имя системы''
(по умолчанию) | вектор символовИмя системы, заданное как вектор символов. Для примера, 'system_1'
.
Notes
- Пользовательский текст{}
(по умолчанию) | вектор символов | массив ячеек из векторов символовЗаданный пользователем текст, который необходимо связать с системой, заданный как вектор символов или массив ячеек векторов символов. Для примера, 'System is MIMO'
.
UserData
- Пользовательские данные[]
(по умолчанию) | любой MATLAB® тип данныхПользовательские данные, которые необходимо связать с системой, заданные как любой тип данных MATLAB.
SamplingGrid
- Матрица дискретизации для массивов моделейСетка дискретизации для массивов моделей, заданная как массив структур.
Использование SamplingGrid
чтобы отследить значения переменных, сопоставленные с каждой моделью в массиве моделей, включая идентифицированные линейные инвариантные по времени (IDLTI) массивы моделей.
Установите имена полей структуры в имена переменных выборки. Установите значения полей к выборочным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми скалярами, и все массивы выборочных значений должны совпадать с размерностями массива моделей.
Для примера можно создать массив линейных моделей 11 на 1, sysarr
, путем создания моментальных снимков линейной изменяющейся во времени системы в определенные моменты времени t = 0:10
. Следующий код хранит временные выборки с помощью линейных моделей.
sysarr.SamplingGrid = struct('time',0:10)
Точно так же можно создать массив моделей 6 на 9, M
, путем независимой выборки двух переменных, zeta
и w
. Следующий код сопоставляет (zeta,w)
значения в M
.
[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
Когда вы отображаете M
каждая запись в массиве включает соответствующие zeta
и w
значения.
M
M(:,:,1,1) [zeta=0.3, w=5] = 25 -------------- s^2 + 3 s + 25 M(:,:,2,1) [zeta=0.35, w=5] = 25 ---------------- s^2 + 3.5 s + 25 ...
Для массивов моделей, сгенерированных линеаризацией Simulink® моделируйте в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет SamplingGrid
автоматически со значениями переменных, соответствующими каждой записи в массиве. Например, команды Simulink Control Design™ linearize
(Simulink Control Design) и slLinearizer
(Simulink Control Design) заполните SamplingGrid
автоматически.
По умолчанию SamplingGrid
- структура без полей.
Следующие списки содержат репрезентативное подмножество функций, с которыми можно использовать tf
модели. В целом любая функция, применимая к динамическим системным моделям, применима к tf
объект.
step | Переходный процесс динамической системы; переходные характеристики |
impulse | График импульсной характеристики динамической системы; данные импульсной характеристики |
lsim | Постройте моделируемую временную характеристику динамической системы на произвольные входы; симулированные отклики |
bode | Диаграмма Боде частотной характеристики, или данные величины и фазы |
nyquist | Годограф Найквиста частотной характеристики |
nichols | График Николса частотной характеристики |
bandwidth | Полоса пропускания частотной характеристики |
pidtune | Алгоритм настройки ПИДа для линейной модели объекта управления |
rlocus | Корневой годограф динамической системы |
lqr | Проект линейно-квадратичного регулятора (LQR) |
lqg | Линейно-квадратичный-Гауссов (LQG) проект |
lqi | Линейно-квадратичное-интегральное управление |
kalman | Проект фильтра Калмана для оценки состояния |
В данном примере рассмотрите следующую модель передаточной функции SISO:
Задайте коэффициенты числителя и знаменателя, упорядоченные в нисходящих степенях s
, и создайте модель передаточной функции.
numerator = 1; denominator = [2,3,4]; sys = tf(numerator,denominator)
sys = 1 --------------- 2 s^2 + 3 s + 4 Continuous-time transfer function.
В данном примере рассмотрите следующую модель передаточной функции SISO в дискретном времени:
Задайте коэффициенты числителя и знаменателя, упорядоченные в нисходящих степенях z
и шаг расчета 0,1 секунды. Создайте модель передаточной функции в дискретном времени.
numerator = [2,0]; denominator = [4,0,3,-1]; ts = 0.1; sys = tf(numerator,denominator,ts)
sys = 2 z --------------- 4 z^3 + 3 z - 1 Sample time: 0.1 seconds Discrete-time transfer function.
В данном примере рассмотрим модель передаточной функции, которая представляет систему второго порядка с известной собственной частотой и коэффициентом затухания.
Передаточная функция системы второго порядка, выраженная в терминах ее коэффициента затухания и естественная частота является:
Принимая коэффициент затухания, = 0,25 и естественная частота, = 3 рад/с, создайте передаточную функцию второго порядка.
zeta = 0.25; w0 = 3; numerator = w0^2; denominator = [1,2*zeta*w0,w0^2]; sys = tf(numerator,denominator)
sys = 9 --------------- s^2 + 1.5 s + 9 Continuous-time transfer function.
Исследуйте ответ этой передаточной функции на вход шага.
stepplot(sys)
График показывает падение кольца, ожидаемое от системы второго порядка с низким коэффициентом затухания.
Создайте передаточную функцию для модели дискретного времени с несколькими входами и несколькими выходами:
со шаг расчета ts = 0.2
секунд.
Задайте коэффициенты числителя как матрицу 2 на 2.
numerators = {1 [1 0];[-1 2] 3};
Задайте коэффициенты общего знаменателя как вектор-строка.
denominator = [1 0.3];
Создайте модель передаточной функции MIMO в дискретном времени.
ts = 0.2; sys = tf(numerators,denominator,ts)
sys = From input 1 to output... 1 1: ------- z + 0.3 -z + 2 2: ------- z + 0.3 From input 2 to output... z 1: ------- z + 0.3 3 2: ------- z + 0.3 Sample time: 0.2 seconds Discrete-time transfer function.
Для получения дополнительной информации о создании передаточных функций MIMO, смотрите MIMO Передаточные функции.
В этом примере вы создаете модель передаточной функции MIMO путем конкатенирования моделей передаточной функции SISO. Рассмотрим следующую передаточную функцию с одним входом и двумя выходами:
Задайте модель передаточной функции MIMO путем конкатенации записей SISO.
sys1 = tf([1 -1],[1 1]); sys2 = tf([1 2],[1 4 5]); sys = [sys1;sys2]
sys = From input to output... s - 1 1: ----- s + 1 s + 2 2: ------------- s^2 + 4 s + 5 Continuous-time transfer function.
Для получения дополнительной информации о создании передаточных функций MIMO, смотрите MIMO Передаточные функции.
В данном примере создайте модель передаточной функции в непрерывном времени с использованием рациональных выражений. Использование рационального выражения иногда может быть проще и интуитивнее, чем определение полиномиальных коэффициентов числителя и знаменателя.
Рассмотрите следующую систему:
Чтобы создать модель передаточной функции, сначала задайте s
как tf
объект.
s = tf('s')
s = s Continuous-time transfer function.
Создайте модель передаточной функции, используя s в рациональном выражении.
sys = s/(s^2 + 2*s + 10)
sys = s -------------- s^2 + 2 s + 10 Continuous-time transfer function.
В данном примере создайте модель передаточной функции в дискретном времени с помощью рационального выражения. Использование рационального выражения иногда может быть проще и интуитивнее, чем определение полиномиальных коэффициентов.
Рассмотрите следующую систему:
Чтобы создать модель передаточной функции, сначала задайте z
как tf
объект и шаг расчета Ts
.
ts = 0.1;
z = tf('z',ts)
z = z Sample time: 0.1 seconds Discrete-time transfer function.
Создайте модель передаточной функции с помощью z
в рациональном выражении.
sys = (z - 1) / (z^2 - 1.85*z + 0.9)
sys = z - 1 ------------------ z^2 - 1.85 z + 0.9 Sample time: 0.1 seconds Discrete-time transfer function.
В данном примере создайте модель передаточной функции с свойствами, унаследованными от другой модели передаточной функции. Рассмотрите следующие две передаточные функции:
В данном примере создайте sys1
с TimeUnit
и InputDelay
значение свойства установлено на 'minutes
'.
numerator1 = [2,0]; denominator1 = [1,8,0]; sys1 = tf(numerator1,denominator1,'TimeUnit','minutes','InputUnit','minutes')
sys1 = 2 s --------- s^2 + 8 s Continuous-time transfer function.
propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 = 1x2 cell
{'minutes'} {'minutes'}
Создайте вторую модель передаточной функции с свойствами, унаследованными от sys1
.
numerator2 = [1,-1]; denominator2 = [7,2,0,0,9]; sys2 = tf(numerator2,denominator2,sys1)
sys2 = s - 1 ----------------- 7 s^4 + 2 s^3 + 9 Continuous-time transfer function.
propValues2 = [sys2.TimeUnit,sys2.InputUnit]
propValues2 = 1x2 cell
{'minutes'} {'minutes'}
Заметьте, что модель передаточной функции sys2
имеет те же свойства, что и sys1
.
Можно использовать for
цикл, чтобы задать массив моделей передаточной функции.
Во-первых, предварительно выделите массив передаточной функции с нулями.
sys = tf(zeros(1,1,3));
Первые два индекса представляют количество выходов и входов для моделей, в то время как третий индекс является количеством моделей в массиве.
Создайте массив моделей передаточной функции с помощью рационального выражения в for
цикл.
s = tf('s'); for k = 1:3 sys(:,:,k) = k/(s^2+s+k); end sys
sys(:,:,1,1) = 1 ----------- s^2 + s + 1 sys(:,:,2,1) = 2 ----------- s^2 + s + 2 sys(:,:,3,1) = 3 ----------- s^2 + s + 3 3x1 array of continuous-time transfer functions.
В данном примере вычислите передаточную функцию следующей модели пространства состояний:
Создайте модель пространства состояний с помощью матриц пространства состояний.
A = [-2 -1;1 -2]; B = [1 1;2 -1]; C = [1 0]; D = [0 1]; ltiSys = ss(A,B,C,D);
Преобразуйте модель пространства состояний ltiSys
в передаточную функцию.
sys = tf(ltiSys)
sys = From input 1 to output: s + 6.28e-16 ------------- s^2 + 4 s + 5 From input 2 to output: s^2 + 5 s + 8 ------------- s^2 + 4 s + 5 Continuous-time transfer function.
В данном примере извлечите измеренные и шумовые компоненты идентифицированной полиномиальной модели в две отдельные передаточные функции.
Загрузка полиномиальной модели Бокса-Дженкинса ltiSys
в identifiedModel.mat
.
load('identifiedModel.mat','ltiSys');
ltiSys
- идентифицированная модель вида в дискретном времени: , где представляет измеренный компонент, шумовым компонентом.
Извлеките измеренную и шумовую составляющие как передаточные функции.
sysMeas = tf(ltiSys,'measured')
sysMeas = From input "u1" to output "y1": -0.1426 z^-1 + 0.1958 z^-2 z^(-2) * ---------------------------- 1 - 1.575 z^-1 + 0.6115 z^-2 Sample time: 0.04 seconds Discrete-time transfer function.
sysNoise = tf(ltiSys,'noise')
sysNoise = From input "v@y1" to output "y1": 0.04556 + 0.03301 z^-1 ---------------------------------------- 1 - 1.026 z^-1 + 0.26 z^-2 - 0.1949 z^-3 Input groups: Name Channels Noise 1 Sample time: 0.04 seconds Discrete-time transfer function.
Измеренный компонент может служить моделью объекта управления, в то время как шумовой компонент может использоваться в качестве модели возмущения для разработки системы управления.
Объекты модели передаточной функции включают данные модели, которые помогают отслеживать то, что представляет модель. Например, вы можете назначить имена входам и выходам вашей модели.
Примите во внимание следующую модель передаточной функции MIMO в непрерывном времени:
Модель имеет один вход Ток и два выхода Крутящий момент и скорость вращения.
Во-первых, задайте коэффициенты числителя и знаменателя модели.
numerators = {[1 1] ; 1}; denominators = {[1 2 2] ; [1 0]};
Создайте модель передаточной функции, задав входное имя и выходные имена.
sys = tf(numerators,denominators,'InputName','Current',... 'OutputName',{'Torque' 'Angular Velocity'})
sys = From input "Current" to output... s + 1 Torque: ------------- s^2 + 2 s + 2 1 Angular Velocity: - s Continuous-time transfer function.
В данном примере задайте полиномиальное упорядоченное расположение в моделях передаточной функции в дискретном времени, используя 'Variable
'свойство.
Примите во внимание следующие передаточные функции в дискретном времени со шаг расчета 0,1 секунды:
Создайте первую передаточную функцию в дискретном времени путем определения z
коэффициенты.
numerator = [1,0,0]; denominator = [1,2,3]; ts = 0.1; sys1 = tf(numerator,denominator,ts)
sys1 = z^2 ------------- z^2 + 2 z + 3 Sample time: 0.1 seconds Discrete-time transfer function.
Коэффициенты sys1
упорядочены в нисходящих степенях z
.
tf
switches convention на основе значения 'Variable
'свойство. Начиная с sys2
- модель обратной передаточной функции sys1
, задайте 'Variable
'as' z^-1
'и использовать те же коэффициенты числителя и знаменателя.
sys2 = tf(numerator,denominator,ts,'Variable','z^-1')
sys2 = 1 ------------------- 1 + 2 z^-1 + 3 z^-2 Sample time: 0.1 seconds Discrete-time transfer function.
Коэффициенты sys2
теперь упорядочены в возрастающих степенях z^-1
.
На основе различных соглашений можно задать полиномиальное упорядоченное расположение в моделях передаточной функции с помощью 'Variable
'свойство.
В этом примере вы создадите lowpass с одним настраиваемым параметром a:
Поскольку числитель и коэффициенты знаменателя tunableTF
блок является независимым, вы не можете использовать tunableTF
для представления F
. Вместо этого создайте F
использование настраиваемого объекта реального параметра realp
.
Создайте действительный настраиваемый параметр с начальным значением 10
.
a = realp('a',10)
a = Name: 'a' Value: 10 Minimum: -Inf Maximum: Inf Free: 1 Real scalar parameter.
Использование tf
чтобы создать настраиваемый lowpass F
.
numerator = a; denominator = [1,a]; F = tf(numerator,denominator)
F = Generalized continuous-time state-space model with 1 outputs, 1 inputs, 1 states, and the following blocks: a: Scalar parameter, 2 occurrences. Type "ss(F)" to see the current value, "get(F)" to see all properties, and "F.Blocks" to interact with the blocks.
F
является genss
объект, который имеет настраиваемый параметр a
в своей Blocks
свойство. Можно подключить F
с другими настраиваемыми или числовыми моделями, чтобы создать более сложные системные модели управления. Для получения примера смотрите Систему управления с настраиваемыми Компонентами.
В этом примере вы создадите статическую модель передаточной функции MIMO усиления.
Рассмотрим следующую статическую матрицу усиления с двумя входами m
:
Задайте матрицу усиления и создайте статическую модель передаточной функции усиления.
m = [2,4;...
3,5];
sys1 = tf(m)
sys1 = From input 1 to output... 1: 2 2: 3 From input 2 to output... 1: 4 2: 5 Static gain.
Можно использовать статическую модель передаточной функции усиления sys1
полученный выше, чтобы каскадировать его с другой моделью передаточной функции.
В данном примере создайте другую модель дискретной передаточной функции с двумя входами, двумя выходами и используйте series
функция для соединения двух моделей.
numerators = {1,[1,0];[-1,2],3}; denominator = [1,0.3]; ts = 0.2; sys2 = tf(numerators,denominator,ts)
sys2 = From input 1 to output... 1 1: ------- z + 0.3 -z + 2 2: ------- z + 0.3 From input 2 to output... z 1: ------- z + 0.3 3 2: ------- z + 0.3 Sample time: 0.2 seconds Discrete-time transfer function.
sys = series(sys1,sys2)
sys = From input 1 to output... 3 z^2 + 2.9 z + 0.6 1: ------------------- z^2 + 0.6 z + 0.09 -2 z^2 + 12.4 z + 3.9 2: --------------------- z^2 + 0.6 z + 0.09 From input 2 to output... 5 z^2 + 5.5 z + 1.2 1: ------------------- z^2 + 0.6 z + 0.09 -4 z^2 + 21.8 z + 6.9 2: --------------------- z^2 + 0.6 z + 0.09 Sample time: 0.2 seconds Discrete-time transfer function.
Модели передаточной функции плохо подходят для численных расчетов. После создания преобразуйте их в форму пространства состояний, прежде чем объединять их с другими моделями или выполнять преобразования моделей. Затем можно преобразовать получившиеся модели обратно в форму передаточной функции в целях проверки
Идентифицированная нелинейная модель не может быть непосредственно преобразована в модель передаточной функции с помощью tf
. Чтобы получить модель передаточной функции:
Преобразуйте нелинейную идентифицированную модель в идентифицированную модель LTI с помощью linapp
(System Identification Toolbox), idnlarx/linearize
(System Identification Toolbox), или idnlhw/linearize
(System Identification Toolbox).
Затем преобразуйте полученную модель в модель передаточной функции с помощью tf
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.