Санкт-Петербургский Государственный Университет
Прикладная математика и информатика
Нелинейная динамика, информатика и управление
Романов Андрей Олегович
Эффект Зоммерфельда в
электромеханических системах
Бакалаврская работа
Научный руководитель:
к. ф.-м. н. Киселева М. А.
Рецензент:
к. ф.-м. н. Юлдашев Р. В.
Санкт-Петербург
2016
SAINT-PETERSBURG STATE UNIVERSITY
Department of Applied Cybernetics
Nonlinear Dynamics, Computer Science and Control
Andrey Romanov
Sommerfeld effect in electromechanical
systems
Graduation Thesis
Scientific supervisor:
PhD M. Kiseleva
Reviewer:
PhD R. Yuldashev
Saint-Petersburg
2016
Оглавление
Введение
4
1. Вибрационная установка с одним неуравновешенным ротором
6
1.1. Описание модели . . . . . . . . . . . . . . . . . . . . . . .
6
1.2. Моделирование системы . . . . . . . . . . . . . . . . . . .
7
1.3. Результаты моделирования . . . . . . . . . . . . . . . . . .
8
2. Вибрационная установка с двумя неуравновешенными
роторами
2.1. Описание модели . . . . . . . . . . . . . . . . . . . . . . .
2.2. Моделирование системы . . . . . . . . . . . . . . . . . . .
2.3. Результаты моделирования . . . . . . . . . . . . . . . . . .
11
11
12
14
Заключение
17
Список литературы
18
Приложение
2.4. Приложение 1 . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Приложение 2 . . . . . . . . . . . . . . . . . . . . . . . . .
20
21
23
3
Введение
Вибрационные установки с неуравновешенными роторами широко
используются в различных отраслях промышленности: горной промышленности, машино- и судостроении. Одной из основных характеристик
таких уcтановок является максимальная мощность электродвигателя.
При работе установки, максимальная мощность необходима на этапе
запуска и разгона двигателя. При снижении максимальной мощности,
а, как следствие, и номинальной, в системе может возникнуть так называемый эффект Зоммерфельда.
Эффект Зоммерфельда назван в честь немецкого физика Арнольда
Зоммерфельда, который первым наблюдал его на экспериментальной
установке в 1902 г. [1, 10]. Эффект представляет собой “застревание”
угловой скорости вращения ротора. В случаях, когда двигатель обладет небольшой мощностью, колебания основания влияют на ротор, в
следствии чего двигатель не может выйти на нормальный режим работы и угловая скорость начинает колебаться около некоторого значения.
Такие колебания могут навредить системе. К примеру, в железнодорожном транспорте мотор представляет собой установку, располагающуюся на упругом основании. Известны случаи, когда машинист локомотива не мог увеличить скорость движения машины, несмотря на
соответствующие действия с его стороны, и лишь при сильном увеличении подводимой мощности скорость скачкообразно увеличилась [9].
Стоит отметить, что при рассмотрении разных типов двигателей
(синхронных и асинхронных) получаются различные результаты в проявления эффекта Зоммерфельда, вплоть до его отсутствия, что стимулирует их дальнейшее изучение.
В работе [4] рассмотрен синхронный электродвигатель с асинхронным запуском и доказано, что эффект Зоммерфельда не проявляется.
В данном случае, стабилизирующие свойства двигателя препятствуют
возникновению эффекта.
Для борьбы с эффектом и его влиянием разрабатываются различные методы управления двигателем, такие как “метод двойного пуска”
4
[11], метод скоростного градиента [7] и другие методы [2, 5, 6].
В работе рассмотрены следующие электромеханические системы с
асинхронным двигателем: вибрационные установки с одним и двумя
неуравновешенными роторами. Проведено численное моделирование систем, в ходе которого был выявлен эффект Зоммерфельда при различных управляющих воздействиях(вращающих моментов двигателей).
5
1. Вибрационная установка с одним неуравновешенным ротором
1.1. Описание модели
Рассмотрим вибрационную установку, описанную в [2].
Рис. 1: Схема вибрационной установки с неуравновешаным ротором.
Ротор массы m, приводимый в движение электрическим двигателем, установлен на платформе массы M , скрепленной с неподвижным
основанием пружиной. Платформа может совершать горизонтальное
движение. Силу тяжести на ротор в этом случае учитывать не будем.
Опишем математическую модель этой системы.
Переменными системы являются z — смещение платформы относительно положения равновесия и θ — угол поворота ротора.
Для того чтобы описать динамику системы составим уравнения Лагранжа:
( )
d ∂T
∂T
−
= Qi ,
dt ∂ q˙i
∂qi
где T — кинетическая энергия системы, а qi — обобщенные координаты,
Qi — обобщенные силы. Обобщенными координатами q1 , q2 являются z, θ
соответственно.
6
Выпишем кинетическую энергию системы:
Для ротора:
J θ̇2
T0 =
,
2
где J — момент инерции ротора.
Для массы m:
) m(
)
m(
2
2
2
2 2
T1 =
(ż − lθ̇ cos θ) + (lθ̇ sin θ) =
ż + 2lż θ̇ cos θ + l θ̇ ,
2
2
где l — эксцентриситет ротора.
Для массы M :
M ż 2
T2 =
2
Общая кинетическая энергия системы T = T1 + T2 + T3
Обобщенные силы имеют вид:
Qz = −kz − k1 ż, где k — жесткость пружины, k1 — демпфирующий
фактор.
Согласно [10], обобщенная сила Qθ принимает следующий вид Qθ =
L(θ̇) − R(θ̇), где L — момент, передаваемый на ротор от электродвигателя, а R — момент сопротивления вращению ротора.
Можно принять [12, 14], что Qθ = L(θ̇) − R(θ̇) = u − kθ θ̇, где kθ —
сопротивление ротора, u — вращающий момент двигателя.
Выполняя операции дифференцирования, в конечном итоге приходим к следующим уравнениям системы:
(
)
2
(M + m)z̈ + k1 ż + ml θ̈ cos θ − θ̇ sin θ + kz = 0,
(1)
J θ̈ + kθ θ̇ + mlz̈ cos θ = u
1.2. Моделирование системы
Введя новые обозначения:
y = ż, η = θ̇,
7
приведем систему (1) к нормальной форме:
ż = y,
θ̇ = η,
1
η̇ = (K + u) ,
D (
(
))
1
(K + u)
2
ẏ = −
k1 y + kz + ml
cos θ − η sin θ
.
M
D
(2)
ml
(k1 y + kz + mlη 2 sin θ) cos θ, D =
Здесь M = M + m, K = −kθ η + M
2
2
J − (ml)
M cos θ
Численное моделирование системы проводилось на языке программирования Python2.7 с использованием библиотек Numpy и Scipy. Программный код представлен в Приложении 1.
Рис. 2: Нормальный режим работы Рис. 3: Нормальный режим работы
вибрационной установки. u = 0.49 вибрационной установки. u = 0.49
1.3. Результаты моделирования
При моделировании были взяты следующие параметры системы:
J = 0.014 кг·м2 , M = 10.5 кг, m = 1.5 кг, l = 0.04 м, kθ = 0.005 м,
k = 5300 Н/м, k1 = 5 кг/с.
8
На рис. 2, рис. 3 приведены результаты моделирования системы (1)
для нулевых начальных данных и для управляющего момента u = 0.49.
Этот результат соответствует выходу двигателя на нормальный режим
работы.
Рис. 4: Возникновение эффекта Зоммер-
Рис. 5: Возникновение эффекта Зоммерфельда. u = 0.48
фельда. u = 0.48
При меньшем параметре u в системе (1) происходит “захват” угловой
скорости. На рис. 4, рис. 5 результаты моделирования системы (1) для
нулевых начальных данных и для управляющего момента u = 0.48.
Однако, в системе (1) при управляющем моменте u = 0.48, наряду
с эффектом Зоммерфельда, присутствует и нормальный режим работы. Это отображено на рис. 6, где застревание просходит при нулевых
начальных данных, а при (z(0), θ(0), θ̇(0), ż(0)) = (0, 0, 15, 0) происходит
выход на нормальный режим.
На рис. 7 приведена бифуркационная диаграмма зависимости угловой скорости от параметра управления u. Синие маркеры — выход
двигателя на нормальный режим работы, красные маркеры — минимальные и максимальные значения установишихся колебаний при “захвате” угловой скорости. Как видно из диаграммы, начиная со значения
u = 0.12, в системе проявляется эффект Зоммерфельда. Также заметно, что с увеличением параметра управления увеличивается амплитуда
9
Рис. 6: Состояния системы при u = 0.48. Синяя траектория — выход на
нормальный режим работы. Красная — “захват” угловой скорости.
Рис. 7: Бифуркационная диаграмма
колебания. При параметрах u > 0.48 эффект не наблюдается.
10
2. Вибрационная установка с двумя неуравновешенными роторами
2.1. Описание модели
Рассмотрим установку, описанную в [6].
Рис. 8: Схема вибрационной установки с двумя неуравновешенными
роторами.
На рис. 8 представлена вибрационная установка состоящая из двух
роторов массы m, закрепленных на платформе, которая связана пружинами с неподвижным основанием. Роторы приводятся в движение
электрическими моторами.
Опишем математическую модель этой системы.
Переменными системы являются x, y — смещение платформы относительно положения равновесия и φ1 , φ2 — углы поворотов ротора.
Составим уравнения Лагранжа для вывода математической модели:
Обобщенными координатами qi , i = 1, . . . , 4 являются x, y, φ1 , φ2 соответственно.
Выпишем кинетическую энергию системы:
Для роторов:
J φ̇i 2
T0,i =
,
2
11
где J — момент инерции роторов, i = 1, 2
Для масс m:
T1,i =
)
m(
(ẋ − εφ̇i sin φi )2 + (ẏ + εφ̇i cos φi )2 ,
2
где ε — эксцентриситет роторов, i = 1, 2
Для массы M : T2 = M2 (ẋ2 + ẏ 2 )
Общая кинетическая энергия системы примет вид:
(
)
(
) J
M
T = T0,1 + T0,2 + T1,1 + T1,2 + T2 =
+ m ẋ2 + ẏ 2 + (φ̇1 2 + φ̇2 2 )−
2
2
− mεφ̇1 (ẋ sin φ1 − ẏ cos φ1 ) − mεφ̇2 (ẋ sin φ2 − ẏ cos φ2 )
Обобщенные силы имеют вид:
Qx = −cx x − kx ẋ,
Qy = −cy − ky ẏ − (2m + M )g, где c, cx — жесткости пружин по вертикальной и горизонтальной осям, kx , ky — демпфирующие факторы.
Qφ1 = M0 − kφ φ̇1 − mεg cos φ1 ,
Qφ2 = −M0 − kφ φ̇2 − mεg cos φ2 , где kφ — коэфицент сопротивления,
M0 — характеристика двигателя.
В результате, приходим к следующей автономной системе, описывающее динамику вибрационной установки:
J φ̈1 + kφ φ̇1 + mεg cos φ1 = mε(ẍ sin φ1 − ÿ cos φ1 ) + M0 ,
J φ̈2 + kφ φ̇2 + mεg cos φ2 = mε(ẍ sin φ2 − ÿ cos φ2 ) − M0 ,
(2m + M )ẍ + kx ẋ + cx x = mε(φ̈1 sin φ1 +
2
2
+φ̈2 sin φ2 + φ̇1 cos φ1 + φ̇2 cos φ2 ),
(3)
(2m + M )ÿ + ky ẏ + cy + (2m + M )g = mε(−φ̈1 cos φ1 −
−φ̈2 cos φ2 + φ̇1 2 sin φ1 + φ̇2 2 sin φ2 )
2.2. Моделирование системы
Для приведения системы (3) к нормальной форме, введем следующие обозначения: θ1 = φ̇1 , θ2 = φ̇2 , p = ẋ, q = ẏ.
12
После чего получаем следующую нормальную форму:
φ̇1 = θ1 ,
φ̇2 = θ2 ,
ẋ = p,
ẏ = q,
θ˙1 = C(P sin φ1 − Q cos φ1 ) + B1 ,
θ˙2 = C(P sin φ2 − Q cos φ2 ) + B2 ,
(4)
ṗ = P,
q̇ = Q.
Здесь
Q=
(
1
2
)
−CEmε
(D1 mε − kx p − cx x) + mεD2 − ky q − cy − Mg) ,
M1
M2 − (CEmε)
M1
1
P =
(mε (−CEQ + D1 ) − kx p − cx x) ,
M1
M = 2m + M,
mε
C=
,
J
M1 = M − mεC(sin2 φ1 + sin2 φ2 ),
M2 = M − mεC(cos2 φ1 + cos2 φ2 ),
E = sin φ1 cos φ1 + sin φ2 cos φ2 ,
A1 = kφ θ1 + mεg cos φ1 ,
A2 = kφ θ2 + mεg cos φ2 ,
−M0 − A1
,
B1 =
J
−M0 − A2
B2 =
,
J
D1 = B1 sin φ1 + B2 sin φ2 + θ12 cos φ1 + θ22 cos φ2 ,
D2 = B1 cos φ1 + B2 cos φ2 + θ12 sin φ1 + θ22 sin φ2 .
Численное моделирование системы также проводилось на языке программирования Python2.7 (Numpy, Scipy). Код представлен в Приложе-
13
нии 2.
2.3. Результаты моделирования
При моделировании были взяты следующие параметры системы:
J = 0.014 кг·м2 , M = 9 кг, m = 1.5 кг, ε = 0.04 м, kφ = 0.01 м,
cx = 1300 Н/м, c = 5300 Н/м, kx = ky = 5 кг/с.
На рис. 9 приведены результаты моделирования системы (3) для
нулевых начальных данных и для управляющего момента M0 = 0.64.
Этот результат соответствует выходу двигателей на нормальный режим
работы.
Рис. 9: Нормальный режим работы вибрационной установки. M0 =
0.64
При меньшем параметре M0 в системе (3) происходит “захват” угловой скорости. На рис. 10 результаты моделирования системы (3) для
нулевых начальных данных и для управляющего момента u = 0.63.
В системе (3) при управляющем моменте M0 = 0.63, наряду с эффектом Зоммерфельда, присутствует и нормальный режим работы. На
14
Рис. 10: Возникновение эффекта Зоммерфельда. M0 =
0.63
рис. 11 показаны состояния системы при нулевых начальных данных
(возникновение эффекта) и (φ1 (0), φ2 (0), x(0), y(0), φ̇1 (0), φ̇2 (0), ẋ(0), ẏ(0))T
= (0, 0, 0, 0, 2, 2, 0, 0)T (преодоление застревания и выход на нормальный
режим работы).
Построена бифуркационная диаграмма зависимости угловых скоростей роторов от параматра управления M0 . Внешние маркеры — выход
двигателей на нормальный режим работы, внутренние маркеры показывают максимальные и минимальные значения угловой скорости установившихся колебаний при возникновении эффекта Зоммерфельда. На
диаграмме отчетливо видно, что начиная с параметра M0 = 0.17, в
системе (3) проявляется эффект Зоммерфельда и с увеличением параметра управления увеличиваются и амплитуды колебаний угловой
скорости вращения. После преодоления параметра M0 = 0.63, эффект
перестает наблюдаться.
15
Рис. 11: Угловые скорости роторов при M0 = 0.63 Синие траектории
— выход на нормальный режим работы. Красные — “захват” угловой
скорости.
Рис. 12: Бифуркационная диаграмма
16
Заключение
В работе были промоделированы вибрационные установки с одним
неуравновешенным ротором, и с двумя неуравновешенными роторами,
описанные в [2, 6].
При рассмотрении вибрационной установки с одним неуравновешенным ротором была построена математическая модель и ее нормальная
форма.
С помощью компьютерного моделирования было установлено, что
эффект Зоммерфельда проявляется. Следует отметить, что для одного
и того же параметра управления и различных начальных данных, в
системе могут возникать различные режимы работы установки.
Дальнейшее исследование показало, что эффект проявляется для
достаточно широкого интервала управляющего момента, получены концы этого интервала и построена биффуркационная диаграмма. Проведено уточнение границы параметра преодоления застревания частоты
для параметра из [2].
Для моделирования системы был написан программный код на языке Python2.7.
Также была получена математическая модель для вибрационной
установки с двумя неуравновешенным роторами и ее нормальная форма.
В ходе численного анализа установлено, что в системе, наряду с
нормальным режимом работы, может возникать эффект Зоммерфельда. Выявлено что в системе имеются два режима работы установки
для одного и того же параметра управления и различных начальных
данных.
Дальнейшее моделирование с различными начальными данными показало, что эффект Зоммерфельда проявляется внутри интервала. Также для системы была построена бифуркационная диаграмма.
Реализован код численного моделирования системы на языке программирования Python2.7.
17
Список литературы
[1] Eckert M., Märker K. Arnold Sommerfeld. ––
Vol. 2. –– P. 1919–1951.
Springer, 2004. ––
[2] Fradkov A., Tomchina O., Tomchin A. Controlled passage through
resonance in mechanical systems // Journal of Sound and Vibration. ––
2011. –– Vol. 330. –– P. 1065–1073.
[3] Landau Rubin H., Páez Manuel J., Bordeianu Cristian C.
Computational Physics: Problem Solving with Python. –– John Wiley
& Sons, 2015.
[4] Leonov G.A. The passing through resonance of synchronous machine
on elastic platform // Proceedings of the 6th EUROMECH nonlinear
dynamics conference. –– 2008. –– P. 1–6.
[5] Tomchin D. Switching speed-gradient control of passage through
resonance for the two-rotor vibration unit. –– 2011.
[6] Tomchin D.A., Fradkov A.L. Control of passage through a resonance
area during the start of a two-rotor vibration machine // Journal of
Machinery Manufacture and Reliability. –– 2007. –– Vol. 36, no. 4. ––
P. 380–385.
[7] Tomchina O.P., Tomchin D.A., Fradkov A.L. Speedgradient control of
passing through resonance in one-and two-dimensional motion // 16th
IFAC World Congress Autom. Control / Citeseer. –– 2005.
[8] Айзерман М. А. Классическая механика. ––
математической литературы М., 2005.
Изд-во Физико-
[9] Блехман И.И. Что может вибрация // О «вибрационной механике»
и вибрационной технике. М. –– 1988.
[10] Блехман И.И. Вибрационная механика. –– Наука. Физматлит М,
1994.
18
[11] Гортинский В.В., Хвалов Б.Г. Об одном способе управления запуском колебательной системы с инерционным возбудителем. Механика машин. –– 1981.
[12] Гуськов A.М., Пановко Г.Я. Расчет периодических движений в задаче Зоммерфельда о взаимодействии механических систем с двигателем ограниченной мощности // Вестник научно-технического
развития. –– 2012. –– Vol. 6.
[13] Иванов-Смоленский А.В. Электрические машины. –– Б. м., 2004.
[14] Пановко Я.Г., Губанова И.И. Устойчивость и колебания упругих
систем: Современные концепции, парадоксы и ошибки. –– ”Наука”,
Глав. ред. физико-математической лит-ры, 1987.
19
Приложение
• В Приложении 1 представлен код для моделирования системы (1)
вибрационной установки с одним неуравновешенным ротором.
• В Приложении 2 представлен код для моделирования системы (3)
вибрационной установки с двумя неуравновешенными роторами.
20
2.4. Приложение 1
1
# -*- coding: utf-8 -*-
2
3
4
5
6
# Импортирование библиотек Numpy, Scipy
import numpy as np
from scipy import integrate
from matplotlib.pyplot import *
7
8
9
10
# Базовые параметры системы
g0 = 0.49
11
12
13
14
15
16
17
18
J
M
m
l
k0
k
k1
=
=
=
=
=
=
=
0.014
10.5
1.5
0.04
0.005
5300
5
19
20
21
22
23
24
25
# Правая часть системы
def f(t, x):
z
= x[0]
theta = x[1]
eta
= x[2]
= x[3]
y
26
27
n = len(x)
28
29
30
31
D = (J - (m * l)**2 * np.cos(theta)**2 / (m + M))
K = -k0 * eta + m * l * (k1 * y + k * z + m * l * eta**2 * np.sin(theta)) * \
np.cos(theta) / (m + M)
32
33
dxdt = np.zeros((n, 1))
34
35
36
37
38
39
dxdt[0]
dxdt[1]
dxdt[2]
dxdt[3]
=
=
=
=
y
eta
(K + g0) / D
-(k1 * y + k * z + m * l * ((K + g0) / D * np.cos(theta) - eta**2 * \
np.sin(theta))) / (m + M);
40
41
return dxdt
42
43
44
45
46
# Интервал моделирования
t_start = 0
t_final = 100
21
47
delta_t = 0.001
48
49
num_steps = np.floor((t_final - t_start) / delta_t) + 1
50
51
r = integrate.ode(f).set_integrator(’dopri5’)
52
53
54
55
56
# Начальные данные
initial_values = (z0, theta0, eta0, y0) = (0, 0, 0, 0)
r.set_initial_value(initial_values, t_start)
57
58
59
60
61
62
t
z
theta
eta
y
=
=
=
=
=
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
63
64
65
t[0]
= t_start
z[0], theta[0], eta[0], y[0] = initial_values
66
67
68
69
70
# Получение численного решения
cur_step = 1
while r.successful() and cur_step < num_steps:
r.integrate(r.t + delta_t)
71
72
73
t[cur_step] = r.t
z[cur_step], theta[cur_step], eta[cur_step], y[cur_step] = r.y
74
75
cur_step += 1
76
77
78
79
80
81
82
83
84
# Отрисовка результата
fig = figure()
ax1 = subplot(111)
ax1.plot(t, eta)
ax1.set_xlim(t_start, t_final)
ax1.set_xlabel(’t’)
ax1.set_ylabel(’d theta / dt’)
ax1.grid(’on’)
85
86
fig.savefig(’result.png’)
22
2.5. Приложение 2
1
# -*- coding: utf-8 -*-
2
3
4
5
6
# Импортирование библиотек Numpy, Scipy
import numpy as np
from scipy import integrate
from matplotlib.pyplot import *
7
8
9
10
# Базовые параметры системы
g = 9.81
11
12
13
14
15
16
17
18
19
20
J
M
m
eps
k_phi
c
c_x
k_x
k_y
=
=
=
=
=
=
=
=
=
0.014
9
1.5
0.04
0.01
1300
5300
5
5
21
22
M_0 = 0.63
23
24
25
26
27
28
29
30
31
32
33
# Правая часть системы
def f(t, X):
phi_1
= X[0]
phi_2
= X[1]
= X[2]
x
y
= X[3]
theta_1 = X[4]
theta_2 = X[5]
p
= X[6]
q
= X[7]
34
35
n = len(X)
36
37
dxdt = np.zeros((n, 1))
38
39
40
####
MM = 2 * m + M
41
42
C = m * eps / J
43
44
MM_1 = MM - m * eps * C * (np.sin(phi_1)**2 + np.sin(phi_2)**2)
45
46
MM_2 = MM - m * eps * C * (np.cos(phi_1)**2 + np.cos(phi_2)**2)
23
47
E = np.sin(phi_1) * np.cos(phi_1) + np.sin(phi_2) * np.cos(phi_2)
48
49
A_1 = k_phi * theta_1 + m * eps * g * np.cos(phi_1)
50
51
A_2 = k_phi * theta_2 + m * eps * g * np.cos(phi_2)
52
53
B_1 = (-M_0 - A_1) / J
54
55
B_2 = (M_0 - A_2) / J
56
57
D_1 =
58
B_1 * np.sin(phi_1) + B_2 * np.sin(phi_2) + theta_1**2 * np.cos(phi_1) \
+ theta_2**2 * np.cos(phi_2)
59
60
D_2 = - B_1 * np.cos(phi_1) - B_2 * np.cos(phi_2) + theta_1**2 * np.sin(phi_1) \
+ theta_2**2 * np.sin(phi_2)
####
61
62
63
64
q_dot = 1.0 / (MM_2 - (C * E * m * eps)**2 / MM_1) * ((m * eps) / MM_1 * \
(D_1 * m * eps - k_x * p - c_x * x) - k_y * q - c * y - MM * g)
p_dot = 1.0 / MM_1 * (m * eps * (-C * E * (q_dot) + D_1) - k_x * p - c_x * x)
65
66
67
68
dxdt[0]
dxdt[1]
dxdt[2]
dxdt[3]
dxdt[4]
dxdt[5]
dxdt[6]
dxdt[7]
69
70
71
72
73
74
75
76
=
=
=
=
=
=
=
=
theta_1
theta_2
p
q
C * ((p_dot) * np.sin(phi_1) - (q_dot) * np.cos(phi_1)) + B_1
C * ((p_dot) * np.sin(phi_2) - (q_dot) * np.cos(phi_2)) + B_2
p_dot
q_dot
77
78
79
80
return dxdt
81
82
83
84
85
86
87
# Интервал моделирования
t_start = 0
t_final = 100
delta_t = 0.001
88
89
num_steps = np.floor((t_final - t_start) / delta_t) + 1
90
91
r = integrate.ode(f).set_integrator(’dopri5’)
92
93
t
= np.zeros(num_steps)
94
24
95
96
97
98
99
100
101
102
phi_1
phi_2
x
y
theta_1
theta_2
p
q
=
=
=
=
=
=
=
=
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
np.zeros(num_steps)
103
104
105
106
107
# Начальные данные
initial_values = (phi_1_0, phi_2_0, x_0, y_0, theta_1_0, theta_2_0, p_0, q_0) \
= (0, 0, 0, 0, 2, 2, 0, 0)
108
109
r.set_initial_value(initial_values, t_start)
110
111
112
t[0] = t_start
phi_1[0], phi_2[0], x[0], y[0], theta_1[0], theta_2[0], p[0], q[0] = initial_values
113
114
115
116
117
118
# Получение численного решения
k = 1
while r.successful() and k < num_steps:
r.integrate(r.t + delta_t)
119
120
121
t[k] = r.t
phi_1[k], phi_2[k], x[k], y[k], theta_1[k], theta_2[k], p[k], q[k] = r.y
122
123
k += 1
124
125
126
127
128
129
130
131
132
133
134
135
# Отрисовка результата
fig = figure()
ax1 = subplot(111)
ax1.plot(t, theta_1)
ax1.plot(t, theta_2)
ax1.set_xlim(t_start, t_final)
ax1.set_yticks(np.arange(-100,100,step=20))
ax1.set_xlabel(’t’, fontsize=14)
ax1.set_ylabel(r’$\frac{d\varphi_{i}}{dt}$’, fontsize=20)
ax1.grid(’on’)
136
137
fig.savefig(’figure-2.png’)
25
Отзывы:
Авторизуйтесь, чтобы оставить отзыв