Разработка программного обеспечения для планирования радиолюбителями сеансов пакетной связи с учетом зон видимости наземных радиолюбительских станций с МКС

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 20.04.2012
Размер файла 4,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

* обновление от BBS списка бюллетеней и считывание из BBS текстов запрошенных бюллетеней (эта процедура выполняется только при выборе варианта обмена с бюллетенями);

* по завершению обмена происходит разъединение с местной BBS.

Mail Option - ввод установок для реализации отдельных процедур обмена почтой (если они реализованы на вашей местной BBS).

Use FBB unproto list - разрешить использование unproto-списка в маяке BBS. В этот список, выдаваемый в эфир в режиме маяка, BBS может вносить позывные «приписанных» к ней станций и номера полученных для них сооббщений. Ваша станция, при получении такого маяка, будет накапливать номера адресованных вам сообщений и после соединения cBBS сформирует запрос на их чтение;

Use FBB compressed forwarding - установка на отправку (форвард) сообщений на BBS в сжатом формате. BBS при приеме автоматически распознает сжатие и выполняет обратное декодирование;

Use FBB compressed download - установка на скачивание сообщений из BBS в сжатом формате. Принимаемые сообщения автоматически декодируются.

ТРК compatibility mode - разрешить использование режима ТРК (при программной эмуляции контроллера).

Указанные опции могут вводиться, если они поддерживаются программным обеспечением BBS. Для ввода устанавливаемых опций предназначена кнопка ОК.

Repeat Bull List - восстановление списка бюллетеней.

Options.

Ввод установок в программу. При выборе этого подменю открываются следующие пункты:

Signature - добавляет сигнатуру в конец текста открытого окна редактора или

посылает в TNC.

Split Window - разбивает окно приема на два окна. Word Wrap - отображение на экране начальной страницы экранного буфера памяти.

Character Mode - ввод символьного режима передачи.

Веер - формировать сигнал события (звонок).

Use Speech - доступ к подменю звуковых сообщений.

Restore on Beep - развернуть программу (из иконы или из поля задач) при появлении оповещения по Веер.

Icon on Top - икона программы Winpack всегда будет находиться поверх текущей программы (для WINDOWS 98)

Auto Log - все соединения и разъединения записываются в файл ТЕХТ\autolog.txt. При повторном вводе этой установки программа выдает запрос об обновлении файла или записи в его «хвост».

Auto Damp - автосохранение принимаемой и отправляемой информации в файле TEXT\autodamp.txt. При повторном вводе этой установки программа выдает запрос, приведенный выше.

Auto 7+Decode - ввод проверки всей принимаемой почты на кодирование программой Vplus. При наличии этой установки все кодированные сообщения принимаемой почты декодируются и их содержание записывается в директорию 7DECODE.

Keep 7+Parts - автосохранение исходных Vplus-кодированных сообщений почты в директории 7PLUSOLD после их декодирования. Enable Remote - разрешение приема и обработки команд удаленного доступа.

Show Button Hints - установка предъявления названия кнопок основного экрана программы при подводе к ним указателя «мышки». Personal / BBS Info - установка идентификаторов по собственной пакетной станции и местной BBS.

Comms Setup - установка данных для порта обмена TNC и PC.

Password - ввод текста пароля в процедуру соединения с местной BBS (если последняя этого требует).

Fonts - вход в подменю установки шрифтов для окон экрана и принтера. Bulletin Colunns - вход в подменю начальной установки колонок для списка бюллетеней. Collars - вход в подменю установки цвета:

Comms Background - цвет фона окон экрана;

Edit Background - цвет фона окна редактора;

Led Active - цвет активного состояния экранных индикаторов;

Led Passive - цвет пассивного состояния индикаторов.

Scripts.

При входе в это подменю открываются следующие пункты для работы с Scripts-файлами:

Play a Script - вход в список существующих Scripts-файлов и запуск одного из них. Все Scripts-файлы размещены в директории SCRIPTS. Edit a Script - редактирование существующих Scripts-файлов.

Yapp.

При входе в подменю обмена файлами по Yapp-протоколу выводятся следующие пункты:

Send a File - выбрать и послать в TNC файл для его передачи по Yapp-протоколу.

Receive a File - получить файл по Yapp-протоколу. Все полученные файлы пи-шутся в директорию DOWNLOAD.

Receive Resume - продолжить прерванный прием файла по Yapp-протоколу.

Auto Receive - установка автоматического обнаружения передачи файла по Yapp-протоколу.

Help.

Вход в подменю помощи. При выборе этого подменю выводятся следующие пункты:

Help Contents - контекстная помощь;

View README. TXT - вывод в окно текста файла readme.txt;

About - вывод сообщения о программе.

При работе доступна контекстная помощь при нажатии клавиши F1.

1.8.2 Кнопки основного экрана программы WE4PACK

Основной экран программы содержит изображения ряда кнопок, которые активизируются при наведении на них указателя и последующего нажатия левой кнопки «мышки» (если кнопку «мышки» не нажимать, то через три секунды около кнопки появится надпись, кратко поясняющая ее назначение). Эти кнопки дублируют основные процедуры экранного меню и имеют следующие назначения:

1. Edit Window - открыть / закрыть окно редактора (аналог пункта подменю File/Edit Window).

