Зачем нужна эта программа?

Прежде всего, это обучающая игрушка. Каждый со школьных времен слышал
о том, что небесные тела движутся по орбитам . Многие знают,что эти
орбиты эллиптические, и что вращаются более легкие тела вокруг более
тяжелых. Но лично я был удивлен тем, что некоторые не понимают, что нужно
сделать для того, чтобы Ваш космический корабль догнал орбитальную
станцию, летящую сейчас на противоположной стороне планеты. Некоторым
кажется парадоксом, что для этого нужно сориентировать корабль так,
чтобы двигательная установка ЗАТОРМОЗИЛА а не УСКОРИЛА корабль на
орбите.


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

Значит, нужно замедляться! На самом деле, конечно, нужна будет вторая
коррекция траектории: после того, как корабль обгонит станцию,
придется вновь поднять высоту его орбиты ускорением так, чтобы теперь
уже станция догнала улетевший вперед корабль. Любопытно что совсем
другая тактика применяется, если станция и корабль находятся вблизи
друг друга и почти неподвижны. Там маневр догона выполняется так как
этого требует интуиция.


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

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


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


Аналоги

Эффектные картинки аналогичной природы, в формате D3 демонстрирует
программа скринсэйвер gcave13.scr Евгения Барсукова. Заполучить ее
можно с сайта Барсукова https://members.tripod.com/~Sudy_Zhenja/russian/
Но данная программа была задумана не только и не столько для
развлечения. Прежде всего это инструмент моделирования
электромагнитных процессов. В ней заложена возможность задавать
законы взаимодействия тел. Ньютоновское тяготение - это самый простой
пример, сыгравший свою роль в изучении точности принятых
вычислительных алгоритмов и возможности их реализации на ПК. 


Основные возможности

Программа позволяет задавать законы взаимодействия из списка:
Ньютоновское, Кулоновское, Магнитостатическое (Био-Савара), и любое их
сочетание. Она, как предполагается послужит заготовкой (шаблоном) для
моделирования более сложных законов с учетом запаздывания потенциалов и
излучения. Не исключено в идеале появление программы, которая нарисует
на экране картину распределения излучаемых полей.

Программа допускает одновременное наблюдение на экране до трех групп
тел, внутри каждой из которых действуют свои законы. Каждая группа
может содержат до 10 тел. Тела из разных групп между собой никак не
взаимодействуют. Это позволяет одновременно посмотреть на экране
разницу в рассеянии заряда на заряде при выключенном и включенном
магнитном взаимодествии. Тела из каждой группы могут быть
подствечены собственным цветом. Что впрочем не мешает снабдить
индивидуальным цветом каждую частицу в отдельности.


Сценарии задаются обыкновенными текстовыми файлами, размером не более
10 килобайт, так что имеется возможность интенсивного обмена сценариями
между любыми энтузиастами - любителями классической механики. (во блин
сказанул! Ну, куда ни шло еще любители классической музыки... )


Как поставить эту программу

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



Работа с программой

При первом запуске у Вас могут возникнуть проблемы с фонтами. Настройте
их через меню Options и подберите размеры. По окончании работы
программа сохранит эти настройки в файле newton.cnf в подкаталоге, из
которого запущен exe-шник. Если и на этом этапе возникли проблемы,
отошлите письмо автору √ Лапенкову В.В.

После запуска программы нажмите кнопку МPlay".Вы увидите вращение
системы Земля-Луна вокруг Солнца. Не принимайте это всереьез, перед
Вами √ просто модель, с условными коэффициентом тяготения , массами и
скоростями. Более реалистичные модели можно увидеть, если прочесть
файлы с именами solsyst и solsys1 из подкаталога GRAVY. Прочесть их,
как Вы уже догадались, можно через меню МFile", пункты МЧитать файл ->
процесс", МЧитать файл -> редактор", или совмещенный пункт. Для
Вашего знакомства достаточно выбрать второй или первый пункты.
Сценарии представляют собой текстовые файлы. В оперативной памяти
сценарий существует в двух представлениях √ текстовом и двоичном.
Двоичное представление во время проигрывания непрерывно изменяется.

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

Кроме пунктов меню Вы видите на экране четыре кнопки.

Кнопка Play запускает моделирование и превращается после этого в кнопку
Stop.

