Получить частотные характеристики по испульсной
От: Didro Россия home~pages
Дата: 18.05.08 07:43
Оценка: -1
Добрый день,

Задача: при неизвестной передаточной функции системы, получить её частотные характеристики (ЛАЧХ\ЛФЧХ) по ипульсной характеристике. Повторюсь, требуется вычилслить ЛАЧХ\ЛФЧХ по эксперементальным данным (отлик системы на дельта импульс), а не аналитически по известной передаточный функции 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) и получаю:

Почему получается такое расхождение, причем как в абсолютных значениях, так и в форме?
Как правильно посчитать частотные характеристики по известному отклику системы на дельта-импульс ?

Спасибо
fft bode лачх лфчх matlab frequency response impulse response
Re: Получить частотные характеристики по испульсной
От: Didro Россия home~pages
Дата: 07.06.08 09:02
Оценка:
Нашел статью, в которой описывается моя проблема — System Identification Of A Higher Order System.

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

Если коротко, то в статье как раз описывается та ситуация, с которой я столкнулся в мае (см. пред. пост). При этом эта ситуация (различие теоретически и экспериметнально полученных диаграмм Боде) считается нормальной и объясняется как побороть это различие в частном случае.


(зеленым цветом — теоретические результаты (по аналитически представленной передаточной функции), синим цветом — экспериментальные результаты (по данным))
Откуда возникает это различие ?

Спасибо
диаграмма боде
Re[2]: Получить частотные характеристики по испульсной
От: piAnd Россия  
Дата: 07.06.08 11:09
Оценка: 6 (1)
Здравствуйте, Didro, Вы писали:

D>Если есть люди, знающие теорию управления, теорию идентификации систем, взгляните по статью, пожалуйста. Мне не хватает теоретической подготовки, чтобы правильно проинтерпретировать её результаты.


не совсем понятно, что делает frd(), а дальше добавляют компенсационную ПФ (ФВЧ?) к их ПФ модели второго порядка, которую идентифицируют. И, вроде как, получается frd и скомпенсированная модель сближаются.
Re[3]: Получить частотные характеристики по испульсной
От: Didro Россия home~pages
Дата: 07.06.08 11:24
Оценка:
Здравствуйте, 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: Получить частотные характеристики по испульсной
От: sk1970  
Дата: 08.06.08 01:45
Оценка:
Здравствуйте, Didro, Вы писали:

D>temp = fft(data,N); % perform N-point transform


Попробуй так:


temp = fft(data,N)/fft(input,N);



D>Спасибо
Re[4]: Получить частотные характеристики по испульсной
От: piAnd Россия  
Дата: 08.06.08 12:09
Оценка:
D>Да, это я понимаю, что они "подгоняют" модель (ПФ) к frd, но почему ? Почему модель дает отличные результаты от экспериментальных данных ?
Может потому, что метод идентификации основан лишь на сигнале отклика, характеристики которого ограничены, например по частотам.
Есть, к примеру, метод идентификация, где на объект воздействуют широким спектром частот, а не просто импульсом, от этого тоже зависит качество.
Re[2]: Получить частотные характеристики по испульсной
От: Didro Россия home~pages
Дата: 08.06.08 13:25
Оценка:
Здравствуйте, sk1970, Вы писали:

S>Попробуй так:


S>
S>temp = fft(data,N)/fft(input,N); 
S>


Так тоже пробовал, однако поскольку на вход системы подается единичный импулься, то FFT(input)=FFT(единичный импульс)=1;
Re[5]: Получить частотные характеристики по испульсной
От: Didro Россия home~pages
Дата: 08.06.08 13:29
Оценка:
Здравствуйте, piAnd, Вы писали:

D>>Да, это я понимаю, что они "подгоняют" модель (ПФ) к frd, но почему ? Почему модель дает отличные результаты от экспериментальных данных ?

A>Может потому, что метод идентификации основан лишь на сигнале отклика, характеристики которого ограничены, например по частотам.
Возможно.
Задал вопрос о происхождении и качестве входных данных автору статьи (System Identification Of A Higher Order System) — пока молчит.

A>Есть, к примеру, метод идентификация, где на объект воздействуют широким спектром частот, а не просто импульсом, от этого тоже зависит качество.

Понимаю, однако, если я не ошибаюсь, то если на вход подается единичный импульс (Модуль БПФ которого равен 1 на всех частотах), то должны получаться аналогичные ЛАЧХ\ЛФЧХ характеристики..
Re[3]: Получить частотные характеристики по испульсной
От: sk1970  
Дата: 08.06.08 20:48
Оценка:
Здравствуйте, Didro, Вы писали:

D>Здравствуйте, sk1970, Вы писали:


S>>Попробуй так:


S>>
S>>temp = fft(data,N)/fft(input,N); 
S>>


D>Так тоже пробовал, однако поскольку на вход системы подается единичный импулься, то FFT(input)=FFT(единичный импульс)=1;


Но у тебя не еденичный импульс. У еденичного импульса бесконечная амплитуда и еденичная площадь. А у тебя еденичная амплитуда и площадь равная Ts. Что приводт как к неправильному усилению на 0 частоте, так и к искажению формы частотной характеристики на частотах близких к частоте Fs.
Re[2]: Получить частотные характеристики по испульсной
От: sk1970  
Дата: 09.06.08 01:57
Оценка: 6 (1)
Здравствуйте, Didro, Вы писали:

D>Нашел статью, в которой описывается моя проблема — System Identification Of A Higher Order System.


Я боюсь ты не поял о чем эта статья. Она об аппроксимации передаточной функции высокого порядка с помощью фунций второго и первого порядков.

D>

D>(зеленым цветом — теоретические результаты (по аналитически представленной передаточной функции), синим цветом — экспериментальные результаты (по данным))
D>Откуда возникает это различие ?

Этот гафик показывает исходную функцию высокого порядка и апроксимирующую функию второго поряка. Далее в статье подбираются дополнительные функции низкого порядка для более точной аппроксимации области высоких частот. Это довольно таки грубый метод получения аналитического представления передаточной функции по экспериментальным данным и он работает только для очень простых форм АФЧХ.

Похоже это совсем не твой случай.
Re[6]: Получить частотные характеристики по испульсной
От: piAnd Россия  
Дата: 09.06.08 10:19
Оценка:
Здравствуйте, Didro, Вы писали:
D>Понимаю, однако, если я не ошибаюсь, то если на вход подается единичный импульс (Модуль БПФ которого равен 1 на всех частотах), то должны получаться аналогичные ЛАЧХ\ЛФЧХ характеристики..
Дело в том, что в том случае воздействие должно быть гармоническим, а реакцию системы нужно снимать на разных частотах. Если мы смешиваем гармоники, то и реакция "смешанная".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.