tf

Модель передаточной функции

Описание

Использование 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, включая шаг расчета.

пример

sys = tf(m) создает модель передаточной функции, которая представляет статический коэффициент усиления m.

пример

sys = tf(___,Name,Value) устанавливает свойства модели передаточной функции с помощью одного или нескольких Name,Value парные аргументы для любой из предыдущих комбинаций входных аргументов.

пример

sys = tf(ltiSys) преобразует модель динамической системы ltiSys к модели передаточной функции.

пример

sys = tf(ltiSys,component) преобразует указанную component от ltiSys в передаточную функцию форму. Используйте этот синтаксис только при ltiSys является идентифицированной линейной инвариантной по времени моделью (LTI).

пример

s = tf('s') создает специальную переменную s который можно использовать в рациональном выражении, чтобы создать модель передаточной функции в непрерывном времени. Использование рационального выражения иногда может быть проще и интуитивнее, чем определение полиномиальных коэффициентов.

пример

z = tf('z',ts) создает специальную переменную z который можно использовать в рациональном выражении, чтобы создать модель передаточной функции в дискретном времени. Чтобы оставить шаг расчета неопределенным, установите ts входной параметр в -1.

Входные параметры

расширить все

Коэффициенты числителя передаточной функции, заданные как:

  • A вектора-строки полиномиальных коэффициентов.

  • Система координат Ny-by- Nu массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny количество выходов и Nu - количество входов.

Когда вы создаете передаточную функцию, задайте коэффициенты числителя в порядке убывания степени. Например, если числитель передаточной функции 3s^2-4s+5, затем задайте numerator как [3 -4 5]. Для передаточной функции в дискретном времени с числителем 2z-1, задать numerator на [2 -1].

Также свойство tf объект. Для получения дополнительной информации см. раздел «Числитель».

Коэффициенты знаменателя, заданные как:

  • A вектора-строки полиномиальных коэффициентов.

  • Система координат Ny-by- Nu массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny количество выходов и Nu - количество входов.

Когда вы создаете передаточную функцию, задайте коэффициенты знаменателя в порядке убывания степени. Для образца, если знаменатель передаточной функции 7s^2+8s-9, затем задайте denominator как [7 8 -9]. Для передаточной функции в дискретном времени со знаменателем 2z^2+1, задать denominator на [2 0 1].

Также свойство tf объект. Для получения дополнительной информации см. «Знаменатель».

Шаг расчета, заданный как скаляр. Также свойство tf объект. Для получения дополнительной информации см. Т.

Динамическая система, заданная как 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™ программного обеспечения.)

Статический коэффициент усиления, заданный как скаляр или матрица. Статический коэффициент усиления или коэффициент усиления в установившемся состоянии системы представляет отношение выхода к входу в установившемся условии.

Компонент идентифицированной модели для преобразования, заданный как один из следующих:

  • 'measured' - Преобразуйте измеренный компонент sys.

  • 'noise' - Преобразуйте шумовой компонент sys

  • 'augmented' - Преобразуйте как измеренную, так и шумовые компоненты sys.

component применяется только тогда, когда sys является идентифицированной моделью LTI.

Для получения дополнительной информации об идентифицированных моделях LTI и их измеренных и шумовых компонентах, смотрите Идентифицированные модели LTI.

Выходные аргументы

расширить все

Системная модель, возвращенная как:

  • Передаточная функция (tf) объект модели, когда numerator и denominator входные параметры являются числовыми массивами.

  • Обобщенная модель пространства состояний (genss) объект, когда numerator или denominator входные параметры включают настраиваемые параметры, такие как realp параметры или обобщенные матрицы (genmat). Для получения примера смотрите Настраиваемый Lowpass фильтр.

  • Модель неопределенного пространства состояний (uss) объект, когда numerator или denominator входные параметры включают неопределенные параметры. Использование неопределенных моделей требует программного обеспечения Robust Control Toolbox. Для получения примера смотрите Передаточную Функцию с Неопределенными Коэффициентами (Robust Control Toolbox).

Свойства

расширить все

