Научная статья на тему 'ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ SCIPY ДЛЯ ЯЗЫКА PYTHON С ЦЕЛЬЮ ИЗУЧЕНИЯ ПАРАМЕТРОВ ЗАТУХАЮЩЕГО ГАРМОНИЧЕСКОГО ОСЦИЛЛЯТОРА'

ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ SCIPY ДЛЯ ЯЗЫКА PYTHON С ЦЕЛЬЮ ИЗУЧЕНИЯ ПАРАМЕТРОВ ЗАТУХАЮЩЕГО ГАРМОНИЧЕСКОГО ОСЦИЛЛЯТОРА Текст научной статьи по специальности «Математика»

CC BY
546
44
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
E-Scio
Область наук
Ключевые слова
ИССЛЕДОВАНИЕ СИСТЕМ / ЗАТУХАЮЩИЙ ГАРМОНИЧЕСКИЙ ОСЦИЛЛЯТОР / БИБЛИОТЕКА SKIPY / ДЕКРЕМЕНТ ЗАТУХАНИЯ / ЯЗЫК PYTHON / ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТОВ

Аннотация научной статьи по математике, автор научной работы — Ильичев В. Ю., Чухраев И. В.

Исследование посвящено разработке алгоритма и программного кода для построения зависимостей изменения параметров затухающего гармонического осциллятора от времени. В качестве средства разработки программы выбран язык Python с подключением библиотеки научных расчётов SkiPy, обладающий множеством описанных в статье достоинств. С помощью разработанной программы выполнен вариативный расчёт примеров, произведена интерпретация результатов. Сделаны выводы, выработаны рекомендации для применения методики в разных сферах науки и производства.The study is devoted to the development of an algorithm and program code for constructing dependencies of changing parameters of a decaying harmonic oscillator over time. As a means of developing the program, the Python language was chosen with the connection of the library of scientific calculations of SkiPy, which has many advantages described in the article. With the help of the developed program, a variable calculation of examples was made, the results were interpreted. Conclusions were drawn, recommendations were developed for the application of the methodology in various fields of science and production.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ SCIPY ДЛЯ ЯЗЫКА PYTHON С ЦЕЛЬЮ ИЗУЧЕНИЯ ПАРАМЕТРОВ ЗАТУХАЮЩЕГО ГАРМОНИЧЕСКОГО ОСЦИЛЛЯТОРА»

УДК 004.432.2

Технические науки

Ильичев В. Ю., к.т.н., доцент кафедры «Тепловые двигатели и гидромашины» Калужский филиал ФГОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский

университет), г. Калуга, Россия Чухраев И. В., к.т.н., доцент кафедры «Информационные системы и сети» Калужский филиал ФГОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский

университет), г. Калуга, Россия

ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ SCIPY ДЛЯ ЯЗЫКА PYTHON С ЦЕЛЬЮ ИЗУЧЕНИЯ ПАРАМЕТРОВ ЗАТУХАЮЩЕГО ГАРМОНИЧЕСКОГО ОСЦИЛЛЯТОРА

Аннотация: Исследование посвящено разработке алгоритма и программного кода для построения зависимостей изменения параметров затухающего гармонического осциллятора от времени. В качестве средства разработки программы выбран язык Python с подключением библиотеки научных расчётов SkiPy, обладающий множеством описанных в статье достоинств. С помощью разработанной программы выполнен вариативный расчёт примеров, произведена интерпретация результатов. Сделаны выводы, выработаны рекомендации для применения методики в разных сферах науки и производства.

Ключевые слова: исследование систем, затухающий гармонический осциллятор, библиотека SkiPy, декремент затухания, язык Python, визуализация результатов.

Annotation: The study is devoted to the development of an algorithm and program code for constructing dependencies of changing parameters of a decaying

harmonic oscillator over time. As a means of developing the program, the Python language was chosen with the connection of the library of scientific calculations of SkiPy, which has many advantages described in the article. With the help of the developed program, a variable calculation of examples was made, the results were interpreted. Conclusions were drawn, recommendations were developed for the application of the methodology in various fields of science and production.

Keywords: system research, decaying harmonic oscillator, SkiPy library, deceleration, Python language, visualization of results.

Введение

С помощью языка программирования Python возможно реализовать численные методы, позволяющие решать различные, даже очень сложные задачи (например, (3, 4) и др.).

Одним из основных модулей для реализации математических и прочих научных приёмов с помощью языка Python, является библиотека SciPy [10]. Например, с помощью её функций можно производить численное интегрирование, решение обыкновенных дифференциальных уравнений (ОДУ) [5], вычислять специальные функции, обрабатывать сигналы, производить интерполяцию функций и многое другое. Следует отметить, что описанные возможности позволяют значительно упростить работу учёных и инженеров-исследователей.