Кнопка <-> позволяет изменить векторы всех скоростей на противоположные.
Во время редактирования она превращается в Save, позволяя сохранить
текстовую копию сценария на диск.


Кнопка Edcur (Edit Current) копирует двоичный сценарий в текстовый
редактор (с потерей авторских комментариев!!!) и позволяет что-то в
нем изменить. Во время редактирования она превращается в Play (если
ценарий до этого игрался) или в ToBin (если до этого был режим Stop).
В обоих случаях результат редактирования будет вновь оттранслирован в
двоичное представление. Если Вы этого не желаете (нужно продолжить
игру как она была), нажмите кнопку Keep, или просто минимизируйте окно
редактора. Аналогичный эффект произойдет, если редактор потеряет фокус.


Кнопка ClrScr позволяет очистить экран от следов предыдущих перемещений.
Во время редактирования она превращается в кнопку Keep.

Кроме текстового редактирования у Вас есть еще две возможности
вмешаться в процесс. Подгоните мышь к желаемому обьекту и нажмите
левую клавишу. На экране появится зеленая стрелка. Не отпуская клавишу
мыши Вы можете переместить обьект в любое другое место экрана. Однако
вектор скорости обьекта изменить таким способом не удастся. Если же
щелкнуть правой клавишей, на экране появится модальный диалог,
позволяющий изменить у обьекта не только координаты, но и скорость,
массу и заряд.


Кроме кнопок на экране видны два дополнительных окна: Одно из них
предназначено для редактирования сценариев и поначалу минимизировано
в левом нижнем углу. Второе окно является экраном Мцентра управления
полетом". На этом экране отображаются машинное и модельное время, две
компоненты суммарного импульса и суммарный момент импульса всех тел
нулевой группы. Несохранение этих величин косвенно может указывать на
нарушения точности моделирования в результате вычислительных
погрешностей.


Окно ЦУП может быть минимизировано или перемещено за пределы основного
окна. Окно редактора может перемещаться только в пределах основного
окна.


Как изменить текущие параметры полета.

Нажмите кнопку EdCur и проигнорируйте предупреждение о возможной потере
комментариев. Измените параметры и нажмите кнопку ToBin(Play). Если
результат Вас устроил, сохраните текст из редактора или же двоичное
представление. Потом во внешнем редакторе добавьте свои комментарии.

Другой способ √ корректируйте полет нажатиями левой и правой клавиши
мыши. Левая клавиша позволяет перетащить обьект а правая √ сделать
то же и еще кое-что в числовой форме.


Как отладить сценарий

Отладка сценария в отличие от вмешательства в текущий процесс
предполагает что процесс проигрывания возобновляется каждый раз
заново. Это значит, что текстовая копия сценария должна оставаться
неизменной в течение всей отладки. Поэтому кнопку EdCur ни в коем
случае нельзя использовать. Для перехода к редактированию просто
максимизируйте окно редактора. Кроме того, почаще нажимайте кнопку
Save. Копирование же в двоичный сценарий, как и прежде,
осуществляется нажатием кнопки ToBin (Play).


Описание реквизитов текстового представления.

Сценарий выглядит примерно так:

Комментарии, набранные латиницей автоматически генерируются при
реассемблировании двоичной копии.

// SolSyst:Сценарий: Система "Земля-Луна" в поле солнечного тяготения

TIMESTEP=0.2048 //Step of iterations

TOPIXELS=2.175e-06 //kilometers to twips

velocity=25 //A number of iterations per update od screen

//Fundamental constants

GKULON=1 //Electrostatic factor


GMAKSWELL=1 //Magnetic coefficient

GNEWTON=4.9791283e-07 //Gravitation coefficient

Константы GKULON, GMAKSWELL, GNEWTON √ это величины коэффициентов в
формулах для вычисления силы взаимодействия. В принципе, они могут
быть вообще произвольными, поскольку зависят от системы единиц. В
данном примере реальное значение имеет только постоянная тяготения, она
здесь представлена в км^3/(сутки^2 * тонны)

DIVIMPULS=1e+25 //Denominator of summary impulse


DIVMOMENT=1e+36 //Denominator of summary moment

