Задача: при неизвестной передаточной функции системы, получить её частотные характеристики (ЛАЧХ\ЛФЧХ) по ипульсной характеристике. Повторюсь, требуется вычилслить ЛАЧХ\ЛФЧХ по эксперементальным данным (отлик системы на дельта импульс), а не аналитически по известной передаточный функции W(s).
Делаю так как написано здесь и здесь. Т.е. вычисляю FFT от отклика на дельта-импульс, затем беру модуль и фазу полученных Фурье коэффициентов и отображаю их в соотв.масштабе.
Код (Matlab):
Tend=1000;
fs=2100; % sampling rate
t = 0:1/fs:Tend; % sampling instants
N=length(t);
input=[1;zeros(N-1,1)]; % modelling the obtaning impulse reponse
ws=tf([10],[1 1 1 1 1]);
data=lsim(ws,input,t);
temp = fft(data,N); % perform N-point transform
fftdata = temp(1:N/2); % just look at first half
m = 20*log10(abs(fftdata)); % m = magnitude of sinusoids
p = unwrap(angle(fftdata)); % p = phase of sinusoids, unwrap()
% copes with 360 degree jumps
f = (0:N/2-1)*fs/(N); % calculate Hertz values
% plot spectrum 0..fs/2 :
figure('Name','MyBode')
subplot(2,1,1), semilogx(f,m); % plot magnitudes
ylabel('Abs. Magnitude'), grid on;
subplot(2,1,2), semilogx(f,p*180/pi); % plot phase in degrees
ylabel('Phase [Degrees]'), grid on;
xlabel('Frequency [Hertz]');
figure('Name','Bode'),bode(ws);
clear
sampling rate как я понимаю можно взять произвольный, т.к. все равно я сам моделирую входной сигнал. Или я не прав?
Пусть ws=tf([10],[1 1]); (т.е. передаточная функция равна W(s)=10/(1+s) )
Сравниваю с bode(ws) и получаю:
Пусть ws=tf([10],[1 1 1 1 1]);
Сравниваю с bode(ws) и получаю:
Почему получается такое расхождение, причем как в абсолютных значениях, так и в форме?
Как правильно посчитать частотные характеристики по известному отклику системы на дельта-импульс ?
Если есть люди, знающие теорию управления, теорию идентификации систем, взгляните по статью, пожалуйста. Мне не хватает теоретической подготовки, чтобы правильно проинтерпретировать её результаты.
Если коротко, то в статье как раз описывается та ситуация, с которой я столкнулся в мае (см. пред. пост). При этом эта ситуация (различие теоретически и экспериметнально полученных диаграмм Боде) считается нормальной и объясняется как побороть это различие в частном случае.
(зеленым цветом — теоретические результаты (по аналитически представленной передаточной функции), синим цветом — экспериментальные результаты (по данным))
Откуда возникает это различие ?
Здравствуйте, Didro, Вы писали:
D>Если есть люди, знающие теорию управления, теорию идентификации систем, взгляните по статью, пожалуйста. Мне не хватает теоретической подготовки, чтобы правильно проинтерпретировать её результаты.
не совсем понятно, что делает frd(), а дальше добавляют компенсационную ПФ (ФВЧ?) к их ПФ модели второго порядка, которую идентифицируют. И, вроде как, получается frd и скомпенсированная модель сближаются.
Re[3]: Получить частотные характеристики по испульсной
Здравствуйте, piAnd, Вы писали:
A>не совсем понятно, что делает frd(), а дальше добавляют компенсационную ПФ (ФВЧ?) к их ПФ модели второго порядка, которую идентифицируют.
FRD — это frequency-response data object. Т.е. просто объект, который позволяет представить систему по её частотной характеристике. (Грубо говоря, это просто контейнер, который потом принимают различные функции Matlabа)
FRD — Creation of or conversion to Frequency Response Data model.
Frequency Response Data (FRD) models are useful for storing frequency
responses of LTI systems, including experimental response data.
>И, вроде как, получается frd и скомпенсированная модель сближаются.
Да, это я понимаю, что они "подгоняют" модель (ПФ) к frd, но почему ? Почему модель дает отличные результаты от экспериментальных данных ?
Тут может встать вопрос — как получены эксп.данные ? Возможно они зашумлены или получены с реального объекта — тогда разумеется модельные данные будут отличаться от реальных.
Но в моем исходном (первом) посте, я получаю экспериментальные данные с помощью моделирования в том же Matlab'e. По ним потом численно строю диаграммму Боде. И в результате получаю расхождение в рамках одной программы — в рамках одной системы моделирования. Т.е напрашивается вопрос — может быть я не правильно численно строю Боде ?
Re: Получить частотные характеристики по испульсной
D>Да, это я понимаю, что они "подгоняют" модель (ПФ) к frd, но почему ? Почему модель дает отличные результаты от экспериментальных данных ?
Может потому, что метод идентификации основан лишь на сигнале отклика, характеристики которого ограничены, например по частотам.
Есть, к примеру, метод идентификация, где на объект воздействуют широким спектром частот, а не просто импульсом, от этого тоже зависит качество.
Re[2]: Получить частотные характеристики по испульсной
Здравствуйте, piAnd, Вы писали:
D>>Да, это я понимаю, что они "подгоняют" модель (ПФ) к frd, но почему ? Почему модель дает отличные результаты от экспериментальных данных ? A>Может потому, что метод идентификации основан лишь на сигнале отклика, характеристики которого ограничены, например по частотам.
Возможно.
Задал вопрос о происхождении и качестве входных данных автору статьи (System Identification Of A Higher Order System) — пока молчит.
A>Есть, к примеру, метод идентификация, где на объект воздействуют широким спектром частот, а не просто импульсом, от этого тоже зависит качество.
Понимаю, однако, если я не ошибаюсь, то если на вход подается единичный импульс (Модуль БПФ которого равен 1 на всех частотах), то должны получаться аналогичные ЛАЧХ\ЛФЧХ характеристики..
Re[3]: Получить частотные характеристики по испульсной
Здравствуйте, Didro, Вы писали:
D>Здравствуйте, sk1970, Вы писали:
S>>Попробуй так:
S>>
S>>temp = fft(data,N)/fft(input,N);
S>>
D>Так тоже пробовал, однако поскольку на вход системы подается единичный импулься, то FFT(input)=FFT(единичный импульс)=1;
Но у тебя не еденичный импульс. У еденичного импульса бесконечная амплитуда и еденичная площадь. А у тебя еденичная амплитуда и площадь равная Ts. Что приводт как к неправильному усилению на 0 частоте, так и к искажению формы частотной характеристики на частотах близких к частоте Fs.
Re[2]: Получить частотные характеристики по испульсной
Я боюсь ты не поял о чем эта статья. Она об аппроксимации передаточной функции высокого порядка с помощью фунций второго и первого порядков.
D> D>(зеленым цветом — теоретические результаты (по аналитически представленной передаточной функции), синим цветом — экспериментальные результаты (по данным)) D>Откуда возникает это различие ?
Этот гафик показывает исходную функцию высокого порядка и апроксимирующую функию второго поряка. Далее в статье подбираются дополнительные функции низкого порядка для более точной аппроксимации области высоких частот. Это довольно таки грубый метод получения аналитического представления передаточной функции по экспериментальным данным и он работает только для очень простых форм АФЧХ.
Похоже это совсем не твой случай.
Re[6]: Получить частотные характеристики по испульсной
Здравствуйте, Didro, Вы писали: D>Понимаю, однако, если я не ошибаюсь, то если на вход подается единичный импульс (Модуль БПФ которого равен 1 на всех частотах), то должны получаться аналогичные ЛАЧХ\ЛФЧХ характеристики..
Дело в том, что в том случае воздействие должно быть гармоническим, а реакцию системы нужно снимать на разных частотах. Если мы смешиваем гармоники, то и реакция "смешанная".