Как задать передаточную функцию в matlab
Перейти к содержимому

Как задать передаточную функцию в matlab

  • автор:

2.4. Использование MatLab для моделирования систем

В среде MatLabсуществует несколько возможностей задания передаточных функций линейных систем управления. В случае работы с помощью командной строки либо файла сценария наиболее рационально использовать функциюtf(transferfunction).

Синтаксис функции ft:

f=tf(num,den), где num – коэффициенты полинома числителя передаточной функции, идущие по убыванию степени s, аden– коэффициенты полинома знаменателя передаточной функции, идущие по убыванию степениs.

Например, передаточная функция

(17)

вводится следующим образом:

1.0000 1.5000 1.5000 1.0000

s^3 + 1.5 s^2 + 1.5 s + 1

Еще один способ задания передаточной функции (17):

>> f = tf ( [2 4], [1 1.5 1.5 1] );

Функции для получения временных характеристик на основе передаточных функций приведены в табл. 4.

Функции для представления временных характеристик

Вывод в виде графика переходной характеристики системы

Вывод в виде графика импульсной характеристики системы

Примечание. f – передаточная функция; t – интервал времени, для которого будет рассчитан переходный процесс

Использование Simulink

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

Для представления передаточной функции в Simulink используется блок Transfer Fcn. Блок передаточной характеристики Transfer Fcn задает передаточную функцию в виде отношения полиномов

, (18)

где nn и nd – порядок числителя и знаменателя передаточной функции, порядок числителя не должен превышать порядок знаменателя, num – вектор или матрица коэффициентов числителя, den – вектор коэффициентов знаменателя. Параметры блока TransferFcn:

Numerator – вектор или матрица коэффициентов полинома числителя.

Denominator – вектор коэффициентов полинома знаменателя.

Absolute tolerance – абсолютная погрешность.

Исследование переходных характеристик осуществляется путем подачи на вход блока, представляющего передаточную функцию (блок Transfer Fcn), единичного ступенчатого сигнала (блоки ConstantилиStep). Входной сигнал блока должен быть скалярным. Чтобы получить переходный процесс, необходимо поместить на схему блокScopeи соединить его вход с выходом блока, переходный процесс которого необходимо получить. На рис. 6. показан пример моделирования колебательного звена с помощью блока Transfer Fcn (схема вSimulinkи переходные процессы, полученные в блокеScope). Начальные условия при использовании блока Transfer Fcn полагаются нулевыми.

Рис. 6. Пример моделирования колебательного звена с помощью Simulink

2.5. Использование SciLab для моделирования систем

На основе передаточных функций

Использование script-языка

При использовании script-языка SciLab для представления линейных систем используется функция syslin.

sl = syslin(dom, N, D)

sl = syslin(dom, H)

Параметры функции syslin:

dom – символьная переменная, которая может принимать два значения: ‘c’ или ‘d’. dom определяет временной домен системы и может принимать следующие значения: dom=’c’ для систем непрерывных во времени; dom=’d’ для дискретно-временных систем;

N, D – полиномиальные матрицы;

H – рациональная матрица;

Выражение s = poly(0,’s’) задаёт полином, соответствующий оператору Лапласа; переменная s может быть использована в дальнейшем. Наряду с таким заданием можно использовать и константу %s.

Далее приведены альтернативные способы задания двух ПФ и.

W1 = syslin(‘c’, 1+2*s, s^2)

W2 = syslin(‘c’, 1+2*s+s^2, s^2)

W1 = syslin(‘c’, 1+2*%s, %s^2)

W2 = syslin(‘c’, 1+2*%s+%s^2, %s^2)

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

[y [,x]] = csim(u, t, sl),

где u – функция управления, принимает значения ‘step’ или ‘impulse’ в зависимости от вызываемой временной характеристики;

t – действительный вектор, характеризующий время; t(1) – начальное время x0=x(t(1));