Переменные DIVIMPULS и DIVMOMENT уменьшают в заданное число раз величину
суммарного импульса и момента импульса системы. Дело в том, что
экспоненциальное представление затрудняет контроль за правильностью
вычислений, ведь в этом случае на экране слишком много цифр. Точно
такая же проблема возникает, если указанные величины в десятичном виде
содержат слишком много цифр. Удобно наблюдать за импульсом, если на
экране три цифры, одна до и две после точки. Два деноминатора как раз
загоняют контролируемый импульс и момент импульса в удобный для
контроля диапазон. По этой же причине на экране не отображается
размерность сабжа.


UNITDISTANCE="километры"

UNITTIME= "сутки"

UNITVELOCITY="км/сутки"

UNITMASS= "тонн"

UNITCHARGE= "безразмерн"

Пять текстовых констант типа UNIT позволяют программе отобразить на
экране реальные физические единицы в адекватном задаче масштабе.
Задачи ведь могут изменяться во времени от миллионов лет до
пикосекунд, в пространстве от мегапарсек до ангстрем. Аналогичные
колебания испытывают масса, заряд, скорости и ускорения. Подбор
адекватных единиц √ один из наиболее важных этапов проектирования
сценария.


MULACCELER=0.003 //Multiplier for Show Accelerate Needle

ShowACCELER=1 //Indicator Show Accelerate Needle

MULVELOCIT=0.3 //Multiplier for Show Velocity Needle

ShowVELOCIT=1 //Indicator Show Velocity Needle

Четыре последних константы служат для отображения стрелками вектора
ускорения и скорости. Программе заранее неизвестно, какой длины
стрелка потребуется для того или иного значения. Две константы,
начинающиеся с MUL , задают коэффициент для перевода ускорения и
скорости в физических единицах в пикселы на экране. Две константы,
начинающиеся с Show, служат индикаторами Мвключенности" режима
показывания стрелок. Этот режим можно также на ходу включать и
выключать через меню.



Посмотрим, что там дальше.

Group=0 //Define Group. Как уже упоминалось, сценарий
позволяет одновременно проигывать взаимодействие нескольких групп
частиц, причем частицы из разных групп между собой абсолютно не
взаимодействуют. Это позволяет, например, сравнить рассеяние заряда на
заряде при включенном и выключенном магнитном взаимодействии. Данное
предложение как раз определяет номер группы. Все предложения ниже
относятся уже к этой группе до тех пор, пока не встретится новая
аббревиатура Group.


LAW= 0 √ Определяет закон взаимодействия. Нулевое значение отвечает
Ньютоновскому тяготению. Ему же отвечает и значение 1. Другим законам
отведено по биту в двоичном представлении LAW:

=2 √ Кулоновское взаимодействие

=4 √ Магнитостатика.

Их суммы определяют комбинированное взаимодействие: например, 6
определяет магнитостатику вместе с электростатикой.

GCOLOR=255,0,0 // Red - определяет цвет группы. Если у частиц не
описан собственный цвет, они расцвечены в цвет группы.


Particle=0 //Это солнышко - определяет идентификатор обьекта
в группе. Все частицы в группе нумеруются от нуля, а максимальное их
число равно десяти.

PCOLOR=255,0,0 // Red √ определяет индивидуальный цвет частицы. Если
этот параметр не описан, частица имеет цвет группы.

DIAMETER= 45 √ определяет диаметр кружочка на экране. Целесообразно
более тяжелые частицы изображать большими по размерам. Диапазон
примерно от 5 до 60. Другие значения неудобны.


fixed= 0 √ некоторые частицы можно искусственно зафиксировать.
Не надейтесь после этого, что суммарный иимпульс системы будет
сохраняться.

massa = 2e+27 √ ясно из названия. Можно заметить, что масса равная
нулю определит частицу, которая летит себе по прямой, ни с кем не
взаимодействуя. (если конечно сценарий Ньютоновский)

charge= 10000

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

X = 0

Y = 0

VX = -1099.67

VY = 0

AX = 0

AY = 0


Particle=1 //Это Меркурий

PCOLOR=255,255,255 // White

DIAMETER= 20

f ixed= 0

massa = 3e+20 //Тонн

charge= -100

X = 0

Y = 57469500 //Километров

VX = 4162680 // Километров в сутки


VY = 0

AX = 0

AY = 0 

Built by Text2Html