Коэффициенты числителя, заданные как:

  • A вектора-строки полиномиальных коэффициентов в порядке убывания степени (для Variable значения 's', 'z', 'p', или 'q') или в порядке возрастания степени (для Variable значения 'z^-1' или 'q^-1').

  • Система координат Ny-by- Nu массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny количество выходов и Nu - количество входов. Каждый элемент массива ячеек задает коэффициенты числителя для заданной пары вход/выход. Если вы задаете оба Numerator и Denominator как и массивы ячеек, они должны иметь одинаковые размерности.

Коэффициенты Numerator может быть либо реальным, либо комплексным.

Коэффициенты знаменателя, заданные как:

  • A вектора-строки полиномиальных коэффициентов в порядке убывания степени (для значений Variable значения 's', 'z', 'p', или 'q') или в порядке возрастания степени (для Variable значения 'z^-1' или 'q^-1').

  • Система координат Ny-by- Nu массив ячеек из векторов-строк для задания передаточной функции MIMO, где Ny количество выходов и Nu - количество входов. Каждый элемент массива ячеек задает коэффициенты числителя для заданной пары вход/выход. Если вы задаете оба Numerator и Denominator как и массивы ячеек, они должны иметь одинаковые размерности.

Если все записи SISO передаточной функции MIMO имеют один и тот же знаменатель, можно задать Denominator в качестве вектора-строки при задании Numerator как массив ячеек.

Коэффициенты Denominator может быть либо реальным, либо комплексным.

Переменная отображения передаточной функции, заданная как один из следующих:

  • 's' - По умолчанию для моделей в непрерывном времени

  • 'z' - По умолчанию для моделей в дискретном времени

  • 'p' - Эквивалентно 's'

  • 'q' - Эквивалентно 'z'

  • 'z^-1' - Обратное 'z'

  • 'q^-1' - Эквивалентно 'z^-1'

Значение Variable отражается на отображении, а также влияет на интерпретацию Numerator и Denominator векторы коэффициентов для моделей в дискретном времени.

  • Для Variable значения 's', 'z', 'p', или 'q'коэффициенты упорядочены в нисходящих степенях переменной. Например, рассмотрим вектор-строку [ak ... a1 a0]. Полиномиальный порядок задан как akzk+...+a1z+a0.

  • Для Variable значения 'z^-1' или 'q^-1'коэффициенты упорядочены в возрастающих степенях переменной. Например, рассмотрим вектор-строку [b0 b1 ... bk]. Полиномиальный порядок задан как b0+b1z1+...+bkzk.

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

Задержка транспортировки, указанная как одно из следующего:

  • Скаляр - Задает задержку переноса для системы SISO или ту же задержку переноса для всех пар вход/выход системы MIMO.

  • Ny-by- Nu массив - Задайте отдельные задержки транспорта для каждой входно-выходной пары системы MIMO. Здесь, Ny количество выходов и Nu - количество входов.

Для систем непрерывного времени задайте задержки транспорта в модуле времени, заданной TimeUnit свойство. Для систем в дискретном времени задайте задержки транспорта в целочисленных множителях шага расчета, Ts.

Входная задержка для каждого входного канала, заданная как одно из следующего:

  • Скаляр - Задает входную задержку для системы SISO или ту же задержку для всех входов мультивхода.

  • Nu-by-1 вектор - Задайте отдельные задержки входных параметров для входа мультивхода, где Nu - количество входов.

Для систем непрерывного времени задайте входные задержки в модуле времени, заданной TimeUnit свойство. Для систем в дискретном времени задайте входные задержки в целочисленных множителях шага расчета, Ts.

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

Выходная задержка для каждого выходного канала, заданная как одно из следующего:

  • Скаляр - Задает выходную задержку для системы SISO или ту же задержку для всех выходов мультивыхода.

  • Ny-by-1 вектор - Задайте отдельные выходные задержки для вывода мультивыхода, где Ny - количество выходов.

Для систем непрерывного времени задайте выходные задержки в модуле времени, заданной TimeUnit свойство. Для систем в дискретном времени задайте выходные задержки в целочисленных множителях шага расчета, Ts.

Для получения дополнительной информации смотрите Задержки в Линейных системах.

Шаг расчета, заданная как:

  • 0 для систем непрерывного времени.

  • A положительной скалярной величины, представляющее период дискретной дискретной системы времени. Задайте Ts в модуле времени, заданной TimeUnit свойство.

  • -1 для системы в дискретном времени с неопределенным шагом расчета.