В представленной работе рассматривается решение определённого класса задач математики, описывающих многие реальные физические процессы -определение характеристик так называемого затухающего гармонического осциллятора (от лат. oscillo — качаюсь) [6]. Таким осциллятором (другими словами - колебательной системой) может быть совокупность механических (подпружиненный груз, маятник) [11], либо акустических или электрических элементов. Для затухающего осциллятора характерно уменьшение амплитуды и скорости колебаний с течением времени из-за трения или прочих процессов, вызывающих потерю кинетической энергии системы.

Все механические гармонические осцилляторы имеют несколько неотъемлемых свойств [8]:

1. наличие силы или иного воздействия, стремящегося вернуть систему в исходное положение - такое воздействие называется возвращающим;

2. возвращающее воздействие пропорционально перемещению исследуемого объекта;

3. на механический объект действует одновременно с его перемещением инерционная сила, пропорциональная ускорению;

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

Целью работы является разработка программного метода исследования изменения (с течением времени) параметров затухающего гармонического осциллятора с использованием библиотеки SciPy для языка Python [9].

Методы и материалы

На рисунке 1 представлен один из примеров схемы исполнения механического затухающего гармонического осциллятора.

Рис. 1. Пример физической модели исполнения затухающего гармонического осциллятора

На рисунке представлены все рассмотренные особенности такой схемы: наличие возвращающего воздействия F со стороны пружины на отклоненный от положения равновесия груз (а как известно, сила упругости пружины пропорциональна её деформации); перемещение груза характеризуется ускорением, равным первой производной от скорости по времени и второй

, дя д2 х ч

производной от перемещения по времени (а = — = —т-); между плоскостью, по

