Реферат: Программа управления самолётом в режиме автопилота

Содержание:

1 Техническое задание                                                                                                            2

Введение                                                                                                                             2

Основания дляразработки                                                                                                2

Назначенияразработки                                                                                                     2

Требования кпрограммному продукту                                                                           2

Требования кпрограммной документации                                                                     2

Стадии и этапыразработки                                                                                              3

2 Выбор и обоснования языка программирования                                                      4

3 Выбор и обоснование операционной системы                                                          6

4 Инструкции пользователя                                                                                           7

5 Описание программы                                                                                                  8

Общиесведения                                                                                                                8

Функциональноеназначение                                                                                           8

Использованныетехнические средства                                                                        10

Вызов изагрузка                                                                                                              10

Входныеданные                                                                                                              10

Выходныеданные                                                                                                           10

6 Инструкции оператора                                                                                              11

Назначениепрограммы                                                                                                   11

Условиявыполнения программы                                                                                  11

7  Инструкцияпо подготовке входных данных                                                         12

8  Областьприменения программного продукта                                                       12

9  Методытестирования и отладки программного продукта                                    13

10 Эффективность программного продукта                                                              16

11 График зависимости                                                                                                16

12 Инженерное программирование                                                                            17

13 Заключение                                                                                                               18

14 Список использованной литературы                                                                     19

Техническое задание.

(Техническое задание оформлено ивыполнено в соответствии с ГОСТ 19.201.-78ЕСПД)

Введение.

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

Широкая автоматизация процесса управления самолётом неисключает лётчика из системы управления, а оставляет за ним функции включениявыключения, настройки автопилота, а так же контроль процесса пилотированиясамолёта. Поэтому задача разработчика данной программы (программы- автопилота)заключается в рациональном распределении и сочетании в рамках единой системыуправления, функций пилота и САУ.

Основания для разработки.

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

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

Назначения разработки.

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

Требование к программеили программному изделию.

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

Требование кпрограммной документации.

Вся документация написана всоответствии с ЕСПД.

Технико-экономические показатели.

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

Стадии иэтапы разработки.

Разработка программы будетсостоять из следующих этапов:

1. Определение требований и заданий.

2.Проектирование программы.

3.Написание программы (программирование)

4. Компоновка.

5.Тестирование.

6. При провалетестов возврат к этапу 3.

7.Документирование.

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

Выбор и обоснование языкапрограммирования.

Выбор языка программирования должен осуществляться последующим критериям:

1.Читабельность языка, легкость чтения и понимание программ на нем.

а) Простота

б) Ортогональность

2.Ограниченное количество управляющих операторов.

а) Количество операторов безусловного перехода

б) Точки перехода никогда не должны находиться слишкомдалеко.

в) Количество операторов безусловного переходадолжно быть ограничено.

3. Типыи структура данных должны быть хорошо описаны.

4.Анализ синтаксической структуры.

а) Формула идентификаторов.

б) Ограничение длины идентификаторов до оченьмаленьких размеров уменьшает читабельность.

в) Специальные слова.

г) Форма и значении

5. Легкость создания программ.

а) Простота и ортогональность

б) Поддержка абстракции

в) Выразительность

6.Надежность

а) Проверка типов.

б) Обработка исключений

в) Совмещение имен

г) Легкость чтения и использования.

Для данной программы был выбран язык «С++». «C++» — это усовершенствованный вариант «С», основные отличияот «С» заключаются это объектное ориентирование «С++», поддержка абстракцииданных поддержка обработки ошибок с помощью исключений и возможности перегрузкиопераций. Также «С++» является одним из наиболее часто употребляемыхобъектно-ориентированных языков, по причине оптимального сочетанияфункциональности и быстродействия. «С++» появился как видоизменённый «С». В нёмпоявились новые функции, упростился процесс разработки программных продуктов.Вот только некоторые из преимуществ «С++» над другими языками:

