Материал: Sb97309

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

x1 = 0:0.01:10;

x2 = 0:10;

y1 = sin(x1); y2 = sin(x2);

plot (x1, y1, 'r--', x2, y2, 'k*'), grid xlabel(‘x’), ylabel(‘sin(x)’) title(‘Sine plotting’)

Рис. 3.1

Развернутое управление выводом графиков (толщина линий, размер и вид шрифта и др.) можно получить с помощью дескрипторов – графических указателей. Дескрипторы можно создать функциями plot, figure, axes, text либо получить по имеющимся графическим объектам – gcf, gca. Просмотр и изменение параметров графиков осуществляется функциями get и set.

Вывод линии в трехмерной плоскости осуществляется функцией plot3(). Для вывода поверхностей можно применять функции mesh(), surf(). Пример программы для вывода сетчатой поверхности приведен далее, соответствующий график показан на рис. 3.2.

x = -2:0.2:2; y = -4:0.4:4;

[X,Y] = meshgrid(x, y); % создание сетки для построения поверхности

Z = sin(X-1).^2 + sin(Y+1).^2 + 4;

21

mesh(X,Y,Z), grid

colormap([0.5 0.5 0.5]) % установка цвета поверхности title('meshed surface')

xlabel('x'), ylabel('y'), zlabel('height')

Рис. 3.2

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

menu() – создание меню и передача управления пользователю для выбора; msgbox() – создание окна для вывода сообщения;

inputdlg() – создание окна диалога – формы для ввода данных.

5. ТРЕБОВАНИЯ К ВХОДНЫМ И ВЫХОДНЫМ ДАННЫМ ПРОГРАММЫ

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

22

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

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

National Marine Electronics Association (NMEA) – Национальная ассоци-

ация морской электроники, разработала специальный протокол для поддержания совместимости морского навигационного оборудования различных производителей. Этот NMEA-протокол описывает данные, полученные с GPS-приемников, но и измерения сонаров, радаров, электронных компасов, барометров и других навигационных устройств, используемых в морской технике. Все NMEA-сообщения состоят из последовательного набора данных, разделенных запятыми. Каждое отдельное сообщение не зависит от других и является полностью «завершенным». NMEA-сообщение включает заголовок, набор данных, представленных ASCII-символами, и поле для проверки достоверности переданной информации.

Заголовок стандартных NMEA-сообщений состоит из 5 символов, из которых два первых определяют тип сообщения, а оставшиеся три – его название. Каждое NMEA-сообщение начинается с символа «$» и обычно ограничено 80 символами.

Уточним для поставленной задачи формат и вид входных и выходных данных:

координаты промежуточных точек (пунктов подзарядки) должны вводиться из файла, формат определяет разработчик (рекомендуется задавать данные в текстовом файле в виде таблицы координат; можно задавать также столбец с номером точки);

координаты начальной и конечной точек должны задаваться с клавиатуры;

прочие исходные данные (скорость объекта, время работы батареи

ипр.) можно считать условно постоянными и задавать внутри программы;

выходные данные должны выводиться на экран и в файл в составе:

1) матрица координат, включающая начальную, промежуточные и конечную точки,

23

2)матрицы смежности неориентированного графа,

3)вспомогательных массивов для вычисления минимального пути,

4)последовательности вершин минимального пути,

5)последовательности NMEA-сообщений о маршруте объекта;

6)график с отображением графа и минимального пути. Сообщение NMEA имеет следующий формат:

«$UTHDG,XX,Y.Y,DD.DD,S1,Z.Z,S2», без пробелов, где XX – часы (це-

лое число), Y.Y – минуты (вещественное число), DD – расстояние до следующей точки; Z.Z – угол направления в градусах;

S1 – сигнал наличия поворота (символ), возможные значения: ‘T’ – есть поворот, ‘N’ – нет поворота;

S2 – сигнал окончания движения (символ), возможные значения: ‘E’ – конец движения, ‘N’ – движение не окончено.

Угол направления (азимута) отсчитывается от оси OX в декартовой системе координат, диапазон – от 0 до 360º.

6. ТИПОВОЙ ВАРИАНТ ЗАДАНИЯ НА КУРСОВОЙ ПРОЕКТ

Разработать программу, выполняющую следующие действия:

формирование массива данных в виде неориентированного графа;

поиск оптимальной траектории;

расчет маршрута и отображение результатов в графике и специальном формате NMEA-сообщений.

Исходные данные (по вариантам в соответствии с таблицей)

Характеристики подвижного объекта

 

Скорость, км/ч

 

Время работы

Время зарядки на з/п,

 

 

 

 

 

аккумулятора, ч

мин

 

 

 

 

 

 

 

 

 

 

 

 

Описание территории

Координаты начальной точки:

Координаты конечной точки:

Набор координат точек (заправочных пунктов):

8–10 узлов сетки с шагом 1 (–10 <= X <= 10 и –10 <= Y <= 10)

Масштаб сетки:

 

 

км.

 

 

Задание

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

24

Варианты заданий

 

Скорость,

Время работы

Время

Начальная

Конечная

Масштаб

Вариант

аккумулятора,

зарядки,

км/ч

точка

точка

сетки, км

 

ч

мин

 

 

 

 

 

1

16

6.5

15

(–9; 7)

(7; –6)

25

2

16

6

27

(5; 5)

(–8; –9)

30

3

18

5

25

(6; –7)

(–7; 6)

20

4

18

6

30

(–7; –7)

(5; 6)

25

5

20

5

17

(10; –8)

(–8; 8)

30

6

20

4.5

15

(–5; –5)

(4; 6)

20

7

22

4.5

20

(10; 10)

(–6; –7)

30

8

22

4

17

(–9; 7)

(8; –5)

20

9

16

5.5

30

(4; 10)

(–8; –9)

20

10

16

4.5

20

(–5; 6)

(4; –10)

20

11

18

3.5

27

(–3; 9)

(10; 8)

15

12

18

4

15

(7; 8)

(–9; –6)

20

13

18

4.5

30

(–9; –8)

(10; 9)

20

14

19

5

25

(8; –5)

(–8; 5)

30

15

19

5.5

15

(–6; 6)

(5; –5)

15

16

19

6.5

30

(–7; 9)

(9; –6)

25

17

20

3.5

30

(–10; –10)

(10; 8)

40

18

20

4

17

(6; 10)

(–8; –5)

25

19

17

5

22

(–9; 9)

(7; –7)

20

20

17

5.5

15

(8; –8)

(–7; 6)

20

21

17

4.5

25

(7; 5)

(–8; –6)

30

22

17

6

20

(–7; 7)

(7; –7)

25

23

19

4

23

(4; 10)

(–4; –9)

20

24

21

3.5

15

(–4; –8)

(8; 4)

15

25

21

5

25

(–5; –8)

(9; 9)

25

2.Построить массив возможных перемещений между точками с учетом ограничения работы аккумулятора (квадратный массив, содержащий 1 и 0 – соответственно, перемещение возможно и невозможно) (матрица смежности).

3.Построить матрицу длин перемещений.

4.Определить вектор, состоящий из номеров точек, соответствующих минимальному пути от начальной до конечной точки.

5.Определить последовательность углов направлений и моментов времени для оптимальной траектории и сформировать NMEA-сообщения.

6.Построить график с указанием графа перемещений и оптимальной траектории.

7.Вывести результаты расчетов (пп. 1–5) на экран и в файл.

25

Источник: https://studfile.net/preview/16439023/