Jump to content

    

Расчёт переходной функции (реакции на ступеньку)

Уравнение переходной функции любого фильтра имеет знаменатель.

При некоторых условиях он обращается в нуль и даже становится комплексным.

Как при этом ведётся расчёт?

 

Пример:

для ФНЧ 2го порядка нуль, когда Q = 0.5, когда Q < 0.5 - решать приходится в компексных числах.

для фильтра-пробки на основе двойного Т-моста - когда усиление = 1.

 

Формулы - на картинке.

 

Тут на стр. 3 формула через коэффициент дэмпфирования, и тоже при равенстве его 1 под корнем получаем 0.

post-15366-1534434169_thumb.png

StepResponses.zip

Share this post


Link to post
Share on other sites

Если вы решаете в s-плоскости, то и результат реакции на ступеньку хотите в s-плоскости?

Перемножьте образ фильтра с образом s-образом ступеньки (1/s), и готово.

https://www.intmath.com/laplace-transformat...ep-function.php

 

Нули в знаменателе (полюса) в "частотной области".

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

В нем нет деления на ноль, но есть неустойчивость.

 

Взяли образ фильтра, умножили на образ сигнала, провели обратное преобразование Лапласа и готово.

Либо взяли диф. ур-е, поставили начальные условия и решили задачу Коши.

Перед решением узнали об устойчивости. Проверили сгущающимися сетками. Либо методом с автоподбором шага и определением "проблем".

 

 

 

Share this post


Link to post
Share on other sites
Если вы решаете в s-плоскости, то и результат реакции на ступеньку хотите в s-плоскости?

Перемножьте образ фильтра с образом s-образом ступеньки (1/s), и готово.

 

Именно это и сделано - см. формулы на рисунке.

 

Непонятно как при 0 в знаменателе решать.

Очевидно, что как-то формула должна сократится, видимо, до е в степени, и стать по виду как для ФНЧ 1-го порядка.

 

Для фильтра-пробки решение нашлось - при G=1 формула вырождается до 1 минус е в степени, а при G = 2 схема нестабильна, так что формула теряет смысл и этот случай можно не рассматривать.

 

И при отрицательном значении под корнем тоже видимо как-то должно всё упрощаться математически.

Share this post


Link to post
Share on other sites

f(s):=1/(s*(1+A*s+B*s^2));

Для 4B-A^2=0:
y(t):=(-(A*t)/(2*B)-1)*exp(-(A*t)/(2*B))+1;

Для 4B-A^2>0:
(exp(-(A*t)/(2*B))*(-(A*B*sin((sqrt(4*B-A^2)*t)/(2*B)))/sqrt(4*B-A^2)-B*cos((sqrt(4*B-A^2)*t)/(2*B))))/B+1

Для 4B-A^2<0:
y(t):=(exp(-(A*t)/(2*B))*(-(A*B*sinh((sqrt(A^2-4*B)*t)/(2*B)))/sqrt(A^2-4*B)-B*cosh((sqrt(A^2-4*B)*t)/(2*B))))/B+1

 

В третий случай - ваш.

Но для A^2-4*B=0 решением будет

y(t):=(-(A*t)/(2*B)-1)*exp(-(A*t)/(2*B))+1;

Share this post


Link to post
Share on other sites

Вы хотите сказать, что при Q = 0.5 и ниже, схема фильтра 2-го порядка неработоспособна?

Share this post


Link to post
Share on other sites

Нет, признался выше что облажался и думал не о том. Извиняюсь.

Share this post


Link to post
Share on other sites
В третий случай - ваш.

Но для A^2-4*B=0 решением будет

y(t):=(-(A*t)/(2*B)-1)*exp(-(A*t)/(2*B))+1;

 

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

 

Такая же неопределённость и в других передаточных функциях, так что либо понять надо, либо просить Вас их разрешить :)

Share this post


Link to post
Share on other sites

Прямой подстановкой корней для A^2-B в f(s) и вычислением обратного Лапласа.

Share this post


Link to post
Share on other sites

Не приходит понимание, можете разжевать ещё раз, по шагам, подробно?

 

s= %i*y

s = (-B +/- sqrt(A^2-4B))/(2B) = -1/2

 

тут разве не s = -B ?

 

Share this post


Link to post
Share on other sites

Да, конечно. Забыл поправить.

B*s^2+A*s+1=0
s = -A/(2B);

h(s):=1/(s*(s+(1/2)*(A/B))^2);
Полюс в нуле и один в -(1/2)*(A/B), B>0, A>0
Замена перменных (в общем-то не нужная):
s=q*(A/B)
h(q) = B/(A*q*((A*q)/B+A/(2*B))^2) 
h(q) = (B/A)^2*1/(q*(q+1/2)^2) 
h(q) = 1/(q*(q+1/2)^2) 
inv_lap(h(q))=1-exp(-t/2)-t/2*exp(-t/2)
В s=0, s=-1/2 первой кратности, s=-1/2 второй кратности.

 

Проверил в wxMaxima, ей не надо разбивать руками по веткам.

Она знает через assume или спрашивает чему равен дискриминант.

 

P.S. Не против если я свое позорище зачищу во втором посте?

Share this post


Link to post
Share on other sites
Да, конечно. Забыл поправить.

B*s^2+A*s+1=0

s = -A/(2B);

 

Проверил в wxMaxima, ей не надо разбивать руками по веткам.

Она знает через assume или спрашивает чему равен дискриминант.

 

P.S. Не против если я свое позорище зачищу во втором посте?

 

Что-то не бьётся у меня c 0 при s = -A/(2B)...

Суть вроде понятна.

Считать ручками корни только каждый раз желания нет.

wxMaxima может автоматически решения дать для всех 3х случаев?

 

И осталось понять, каков смысл комплексных вычислений для Q < 0.5.

Это просто абстракция, приводящая в итоге к вещественному результату?

 

P.S. да, конечно, лишнее только мешает.

 

Upd. В Maxima получились уравнения для всех случаев, здорово!

Edited by VDV

Share this post


Link to post
Share on other sites

На ещё один вопрос не могу найти ответ.

Соединяем несколько каскадов последовательно.

Для каждого знаем функцию передачи, а значит реакцию на ступеньку (и импульс).

Зная только численные значения реакции на ступеньку во временной области каждого каскада, можно найти суммарную реакцию на ступеньку всей цепи?

Пример: многозвенный ФНЧ.

 

Share this post


Link to post
Share on other sites
На ещё один вопрос не могу найти ответ.

Интеграл Дюамеля дает ответ.

Share this post


Link to post
Share on other sites
Интеграл Дюамеля дает ответ.

Спасибо, всё получилось!

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this