Академический Документы
Профессиональный Документы
Культура Документы
На правах рукописи
Научный руководитель
кандидат технических наук,
доцент Покацкий В.А.
Самара 2014 г.
2
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 4
Глава 1 ОСОБЕННОСТИ РАБОТЫ БЕССТЫКОВОГО ПУТИ 8
1.1 Общие сведения о бесстыковом пути 8
1.2 Вопросы терминологии в области эксплуатации бесстыкового
пути 13
Выводы по главе 1 17
Глава 2 МОДЕЛИРОВАНИЕ РАБОТЫ БЕССТЫКОВОГО ПУТИ
РАЗЛИЧНЫМИ МЕТОДАМИ 19
2.1 Существующие методы аналитической оценки устойчивости бесстыкового
пути, анализ их преимуществ и недостатков 19
2.2 Краткое описание сущности метода конечных элементов 29
2.3.Конечно-элементная модель температурно-напряженной конструкции пути,
ее отличия и возможности 37
2.4 Оценка устойчивости против выброса бесстыкового пути для различных
условий эксплуатации в среде конечно-элементного
анализа 40
2.5 Экспериментальное моделирование процесса потери устойчивости
на опытном полигоне СамГУПС 46
Выводы по главе 2 52
Глава 3 РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ МОДЕЛИРОВАНИЯ
БЕССТЫКОВОГО ПУТИ В СРЕДЕ КОНЕЧНО-ЭЛЕМЕНТНОГО
АНАЛИЗА 54
3.1 Расчет максимально допустимых превышений температур рельса
относительно температуры закрепления при наличии в пути неровности,
совпадающей по форме с критической 54
3.2 Оценка устойчивости бесстыкового пути при отступлениях от норм
содержания в плане с применением корректирующего
коэффициента 59
3
ВВЕДЕНИЕ
Актуальность работы. Бесстыковой путь на сегодняшний день
является наиболее прогрессивной конструкцией верхнего строения пути и
расширение полигона его применения является одной из приоритетных задач
для исследователей. Согласно распоряжению правительства Российской
Федерации № 877-р от 17.06.2008 «О стратегии развития железнодорожного
транспорта в Российской федерации до 2030 года дальнейшее развитие
инфраструктуры железнодорожной отрасли потребует увеличения
протяженности бесстыкового пути на 16 тыс. км. Однако, несмотря на ряд
неоспоримых преимуществ перед звеньевым, бесстыковой путь все же имеет
особенность, ограничивающую полигон его расширения: возникновение
значительных продольных усилий в рельсовых плетях при изменении
температуры рельсов относительно температуры закрепления. Долгое время
укладка бесстыкового пути в кривых малых радиусов была ограничена именно
из-за этого: радиус менее 350 метров считался не обеспечивающим
достаточную устойчивость против выброса.
Дальнейшее расширение полигона бесстыкового пути, особенно в
районах с суровыми климатическими условиями и регионами со
значительными амплитудами температур, не представляется без разработки
автоматизированных средств оценки состояния пути по критерию обеспечения
устойчивости против выброса. Современные комплексы мониторинга
железнодорожного пути позволяют контролировать параметры, значительно
влияющие на максимально допустимые превышения температуры рельсов
относительно температуры закрепления, такие как отступления от норм
содержания пути в плане, а также отступления от норм содержания балластного
слоя. В настоящее время становится возможным по результатам проходов
вагонов-путеизмерителей давать фактическую оценку состояния пути, однако
общепризнанного алгоритма количественной оценки запаса устойчивости
против выброса, применяемого на сегодняшний день на практике,
5
Выводы по главе 1
1. Рассмотрены основные фундаментальные определения, на
основании которых строятся все дальнейшие рассуждения.
2. Обозначены основные предпосылки становления бесстыкового
пути как в России, так и за рубежом.
3. Показаны основные преимущества бесстыковой конструкции пути
над звеньевой.
18
Рисунок 2.1 - Расчетная схема пути при использовании уравнения упругой оси
23
( )
( )
| |
( )∫ [ ( )] (1)
( )
(√ )
√
√
√
( ( ) ) (2)
√
√
( ( ( ) ))
√
(√ )
W q udV p udS
V S
U dV , где
V
33
1 ui u j
где u ei e j
2 x j xi
(9)
1 Ф Ф
ij ik jk
k
xi
(10)
2 x j
1 Фik Ф jk
Ф
где {B} { } (12)
2
j x xi
- матрица, связывающая деформации с узловыми смещениями.
Связь между компонентами тензора напряжений и деформаций для
упругого тела выражается законом Гука:
ij Dijkl kl , (13)
где Dijki - упругие константы тела, i, j, k, 1 = 1, 2, 3, или в матричной
форме
{ } {D}{ } (14)
34
i Фi DФ j i dV q Фi dV p Фi dS 0, (17)
Ve Ve Se
где i, j = 1, 2, ...N.
Поскольку i - произвольные, отличные от нуля величины, то для
выполнения последнего равенства необходимо, чтобы все выражения в
фигурных скобках обращались в ноль. Из этих условий получаем систему
линейных алгебраических уравнений, выражающую условия равновесия
конечного элемента
{K}{} { f }, (18)
где обозначено
Fi i F , i 1, 2, ...
кр
(28)
37
x
аппроксимационное уравнение вида y B arctg ;
b
- продольное сопротивление промежуточных рельсовых скреплений,
x
аппроксимационное уравнение вида y B arctg ;
b
- сопротивление повороту рельса относительно шпал в горизонтальной
плоскости,
аппроксимационное уравнение вида R q M arctg ;
r
где y - величина приложенного усилия,
х - перемещение под действием приложенного усилия,
R - величина сопротивления повороту рельса относительно шпал в
горизонтальной плоскости,
φ - величина поворота рельса относительно шпал,
B, b, q, M, r - коэффициенты, получаемые при аппроксимации
экспериментальных данных [1, 31, 88, 89].
Для апробации модели, а также проверки результатов расчета был
выполнен анализ устойчивости бесстыкового пути при использовании
некоторых допущений, а именно: в модели учтены только силы поперечного
сопротивления балластного слоя и сопротивление кручению рельсов
относительно скреплений (данная конфигурация соответствует аналитической
модели профессора А.Я. Когана).
Коэффициенты аппроксимации, используемые в модели, соответствуют
криволинейному участку бесстыкового пути на щебеночном балласте (путь
поднят на чистый балласт, ящики засыпаны) со скреплениями ЖБР при затяжке
клеммных болтов - 200 Н·м.
Результаты расчетов представлены в табличной форме (таблица 2.1).
Величина критической температуры конечно-элементной модели указывается
40
0,45
0,4
0,35
Перемещение, м
0,3
0,25
0,2
0,15
0,1
0,05
0
0 20 40 60 80 100 120 140
Температура, град
0,0035
0,003
0,0025
Перемещение, м
0,002
0,0015
0,001
0,0005
0
0 20 40 60 80 100 120 140
Температура, град
0,45
0,4
0,35
0,3
Стрела изгиба, м
0,25
0,2
0,15
0,1
0,05
0
-0,05 0 10 20 30 40 50
-0,1
Протяженность участка, м
0,4
0,3
Стрела изгиба, м
0,2
0,1
0
0 10 20 30 40 50
-0,1
-0,2
Протяженность участка, м
Выводы по главе 2
1. Выполнен анализ существующих методик по определению
максимально допустимых превышений температуры относительно
температуры закрепления.
2. Показаны основные преимущества и недостатки рассмотренных
методик, обозначена область применения каждой из них.
3. Описана сущность метода конечных элементов как универсального
инструмента расчета напряженно-деформированного состояния конструкций.
4. В среде конечно-элементного моделирования разработана модель
бесстыкового пути, позволяющая учесть основные наиболее значимые
нелинейные силы сопротивления перемещению рельсошпальной решетки, а
также позволяет оценить максимально допустимое превышение температуры
при отступлениях от норм содержания пути, отступлениях от норм содержания
балластной призмы, а также при сочетаниях вышеуказанных отступлений.
5. Проведен сравнительный анализ результатов, полученных в среде
конечно-элементного моделирования с помощью упрощенной модели и
посредством метода дифференциальных уравнений по методике А.Я. Когана.
Выявлена высокая сходимость результатов, что говорит о достаточной
адекватности разработанной модели и возможности расширения сферы ее
применения.
6. Выполнен анализ устойчивости участка бесстыкового пути
посредством разработанной модели с учетом следующих нелинейных сил
сопротивления:
поперечное сопротивление балласта;
53
0,025
0,02
Амплитуда неровности, м
0,015
0,01
0,005
0
-6 -4 -2 0 2 4 6
-0,005
Длина неровности, м
Рисунок 3.1 - Форма критической неровности при амплитуде 20 мм
0,2
0,18
0,16
0,14
Стрела изгиба, м
0,12
0,1
0,08
0,06
0,04
0,02
0
0 10 20 30 40 50 60 70
Превышение температуры рельсов относительно температуры
закрепления, °С
160
140
Радиус кривой,
120 м
250
100
400
80 600
1000
60
40
20
0
0 5 10 15 20
Амплитуда неровности, мм
55,00
град 50,00
45,00
40,00
35,00
2 6 10 14 18 22 26 30
Длина неровности, м
65,00
Критическое преышение температуры,
60,00
Радиус 500 м, стрела изгиба 15 мм
55,00
град
50,00
45,00
40,00
2 6 10 14 18 22 26 30
Длина неровности, м
1,9
Корректирующий коэффициент
1,85
1,8
1,75
1,7
1,65
1,6
1,55
1,5
250 450 650 850 1050 1250 1450 1650 1850
Радиус кривой, м
60
температуры
50
40
30
20
0 5 10 15 20 25
Количество шпал с отсутствием плеча балластной призмы
140
130
120
температуры
110
100
90
80
70
0 5 10 15 20 25
Количество шпал с отсутствием плеча балластной призмы
Рисунок 3.11 - Форма потери устойчивости кривой радиусом 800 метров при
наличии 25 шпал без плеча балластной призмы
Рисунок 3.12 - Форма потери устойчивости кривой радиусом 1200 метров при
наличии 19 шпал без плеча балластной призмы
Рисунок 3.13 -Форма потери устойчивости кривой радиусом 2000 метров при
наличии 15 шпал без плеча балластной призмы
Отсутствие Сопротивление
Балластный слой Отсутствие плеча
балласта в шпалы только по
без отступлений балластной призмы
шпальном ящике подошве
2,5
Плотность верятности
2
1,5
0,5
0
0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6
Значения случайной величины
3,5
3
Плотность верятности
2,5
1,5
0,5
0
0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6
Значения случайной величины
2 - Классическое бета-распределение:
1 x u 1
функция распределения F ( x) t (1 t ) v 1 dt , (33)
В(u, v) 0
где B(u, v) - бета-функция;
1
плотность вероятности f ( x) x u 1 (1 x) v 1 ; (34)
В(u, v)
u 1
мода xˆ ; (35)
uv2
коэффициент u сил сопротивлений балластного слоя - 10;
коэффициент v сил сопротивлений балластного слоя - 2;
коэффициент u сил сопротивления промежуточных рельсовых скреплений - 12;
коэффициент v сил сопротивления промежуточных рельсовых скреплений - 3;
Генерирование случайных чисел, распределенных по классическому бету-
распределению проводится посредством следующего отношения:
S1
x (36)
S1 S 2
4,5
2,5
1,5
0,5
0
0 0,2 0,4 0,6 0,8 1 1,2
Значения случайной величины
4,5
3,5
Плотность вероятности
2,5
1,5
0,5
0
0 0,2 0,4 0,6 0,8 1 1,2
Значения случайной величины
0,2
0,18
0,16
Плотность вероятности
0,14
0,12
0,1
0,08
0,06
0,04
0,02
0
0 0,2 0,4 0,6 0,8 1 1,2
Значения случайной величины
0,4
0,35
Плотность вероятности
0,3
0,25
0,2
0,15
0,1
0,05
0
0 0,2 0,4 0,6 0,8 1 1,2
Значения случайной величины
сопротивления промежуточных
скреплений повороту рельсов
промежуточных скреплений
балластного слоя
скреплений
Радиус
Закон распределения
случайной величины
27,8·х+1,22·arctg(x/0.0016)
3963,25· arctg(x/0,000359)
3202,83·arctg(x/0,000861)
Нормальный
15577,6· arctg(x/0,00276)
0,15 0,12
400 Бета 10 2 12 3
Минимального
30 2 20 1
значения
Выводы по главе 3
1. С помощью разработанной модели в среде конечно-элементного
моделирования получены формы отступлений в плане, наиболее значительно
ослабляющие устойчивость против выброса бесстыкового пути. Формы
неисправностей представляют собой интервалы длин и амплитуд, сочетание
которых приводит к уменьшению максимально допустимых превышений
температур рельсов относительно температуры закрепления, особенно в
кривых больших радиусов.
2. Разработана методика определения критических продольных
сжимающих сил и соответствующих им критических температур для
92
[ ] (43)
[ ]
В качестве значения принята сжимающая продольная сила при
величине амплитуды неровности 10 мм длиной 30 метров, что соответствует I-й
степени неисправности пути. Как известно, к первой степени относятся
неисправности, не требующие выполнения работ по их устранению, то есть
наличие подобных отступлений в действующем пути носит массовый характер.
Если величина коэффициента превышает единицу, то данная конфигурация
пути считается температурно устойчивой и значение коэффициента
принимается равной единице.
Определение значений возможно следующими методами:
метод натурных экспериментов;
аналитический метод.
До настоящего момента метод натурных экспериментов применялся для
нормирования в области устойчивости бесстыкового пути, как единственно
возможный метод, позволяющий определять критические значения продольных
сжимающих сил.
Для приведения результатов расчетов в среде конечно-элементного
анализа к экспериментальным данным применяется методика, описанная в
работе Сквозняков П.Е., выполненной под руководством Суслова О.А. [94].
Поскольку самым массово контролируемым, хорошо исследованным
параметром, влияющим на устойчивость плетей, является неровность пути в
плане, то на первом этапе целесообразно выполнить расчеты критических
продольных сжимающих сил и соответствующих им поправочных
коэффициентов с учетом влияния именно этого параметра.
Расчет максимально допустимых превышений температур при наличии в
пути ослабляющего устойчивость фактора в виде локальной неровности
производится в среде конечно-элементного моделирования с помощью
разработанной модели.
99
5 1,000 0,935 0,913 0,870 0,848 0,965 0,889 0,844 0,822 0,800
6 0,989 0,935 0,891 0,848 0,848 0,960 0,878 0,844 0,800 0,800
7 0,989 0,913 0,891 0,848 0,826 0,960 0,867 0,822 0,800 0,778
8 0,989 0,913 0,870 0,826 0,804 0,960 0,867 0,822 0,800 0,756
9 0,989 0,913 0,870 0,826 0,804 0,970 0,867 0,822 0,800 0,756
10 0,989 0,913 0,870 0,826 0,804 0,970 0,889 0,822 0,800 0,756
11 1,000 0,935 0,891 0,848 0,804 0,990 0,889 0,867 0,800 0,756
12 1,000 0,935 0,891 0,848 0,804 0,980 0,894 0,867 0,800 0,756
15 1,000 0,957 0,913 0,870 0,826 1,000 0,931 0,889 0,844 0,778
20 1,000 1,000 0,957 0,935 0,870 1,000 1,000 0,944 0,900 0,833
30 1,000 1,000 1,000 1,000 0,978 1,000 1,000 1,000 1,000 0,956
100
Выводы по главе 4
1. Рассмотрены существующие методики определения напряженно-
деформированного состояния рельсовых плетей, а также методика определения
предвыбросного состояния пути. Обозначены их основные преимущества и
недостатки.
2. Разработана методика и алгоритм определения запаса устойчивости
в любом сечении пути с помощью корректирующего коэффициента,
представляющего собой частное критической сжимающей продольной силы
для соответствующей конструкции пути в текущем состоянии и
критической сжимающей продольной силы для соответствующей конструкции
[ ] [ ]
пути в нормативном состоянии . В качестве значения принята
сжимающая продольная сила при величине амплитуды неровности 10 мм
длиной 30 метров, что соответствует I-й степени неисправности пути. Величина
запаса устойчивости определяется выражением [∆tу] - [∆tу]факт , где [∆tу] -
допускаемое повышения температуры рельсовых плетей относительно
температуры их закрепления в рассматриваемом сечении пути [15], а
[∆tу]факт - максимально допустимое превышение температуры рельсов
относительно температуры закрепления при наличии в пути ослаблений,
влияющих на устойчивость бесстыкового пути.
3. Предложено ранжирование пути по результатам проверки
автоматизированными средствами в зависимости от фактического значения
запаса устойчивости пути, что позволяет выявить участки с наиболее
неблагоприятными условиями эксплуатации с точки зрения обеспечения
температурной устойчивости.
4. Разработана методика определения запаса устойчивости для любой
прогнозируемой температуры рельсовых плетей, которая основывается на
величине корректирующего коэффициента и величине температуры
закрепления.
115
ЗАКЛЮЧЕНИЕ
Проведенные теоретические и экспериментальные исследования
позволили получить следующие научные выводы и практические результаты:
1. На основании анализа существующей терминологии в области
эксплуатации бесстыкового пути, применяемой в наиболее известных
источниках, изложена терминология, используемая в данной работе и
предлагаемая для дальнейшего использования в технической литературе,
посвященной железнодорожному пути.
2. На основании анализа преимуществ и недостатков существующих
аналитических способов определения устойчивости против выброса
разработана и апробирована конечно-элементная модель бесстыкового пути,
учитывающая все наиболее значимые силы сопротивления рельсошпальной
решетки перемещениям под действием продольных усилий. Сравнительный
анализ результатов, полученных посредством разработанной модели,
показывает хорошую сходимость с данными, полученными с помощью
наиболее известных методик по определению максимально допустимых
превышений температуры относительно температуры закрепления.
3. Проведен эксперимент по созданию критических продольных
усилий в рельсовых плетях с помощью гидравлических цилиндров, а также с
помощью разработанной модели выполнен аналитический расчет максимально
допускаемых продольных усилий. Полученные формы искривления имеют
достаточно близкие значения, что говорит об адекватности получаемых с
помощью конечно-элементной модели результатов как при различных видах
нагружения, так и при сочетании различных начальных условий: величины
сопротивлений перемещениям рельсошпальной решетки и геометрии пути.
4. Проведен анализ влияния отступлений от норм содержания в плане
на устойчивость бесстыкового пути. Показаны формы локальных отступлений,
совпадающие по форме с критическими для конкретного сочетания факторов,
то есть такие величины длины и стрелы изгиба неровности, при которых
117
СПИСОК ЛИТЕРАТУРЫ
1. Бесстыковой путь /Альбрехт В. Г., Виногоров Н. П., Зверев Н. Б. и
др. под редакцией В.Г. Альбрехта, А.Я. Когана, - М.: Транспорт, 2000,
408 с.
2. Рекомендации по терминологии «Бесстыковой
путь»/ Организация сотрудничества железных дорог (ОСЖД), II издание, 2007.
3. Новакович В.И. Становление бесстыкового пути / Путь и путевое
хозяйство. 2003. - №9. - 17-19 с.
4. Крейнис З. Л. Бесстыковой путь. Как устроен и работает
бесстыковой путь - М.: Маршрут, 2005.
5. Бромберг Е. М. Перспективы и проблемы развития бесстыкового
пути на железных дорогах СССР // Тр. ВНИИЖТ. Вып. 244. М.:
Трансжелдориздат, 1962. С. 5 - 18.
6. Экспериментальное изучение устойчивости бесстыкового пути //
Тр. ВНИИЖТ. Вып. 244. М.: Трансжелдориздат, 1962. С. 129 - 163.
7. Бромберг Е. М. Устойчивость бесстыкового пути. М.: Транспорт,
1964.66 с.
8. Бромберг Е. М., Зверев Н. Б. Бесстыковой путь в кривых. М.:
Транспорт, 1968. С. 3-31.
9. Бромберг Е. М. Устойчивость бесстыкового пути под
поездами//Совершенствование конструкции и эксплуатации бесстыкового пути:
Тр. ВНИИЖТ. М.: Транспорт, 1988. С. 13 - 20.
10. Першин С. П. Метод расчета устойчивости бесстыкового пути // Тр.
МИИТ. Вып. 147: Путь и путевое хозяйство. М., 1962. С. 28 - 97.
11. Вериго М.Ф. Новые методы в установлении норм устройства и
содержания бесстыкового пути/ ВНИИЖТ.- М.:Интекст, 2000, 184 с.
12. Воробьев В.Б. Бесстыковой путь / Путь и путевое хозяйство. 2009. -
№5. - 2-3 с.
120
различных условий эксплуатации: сб. науч. тр. ОАО «ВНИИЖТ» / под ред.
А.Ю. Абдурашитова. - М.: Интекст, 2013. - С. 9 - 25.
79. Безруков М.В. Соединение рельсовых плетей бесстыкового пути со
стрелочными переводами: Дисс. к-та техн. наук -М., 1999. - 131 с.
80. Безруков М.В., Исаенко Э.П., Каимбаев А.К. Buckling-
устойчивость бесстыкового пути. Деп. Гипротранстэи, 1997. - 42 с.
81. Безруков М.В., Задорожный Л.И., Исаенко Э.П., Русин А.Н.
Совершенствование конструкции и технологии текущего содержания
бесстыкового пути: Пособие. Н. Новгород, изд. НГМА, 1999. - 112 с.
82. Конечно-элементные модели расчета железнодорожного пути на
прочность и устойчивость: Сб. ст. / Ауезбаев Е.Т., Безруков М.В., Васильев
А.Б., Васильев С.П., Исагалиев Е.Б. Исаенко Э.П. Под ред. Э.П. Исаенко.
Москва, Гудок, 1997. - 136 с.
83. NX Nastran for FEMAP Analysis Help: Basic Structural Analysis
84. NX Nastran for FEMAP Analysis Help: Nonlinear Analysis
85. Алфутов Н. А. Основы расчета на устойчивость упругих систем.
«Машиностроение», 1978. - 312 с.
86. Флетчер К. Численные методы на основе метода Галеркина. - М.-
Мир - 1988.
87. Зенкевич О., Чанг И. Метод конечных элементов в теории
сооружений и в механике сплошных сред. М.: Мир, 1974. 239 с.
88. Баклагин Е.С., Лебедев А.В. Сопротивление повороту рельса
относительно шпалы в горизонтальной плоскости// Вестник ВНИИЖТ 2005, №
4-с. 37-39.
89. Лебедев А.В. Экспериментальное определение сопротивления
промежуточных скреплений повороту рельсов относительно шпал// Вестник
ВНИИЖТ 2006, № 6,- с. 42-44.
127
ПРИЛОЖЕНИЕ А
130
ПРИЛОЖЕНИЕ Б
Листинг макроса по добавлению вариативного фактора формирования
исходных данных. Закон распределения сил сопротивления – классическое
бета-распределение с параметрами u и v
Sub Main
Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim CS As CSys
Set CS = App.feCSys
Dim pro As Prop
Set pro=App.feProp
Dim func As Function
Set func=App.feFunction
Dim nam As String
Dim v As Variant
Dim row As Integer
Dim colrow As Integer
Dim ind As Integer
Dim x() As Double
Dim Count As Long
Dim Nodes As Variant
Dim cu As Curve
Set cu = App.feCurve
Dim pt As femap.Point
Set pt = App.fePoint
Dim nd As femap.Node
Set nd = App.feNode
Dim el As femap.Elem
Set el = App.feElem
Dim elemID As Long
Dim i As Long
Dim j As Long
Dim nodes1 As Integer
Dim nodes2 As Integer
Dim orient As Variant
Dim vec As Variant
Dim s As Set
Set s = App.feSet
Dim sluch As Variant
Const pi = 4*Atn(1)
Dim ku As Variant
Dim kv As Variant
Dim s1 As Variant
Dim s2 As Variant
131
s.AddAll(FT_ELEM)
App.feDeleteMesh(FT_ELEM,el.setID,False)
s.Clear
s.AddAll(FT_NODE)
App.feDeleteMesh(FT_NODE,nd.setID,False)
App.feDelete(7,nd.setID)
s.Clear
s.AddRange(5,pro.NextEmptyID,1)
App.feDelete(FT_PROP,pro.setID)
App.feFileRebuild(False,True)
s.Clear
s.AddAll(FT_FUNCTION_DIR)
App.feDelete(FT_FUNCTION_DIR,func.setID)
App.feFileRebuild(False,True)
s.Clear
R=dlg.TextBox1
l=dlg.TextBox2
ku1=dlg.TextBox3
kv1=dlg.TextBox4
ku2=dlg.TextBox5
kv2=dlg.TextBox6
a=(180*(l/2))/(pi*R)
ReDim x(2)
CS.type =FCS_CYLINDRICAL
CS.x=R
CS.y=0
CS.z=0
CS.rotz=180
CS.rotx=90
CS.Put(3)
'НЕЙТРАЛЬНАЯ ОСЬ
ReDim x(2)
x(0)=R
x(1)=-a
x(2)=0
vec=x
App.feCoordTransform(3, vec, 1, start)
ReDim x(2)
x(0)=R
x(1)=0
x(2)=0
center=x
v=x
App.feArcAngleCenterStart(-2*a, center, start, True)
App.feGenerateRadialCopy(FT_CURVE,-1,v,0.8,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,-0.8,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,0.810225,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,-0.810225,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,-1.35,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,-1.55,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,1.55,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,1.35,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,-0.330225,False)
App.feGenerateRadialCopy(FT_CURVE,-1,v,0.330225,False)
ReDim x(2)
x(0)=0
x(1)=-1
x(2)=0
v=x
s.AddRange(4,11,1)
App.feMoveBy(FT_CURVE,cu.setID,False,0.2045,v)
App.feViewRegenerate(0)
'РАЗБИЕНИЕ НА ЭЛЕМЕНТЫ
cu.Get (1)
cu.Nodes(True, True, Count, Nodes)
For i=2 To 11
App.feMeshSizeCurve(-i,Count-1, 0, 0, 0, 0, 1, 0, 1, 0, False)
App.feMeshCurve(-i, False, 0, v)
Next i
App.feViewRegenerate(0)
s.Clear
Dim u As Variant
Dim y As Variant
'БАЛЛАСТ 1
cu.Get (9)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
pro.type=FET_L_SPRING
pro.flag(3)=1
ReDim u(4001)
ReDim y(4001)
j=0
u(0)=-0.02
s1=Rnd()^(1/ku1)/2
s2=Rnd()^(1/kv1)/2
sluch=s1*(ku1*2+kv1*2-2)/((s1+s2)*(ku1*2-1))
While j<4001
y(j)=sluch*3202.83*Atn(u(j)/0.000861)/2
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
v=func.NextEmptyID
nam="Попер балласт"&" "&v
func.title=nam
func.Put(func.NextEmptyID)
j=0
u(0)=-0.02
s1=Rnd()^(1/ku1)/2
s2=Rnd()^(1/kv1)/2
sluch=s1*(ku1*2+kv1*2-2)/((s1+s2)*(ku1*2-1))
While j<4001
y(j)=sluch*3202.83*Atn(u(j)/0.000861)/2
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
nam="Прод балласт"&" "&v
func.title=nam
134
func.Put(func.NextEmptyID)
pro.pval(36)=1
pro.pval(37)=1
pro.pval(60)=func.PrevID
pro.pval(61)=func.ID
v=pro.NextEmptyID
nam="Балласт"&" "&v
pro.title=nam
pro.Put(pro.NextEmptyID)
cu.Get (9)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
App.feCoordOnNode(i+1, orient)
cu.Tangent(False, orient, vec)
cu.Get (8)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
el.Node (0)=nodes1
el.Node (1)=nodes2
x(0)=R
x(1)=1
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
el.type = 6
el.propID =pro.ID
el.vformulation =1
el.vorient =vec
elemID=el.NextEmptyID
el.Put (elemID)
Next i
'БАЛЛАСТ 2
cu.Get (6)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
pro.type=FET_L_SPRING
pro.flag(3)=1
ReDim u(4001)
ReDim y(4001)
j=0
u(0)=-0.02
s1=Rnd()^(1/ku1)/2
s2=Rnd()^(1/kv1)/2
sluch=s1*(ku1*2+kv1*2-2)/((s1+s2)*(ku1*2-1))
While j<4001
135
y(j)=sluch*3202.83*Atn(u(j)/0.000861)/2
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
v=func.NextEmptyID
nam="Попер балласт"&" "&v
func.title=nam
func.Put(func.NextEmptyID)
j=0
u(0)=-0.02
s1=Rnd()^(1/ku1)/2
s2=Rnd()^(1/kv1)/2
sluch=s1*(ku1*2+kv1*2-2)/((s1+s2)*(ku1*2-1))
While j<4001
y(j)=sluch*3202.83*Atn(u(j)/0.000861)/2
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
nam="Прод балласт"&" "&v
func.title=nam
func.Put(func.NextEmptyID)
pro.pval(36)=1
pro.pval(37)=1
pro.pval(60)=func.PrevID
pro.pval(61)=func.ID
v=pro.NextEmptyID
nam="Балласт"&" "&v
pro.title=nam
pro.Put(pro.NextEmptyID)
cu.Get (6)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
App.feCoordOnNode(i+1, orient)
cu.Tangent(False, orient, vec)
cu.Get (7)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
el.Node (0)=nodes1
el.Node (1)=nodes2
x(0)=R
x(1)=1
x(2)=0
v=x
136
App.feCoordTransform(3,v,0,vec)
el.type = 6
el.propID =pro.ID
el.vformulation =1
el.vorient =vec
elemID=el.NextEmptyID
el.Put (elemID)
Next i
'ШПАЛА 1
el.type = 5
el.propID =2
cu.Get (4)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
cu.Get (4)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
App.feCoordOnNode(i+1, orient)
cu.Tangent(False, orient, vec)
cu.Get (9)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
el.Node (0)=nodes1
el.Node (1)=nodes2
el.vorient =vec
elemID=el.NextEmptyID
el.Put (elemID)
Next i
'ШПАЛА 2
cu.Get (11)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
cu.Get (11)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
App.feCoordOnNode(i+1, orient)
cu.Tangent(False, orient, vec)
cu.Get (4)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
el.Node (0)=nodes1
137
el.Node (1)=nodes2
el.vorient =vec
elemID=el.NextEmptyID
el.Put (elemID)
Next i
'ШПАЛА 3
cu.Get (5)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
cu.Get (5)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
App.feCoordOnNode(i+1, orient)
cu.Tangent(False, orient, vec)
cu.Get (10)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
el.Node (0)=nodes1
el.Node (1)=nodes2
el.vorient =vec
elemID=el.NextEmptyID
el.Put (elemID)
Next i
'ШПАЛА 4
cu.Get (6)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
cu.Get (6)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
App.feCoordOnNode(i+1, orient)
cu.Tangent(False, orient, vec)
cu.Get (5)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
el.Node (0)=nodes1
el.Node (1)=nodes2
el.vorient =vec
elemID=el.NextEmptyID
el.Put (elemID)
Next i
138
'ШПАЛА 5
el.type = 5
el.propID =3
cu.Get (10)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
cu.Get (10)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
App.feCoordOnNode(i+1, orient)
cu.Tangent(False, orient, vec)
cu.Get (11)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
el.Node (0)=nodes1
el.Node (1)=nodes2
el.vorient =vec
elemID=el.NextEmptyID
el.Put (elemID)
Next i
App.feViewRegenerate(0)
'СКРЕП 1
cu.Get (4)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
pro.type=FET_L_SPRING
pro.flag(3)=1
ReDim u(4001)
ReDim y(4001)
j=0
u(0)=-0.02
s1=Rnd()^(1/ku2)/2
s2=Rnd()^(1/kv2)/2
sluch=s1*(ku2*2+kv2*2-2)/((s1+s2)*(ku2*2-1))
While j<4001
y(j)=sluch*15577.6*Atn(u(j)/0.00276)
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
v=func.NextEmptyID
nam="Скреп прод"&" "&v
139
func.title=nam
func.Put(func.NextEmptyID)
j=0
u(0)=-0.02
While j<4001
y(j)=sluch*(27.8*u(j)+180/pi*1.22*Atn(u(j)/0.0016))*9.81
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
nam="Скреп повор"&" "&v
func.title=nam
func.Put(func.NextEmptyID)
pro.pval(36)=1e10
pro.pval(37)=1
pro.pval(38)=1e10
pro.pval(39)=1
pro.pval(40)=1e10
pro.pval(41)=1e10
pro.pval(60)=0
pro.pval(61)=func.PrevID
pro.pval(62)=0
pro.pval(63)=func.ID
pro.pval(64)=0
pro.pval(65)=0
v=pro.NextEmptyID
nam="Скреп"&" "&v
pro.title=nam
pro.Put(pro.NextEmptyID)
cu.Get (4)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
cu.Get (2)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
x(0)=R
x(1)=1
x(2)=0
v=x
App.feCoordTransform(3,v,0,orient)
el.vorient =orient
el.Node (0)=nodes1
el.Node (1)=nodes2
el.type = 6
el.propID =pro.ID
el.vformulation =1
140
el.Put (el.NextEmptyID)
Next i
'СКРЕП 2
cu.Get (5)
cu.Nodes(True, True, Count, Nodes)
For i=0 To Count-1
pro.type=FET_L_SPRING
pro.flag(3)=1
ReDim u(4001)
ReDim y(4001)
j=0
u(0)=-0.02
s1=Rnd()^(1/ku2)/2
s2=Rnd()^(1/kv2)/2
sluch=s1*(ku2*2+kv2*2-2)/((s1+s2)*(ku2*2-1))
While j<4001
y(j)=sluch*15577.6*Atn(u(j)/0.00276)
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
v=func.NextEmptyID
nam="Скреп прод"&" "&v
func.title=nam
func.Put(func.NextEmptyID)
j=0
u(0)=-0.02
While j<4001
y(j)=sluch*(27.8*u(j)+180/pi*1.22*Atn(u(j)/0.0016))*9.81
u(j+1)=u(j)+0.00001
j=j+1
Wend
func.PutFunctionList(j, u, y)
func.type=0
nam="Скреп повор"&" "&v
func.title=nam
func.Put(func.NextEmptyID)
pro.pval(36)=1e10
pro.pval(37)=1
pro.pval(38)=1e10
pro.pval(39)=1
pro.pval(40)=1e10
pro.pval(41)=1e10
pro.pval(60)=0
pro.pval(61)=func.PrevID
pro.pval(62)=0
pro.pval(63)=func.ID
141
pro.pval(64)=0
pro.pval(65)=0
v=pro.NextEmptyID
nam="Скреп"&" "&v
pro.title=nam
pro.Put(pro.NextEmptyID)
cu.Get (5)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes1=Nodes(i)
cu.Get (3)
cu.Nodes(True, True, Count, Nodes)
nd.Get (Nodes(i))
nodes2=Nodes(i)
x(0)=R
x(1)=1
x(2)=0
v=x
App.feCoordTransform(3,v,0,orient)
el.vorient =orient
el.Node (0)=nodes1
el.Node (1)=nodes2
el.type = 6
el.propID =pro.ID
el.vformulation =1
el.Put (el.NextEmptyID)
Next i
App.feViewRegenerate(0)
'РЕЛЬСЫ
el.type=FET_L_BEAM
el.propID =1
cu.Get (1)
cu.Nodes(True, True, Count, Nodes)
ReDim x(2)
x(0)=1
x(1)=20
x(2)=0
vec=x
App.feMeshSizeCurve(-2,(Count-1)*10,0, 0, 0, 0, 1, 0, 1, 0, False)
App.feMeshCurve(-2, True, 1, vec)
el.type=FET_L_BEAM
el.propID =1
cu.Get (1)
cu.Nodes(True, True, Count, Nodes)
ReDim x(2)
x(0)=-1
x(1)=20
x(2)=0
142
vec=x
App.feMeshSizeCurve(-3,(Count-1)*10,0, 0, 0, 0, 1, 0, 1, 0, False)
App.feMeshCurve(-3, True, 1, vec)
s.AddAll(FT_NODE)
App.feDelete(FT_NODE,nd.setID)
App.feCheckCoincidentNode2(nd.setID,0.0001,True,0,0,False,2,False)
'СТЫКИ
el.type= FET_L_SPRING
el.propID =4
el.vformulation=1
x(0)=R+0.8
x(1)=-a-5.7295779513082320876798/R
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
nd.xyz=vec
nd.Put(nd.NextEmptyID)
nd.GetClosest(vec)
el.Node(0)=nd.ID
App.feBCNode.Add(-nd.ID,True,True,True,True,True,True)
x(0)=R+0.8
x(1)=-a
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
nd.GetClosest(vec)
el.Node(1)=nd.ID
x(0)=0
x(1)=1
x(2)=0
orient=x
el.vorient =orient
el.Put (el.NextEmptyID)
x(0)=R-0.8
x(1)=-a-5.7295779513082320876798/R
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
nd.xyz=vec
nd.Put(nd.NextEmptyID)
nd.GetClosest(vec)
el.Node(0)=nd.ID
App.feBCNode.Add(-nd.ID,True,True,True,True,True,True)
x(0)=R-0.8
x(1)=-a
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
143
nd.GetClosest(vec)
el.Node(1)=nd.ID
x(0)=0
x(1)=1
x(2)=0
orient=x
el.vorient =orient
el.Put (el.NextEmptyID)
x(0)=R+0.8
x(1)=a+5.7295779513082320876798/R
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
nd.xyz=vec
nd.Put(nd.NextEmptyID)
nd.GetClosest(vec)
el.Node(0)=nd.ID
App.feBCNode.Add(-nd.ID,True,True,True,True,True,True)
x(0)=R+0.8
x(1)=a
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
nd.GetClosest(vec)
el.Node(1)=nd.ID
x(0)=0
x(1)=1
x(2)=0
orient=x
el.vorient =orient
el.Put (el.NextEmptyID)
x(0)=R-0.8
x(1)=a+5.7295779513082320876798/R
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
nd.xyz=vec
nd.Put(nd.NextEmptyID)
nd.GetClosest(vec)
el.Node(0)=nd.ID
App.feBCNode.Add(-nd.ID,True,True,True,True,True,True)
x(0)=R-0.8
x(1)=a
x(2)=0
v=x
App.feCoordTransform(3,v,0,vec)
nd.GetClosest(vec)
el.Node(1)=nd.ID
x(0)=0
x(1)=1
144
x(2)=0
orient=x
el.vorient =orient
el.Put (el.NextEmptyID)
'ГРАНИЧНЫЕ УСЛОВИЯ
For i=4 To 11
s.AddNodesOnGeometry(FT_CURVE,i,True,True,False)
App.feBCNode.Add(nd.setID,False,True,False,True,False,True)
Next i
s.AddNodesOnGeometry(FT_CURVE,8,True,True,False)
App.feBCNode.Add(nd.setID,True,True,True,True,True,True)
s.AddNodesOnGeometry(FT_CURVE,7,True,True,False)
App.feBCNode.Add(nd.setID,True,True,True,True,True,True)
'УДАЛЕНИЕ
s.AddAll(FT_CURVE)
App.feDelete(FT_CURVE,cu.setID)
s.AddAll(FT_POINT)
App.feDelete(FT_POINT,pt.setID)
s.AddAll(FT_NODE)
App.feDelete(FT_NODE,nd.setID)
App.feModifyDefCSys(FT_NODE,nd.setID,0)
App.feModifyOutCSys(FT_NODE,nd.setID,0)
App.feViewRegenerate(0)
End Sub