2. Capture On/Off - открыть / закрыть файл «захвата» (аналог пункта подменю File/Capture).

3. Send - послать в TNC текстовый файл или текст из открытого окна редактора (аналог пункта подменю File/Send или пункта Send в меню редактора).

4. Print - печать содержимого одного из открытых окон экрана (аналог пункта подменю File/Print).

5. BBS Session - автосессия с местной BBS (аналог пункта подменю Mail/Auto BBS Session.

6. Read Mail - выдать список персональных сообщений почты (аналог пункта подменю Mail/Read Mail).

7. Write Message - подготовить отправляемое сообщение (аналог пункта подменю Mail/Write a Message).

8. Read Bulls - выдать список бюллетеней (аналог пункта подменю Mail/Read Bulletins).

9. Signature - послать сигнатуру в открытое окно редактора или в TNC (при закрытом окне редактора).

10. Word Wrap - отображение начальной страницы экранного буфера памяти (аналог пункта подменю Options/Word Wrap).

1. Pause - ввод / снятие паузы обмена с TNC. Накапливаемая информация временно хранится в буфере памяти.

12. Disconnect - разъединение с соединенной станцией.

1.8.3 Команды удаленного доступа

Программа WINPACK обеспечивает реализацию ряда специальных команд удаленного доступа, которые позволяют пользователю просмотреть (возможно с записью) подкаталоги и файлы в директории разрешенного доступа соединенной станции, а также послать ей текстовое сообщение или файл. Директория доступа устанавливается специальной записью в файле инициализации Packet.ini и, как правило, является директорией WINPACKAPUB. Все команды удаленного доступа начинаются с символа «/». При получении таких команд программа реализует следующие процедуры:

/bye - рассоединение;

/cd <имя директории> - переход в подкаталог (корневым каталогом для этой команды является WINPACKA PUB);

/cd \ - переход из текущего каталога в корневой;

/dir - просмотр состава текущего каталога;

/help - запрос помощи по составу команд удаленного доступа;

/msg - послать текстовое сообщение или файл;

/talk - вызов оператора другой станции на связь;

/get <имя файла> - чтение ASCII-файла из директории разрешенного доступа (такой директорией по умолчанию является WINPACKA PUB);

/yget <имя файла> - чтение файла из директории удаленного доступа по YAPP-протоколу. Считанные файлы размещаются в директории DOWNLOAD. Команды могут набираться одним символом после «/», кроме /cd.

1.9 Установка программы WINPACK и подготовка канала пакетной связи к функционированию

При установке программы следует учитывать, что WINPACK работает только под управлением WINDOWS и что для ее размещения необходимо не менее 6 мгб дисковой памяти. Особенностью программы является то, что при подготовке сообщений она отображает русские символы только при использовании шрифтов с DOS-овской кодировкой, поэтому необходимо, чтобы при инсталяции программы WINDOWS вашего ПК содержал такие шрифты (например шрифт Terminal).

1 шаг - установка программы в ПК:

* включить питание ПК и загрузить WINDOWS;

* при установке программы с загрузочного диска (дискеты) из WINDOWS запустить файл SETUP.EXE и контролировать ход установки, отвечая на запросы установочной программы;

* при копировании программы создать директорию WINPACK, куда перенести все директории и файлы программы; проверить наличие в директории WINDOWS\SYSTEM файлов поддержки VISUAL BASIC

(VBRUN300.DLL, CMDIALOG.VBX, MCI.VBX, MSCOMM.VBX и THREED.VBX);

* инсталировать программу в WINDOWS и вывести ярлык программы на рабочий стол;

* в файле автозагрузки AUTOEXEC.BAT прописать путь доступа к программе архивирования PKZIP.EXE, используемой при работе с местной BBS;

* выполнить запуск программы (при первом запуске программа может вывести сообщение об ошибке в выборе СОМ-порта для связи с TNC, т.к. по умолчанию программа выбирает СОМ1);

* войти в пункт программного меню Mail/Mail Option и установить опции почты, используемые вашей местной BBS (если связь с BBS не используется, то эти опции можно не устанавливать);

* войти в пункт программного меню Options:

О выделить пункт Enable Remote для разрешения команд удаленного доступа;

О процедурой Personal/BBS Info ввести идентификаторы собственной пакетной станции и местной BBS (если связь с местной BBS не используется, то ее идентификаторы могут не устанавливаться, собственные идентификаторы используются для формирования текста строки в файле авторегистрации соединений AUTOLOG.TXT);

О процедурой Comms Setup установить требуемые параметры порта обмена cTNC;

О процедурой Fonts установить требуемые шрифты в окнах программы и для вывода на принтер;

* войти в программное меню Yapp и выделить пункт Auto Receive для автоматического распознавания программой сообщений, передаваемых по YAPP-протоколу;

* закрыть программу для регистрации в ней введенных установок. На этом установка программы в ПК заканчивается.

2 шаг - ввод необходимых установок в контроллер.

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

* выполнить (проверить) кабельное соединение ПК и TNC по каналу выбранного СОМ-порта и подключение блока питания к TNC;

* включить питание ПК, загрузить программу WINPACK и убедиться в отсутствии сообщения о некорректности выбора порта связи;

* включить питание контроллера; в приемном окне программы должно появиться сообщение о его запуске и установке командного режима (текст «cmd:» в последней строке);

* войти в программное меню Scripts/Play a Script, выбрать и запустить Script-файл инициализации установленного контроллера;

* контролировать ввод установок в TNC. На этом настройка контроллера завершена.

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

3 шаг - подключение контроллера к каналу связи.

Если это радиолюбительский канал, то необходимо подключить кабелем разъем RADIO контроллера и входной разъем любительской радиостанции. Современные любительские радиостанции имеют отдельные входные разъемы для подключения контроллера и телефонной гарнитуры, согласование сигналов контроллера и радиостанции выполнено на аппаратном уровне. Если входной разъем у радиостанции один, то необходим специальный переходник, обеспечивающий параллельное подключение к разъему TNC и телефонной гарнитуры.

Выход радиостанции должен быть подключен к антенному входу радиолюбительского канала.

Если в качестве приемно-передающего устройства используется специальная система связи (не радиолюбительский трансивер), то разъем RADIO контроллера должен через специальное согласующее устройство подключаться к этой системе связи параллельно телефонной гарнитуре.

По завершению этих трех шагов канал пакетной связи готов к функционированию.

4. Особенности работы программы WINPACK с местной BBS

Особенностями работы с местной BBS являются:

* необходимость предварительной «прописки» вашей пакетной станции в BBS, через которую будет осуществляться ваш вход в пакетную сеть. Процедура «прописки» состоит в следующем:

- в BBS должны быть введены ваши идентификаторы и разрешенный вам статус обслуживания;

- идентификаторы местной BBS должны быть введены в программу WINPACK вашей станции (пункт программного меню Options/ Personal/ BBS Info);

* в зависимости от возможностей данной BBS могут быть введены соответствующие установки в пункт программного меню Mail/Mail Option.

Вся работа с вашей местной BBS ведется только из программного меню Mail или с использованием дублирующих его экранных кнопок BBS Session (установление связи с BBS), Read Mail (чтение почты, полученной от BBS), Write Message (подготовка отправляемых сообщений). Описание программных процедур работы с местной BBS приведены выше в п. 8.1. и п. 8.2. при описании программы WINPAC K.

1.10 Планирование сеансов непосредственной пакетной радиосвязи между двумя станциями

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

1.10.1 Определение времени полета ОС над заданными географическими областями

При исследовании широтного и долготного хода потоков высокоэнергичных заряженных частиц необходимо иметь прогноз времен, когда трасса ОС будет проходить над географическими областями Gij=(лi<л<лi+1; цj<ц<цj+1), ограниченными

географическими долготами лi, лi+1и широтами цj, цj+1.

Определение моментов времени начала и окончания прохождения

ОС над выделенной областью Gij, Т Gijвх и ТGijвых осуществляется

двумя способами: численно и численно-аналитически.

При численном способе определения времен на заданном отрезке времени (t0, tк) численно интегрируются уравнения движения ц.м. ОС с временным шагом ?t, и на каждом шаге вычисляется радиус - вектор re=(Xe.ye.ze) по которому рассчитываются географические координаты положения ц.м. OC по Формулам

где Re =6378.24 км - экваториальный радиус и Је=1/298.25 -

степень сжатия земли. Квадрант расположения л 1 определяется знаками координат х1 у1

0<л1< 90, при х1. у1>0

90< л1<180, при х1<0 у1> 0,

180< л1< 270. при х1<0 у1< 0;

270< л1<360, ПРИ х1>0 у1< 0;

Поиск времен ТGijвх, ТGijвых выполняется программой по следующему алгоритму. Последовательно для интервалов времени (te, te+2) проверяется выполнение неравенств

лeie+2

цe je+2

Значения л1и цj на этих интервалах времени вычисляются по интерполяционному полиному Лагранжа 2-ой степени

з(t) = bo + b1* t + b2*t2, t € (te, te+2)

коэффициенты, которого задаются выражениями

при выполнении неравенства

лeie+2

решается квадратное уравнение вида

b2*t2 + b1* t+ bo - лi=0

из которого определяется время t1 пересечения трассой ОС долготы лi.

На это время рассчитывается по интерполяционной Формуле значение широты цj и проверяется выполнение неравенства

цi ji+1

Если это неравенство выполняется, t1 есть искомое время вхождения

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

цe je+2

При выполнении этого условия, рассчитывается значение времени tj, соответствующее моменту пересечения трассой ОС широты цj. На время tj определяется значение долготы лj и проверяется выполнение неравенства

лiji+1

В случае выполнения этого неравенства ТGijвх соответствует время tj.

Если неравенство не выполняется, тогда осуществляется поиск ТGijвх на следующем интервале времени (te+1. te+3j) и так делее.

После того, как определено время входа ТGijвх, производится поиск времени выхода ОС из заданной географической области Gij. Алгоритм определения времени ТGijвых аналогичен алгоритму нахождения времени ТGijвх T.e. последовательно проверяется выполнение неравенств

лei+1e+2

цj i+1j+2

и

цe je+2

лij+1 < цi+1

Время ТGijвх является решением одного из двух квадратных уровнений

b2*t2 + b1* t+ bo - лi+1=0

или

b2*t2 + b1* t+ bo - цj+1=0

Решение задачи прогнозирования моментов времени прохождения ОС над заданной географической областью численно-аналитическим способом разбивается на 2 этапа. На 1-ом этапе осуществляется численно-аналитически прогноз элементов орбиты витков, приходящихся на даты проведения сеансов эксперимента. На 2-ом этапе для каждого N-го витка, с спрогнозированными элементами орбиты, определяются времена входа и выхода для заданной географической области Gij.

При решении задачи удобно использовать соотношения, связывающие элементы орбиты с географическими координатами л и ц ОС. Рассмотрим сферический прямоугольный треугольник ABC, образованный дугами экватора Земли и трассы ОС (т.е. проекцией орбиты на поверхность Земли). ОС располагается в вершине С.

Очевидно, что А^= i (наклонив орбиты; В=90°, ^АС= u (аргумент широты), СВ= Ч (географическая широта), AB-л = л-лэ где лэ - географическая долгота ОС и долгота восходящего узла орбиты соответственно в ГCK, на момент времени 1, рис. 1.

В ГСК орбита ОС совершает два вращательных движения вокруг Ог Zг Первое из них связано с вращением Земли с угловой скоростью щз, второе определяется суммарным возмущением' гравитационной и аэродинамической сил, заставляющих прецессировать орбиту в абсолютном пространстве с угловой скоростью щn. Суммарная угловая скорость вращения орбиты вокруг оси Ог Zг равна,

щзn= щз+ щn

а выражение для вычисления лэ на время t имеет вид

лэ= лoэ - щзn(t-toэ)

здесь toэ - время пересечения ОС плоскости экватора Земли, лoэ - долгота восходящего узла орбиты ОС в ГСК, соответствующая времени toэ и вычисляемая по Формуле

лэ= Щ - фзn - щзn(toэ - 10800)

где Щ - долгота восходящего узла в абсолютной СК, фзn - истинное гриничское звездное время в радианах.

Из соотношений для прямоугольного сферического треугольника

Sin ц = Sin A * Sin u

Sin л = Sin u * Sin e

Cos A = Cos ц * Sin e

находим, что

Sin ц = Sin u * Sin e

Sin u * Cos I = Cos ц * Sin (л - лоэ)

Перепишем последнее уравнение в виде

Sin u * Cos I = Cos ц * Sin (щM + B)

Где

M = n (t-toэ) + Mоэ

щ = щзn/n

M - значение средней аномалии на момент времени toэ.

Пусть географическая область Gij ограничена меридианами лi лi+1 и параллелями ц и цj+1. Условие того, что ОС пролетит над заданной областью, определяется неравенствами

Рис. 2 Рис. 3

цij+1

цi+1j

лi< лJ

лj+1< лi+1

при цi+1j(.восходящий участок орбиты, рис. 2)

цij+1

цi+1j

лi< лJ

лj+1< лi+1

при цi+1j (.нисходящий участок орбиты, рис. 3)

цi, цj геоцентрические широты, на которых ОС пересекает меридианы лi и лJ соответственно.

лJ, лj+1географические долготы, на которых ОС пересекает параллели цj и цj+1. соответственно.

Если цj ij+1 и цj i+1j+2 то моменты времени входа ТGijвх и выхода ТGijвых соответствуют временам пересечения меридианов лi и лi+1. Эти времена вычисляются при решении системы уравнений

F (u, ц) = Sin u * Cos I - Cos ц * Sin (щM + B) = 0

G (u, ц) = Sin u * Sin I - Sin ц = 0

Cистема решается численно методом Ньютона - Рафсона. Постоянная B(л) определяет для какого ограничивающего меридиана лi или лi+1рассчитывается время. М выступает в качестве параметра. уточняемого на каждом итерационном шаге. Решением системы является пара u и ц. Нулевое приближение для u определяется по выражению

u(0) = (л - лоэ)/(1-щ), при л > лоэ

u(0) = (л - лоэ + 2р)/(1-щ) при л < лоэ

Нулевые приближения ц(0) и M(0) вычисляются по Формулам

Сомнение на К-ом итерационном шаге м(К) осуществляется по этим же выражениям. Процесс вычисления прекращается, когда выполняется условие

(M(k) - M(k-1))/n < 1 сек.

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

tл = (M(k) - Moэ)/n + tоэ

Если окажется, что цij, цij, при цjj+1 или цi+1j+1, цij+1, при цjj+1 то времена входа ОС в географическую область и выхода из нее определяются временами пересечения параллелей цj и цj+1 следующим образом.

Условия того, что ОС находится в долготном диапазоне (лi, лi+1) удобно заменить неравенством для аргументов широты

ui<uj, ui+1<uj+1

Значения uj, uj+1 учетом этого неравенства вычисляются по Формуле

u = arcsin (sinц/sini)

где ц = цj;

а значения времен определяются для известных uj и uj+1 формуами, приведенными выше.

при вычислении времен может оказаться, что ОС дважды пересекает географическую область для заданного долготного диапазона (лi, лi+1). Это возможно в случае, когда

ui< uj+1< uкр< u j+1< ui+1

и значение u j+1близко к наклонению i, где uкр = р/2 (или 3р/2).

Значение uj+1 вычисляется в соответствии с формулой, приведённой выще и учетом неравенства

ui< uj+1< uкр

А значение u,j+1симметрично относительно uкр и равно

u,j+1 = uкр + (uкр - uj+1) = 2* uкр - uj+1

при условии, что uкр < u,j+1 < ui+1

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

1.10.2 Определение времени прохождения ОС выделенных областей L.B - пространства

Для исследования пространственных характеристик потоков заряженных частиц в МПЗ. необходимо знание L.B - координат, при которых производится их регистрация. Выражения и зависимости для расчета компонент и модуля вектора напряженности Лектора индукции) МПЗ и L - координаты приведены в Приложении М» 3.

При определении пространственно-временных характеристик потоков заряженных частиц L.B - пространство разбивают элементарные области

Fij = (Li< L< Li+1. Bj <B< Bj+1)

алгоритм вычисления времен входа и выхода ОС для выделенной области Fij аналогичен алгоритму, приведенному в п 2.1. На витках планируемых сеансов эксперимента с заданным шагом по времени ?t рассчитываются значения Li и Bj. при пересечении трассой одной из границ области

Li (или Bj) определяются значение времени входа в область Fij,ТFijвх. Для этого на интервале времени(ti, ti+2) при выполнении неравенства

L1< Li< Li+2. B1<Bj< Bj+2

строится интерполяционный полином Лагранжа 2-ой степени

f(t) = ao + a1* t + a2*t2

где f(t) =(L(t), B(t)). Выражения для вычисления коэффициентов полинома аналогичны приведенным в п. 2.1. Если при этом дополнительно выполняется неравенство

Li< Lj< Li+1. Bj<Bi< Bj+1

то искомое время входа ТFijвх является решением одного из квадратных уравнений

ao + a1* t + a2*t2 - Li =0

или

ao + a1* t + a2*t2 - Bi = 0

Аналогичным образом определяется время выхода ОС из области Fij при этом последовательно пиверяется выполнение систем неравенств на интервалах времени (ti, ti+2)

Le < Li+1< Le+2

Bj < Bi+1 < Bj+2

Be < Bj+1 < Be+2

Li < Lj+1< Li+2

В случае выполнения одной из систем неравенств, время ТFijвх является решением соответствующего квадратного уравнения

ao + a1* t + a2*t2 - Li+1 =0

или

ao + a1* t + a2*t2 - Bi+1 = 0

1.11 Язык программирования Visual Fortran 6.0

Конечно же, сегодня известность Фортрана ни в коей мере не может сравниться с его популярностью в 60-е - 70-е годы. Тем не менее, пережив многих некогда грозных конкурентов, он продолжает сохранять устойчивые позиции в области математических расчетов.

1.11.1 Математические библиотеки подпрограмм

Традиционно сильной стороной Фортрана является мощный набор готовых математических решений в виде библиотек подпрограмм. За многие годы применения языка своеобразным стандартом в этой области стала коллекция фирмы Visual Numerics - библиотека IMSL. Поскольку это набор процедур, написанных на Фортране, она может использоваться на любой платформе, где есть соответствующий компилятор. Библиотека содержит свыше 1000 функций, объединенных в три группы:

1. общие математические функции: векторные и матричные операции, вычисление собственных значений, численные методы решения линейных и нелинейных уравнений, интегрирование и дифференцирование, интреполяция и аппроксимация, оптимизация и т.д.;

2. специальные функции: функции Бесселя, Кельвина, Эйри, Матье, тригонометрические, гиперболические, эллиптические и интегральные функции, гамма-функции и т.д.;

3. статистические функции: кластерный, факторный и дискриминантный анализ и многое другое.

По лицензионному соглашению с Visual Numerics корпорация Microsoft распространяла эту библиотеку под названием Microsoft IMSL Mathematical and Statistical Libraries в трех вариантах: 16-разрядном для MS-DOS (для MS Fortran 5.1), 32-разрядном для MS-DOS/Windows и 32-разрядном для Windows NT.

1.11.2 Компилятор DVF 5.0

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

Пакет DVF 5.0, как ранее FPS 4.0, поддерживает три основных на сегодняшний день стандарта языка: FORTRAN 66 (ANSI X3.9-1966), FORTRAN 77 (ANSI X3.9-1978) и Fortran 90 (ANSI X3.198-1992). При этом Digital подчеркивает, что оптимизирующий компилятор Fortran 90 в DVF имеет тот же исходный код, что и соответствующие компиляторы для сред Digital Unix и OpenVMS. Кроме того, DVF обеспечивает компиляцию еще для четырех менее распространенных стандартов: ISO 1539-1980, MIL-STD-1753, FIPS-69-1 и ISO 1539-1991, поддерживает большое число специфических расширений языка, включенных в FPS 4.0, а также компиляторы Digital Fortran для других компьютерных платформ.

В DVF 5.0 реализованы все новшества самого последнего стандарта языка - Fortran 95 (большинство из них ранее входили в состав неофициальных расширений различных разработчиков). Однако специальный режим компиляции для Fortran 95 не предусмотрен, так как к моменту выпуска продукта этот стандарт еще не был официально утвержден. В результате пакет дает программисту возможность работать фактически в режиме стандарта Fortran 95, но не позволяет заблокировать использование исключенных из него устаревших конструкций, которые есть, например, в FORTRAN 77.

1.11.3 Среда Developer Studio

Как мы уже упомянули, в DVF 5.0 входит интегрированная среда разработки Developer Studio - та же, что в системах программирования из семейства Microsoft Visual Studio 97. Впрочем, при желании можно также компилировать и компоновать модули в режиме командной строки, без использования Developer Studio.

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

В рамках одного проекта можно использовать исходные модули, написанные на разных языках: DVF 5.0 совместим с Visual C++, Visual Basic, Visal J++ и MASM. Наиболее тесно DVF 5.0 интегрирован с Visual C++, в том числе и с библиотекой MFC, причем среда Developer Studio прозрачна для обоих языков, а вызовы могут идти как из Фортран-программы к Си-функциям, так и наоборот. Из программ на Visual Basic можно вызывать модули, написанные на Фортране, но модули на Visual Basic из программ на Фортране вызывать нельзя.

Текстовый редактор Developer Studio обеспечивает настройку в соответствии со специфическими особенностями синтаксиса разных вариантов Фортрана. Например, можно задать режим работы с фиксированным форматом, который предписывает стандарт FORTRAN 77 (в строке кода 72 позиции, причем позиции 1-5 предназначены для метки, позиция 6 - для знака переноса), а можно использовать свободный формат по стандарту Fortran 90.

Типы результирующих программ

С помощью DVF можно получать как библиотеки подпрограмм (статические - OBJ и динамические - DLL), так и исполняемые модули. В целом это стандартная возможность для средств разработки, однако DVF вслед за FPS 4.0 предлагает разные варианты реализации исполняемых модулей, которые различаются степенью использования ресурсов Windows. Рассмотрим их подробнее.

Console Application. Программа, вообще не содержащая графики и реализующая наиболее простую форму диалогового интерфейса - стандартный ввод-вывод на консоль MS-DOS. Поскольку такие программы не обращаются к графическим подпрограммам из платформенно-зависимых библиотек, они самые быстрые и легче всего переносятся на другие платформы. Этот тип исполняемых модулей рекомендуется использовать для решения чисто вычислительных задач.

Standard Graphics Application. Программа с однооконным графическим интерфейсом, причем окно не содержит таких стандартных Windows элементов, как линейное меню вверху и строка состояния внизу. Подобно графическим программам для DOS, она работает с графическими устройствами напрямую, а не через ресурсы Windows. Тип Standard Graphics рекомендуется в тех случаях, когда нужен графический вывод информации и не нужен развитой пользовательский интерфейс.

Выводимый на экран текст можно скопировать в буфер обмена, причем и как текст, и как графику. Это позволяет организовать обмен информацией с другими программами. Например, в свое время руководство по FPS 4.0 предлагало неискушенным пользователям выводить данные на экран, копировать их, переносить в Excel и строить там график. Впрочем, обмен через файл, как представляется, все же удобнее.

QuickWin Graphics Application. Программа, созданная с использованием библиотеки QuickWin, которая содержит обширный (но не полный) набор функций Win32 API. Может иметь стандартный многодокументный интерфейс (Multiple-Document Interface - MDI), позволяющий создавать вторичные окна и держать открытыми одновременно несколько порожденных окон; окна содержат обычный набор элементов, в том числе, конечно, главное меню и строку состояния. Модуль DFLOGM.F90 обеспечивает создание графического пользовательского интерфейса из стандартных визуальных компонентов с помощью редактора ресурсов Developer Studio.

Win32 Application. Полнофункциональная программа, которой доступны все ресурсы операционной системы и полный набор функций Win32 API.

Все эти типы исполняемых модулей были реализованы и в FPS 4.0. Следует иметь в виду, что они не могут работать в среде Windows 3.x, так как не поддерживают Win32s.

На наш взгляд, для программистов, пишущих на Фортране, наиболее интересны варианты Console и QuickWin. Первый позволяет полностью сосредоточиться на расчетных алгоритмах, вообще не думая о Windows. Второй может быть полезен тому, кто хочет написать программу с системой меню и диалогом, не выходя из Фортрана: возможно, это быстрее, чем учиться работать с пакетом Visual Basic или Delphi, (которые к тому же отнюдь не бесплатны). Что касается типа Win32 Application, то представляется, что большинству Фортран-разработчиков он не пригодится. По крайней мере в руководстве по DVF 5.0 говорится, что «полное использование возможностей Windows-программирования потребует от вас хорошего знания Си и умения работать с библиотеками Software Development Kit».

1.11.4 Использование технологий COM и ActiveX

Новшеством DVF 5.0 является генератор исходных модулей Fortran Module Wizard. Он предназначен для получения специальных модулей на языке Fortran 90, обеспечивающих обращение к процедурам DLL-библиотек, методам ActiveX-объектов и функциям COM-серверов. Процесс создания модуля сводится к заполнению экранных форм, содержащих информацию об объекте, который будет использоваться. В программе же обращение к объекту выглядит как обычный вызов подпрограммы на Фортране, так что разработчику не нужно заботиться о тонкостях работы с COM-интерфейсом.

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

В конце 80-х годов некоторые наши коллеги, занимавшиеся аналогичными проблемами, с переходом с машин ЕС на ПК начали активно использовать вместо Фортрана более современные средства разработки, такие как Turbo C, Turbo Pascal, QuickBasic. В результате им удалось существенно повысить скорость разработки, но через некоторое время возникли проблемы межплатформенной совместимости (например, когда встал вопрос о широком распространении программ). К тому же, хотя Фортран тогда и уступал другим пакетам в удобстве среды разработки (сейчас это уже не так), он раньше других систем для DOS преодолел ограничение в 640 Кбайт. Так или иначе, большинство специалистов по моделированию геофильтрации вернулось сейчас к Фортрану.

Но стоит ли тому, кто уже работает с системой программирования на Фортране (например, корпорации Microsoft), переходить на DVF 5.0? Это зависит от характера решаемых задач, творческих интересов специалиста ответа на вопрос - какие возможности DVF действительно важны для его работы?

Разрабатываемые в настоящее время системы математического моделирования для среды Windows обычно состоят из двух относительно независимых частей: расчетной (в англоязычной литературе ее называют numerical engine), оформленной как отдельный EXE-модуль или DLL-библиотека, и интерфейсной - интерактивной Windows-оболочки, которая позволяет работать с базой данных, редактировать, просматривать исходные данные, запускать расчетную программу и анализировать результаты.

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

Интерфейсные же модули разрабатываются, как правило, в среде Visual Basic, Delphi, Visual C++ и с участием профессиональных программистов, нередко весьма далеких от той предметной области, для которой производятся расчеты. А авторы расчетных модулей если и пишут оболочки, то главным образом для собственных нужд.

С учетом всего вышесказанного очевидно, что переход на DVF 5.0 можно однозначно порекомендовать тем, кто еще работает с MS Fortran 5.0. По-видимому, он будет полезен и большинству пользователей FPS 1.0. Что же касается замены FPS 4.0, то здесь есть над чем подумать: ведь принципиально новые возможности DVF 5.0, в частности работа с COM-объектами - не слишком интересны разработчикам расчетных модулей.

Если говорить о самом компиляторе, то с функциональной точки зрения новые элементы DVF 5.0 представляются не очень значительными. Что же касается качества реализации, то мы не заметили у DVF 5.0 ни недостатков, ни особых преимуществ по сравнению с компилятором Microsoft, да и в публикациях нам не попадалось упоминаний о критичных отличиях. Перенос программ из FPS 4.0 в DVF 5.0 у нас прошел без проблем. В одном пункте FPS 4.0 и DVF 5.0 все-таки несовместимы (DVF считает ошибкой табуляции в начале строк), но на Web-узле Digital имеется утилита, которая проверяет исходный код программы и корректно конвертирует его.

Однако с выходом следующей версии, в которой будет реализована компиляция в режиме Fortran 95 и, возможно, оптимизация для архитектурных новшеств различных процессоров, в первую очередь Intel, интерес к DVF должен повыситься.

Уже сегодня DVF 5.0 может эффективно использоваться для обучения студентов технических и естественных специальностей. Он позволит студентам и работать с огромным вычислительным наследием прошлого, и осваивать разработку современных WIndows-программ.

1.11.5 Intel Visual Fortran Compiler for Windows 8.1

Пакет Intel Visual Fortran Compiler for Windows 8.1 стал полноправным преемником известного в мире программирования на языке Фортран пакета Compaq Visual Fortran (CVF). Технологии оптимизации компании Intel в сочетании с наработками пакета CVF дали великолепный результат, которым теперь могут воспользоваться разработчики приложений для самых разных областей науки и техники. Версия 8.1 стала первым компилятором для языка Фортран, который снабжен полноценной поддержкой технологии 64-битной адресации памяти Intel Extended Memory 64 Technology (Intel EM64T) и технологии многопоточной обработки OpenMP 2.0, а кроме того способен автоматически распараллеливать процессы.

Компилятор Intel позволяет достичь уменьшить объем и производительность исполняемого кода приложений на 32- и 64-разрядных платформах Intel, включая системы на базе новейших процессоров Pentium M (компонент аппаратной платформы Intel Centrino), Pentium 4 с технологией Hyper-Threading, Xeon, Itanium и Itanium 2. Он предлагает мощные средства оптимизации кода, встроенную поддержку многопоточных приложений и инструменты для реализации технологии Hyper-Threading. Компилятор Intel поддерживает ведущие отраслевые стандарты и расширения языка Фортран, совместим с популярными средствами разработки, а также обеспечивается первоклассной технической поддержкой.

Пакет Intel Visual Fortran for Windows поставляется в двух редакциях: Standard и Professional. Отличительной особенностью профессиональной редакции является входящий в комплект поставки набор математических и статистических функций IMSL Fortran Library 5.0 for Windows, который объединяет в себе библиотеки IMSL F90 и IMSL FORTRAN 77, а также инструментарий для параллельной обработки информации.

1.12 Описание программного продукта

1.12.1 Основная форма программы

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

1.12.2 Алгоритм работы программы

При этом алгоритме, интегрирующая уравнения движения методом Рунге-Кутта. В результате работы программы на моменты времени ti с заданным шагом ?t определяются векторы состояния BCi =(ti, ri; ri) в ГСК. Обычно, данная программа чаще применяется при обработке результатов измерений НА, реже при моделировании условий планируемых сеансов эксперимента. Чтобы достигнуть хорошего совпадения решения с реальным движением, шаг интегрирования уравнений движения должен быть достаточно мелким (~20 сек). Поэтому число расчетных точек велико и соответственно тратится много машинного времени на их вычисление.

1.12.3 Описание основных функций

Функция Subroutine dthms (t, thms)

Занимается переводом времени из секунд в часы, минуты, секунды

Функция Subroutine dtsek (thms, t)

Производит перевод обратный функции Subroutine dthms (t, thms) из часов, минут и секунд в секунды.

Функция Subroutine dclor (t, ale1, ale2, te1, te2, r1, r2, x, v, r, om)

Производит расчет кругового движения космического аппарата.

Функция Subroutine djmzp (ale1, ale2, te1, te2, omzp)

Делает расчет угловой скорости вращения орбиты в ГСК

Функция Subroutine dstime (ud, ZVR)

Расчет звёздного времени в радианах

2. Технологическая часть

2.1 Основные этапы работы

2.1.1 Задание

Целью данной дипломной работы являлось являлось создание программного обеспечения для планирования радиолюбителями сеансов пакетной связи с учетом зон видимости наземных радиолюбительских станций с МКС.

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

· Обработка текстового файла в формате Dat, содержащего данные расчётов от других программ в стандартизованном виде.

· Использование текстовых файлов для хранения значений временных параметров и компонент вектора состояния, взятых из исходного текстового файла.

· Выборка из текстовых файлов данных информации по запросу с последующим экспортом в текстовый файл.

2.1.2 Выбор языка

В качестве языка программирования, при написании программы, был выбран язык программирования Visual Fortran.5.0®. Хоть сам язык программы морально устарел, все вспомогательные программы, с которыми работает данная программа, работают на данном языке и работают хорошо. Поэтому было принято решение оставить язык программирования без изменений.® Продукт является собственностью ©Microsoft Corporation. All rights reserved.. Кроме субъективных предпочтений этот язык имеет множество положительных качеств, являясь, на данный момент, всё ещё широко используемым языком, часто выбираемым разработчиками для решения самых разных задач.

Основные преимущества выбранного языка программирования подробно описаны в разделе «Основная часть» дипломной работы в главе «Описание программного продукта» подраздел «Выбор средств разработки программного продукта» и не требуют дублирования в данном разделе.

2.1.3 Отладка программы

Язык программирования Visual Fortran.5.0 имеет в своем составе механизмы отладки программ. К механизмам отладки относятся:

· Точки останова. Точки в коде программы позволяют просматривать только необходимые части кода, остальная часть кода выполняется в режиме обычного выполнения(RUN).

· Пошаговое выполнение программы. Проход каждой строки программного кода. Имеется также разновидность пошагового выполнения программы - пошаговое выполнение программы без захода в процедуры.

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

В ходе создания разработанного ПМО возникали ошибки различного рода. Некоторый из них были связаны с выбранными средствами, а другие с реализацией и субъективным фактором. Далее приведены основные ошибки, возникавшие в процессе создания данного ПМО:

ь Основная ошибка при работе с тестовыми файлами состояла в необходимости закрывать файл после окончания процедуры работы с ним. В противном случае при последующем обращении к файлу возникала ошибка, сообщающая о том, что файл уже открыт. Такая же проблема возникала и при работе с базой данных. Необходимо было также закрывать соединение с базой данных и отрываемые объекты типа Recordset. Уничтожение этих объектов после использования также полезно, потому что освобождает память, занимаемую ими.


Подобные документы

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

    курсовая работа [102,3 K], добавлен 21.06.2013

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

    курсовая работа [298,2 K], добавлен 24.06.2013

  • Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).

    презентация [41,4 K], добавлен 13.10.2013

  • Разработка программного обеспечения для микропроцессорных систем МК51, интерфейсы в системах связи, основы асинхронной связи. Этапы решения задачи на ЭВМ, принципы тестирования программ и их отладка. Расчет затрат на разработку программного продукта.

    дипломная работа [270,6 K], добавлен 19.06.2010

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

    контрольная работа [14,0 K], добавлен 29.10.2010

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

    курсовая работа [421,0 K], добавлен 22.06.2011

  • Правила оказания услуг почтовой связи. Тарифы на оказание универсальных услуг почтовой связи. Программная реализация решения задачи. Пример выполнения программы. Разработка программного продукта в среде визуального программирования CodeGear RAD Studio.

    курсовая работа [136,9 K], добавлен 01.02.2010

  • Понятие и назначение интерфейса, его структура и компоненты, порядок их взаимодействия. Этапы разработки и особенности пакетной технологии. Простой графический интерфейс. Краткое описание современных внешних интерфейсов: USB, FireWire, IrDA, Bluetooth.

    реферат [506,8 K], добавлен 27.03.2010

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

    дипломная работа [1,3 M], добавлен 18.06.2015

  • Разработка Ethernet как пакетной технологии передачи данных преимущественно локальных компьютерных сетей. Особенности операционной системы как части системного программного обеспечения. Применение в глобальных технологиях Asynchronous Transfer Mode.

    курсовая работа [453,7 K], добавлен 01.02.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.