Программы на«С++» получаются компактными и быстро выполняемыми. Фактически язык «С++»обладает такими прекрасными возможностями управления, которые обычно присущиязыкам Ассемблера. Программы на языке «С++» можно по желанию настраивать либона максимальное быстродействие, либо на экономное использование доступнойпамяти. Языку «С++» присуща высокая степень переносимости. Это означает, чтопрограммы на языке «С++», написанные для одной операционной системы, могутвыполняться в других системах с небольшими изменениями (или вообще безтаковых). Если модификация программы необходима, то зачастую она может бытьвыполнена путем простой замены нескольких записей в заголовочном файле дляосновного модуля. Язык «С+» является мощным и гибким. Например, большая частьмощной и гибкой операционной системы UNIX написана на языках «С++» и «С» (предшественнике «С++»).Многие компиляторы и интерпретаторы для других языков программирования, такихкак FORTRAN, APL,PASCAL, LOGO и BASIC,написаны на языке «С++». Язык «С++» сориентирован на удовлетворениепотребностей программистов. Он предоставляет доступ к аппаратным средствам ипозволяет оперировать отдельными битами оперативной памяти.

Выбор и обоснование операционной системы.

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

1. Совместимость (Compatibility).На ОС QNXвнешний вид может различаться, т.к. внешний вид данной ОСзависит от установленной графической оболочки, QNXобеспечивает поддержку многих файловых систем, к примеру, таких как NTFSи FAT. Большинство приложений, написанныхпод WIN9x, WINNT, *NIX, а также некоторые программы под OS/2и POSIXзапускаются и функционируют без проблем, а если проблемы ипоявляются, то их можно устранить без проблем. При проектировании QNXучитывалась возможность работы системы в различных сетевыхсредах, поэтому в поставку входят средства для работы в *NIXи WINDOWSсетях.

2. Переносимость (Portability).Система работает наразличных процессорах семейства х86 (для релиза RTP6.1.0) а также с архитектурами MIPS, PowerPC, HitachiCH4, INTELStrongARM. Реализация поддержки процессоров других архитектурвозможна т.к. QNXпрактически нетребовательна ксистемным ресурсам.

3. Масштабируемость(Scalability).ВQNX реализованаподдержкатехнологииSMP, Datacenter Server,COW (Cluster Of Workstations).

4. Система безопасности (Security) Система безопасностиреализована на высоком уровне.

5. Надёжность и отказоустойчивость (ReliabilityandRobustness).

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

6.Локализация (Localization).Система предоставляет возможности для работы во многихстранах мира на национальных языках, что достигается благодаря стандарту ISOUnicode

7.Расширяемость (Extensibility).Благодаря модульному построению системы становитсявозможно добавление новых модулей на различные архитектурные уровни ОС безперезагрузки самой ОС.

Инструкцияпользователя.

Пользователем нашей программы будет являться человек,

управляющий самолётом, т. е. лётчик.

После запуска программы на дисплее появляется надпись«Введите данные».

Данные в программу можно будет вводить двумя способами.

1. Первый способ — полуавтоматический.

Пользователь вводит координаты точки назначения, а также(если требуется) необходимые «контрольные точки» (скажем при запрете полётовнад городами), а компьютер сам выбирает оптимальные параметры: скорость полёта,высоту полёта и прочие.

2. Второй способ — данные вводятся вручную, т. е.

лётчик сам вводит курс, маршрут, скорость ветра,

нахождение в точке, высоту полёта.

<span Times New Roman",«serif»;color:black;font-weight:normal">После ввода данных,программа должна проверить все введённые данные (послать пользователю запрос наподтверждение введённых данных).

<span Times New Roman",«serif»;color:black;font-weight:normal">Затем следует нажатьна кнопку ОК, данные сохраняются, обрабатываются и компьютер выводит на экраноптимальный маршрут. Данные также можно будет корректировать. Для этого нужнонажать на кнопку «Корректировка данных».

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

Описание программы.

1. Общие сведения.

Название разрабатываемой программы: «Программа управлениясамолётом в режиме автопилота». Данная программа написана на языке С ++.

2. Функциональное назначение.

Программа решает следующие задачи:

1. хранит в себе данные о полёте.

2. отслеживает и корректирует курс самолёта.

3. вычисляет оптимальный маршрут.

4. контролирует ход процесса полёта и управления самолётом.

Главное значение программы — облегчение работы пилота, получение полной отдачи отсамолёта, а также для повышения безопасности жизни людей.

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

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

     

1) Началоработы программы

2)Проверка готовности системы

3)Сообщение об ошибке с указанием причины ошибки

4)Ввод данных

5)Проверка количества данных (достаточно или нет)

6)Вывод оптимального маршрута и, собственно полёт

7)Остановка работы программы

                               

3.Используемые технические средства.

Дляработы программы необходимы:

