Аппроксимация Паде входного сигнала задержки по времени

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

Этот пример использует Symbolic Math Toolbox™, чтобы решить для передаточной функции системы первого порядка и найти отклик системы к шагу с потерей времени с помощью аппроксимации Padé. Этот пример выполняет вычисления символически, чтобы получить аналитические результаты.

Введение

Аппроксимация порядка Паде [m, n] аппроксимирует функцию f(x) вокруг x=x0 как

a0+a1(x-x0)++am(x-x0)m1+b1(x-x0)++bn(x-x0)n.

Аппроксимация Паде является рациональной функцией, образованной отношением двух степенных рядов. Поскольку это рациональная функция, она точнее ряда Тейлора в аппроксимации функций с полюсами. Аппроксимация Паде представлена функцией Symbolic Math Toolbox™ pade.

Когда шест или нуль существует в точке расширения x=x0точность аппроксимации Паде уменьшается. Чтобы увеличить точность, используйте альтернативную форму аппроксимации Паде, которая

(x-x0)p(a0+a1(x-x0)++am(x-x0)m)1+b1(x-x0)++bn(x-x0)n.

The pade функция возвращает альтернативную форму аппроксимации Паде, когда вы задаете OrderMode входной параметр в Relative.

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

Поведение системы первого порядка описывается этим дифференциальным уравнением

τdy(t)dt+y(t)=ax(t).

Введите дифференциальное уравнение в MATLAB ®.

syms tau a x(t) y(t) xS(s) yS(s) H(s) tmp
F = tau*diff(y)+y == a*x;

Найдите преобразование Лапласа F использование laplace.

F = laplace(F,t,s)
F = laplace(y(t),t,s)-τy(0)-slaplace(y(t),t,s)=alaplace(x(t),t,s)laplace (y (t), t, s) - tau * (y (0) - s * laplace (y (t), t, s)) = = a * laplace (x (t), t, s)

Примите ответ системы в t = 0 является 0. Использование subs для замены y(0) = 0.

F = subs(F,y(0),0)
F = laplace(y(t),t,s)+sτlaplace(y(t),t,s)=alaplace(x(t),t,s)laplace(y(t), t, s) + s*tau*laplace(y(t), t, s) == a*laplace(x(t), t, s)

Чтобы собрать общие термины, используйте simplify.

F = simplify(F)
F = sτ+1laplace(y(t),t,s)=alaplace(x(t),t,s)(s * tau + 1) * laplace (y (t), t, s) = = a * laplace (x (t), t, s)

Для читаемости замените преобразования Лапласа x(t) и y(t) с xS(s) и yS(s).

F = subs(F,[laplace(x(t),t,s) laplace(y(t),t,s)],[xS(s) yS(s)])
F = yS(s)sτ+1=axS(s)yS (s) * (s * tau + 1) = = a * xS (s)

Преобразование Лапласа передаточной функции yS(s)/xS(s). Разделите обе стороны уравнения на xS(s) и использовать нижние индексы для замены yS(s)/xS(s) с H(s).

F = F/xS(s);
F = subs(F,yS(s)/xS(s),H(s))
F = H(s)sτ+1=aH (s) * (s * tau + 1) = = a

Решите уравнение для H(s). Замена H(s) с помощью фиктивной переменной решите для фиктивной переменной с помощью solve и присвойте решение Hsol(s).

F = subs(F,H(s),tmp);
Hsol(s) = solve(F,tmp)
Hsol(s) = 

asτ+1a/( s * tau + 1)

Поиск отклика системы на отложенный по времени шаг Входа

Вход в систему первого порядка является шагом с задержкой во времени. Чтобы представлять входной вход шага, используйте heaviside. Задержка входа на три временных модулей. Найдите преобразование Лапласа с помощью laplace.

step = heaviside(t - 3);
step = laplace(step)
step = 

e-3ssexp (-3 * s )/s

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

y = Hsol(s)*step
y = 