Примечание

Изменение Ts не дискретизирует и не переопределяет модель. Чтобы преобразовать между представлениями в непрерывном времени и в дискретном времени, используйте c2d и d2c. Чтобы изменить шаг расчета системы дискретного времени, используйте d2d.

Модули переменной времени, заданные как одно из следующего:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

Изменение TimeUnit не влияет на другие свойства, но изменяет общее поведение системы. Использовать chgTimeUnit для преобразования между модулями времени без изменения поведения системы.

Входные имена каналов, заданные как одно из следующих:

  • Вектор символов, для моделей с одним входом.

  • Массив ячеек из векторов символов для мультивходов.

  • '', имена для каких-либо входов каналов не заданы.

Кроме того, можно назначить входные имена для мультивходов с помощью автоматического расширения вектора. Для примера, если sys является моделью с двумя входами, введите:

sys.InputName = 'controls';

Имена входа автоматически расширяются на {'controls(1)';'controls(2)'}.

Можно использовать сокращённое обозначение u для ссылки на InputName свойство. Для примера, sys.u эквивалентно sys.InputName.

Использование InputName кому:

  • Идентифицируйте каналы на отображении модели и графиках.

  • Извлечение подсистем систем MIMO.

  • Задайте точки соединения при соединении моделей.

Входные модули канала, заданные как один из следующих:

  • Вектор символов, для моделей с одним входом.

  • Массив ячеек из векторов символов для мультивходов.

  • '', никаких модулей, заданных для любых входных каналов.

Использование InputUnit для определения модулей входного сигнала. InputUnit не влияет на поведение системы.

Входные группы каналов, заданные как структура. Использование InputGroup присвоение входных каналов систем MIMO группам и указание каждой группы по имени. Имена полей InputGroup являются именами групп, а значения полей являются входными каналами каждой группы. Для примера:

sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];

создает входные группы с именем controls и noise которые включают входные каналы 1 и 2, и 3 и 5, соответственно. Затем можно извлечь подсистему из controls входы для всех выходов с помощью:

sys(:,'controls')

По умолчанию InputGroup - структура без полей.

Выходы каналов, заданные как одно из следующих:

  • Вектор символов, для моделей с одним выходом.

  • Массив ячеек из векторов символов для мультивыходов.

  • '', имена для каких-либо выходов каналов не заданы.

Кроме того, можно назначить выходные имена для мультивыходов с помощью автоматического расширения вектора. Для примера, если sys является двухвыпускной моделью, введите:

sys.OutputName = 'measurements';

Выходы данных автоматически расширяются на {'measurements(1)';'measurements(2)'}.

Можно также использовать сокращённое обозначение y для ссылки на OutputName свойство. Для примера, sys.y эквивалентно sys.OutputName.

Использование OutputName кому:

  • Идентифицируйте каналы на отображении модели и графиках.

  • Извлечение подсистем систем MIMO.

  • Задайте точки соединения при соединении моделей.

Выход модулей канала, заданный как один из следующих:

  • Вектор символов, для моделей с одним выходом.

  • Массив ячеек из векторов символов для мультивыходов.

  • '', никакие модули не заданы для каких-либо выходов каналов.

Использование OutputUnit для определения модулей выходного сигнала. OutputUnit не влияет на поведение системы.

Выходные группы каналов, заданные как структура. Использование OutputGroupприсвоение выходных каналов систем MIMO группам и указание каждой группы по имени. Имена полей OutputGroup - имена групп, а значения полей являются выходными каналами каждой группы. Для примера:

sys.OutputGroup.temperature = [1];
sys.InputGroup.measurement = [3 5];

создает выходные группы с именем temperature и measurement которые включают выходные каналы 1, и 3 и 5, соответственно. Затем можно извлечь подсистему из всех входов в measurement выходы с использованием:

sys('measurement',:)

По умолчанию OutputGroup - структура без полей.

Имя системы, заданное как вектор символов. Для примера, 'system_1'.

Заданный пользователем текст, который необходимо связать с системой, заданный как вектор символов или массив ячеек векторов символов. Для примера, 'System is MIMO'.

Пользовательские данные, которые необходимо связать с системой, заданные как любой тип данных MATLAB.

Сетка дискретизации для массивов моделей, заданная как массив структур.

Использование 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Полоса пропускания частотной характеристики
poleПолюса динамической системы
zeroНули и усиление динамической системы SISO
pzplotДиаграмма нулей и полюсов динамической модели системы с опциями индивидуальной настройки графика
marginЗапас по амплитуде, запас по фазе и частоты среза
zpkМодель с нулями , полюса и усиления
ssМодель пространства состояний
c2dПреобразуйте модель из непрерывной в дискретное время
d2cПреобразуйте модель из дискретного в непрерывное время
d2dПовторная выборка модели в дискретном времени
feedbackCоединение обратной связи многих моделей
connectБлок взаимосвязей динамических систем
seriesПоследовательное соединение двух моделей
parallelПараллельное соединение двух моделей
pidtuneАлгоритм настройки ПИДа для линейной модели объекта управления
rlocusКорневой годограф динамической системы
lqrПроект линейно-квадратичного регулятора (LQR)
lqgЛинейно-квадратичный-Гауссов (LQG) проект
lqiЛинейно-квадратичное-интегральное управление
kalmanПроект фильтра Калмана для оценки состояния

Примеры

свернуть все

В данном примере рассмотрите следующую модель передаточной функции SISO:

sys(s)=12s2+3s+4.

Задайте коэффициенты числителя и знаменателя, упорядоченные в нисходящих степенях s, и создайте модель передаточной функции.

numerator = 1;
denominator = [2,3,4];
sys = tf(numerator,denominator)
sys =
 
         1
  ---------------
  2 s^2 + 3 s + 4
 
Continuous-time transfer function.

В данном примере рассмотрите следующую модель передаточной функции SISO в дискретном времени:

sys(z)=2z4z3+3z-1.

Задайте коэффициенты числителя и знаменателя, упорядоченные в нисходящих степенях 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является:

sys(s)=ω02s2+2ζω0s+ω02.

Принимая коэффициент затухания, ζ = 0,25 и естественная частота, ω0 = 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)

Figure contains an axes. The axes contains an object of type line. This object represents sys.

График показывает падение кольца, ожидаемое от системы второго порядка с низким коэффициентом затухания.

Создайте передаточную функцию для модели дискретного времени с несколькими входами и несколькими выходами:

sys(z)=[1z+0.3zz+0.3-z+2z+0.33z+0.3]

со шаг расчета 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. Рассмотрим следующую передаточную функцию с одним входом и двумя выходами:

sys(s)=[s-1s+1s+2s2+4s+5].

Задайте модель передаточной функции 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 Передаточные функции.

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

Рассмотрите следующую систему:

sys(s)=ss2+2s+10.

Чтобы создать модель передаточной функции, сначала задайте 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.

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

Рассмотрите следующую систему:

sys(z)=z-1z2-1.85z+0.9.Передаточная функция в дискретном времени

Чтобы создать модель передаточной функции, сначала задайте 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(s)=2ss2+8sandsys2(s)=s-17s4+2s3+9.

В данном примере создайте 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-11-2],B=[112-1],C=[10],D=[01].

Создайте модель пространства состояний с помощью матриц пространства состояний.

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 - идентифицированная модель вида в дискретном времени: y(t)=BFu(t)+CDe(t), где BF представляет измеренный компонент, CD шумовым компонентом.

Извлеките измеренную и шумовую составляющие как передаточные функции.

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 в непрерывном времени:

sys(s)=[s+1s2+2s+21s]

Модель имеет один вход - Ток и два выхода - Крутящий момент и скорость вращения.

Во-первых, задайте коэффициенты числителя и знаменателя модели.

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 секунды:

sys1(z)=z2z2+2z+3sys2(z-1)=11+2z-1+3z-2.

Создайте первую передаточную функцию в дискретном времени путем определения 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:

F=as+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=[2435]

Задайте матрицу усиления и создайте статическую модель передаточной функции усиления.

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. Чтобы получить модель передаточной функции:

    1. Преобразуйте нелинейную идентифицированную модель в идентифицированную модель LTI с помощью linapp (System Identification Toolbox), idnlarx/linearize (System Identification Toolbox), или idnlhw/linearize (System Identification Toolbox).

    2. Затем преобразуйте полученную модель в модель передаточной функции с помощью tf.

Представлено до R2006a