-    Операционнаясистема QNX

-<span Times New Roman"">         

ПроцессорIntel Pentium III 650+MHz

-<span Times New Roman"">         

ОЗУ 256+ Mb

-<span Times New Roman"">         

2+ Gbсвободного места на жёстком диске

-<span Times New Roman"">         

Видеоплата 8+ Mb

-<span Times New Roman"">         

Клавиатура,манипулятор типа «Трэкбол»

-<span Times New Roman"">         

Звуковая плата(возможно использование встроенного звукового процессора)

4.Вызов изагрузка.

Даннаяпрограмма запускается при помощи ярлыка autofly (при наличии установленной графической оболочки) или припомощи команды autoflyв консоли управления ОС. ВАЖНО! Доступ к компьютеру и к программе должны бытьзакрыты разными(!!!) паролями- в целях обеспечения безопасности.

5.Входные данные

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

6. Выходные данные

Выходные данные поступают в соответствии с запросомлётчика, выводятся на экран в режиме реального времени, устаревшие данныезаносятся в память компьютера и в «Чёрный ящик», откуда их можно удалить толькопосле полёта.

Инструкция оператора.

1. Назначение программы.

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

2« Условия выполнения программы,

Для правильной и эффективной работы программы необходимоследующее программное обеспечение и аппаратные средства:

-    Операционнаясистема QNX

-<span Times New Roman"">         

ПроцессорIntel Pentium III 750+MHz

-<span Times New Roman"">         

ОЗУ 512+ Mb

-<span Times New Roman"">         

2+ Gbсвободного места на жёстком диске

-<span Times New Roman"">         

Видеоплата 8+ Mb

-<span Times New Roman"">         

Клавиатура,манипулятор типа «Трэкбол»

-<span Times New Roman"">         

Звуковая плата(возможно использование встроенного звукового процессора)- для паданиязвукового сигнала в случае какой-либо внештатной ситуации

                  

Инструкция по подготовке ввода входных данных.

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

Область применения программного продукта.

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

Методытестирования и отладки программ.

Для правильнойработы программы необходимо, чтобы она прошла ряд тестов, такихкак:

1)<span Times New Roman"">                  

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

2)<span Times New Roman"">                  

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

3)<span Times New Roman"">                  

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

4)<span Times New Roman"">                  

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

5)<span Times New Roman"">                  

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

6)<span Times New Roman"">                  

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

7)<span Times New Roman"">                  

Тест проверки удобства установки и подготовки рабочей версии.Служит для выявления ошибок методов и средств настройки комплекса программ кконкретным условиям применения.

8)<span Times New Roman"">                  

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

9)<span Times New Roman"">                  

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

10)<span Times New Roman"">              

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

11)<span Times New Roman"">              

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

12)<span Times New Roman"">              

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

13)<span Times New Roman"">              

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

14)<span Times New Roman"">              

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

15)<span Times New Roman"">              

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

16)<span Times New Roman"">              

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

17)<span Times New Roman"">              

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

18)<span Times New Roman"">              

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

19)<span Times New Roman"">              

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

20)<span Times New Roman"">              

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

21)<span Times New Roman"">              

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

22)<span Times New Roman"">              

23)<span Times New Roman"">              

Тест проверки функционирования программы в критическихситуациях по условиям и логике решения задач.

24)<span Times New Roman"">              

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

Внесение дефектов и время их устранения на разных стадияхразработки ПО.

Эффективностьпрограммы.

    Э=(N/t)k*100%, где :    

N — Количествоциклов

t-   Время

k-  Количество функций

<img src="/cache/referats/19972/image001.gif" v:shapes="_x0000_s1032"><img src="/cache/referats/19972/image002.gif" v:shapes="_x0000_s1029"><img src="/cache/referats/19972/image003.gif" v:shapes="_x0000_s1028"><img src="/cache/referats/19972/image005.gif" v:shapes="_x0000_i1025">

Инженерноепрограммирование.

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

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

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

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

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

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

6. Изменяемость означает, что программноеизделие можно легко оснастить контрольно-измерительными средствами и замеритьих характеристики для определения узких мест в программе, неэффективностиПО, а также можно легко модифицировать эти средства или построитьих для учета изменений.

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

Заключение.

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

Список литературы.

И.А. Михалёв, Б.Н. Окоемов «Системы автоматическогоуправления самолётом.» изд. «М