sl – передаточная функция, представленная функцией syslin.

Далее рассмотрим в качестве примера моделирование апериодических звеньев первого порядка с различными значениями постоянных времени. Результат моделирования в виде переходных характеристик приведен на рис. 7.

Функции передачи в Matlab — Лучшие 3 метода — Примеры и преимущества

Передаточная функция представлена ​​как «H (s)». H (s) — комплексная функция, а s — комплексная переменная. Он получается путем преобразования Лапласа импульсного отклика h (t). Передаточная функция и импульсный отклик используются только в системах LTI. LTI-система означает линейную и инвариантную по времени систему, в соответствии с линейным свойством, поскольку входное значение равно нулю, а выходное значение также становится равным нулю. Следовательно, если мы не считаем начальные условия равными нулю, линейное свойство не будет выполнено, а если свойство не выполнено, то система станет нелинейной. Из-за нелинейности система станет не-LTI системой. А для не-LTI системы мы не можем определить передаточную функцию, поэтому обязательно предположить, что начальные условия равны нулю.

Определение передаточных функций в Matlab

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

В описанной выше системе входной сигнал равен x (t), а выходной — y (t). После преобразования Лапласа всей системы x (t) становится X (s), y (t) становится Y (s). Мы считаем, что все начальные условия равны нулю, потому что

Методы передаточных функций в Matlab

Существует три способа получения Передаточной функции в Matlab

  1. Используя уравнение
  2. Используя коэффициенты
  3. Используя нулевое усиление полюса

Давайте рассмотрим один пример

1) Используя уравнение

Во-первых, нам нужно объявить ‘s’ как передаточную функцию, а затем ввести полное уравнение в командном окне или редакторе Matlab. В этом ‘s’ является переменной передаточной функции.

Синтаксис : transfer function variable name = tf(‘transfer function variable name’);

2) Используя коэффициенты

В этом методе числитель и знаменатель используются коэффициенты, за которыми следует команда «tf».

В приведенном выше примере

Числитель имеет только одно значение, равное 10 с, поэтому коэффициент равен 10.

А в знаменателе есть три термина «, поэтому коэффициенты 1, 10 и 25.

Синтаксис : transfer function variable name = tf((numerator coefficients ), (denominator coefficients))

Пример: h = tf ((10 0), (1 10 25);

3) Используя нулевое усиление полюса

В этом методе мы используем команду «zpk», где z обозначает нули, p обозначает полюсы, а k обозначает усиление.

В приведенном выше примере:

Здесь усиление составляет 10 и

следовательно, ноль присутствует в источнике

S 2 + 10 с + 25 = 0

S + 5s + 5s + 25 = 0

S (s + 5) + 5 (s + 5) = 0

Поэтому два полюса присутствуют в -5.

синтаксис: zpk ((нули), (полюсы), усиление)

пример: zpk ((0), (- 5 -5), 10)

Примеры и синтаксис передаточных функций в Matlab

Ниже приведены различные примеры передаточной функции с их синтаксисом:

Пример № 1

Вышеприведенный пример, показанный на экране 1, в этой передаточной функции представлен с использованием уравнения, а также команды «tf». Значения h и s хранятся в рабочей области.

Пример № 2

В этом примере используется метод коэффициентов. Поэтому сначала нам нужно выяснить числитель и знаменатель отдельно. Здесь числитель равен 23s + 12, а коэффициент числителя равен 23 и 12. Знаменатель равен, а коэффициенты знаменателя равны 4, 5 и 7.

На рисунке ниже показана программа Matlab для приведенного выше примера.

Пример № 3

В этом примере вводом являются значения полюса, нуля и усиления, команда zpk используется для определения передаточной функции.