д (

которой двигается груз и самим грузом существует трение.

F

'?777Z77777777777777777777777Z7Zr7777Z7777777Z777777777777T'777775k^777777777'

X

Как известно, затухающий гармонический осциллятор описывается дифференциальным уравнением второго порядка [2]:

Л

х + 2ух + со0х = 0, (1)

где x = v - первая производная от перемещения по времени или скорость перемещения груза;

x = v = a - вторая производная от перемещения по времени или ускорение перемещения груза;

= 2лfQ - собственная угловая частота системы, рад/с (а f0 - линейная собственная частота системы, Гц);

2у = а/ m - постоянная (декремент) затухания, зависящий от определяемых экспериментально свойств системы гасить колебания а (эти свойства часто называют внутренним трением системы) и массы груза т.

Решение уравнения затухающего гармонического осциллятора классическими методами приводит к достаточно громоздким математическим выкладкам и не является наглядным. Применение современных численных методов позволяет решать приведённую задачу очень быстро, а в случае применения языка программирования Python создаваемый код отличается простотой (хотя и обладает некоторой специфичностью). Главное, что использование библиотеки SciPy в связке с Python позволяет исследовать поведение описанной динамической системы при любых описанных выше значениях её параметров и по результатам расчёта строить наглядные графики зависимостей между величинами, входящими в уравнение затухающего гармонического осциллятора. Это является необходимым при подборе параметров такой системы, обеспечивающих заданные, необходимые для практики, её свойства.

Программа, созданная для решения рассмотренных задач, состоит из нескольких алгоритмических блоков. Приведём краткое описание их программных функций и особенностей применения в том же порядке, в котором они представлены в программе на Python:

1. импорт модуля функций, осуществляющих численные методы интегрирования и решения ОДУ integrate из библиотеки научных вычислений SciPy, а также библиотеки для работы с массивами NumPy, без использования которой не обходится практически ни одно сложное вычисление, особенно с преобразованием данных;

2. импорт модуля построения графиков pyplot.matplotlib;

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

и Y;

4. замена дифференциального уравнения второго порядка на систему из двух однородных дифференциальных уравнений (ОДУ) первого порядка (для ускорения х = v и скорости х = v) и создание функции, включающей их в себя. Данные уравнение получены из (1) и выглядят следующим образом:

f0=v = x = -2yv-a^x, (2)

fl=V = X.

Функции f0, f1 будут использоваться затем в качестве параметров функции модуля integrate.scipy для решения рассматриваемого дифференциального уравнения, заменённого на два ОДУ;

5. создание равномерно распределённого одномерного массива из указанного количества элементов с заданными начальным и конечным значением - это значения переменной времени t, при которых решается представленная в п. 4 система дифференциальных уравнений (2);

6. задание начальных условий решаемой задачи - перемещения (координаты) и скорости груза при t=0;

7. применение метода решения ОДУ integrate.odeint библиотеки SciPy [1], в качестве параметров которого используются определённые в п. 4-6 уравнения и условия;

8. с помощью функций библиотеки Mathplotlib формирование окна вывода графика, содержащего два подокна (для вывода перемещения и

скорости груза в зависимости от времени), настройка взаимного расположения двух подокон графика, указание необходимых меток осей и графиков и т.д.;

9. вывод созданного окна графика на экран, и сохранение самого графика в формате рп§ на жёсткий диск.

Пример расчёта

Приведём результаты расчёта изменения во времени перемещения (координаты) и скорости груза затухающего гармонического осциллятора со следующими параметрами в (1): т0 = 5рад / с и у = 0.05; в качестве начальных условий примем отклонение груза, равное 100 и его скорость, равную нулю (то есть груз в начальном положении неподвижен). Затем «отпускаем» груз, программа по описанному выше алгоритму производит расчёт его колебаний и выводит зависимости, приведённые на рис. 2.

Рис. 2. Вычисленные зависимости координаты и скорости от времени для исследуемого

затухающего гармонического осциллятора

Рассмотрено изменение параметров на промежутке времени, равном 25 с. Так как т0 = 5 рад / с, можно найти период одного колебания груза

2л 2 • 3 14

Т =— =-:— = 1.26 с . То есть за 25 с должно произойти примерно 20

а 5

периодов колебаний, что и представлено на графиках. Отчётливо видно, что при заданном декременте затухания у = 0.05 амплитуда (перемещение) колебаний груза убывает достаточно быстро. Так же уменьшается и скорость движения груза, что объясняется тем, что он проходит всё меньший путь за одинаковое время, равное периоду.

Попробуем значительно снизить декремент затухания, приняв его в 100 раз меньше, чем в предыдущем примере, т.е. у = 0.0005. Полученные при этом с помощью программы результаты зависимостей перемещения и скорости груза от времени приведены на рис. 3.

координата скорость

10075 -50 -25 -х 0—25 --50 --75 --100 -

О 10 20 0 10 20

I I

Рис. 3. Вычисленные зависимости координаты и скорости от времени для затухающего гармонического осциллятора с малым декрементом затухания.

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

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

Заключение

Выполненное на языке Python с использованием библиотеки SciPy исследование является лишь одним из возможных простых наглядных примеров применения сочетания описанных программных продуктов для получения характеристик затухающего гармонического осциллятора. Практически более значимым и результативным является использование созданной программы при проектировании виброизоляторов и амортизаторов [7], когда необходимое затухание амплитуды колебаний происходит за определённое заданное время. Как видно из приведённого примера, для этого с помощью программы путём нескольких последовательных вычислений необходимо подобрать нужный декремент затухания у, который практически достигается подбором материала, конструкции и массы амортизатора или виброизолятора.

Отметим, что рассмотренная задача является чрезвычайно распространённой в механике, например, при проектировании таких элементов машин, как упругие муфты и демпферы, а также в других отраслях промышленности - например, при разработке электронных схем (только в данном случае рассматривается колебание значений не механических, а электрических величин). Большое внимание уделяется исследованию затухающих колебаний и при проектировании акустических систем, особенно высококачественных.

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

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

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

Библиографический список:

1. Бурков В.В., Бантыш И.В. Использование языка программирования Python для решения задач математического моделирования электромеханических систем. В сборнике: Современные проблемы автоматизации и управления в энергетике и машиностроении. Цикл «Автоматизация и управления» кафедры «Технологии машиностроения» (ТМС) Пензенского государственного технологического университета. 2015. С. 226234.

2. Громов Н.А., Куратов В.В. Гармонический осциллятор на плоскости Минковского. // Вестник Сыктывкарского университета. Серия 1: Математика. Механика. Информатика. 2018. № 2 (27). С. 10-23.

3. Ильичев В.Ю. Разработка программных средств увеличения изображений с использованием их фрактальных свойств. // Системный администратор. 2021. № 1-2 (218-219). С. 124-127.

4. Ильичев В.Ю. Использование алгоритма дифференциальной эволюции для решения оптимизационных задач. // Системный администратор. 2021. № 4 (221). С. 80-83.

5. Ильичев В.Ю. Разработка программы для исследования аттрактора Лоренца и ее использование. // Сложные системы. 2021. № 1 (38). С. 56-63.

6. Каменская И.В. Излучение затухающего гармонического осциллятора (методические аспекты). // Вестник Адыгейского государственного университета. Серия 4: Естественно-математические и технические науки. 2015. № 2 (161). С. 31-34.

7. Лазуткин Г.В., Антипов В.А., Вельмин С.А., Береснев В.Л. Особенности проектирования многоэлементных виброизоляторов втулочного типа. // Вестник СамГУПС. 2015. № 4 (30). С. 71-77.

8. Попов И.П. Математическое моделирование мультиинертного колебательного механизма. // Вестник Южно-Уральского государственного университета. Серия: Машиностроение. 2020. Т. 20. № 1. С. 22-29.

9. Таршхоева Ж.Т. Язык программирования Python. Библиотеки Python. // Молодой ученый. 2021. № 5 (347). С. 20-21.

10. Ilichev V.Y. Creation of software for research of Rossler attractor. // International Journal of Humanities and Natural Sciences. 2021. № 5-1 (56). С. 3135.

11. Nasonov Dmitry, Ilichev Vladimir, Raevsky Vladimir. The experimental study of elastic-hysteresis properties of rubber elements of sleeve-pin couplings. Vibroengineering PROCEDIA, Vol. 38, 2021, p. 193197. https://doi.org/10.21595/vp.2021.22055.

i Надоели баннеры? Вы всегда можете отключить рекламу.