Методы фильтрации сложных колебаний - PullRequest
0 голосов
/ 24 марта 2011

Если у меня есть система пружин, то не одна, а, например, 3-х степень свободы системы пружин, связанных между собой некоторыми.Я могу сделать систему дифференциальных уравнений для, но это невозможно решить в общем виде.Вопрос в том, существуют ли какие-либо документы или методы для фильтрации таких сложных колебаний, чтобы избавиться от колебаний и получить реальный сигнал в максимально возможной степени?Например, если я каким-то образом соединю 3 пружины и нажму на них, чтобы запустить вибрации, или наложу на них некоторый вес, а затем возьму вибрации от каждой пружины, есть ли какие-либо методы фильтрации, облегчающие определение весаслучай, если какая-то масса ставится выше) каждой массы?Я заинтересован в фильтрации сложных пружиноподобных систем.

Ответы [ 3 ]

2 голосов
/ 25 марта 2011

Три источника, шесть степеней свободы? Это тривиальное решение с использованием методов конечных элементов и численного интегрирования. Это система из шести связанных ODE. Вы можете применять любую форму численного интегрирования, такую ​​как Рунге-Кутта 5-го порядка.

Я бы порекомендовал сначала провести анализ собственных значений системы, чтобы выяснить ее частотные характеристики и нормальные режимы. Я также сделал бы БПФ динамических сил, которые вы применяете к системе. Вы не упоминаете никакого демпфирования, поэтому, если вам случится возбудить вашу систему с естественной частотой, близкой к резонансу, у вас может быть интересное поведение.

Если динамическое уравнение имеет этот общий вид (извините, у меня нет LaTeX здесь, чтобы он выглядел красиво):

Ma + Kx = F

, где M - матрица масс (диагональ), a - ускорение (2-я производная от перемещений по времени. T), K - матрица жесткости, F - функция воздействия.

Если вы говорите, что знаете ответ, вам придется предварительно умножить на транспонирование функции ответа и попытаться найти для M. Это диагональ, так что у вас есть шанс на это.

0 голосов
/ 24 марта 2011

На самом деле можно решить получившуюся систему дифференциальных уравнений, если вы знаете массы и т. Д.

Стандартный подход заключается в использовании преобразования Лапласа .В частности, вы начинаете с набора линейных дифференциальных уравнений.Добавляйте переменные, пока не получите набор линейных дифференциальных уравнений первого порядка.(Таким образом, если в вашем уравнении есть y'', вы бы добавили уравнение z = y' и заменили y'' на z'.) Перепишите это в виде:

v' = Av + w

, где v - вектор переменной, A - матрица, а w - скалярный вектор.(Примером чего-то, что оказывается в w, является гравитация.)

Теперь примените преобразование Лапласа, чтобы получить

s L(v) - v(0) = AL(v) + s w

Решите это, чтобы получить

L(v) = inv(A - I s)(s w + v(0))

где inv инвертирует матрицу, а I - единичная матрица.Примените обратное преобразование Лапласа (если вы читаете о преобразованиях Лапласа, вы можете найти таблицы обратных функций общего типа - получить полный список функций, с которыми вы на самом деле сталкиваетесь, не так уж и сложно), и у вас есть решение.(Имейте в виду, что эти вычисления быстро становятся очень сложными.)

Теперь у вас есть возможность выбрать конкретную настройку и решить вопрос о будущем поведении.У вас также есть возможность (если вы делаете вещи очень тщательно) выяснить, как модель реагирует на небольшое изменение параметров.Но ваша проблема в том, что вы не знаете, какие параметры использовать. Однако у вас до есть возможность измерять позиции в системе несколько раз.

Если вы сложите это вместе, то вы можете сделать это.Измерьте свою позицию в нескольких точках.Сначала оцените все начальные значения параметров, а затем все значения через секунду.Вы можете отрегулировать свои параметры (используя метод Ньютона), чтобы приблизиться к значениям через секунду.Проведите измерения через 5 секунд и используйте эту начальную оценку в качестве отправной точки, чтобы уточнить свои расчеты для того, что происходит через 5 секунд.Повторите с более длинными интервалами, чтобы получить все ваши ответы.

Написание и отладка этого могут занять некоторое время.:-) Я бы настоятельно рекомендовал выяснить, сколько из этого Mathematica уже знает, как сделать для вас ...

0 голосов
/ 24 марта 2011

Вы подключаете пружины таким образом, чтобы поведение системы было приблизительно линейным? (например, по крайней мере, настолько близко к линейному, как пружины / струны музыкальных инструментов?) Является ли такое поведение постоянным во времени? (например, пружины не тают и не ломаются.) Если это так, то может быть применима теория систем LTI (линейный инвариант времени). При наличии достаточного количества измерений в зависимости от количества степеней свободы в системе LTI можно было бы оценить график отклика системы с нулевым полюсом и перейти оттуда. Или что-то вроде линейного предиктора может быть полезным.

...