преимущества

  1. Это математическая модель, которая дает усиление системы LTI. математическое моделирование и математические уравнения полезны для понимания производительности, характеристик и стабильности системы
  2. Комплексные интегральные уравнения и дифференциальные уравнения, преобразованные в простые алгебраические уравнения (полиномиальные уравнения)
  3. Передаточная функция зависит от системы и не зависит от входа.
  4. Если передаточная функция системы известна, выход может быть легко рассчитан.
  5. Он дает информацию о полюсах и нулях, может быть рассчитан.

Вывод

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

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

Рекомендуемые статьи

Это руководство по функциям переноса в Matlab. Здесь мы обсуждаем определение, методы передаточной функции, которые включают в себя использование уравнения, использование коэффициента и использование коэффициента усиления с нулевым полюсом, а также некоторые примеры. Вы также можете посмотреть следующие статьи, чтобы узнать больше —

Transfer Functions in Matlab

Priya Pedamkar

A transfer function is represented by ‘H(s)’. H(s) is a complex function and ‘s’ is a complex variable. It is obtained by taking the Laplace transform of impulse response h(t). transfer function and impulse response are only used in LTI systems. LTI system means Linear and Time invariant system, according to the linear property as the input is zero then output also becomes zero. Therefore if we do not consider initial conditions are zero then linear property will fail and if the property fails then the system will become non-linear. Because of non-linearity system will become Non-LTI system. And for non-LTI system we cannot define transfer function, therefore, it is mandatory to assume initial conditions are zero.

Hadoop, Data Science, Statistics & others

o

Definition of Transfer Functions in Matlab

The transfer function of the LTI system is the ratio of the Laplace transform of output to the Laplace transform of input of the system by assuming all the initial conditions are zero.

p

In the above system, the input is x (t) and the output is y(t). After taking Laplace Transform of the whole system, x(t) becomes X(s), y(t) becomes Y(s) .we consider all the initial conditions are zero because

 initial conditions

Methods of Transfer Functions in Matlab

There are three methods to obtain the Transfer function in Matlab:

  1. By Using Equation
  2. By Using Coefficients
  3. By Using Pole Zero gain

Let us consider one example

a

1. By Using Equation

First, we need to declare ‘s’ is a transfer function then type the whole equation in the command window or Matlab editor. In this ‘s’ is the transfer function variable.

Syntax : transfer function variable name = tf(‘transfer function variable name’);

2. By Using Coefficients

In this method numerator and denominator, coefficients are used followed by ‘tf’ command.

In the above example

b

The numerator has only one value which is “10s”, so the coefficient is 10.

And in the denominator there are three terms “, so coefficients are 1, 10 and 25.

Syntax: transfer function variable name = tf([numerator coefficients ] ,[denominator coefficients])