ae-3sssτ+1(a * exp ((-3 * s) )/( s * (s * tau + 1))

Чтобы разрешить построение графика отклика, установите параметры a и tau к конкретным значениям. Для a и tau, выберите значения 1 и 3, соответственно.

y = subs(y,[a tau],[1 3]);
y = ilaplace(y,s);

Поиск отклика системы с использованием аппроксимаций Padé

Найдите аппроксимацию порядка Паде [2 2] шага, используя входной параметр порядок, чтобы pade.

stepPade22 = pade(step,'Order',[2 2])
stepPade22 = 

3s2-4s+22ss+1(3 * s ^ 2 - 4 * s + 2 )/( 2 * s * (s + 1))

Найдите ответ на вход, умножив передаточную функцию и аппроксимацию Padé входного сигнала.

yPade22 = Hsol(s)*stepPade22
yPade22 = 

a3s2-4s+22ssτ+1s+1(a * (3 * s ^ 2 - 4 * s + 2 )/( 2 * s * (s * tau + 1) * (s + 1))

Найдите обратное преобразование Лапласа yPade22 использование ilaplace.

yPade22 = ilaplace(yPade22,s)
yPade22 = 

a+9ae-s2τ-2-ae-sτ2τ2+4τ+3τ2τ-2a + (9 * a * exp ((-s)) )/( sym (2) * tau - 2) - (a * exp ((-s/tau)) * (2 * tau ^ sym (2) + sym (4) * tau + 3) )/( tau * (sym (2) * tau - 2))

Чтобы построить график отклика, установите параметры a и tau к своим значениям 1 и 3, соответственно.

yPade22 = subs(yPade22,[a tau],[1 3])
yPade22 = 

9e-s4-11e-s34+1(9 * exp ((-s)) )/4 - (11 * exp ((-s/3)) )/4 + 1

Постройте график отклика системы y и ответ, вычисленный из аппроксимации Паде yPade22.

fplot(y,[0 20])
hold on
fplot(yPade22, [0 20])
grid on
title 'Padé approximant for dead-time step input'
legend('Response to dead-time step input', 'Padé approximant [2 2]',...
    'Location', 'Best');

Figure contains an axes. The axes with title Padé approximant for dead-time step input contains 2 objects of type functionline. These objects represent Response to dead-time step input, Padé approximant [2 2].

Увеличение точности аппроксимации Паде с помощью OrderMode

The [2 2] Аппроксимация Паде не хорошо представляет реакцию, потому что полюс существует в точке расширения 0. Для повышения точности pade когда в точке расширения есть шест или нуль, установите OrderMode введите аргумент в Relative и повторите шаги. Для получения дополнительной информации смотрите pade.

stepPade22Rel = pade(step,'Order',[2 2],'OrderMode','Relative')
stepPade22Rel = 

3s2-6s+4s3s2+6s+4(3 * s ^ 2 - 6 * s + 4 )/( s * (3 * s ^ 2 + 6 * s + 4))

yPade22Rel = Hsol(s)*stepPade22Rel
yPade22Rel = 

a3s2-6s+4ssτ+13s2+6s+4(a * (3 * s ^ 2 - 6 * s + 4) )/( s * (s * tau + 1) * (3 * s ^ 2 + 6 * s + 4))

yPade22Rel = ilaplace(yPade22Rel);
yPade22Rel = subs(yPade22Rel,[a tau],[1 3])
yPade22Rel = 

12e-tcos(3t3)+23sin(3t3)37-19e-t37+1(12 * exp ((-t)) * (cos ((sqrt (sym (3)) * t )/3) + (2 * sqrt (sym (3)) * sin ((sqrt (sym (3)) * t )/3 )/3) )/7 - (19 * exp ((-t/3)) )/7 + 1

fplot(yPade22Rel, [0 20], 'DisplayName', 'Relative Padé approximant [2 2]')

Figure contains an axes. The axes with title Padé approximant for dead-time step input contains 3 objects of type functionline. These objects represent Response to dead-time step input, Padé approximant [2 2], Relative Padé approximant [2 2].

Увеличение точности аппроксимации Паде путем увеличения порядка

Можно увеличить точность аппроксимации Паде, увеличив её порядок. Увеличьте порядок до [4 5] и повторите шаги. The [n-1 n] Аппроксимация Паде лучше аппроксимирует ответ при t = 0 чем [n n] Паде аппроксимация.

stepPade45 = pade(step,'Order',[4 5])
stepPade45 = 

27s4-180s3+540s2-840s+560s27s4+180s3+540s2+840s+560(27 * s ^ 4 - 180 * s ^ 3 + 540 * s ^ 2 - 840 * s + 560 )/( s * (27 * s ^ 4 + 180 * s ^ 3 + 540 * s ^ 2 + 840 * s + 560))

yPade45 = Hsol(s)*stepPade45
yPade45 = 

a27s4-180s3+540s2-840s+560ssτ+127s4+180s3+540s2+840s+560(a * (27 * s ^ 4 - 180 * s ^ 3 + 540 * s ^ 2 - 840 * s + 560) )/( s * (s * tau + 1) * (27 * s ^ 4 + 180 * s ^ 3 + 540 * s ^ 2 + 840 * s + 560))

yPade45 = subs(yPade45,[a tau],[1 3])
yPade45 = 

27s4-180s3+540s2-840s+560s3s+127s4+180s3+540s2+840s+560(27 * s ^ 4 - 180 * s ^ 3 + 540 * s ^ 2 - 840 * s + 560 )/( s * (3 * s + 1) * (27 * s ^ 4 + 180 * s ^ 3 + 540 * s ^ 2 + 840 * s + 560))

Найдите обратное преобразование Лапласа yPade45 использование ilaplace. Аппроксимация yPade45 численно использование vpa. Постройте график отклика, вычисленного из аппроксимации Паде yPade45.

yPade45 = vpa(ilaplace(yPade45));
fplot(yPade45, [0 20], 'DisplayName', 'Padé approximant [4 5]')

Figure contains an axes. The axes with title Padé approximant for dead-time step input contains 4 objects of type functionline. These objects represent Response to dead-time step input, Padé approximant [2 2], Relative Padé approximant [2 2], Padé approximant [4 5].

Заключения

Показаны следующие точки:

  • Аппроксимации Padé могут моделировать входы шага с потерей времени.

  • Точность аппроксимации Паде увеличивается с увеличением порядка аппроксимации.

  • Когда в точке расширения существует шест или нуль, аппроксимация Паде неточна относительно точки расширения. Чтобы увеличить точность аппроксимации, установите OrderMode опция для Relative. Можно также использовать увеличение порядка знаменателя относительно числителя.

Для просмотра документации необходимо авторизоваться на сайте