Example: h= tf([10 0],[1 10 25];

3. By Using Pole Zero gain

In this method, we use the command “zpk”, here z stands for zeros,p stands for poles and k stands for gain.

In above example :

c

Here gain is 10 and

therefore zero present at origin

S 2 + 10s + 25 = 0

S + 5s +5s + 25 = 0

Therefore two poles are present at -5.

example :zpk([0],[-5 -5],10)

Examples & Syntax of Transfer Functions in Matlab

Below are the various examples of transfer function with their syntax:

Example #1

d

The above example illustrated in screen 1 .in this transfer function represented by using equation as well as ‘tf’ command is used. Values of h and s are stored in the workspace.

Transfer function in Matlab - Workspace

Example #2

f

In this example, the coefficient method is used. Therefore first we need to find out numerator and denominator separately. Here numerator is 23s + 12 and the coefficient of the numerator is 23 and 12. The denominator is and coefficients of the denominator are 4, 5 and 7

The below image shows the Matlab program for the above example.

Transfer Functions in Matlab - program of Matlab

Example #3

In this example input is values of pole, zero, and gain, zpk command is used to find out the transfer function.

It shows output

h

Transfer Functions in Matlab - zpk command

Advantages

Below are some of the advantages explained.

  1. It is a mathematical model that gives Gain of LTI system. mathematical modeling and mathematical equations are useful to understand the performance, characteristics, and stability of the system
  2. Complex integral equations and differential equation converted into the simple algebraic equations (polynomial equations)
  3. The transfer function is dependent on the System and independent on Input.
  4. If the transfer function of the system is known then the output can be easily calculated.
  5. It gives information about poles and zeros, which can be calculated.

Conclusion

In this article, we have studied various methods to represent transfer function in Matlab which are using the equation, using coefficients, and using pole-zero gain information. In Transfer Function representation we can also plot poles, zero plots by using ‘pzmap’ command.

This representation can be obtained in both the ways from equations to pole-zero plot and from pole-zero plot to the equation. Transfer function mostly used in control systems and signals and systems.

Recommended Articles

This is a guide to Transfer Functions in Matlab. Here we discuss the definition, methods of a transfer function which include by using equations, by using coefficient, and by using pole-zero gain along with some examples. You may also look at the following articles to learn more –

Реализация моделей динамических систем средствами контроллера

За основу задания динамических свойств систем может быть принята любая из форм представления операторов: дифференциальные уравнения (ДУ), передаточные функции (ПФ), временные характеристики (ВХ) или частотные характеристики (ЧХ), однако для конкретных задач целесообразно выбирать наиболее рациональную форму [1].

Возможные преобразования форм представления моделей вход-выход показаны на Рисунок 1. Сплошные линии орграфа показывают однозначные преобразования, штриховые — неоднозначные преобразования экспериментальных данных. Результаты последних преобразований зависят от выбора структуры оператора и алгоритма обработки данных.

Рисунок 1. Орграф взаимосвязи форм представления моделей. Модели могут описывать поведение регуляторов систем управления [4], наблюдателей [3], корректирующих звеньев, фильтров [5], и др. динамических систем. В этой работе рассматриваются MATLAB преобразования форм представления моделей и реализация моделей средствами контроллеров.

Дискретная модель объекта

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

Дискретная модель в форме пространства состояний представляется разностными уравнениями первого порядка

Связь переменных уравнений (2) показана на блок схеме Рисунок 2, где X – переменные состояния; 1/z – задержка на один такт.

Рисунок 2. Структура дискретной модели объекта в форме пространства состояний.

Система разностных уравнений

Раскроем уравнения (2) подстановкой в уравнения матриц (1) объекта:

По разностным уравнениям (3) построим Simulink модель дискретного объекта с периодом дискретизации 1 с (см. Рисунок 3).

Рисунок 3. Дискретная модель объекта (1) и реакция y[n] объекта на синусоидальное u[n] воздействие.

Импульсная передаточная функция

Воспользуемся преобразованием форм MATLAB для перевода дискретной модели из пространства состояний в формат импульсной передаточной функции, затем в формат непрерывной ПФ и, наконец, в формат пространства состояний непрерывной модели. Ниже показан код m-программы c промежуточными результатами, сдвинутыми вправо на 1 Tab.
Ad = [1.1 -0.5 0.12
1.0 0.0 0.0
0.0 1.0 0.0];

Wo_ss_d = ss(Ad,Bd,Cd,Dd,1); % структура дискретной модели с периодом 1 с
Wo_tf_d = tf(Wo_ss_d) % дискретная ПФ

Непрерывная передаточная функция

Wo_tf_c = d2c(Wo_tf_d) % непрерывная ПФ

Непрерывная модель в форме пространства состояний

Wo_ss_c = ss(Wo_tf_c) % непрерывная модель в форме пространства состояний
Wo_ss_c =
A =
x1 x2 x3 (4)
x1 -2.12 -1.213 -0.819
x2 2 0 0
x3 0 0.5 0
B =
u1
x1 2
x2 0
x3 0
C =
x1 x2 x3
y1 0.009016 -0.2697 -0.8307
D =
u1
y1 0

Continuous-time state-space model.

ВНИМАНИЕ. Изменение шага дискретизации приводит к соответствующему изменению динамики модели. Для того, чтобы эквивалентная непрерывная модель “не отставала” и “не убегала” от дискретной модели с новым шагом дискретизации, необходимо пересчитать коэффициенты непрерывной модели.

Приведенный многоступенчатый перевод дискретной модели (1, 2, 3) в непрерывную модель пространства состояний (4) можно выполнить одной командой d2c: Wo_ss_c = d2c(Wo_ss_d). В этом варианте получится набор матриц с другими коэффициентами относительно многоступенчатого варианта, но это не является ошибкой, поскольку одна и та же ПФ (с одинаковым составом нулей и полюсов) может быть представлена в форме пространства состояний разными вариантами коэффициентов матриц A, B, C, D. Нули и полюса ПФ можно вычислить командами MATLAB: zeros, poles, eig.

Система дифференциальных уравнений

Матрицы (4) непрерывной модели связывают переменные состояния x(t) с входом y(t) и выходом u(t) модели следующим образом.

Раскроем систему дифференциальных уравнений (5) подстановкой коэффициентов матриц (4):

Как в случае построения дискретной Simulink модели (Рисунок 3) по разностным уравнениям (3), построим Simulink модель непрерывного объекта (см. Рисунок 4) по дифференциальным уравнениям (6).

Рисунок 4. Непрерывная модель объекта (1) и реакция y(t) объекта на синусоидальное u(t) воздействие (синий график). Для сравнения, показан коричневый график y[n] дискретного объекта Рисунок 3, график y(t) сдвинут вправо на 0.5 с — половину дискреты.

Перевод модели в частотную область

В MATLAB по данным модели пространства состояний или передаточным функциям можно построить соответствующие амплитудно-фазовые частотные характеристики (АФЧХ). Примеры перевода для рассматриваемого объекта показаны ниже.

bode(Wo_ss_d) % АФЧХ дискретного объекта представленного в форме пространства состояний
bode(Wo_tf_d) % АФЧХ дискретного объекта представленного в форме ПФ
bode(Wo_ss_c) % АФЧХ непрерывного объекта представленного в форме пространства состояний
bode(Wo_tf_c) % АФЧХ непрерывного объекта представленного в форме ПФ
grid % нанесение координатной сетки

Рисунок 5. Амплитудно-фазовые частотные характеристики непрерывного объекта (слева) и дискретного объекта (справа).

Построение передаточной функции по частотным характеристикам

Имеется множество вариантов обратного перевода модели из частотной области. Вот один из них.
[mag,phase,freq] = bode(Wo_tf_c) % выделение амплитуды, фазы и частоты АФЧХ
complex_f = frd(mag.exp(jphase.pi/180),freq) % модель объекта в частотной области tfest(complex_f,3) % ПФ непрерывного объекта, 3 — порядок объекта

В этом примере зависимости амплитуды mag и фазы phase от частоты freq вычислены оператором bode для ПФ Wo_tf_c. Оператор frd сформировал структуру complex_f — зависимость комплексных аргументов mag.exp(jphase.pi/180) от частоты, которая использовалась оператором tfest для построения ПФ непрерывного объекта третьего порядка. Полученная ПФ точно совпадает с исходной ПФ Wo_tf_c. Как упоминалось во введении, при использовании экспериментальных зависимостей (амплитуды и фазы от частоты) мы бы получили неоднозначный вариант ПФ.

Перевод модели во временную область

MATLAB предлагает множество вариантов вычисления реакции объекта на входное воздействие. Вот один из них – реакция (Рисунок 6) на единичное ступенчатое воздействие вычисляется оператором step:
% [y,t] = step(Wo_tf_c) % выделение данных реакции на единичное воздействие
step(Wo_tf_c) % построение графика реакции на единичное воздействие

Рисунок 6. Реакция модели непрерывного объекта (ПФ: Wo_tf_c) на единичное ступенчатое воздействие.

Построение передаточной функции по временным характеристикам

Обратное преобразование – построение передаточной функции по временным характеристикам входа и выхода объекта выполняется командами iddata и tfest.

Перевод импульсной передаточной функции в код контроллера

Модель Рисунок 3 импульсной передаточной функции (3a) дискретного объекта (1) можно представить в виде схемы показанной на Рисунок 7.

Рисунок 7. Модель импульсной передаточной функции

. Блок z-1 реализует задержку на 1 такт. Для рассматриваемого объекта установлен период дискретизации в 1 с.

Работа схемы Рисунок 7 подобна реализации Рисунок 8, в которой блок fcn, содержащий m-функцию пользователя, выполняет совместно с z-1 блоками работу рассматриваемой импульсной ПФ.

Рисунок 8. Simulink модель эквивалентной импульсной передаточной функции с fcn блоком, содержащим представленный m-код. Следующая программа вычисляет реакцию объекта, представленного импульсной ПФ. Полученная реакция (Рисунок 9) полностью совпадает с реакциями дискретных моделей рассматриваемого объекта и соответствует реакциям непрерывных моделей этого же объекта (Рисунок 10).

b2 = -0.4; b1 = -0.24; b0 = 0.072; % коэффициенты полинома числителя ИПФ

a3 = 1; a2 = -1.1; a1 = 0.5; a0 = -0.12; % коэффициенты полинома знаменателя ИПФ

y = zeros(1,50); % резервирование памяти для хранения реакции
u = ones(1,50); % единичное воздействие

ym1 = 0; ym2 = 0; ym3 = 0 % начальные значения

% График реакции дискретных моделей

if 1
% Построение графиков
figure (1) % активное окно графопостроителя
clf % очистка предыдущих данных
plot(y,’xb’) % график y[n] m-файла
hold on
plot(out.ScopeData1.signals(3).values) % график y[n] Simulink модели, ver.1
plot(out.ScopeData1.signals(4).values) % график y[n] Simulink модели, ver.2
plot(out.ScopeData1.signals(5).values) % график y[n] Simulink модели, ver.3
plot(out.ScopeData1.signals(6).values) % график y[n] Simulink модели, ver.4
legend(‘m-file’,’Simulink v.1′,’Simulink v.2′,’Simulink v.3′,’Simulink v.4′)
grid
xlabel(‘Номер отсчета’)
ylabel(‘Амплитуда реакции’),
title(‘Сравнение реакций дискретных моделей’)
end

Рисунок 9. 100% совпадение реакций дискретных моделей и вычислений m-программы.

Рисунок 10. Варианты построения эквивалентных Simulink моделей рассматриваемого объекта.

Порядок программирования динамических моделей контроллерами

Для построения модели динамической системы средствами контроллеров предлагается выполнить следующее.

Средствами MATLAB преобразовать динамическую систему в форму импульсной передаточной функции для требуемого шага дискретизации (3a).

Выделить коэффициенты полиномов числителя и знаменателя импульсной ПФ (Рисунок 7)

Средствами контроллера реализовать последовательность вычисления импульсной ПФ (7)

Структура и порядок динамической системы могут отличаться от рассмотренного примера.

Заключение

Рассмотренные варианты преобразования форм представления динамических моделей в интегрированной среде MATLAB могут быть использованы для реализации моделей средствами контроллеров путем построения кода эквивалентной импульсной передаточной функции (Рисунок 11).

Рисунок 11. Операторы MATLAB преобразования моделей и построения эквивалентного кода для программирования контроллеров.

А.А.Алексеев, Д.Х.Имаев, Н.Н.Кузьмин, В.Б.Яковлев. Теория управления: Учеб./СПб.: Изд-во СПбГЭТУ “ЛЭТИ”, 1999. – 435 с.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *