Разработка и исследование подсистемы формирования программной траектории автономного необитаемого подводного аппарата

Особенности применения автономных необитаемых подводных аппаратов (АНПА) в задачах обследования акватории, их виды и основные задачи. Система автоматизации подготовки программы-задания для АНПА. Программное обеспечение для формирования траектории.

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

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

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

Рисунок 15 - Подсистема движения АНПА

Подсистема движения АНПА состоит из 2 подсистем: подсистемы расчета коэффициентов (Coef) и подсистемы решения системы уравнений (Lin_System) (рисунок 16).

Рисунок 16 - Подсистемы расчета коэффициентов и решения системы уравнений

Подсистема расчета коэффициентов (рисунок 17) вычисляет коэффициенты системы дифференциальных линейных уравнений. Каждый коэффициент задается с помощью блока Fcn в соответствие с уравнениями (8) - (13). Формулы, записанные в блоки Fcn, представлены в таблицах 1 и 2. Расчет гидродинамических коэффициентов вынесен в отдельную подсистему.

Рисунок 17 - Подсистема расчета коэффициентов

Таблица 1 - Коэффициенты () левой части системы уравнения

i\j

1

2

3

1

2

3

0

4

0

5

0

6

-

4

5

6

1

0

0

2

0

0

3

4

0

0

5

0

0

6

0

0

Таблица 2 - Коэффициенты () левой части системы уравнения

i

Коэффициенты

1

2

3

4

5

6

В подсистеме решения системы уравнений (рисунок 18) с помощью блоков Matrix Concatenate и ReShape 36 коэффициентов левой части системы уравнений преобразуются в матрицу 6*6. Блок LU Solver решает систему линейных уравнений [18], задаваемых квадратной матрицей A (коэффициенты левой части системы уравнений) и вектором B (коэффициенты правой части уравнений).

Подсистема Convert (рисунок 19) реализует уравнения связи (13) - (19) и интегрирует полученные производные координат.

В блока Fcn подсистемы Convert записаны следующие формулы:

? в блоке “dX/dt” - u [1] * (u [3] *u [5] *u [7] *u [9] +u [2] *u [5] *u [8] *u [7] - u [4] *u [6] *u [9]);

? в блоке “dY/dt” - u [1] * (u [2] *u [5] *u [9] - u [3] *u [5] *u [8]);

в блоке “dZ/dt” - u [1] * (u [3] *u [5] *u [9] *u [6] +u [2] *u [5] *u [8] *u [6] - u [4] *u [7]).

Рисунок 18 - Подсистема решения системы уравнений

Рисунок 19 - Подсистема Convert

3.4.2 Реализация блока управления АНПА

Блок управления АНПА (рисунок 20) в качестве входных переменных координаты X,Y,Z аппарата (в земной системе координат) и угол рыскания (rys). Выходными сигналами являются управляющие сигналы, подаваемые на входы подсистемы AUV, а также текущее отклонение от программной траектории.

Рисунок 20 - Блок управления АНПА

В блоках “Lookup Table" с именами “X_Tr" и “Z_tr" хранится массив путевых точек (в блоке X_Tr по координате X, в Z_Tr по координате Z). В качестве метода экстраполирования интерполирования должно быть указано “Use Input Above”.

Блок “Mux” мультиплексирует сигналы и для блока Fcn с именем “Hypot”, чтобы последний c помощью стандартной функции hypot рассчитал расстояние между текущей путевой точкой и координатами АНПА.

Блок, “Constant_R" задает сигнал, равный значению переменной a.

Блок “Relation Operation" сравнивает расстояние между текущей путевой точкой и координатами АНПА, и значение a. Когда расстояние становится меньше значения переменной a, то выходной сигнал с блок изменяется с “0” на “1”. На изменение уровня сигнала срабатывает блок “Triggered SubSystem" (рисунок 21), играющий роль счетчика (считает срабатывания). Блок Triggered SubSystem настроен на срабатывание “по переднему фронту”. Для правильной работы подсистемы нужен блок “Memory”.

Блоки “Dead Zone”и “Stop" останавливают моделирования, когда номер текущей путевой точки станет больше, чем количество всех путевых точек.

Рисунок 21 - Счетчик

Блок “Trigonometric Function ” реализует формулу (21). В качестве параметра указана функция atan [20]. После блока распложен сумматор, реализующий формулу (23).

Блок управления также содержит подсистему “D_traectory”, реализующий блок отклонений.

Подсистема “Limit-pi ” (рисунок 22) реализует формулы (24) и (25).

Рисунок 22 - Блок ограничения выходного сигнала

Схема управления аппарата по глубине (обозначена Depth) представлена на рисунке 23. Блок реализует формулу (20). Коэффициенты a=0.004 и b=0.07 подобраны в ходе ОКР.

Рисунок 23 - Регулятор управления горизонтальными рулями

На рисунке 24 представлено изменение глубины во времени (на 300 секунде требуемая глубина изменилась со значения 100 метров до значения 200 метров, а на 600 секунде обратно: со значения 200 метров до значения 100 метров).

Рисунок 24 - Изменение глубины

3.4.3 Реализация блока отклонений

Реализация блок отклонений представлена на рисунке 25. Блоки “Fcn” c именами “Delta” и “Delta_Old” рассчитывают расстояние между точкой, в которой находится аппарат и отрезками, входящие в состав программной траектории (“Delta”-текущий “Delta_old”-предыдущий). В качестве функции указана функция Delta. Исходный код находиться в приложении Б. Блоки “Fcn” с именем “Min” выбирает минимальное значение между выходными значением блоков “Delta” и “Delta_Old”. Для расчета отклонения нужны координаты предыдущих путевых точек. Их координаты запоминает подсистема “Old” (рисунок 26)

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

Система содержит 3 мультиплексера с целью, соединения в сигналов в вектор.

Рисунок 25 - Блок отклонений

Рисунок 26 - Подсистема “Old”

Подробное описание использованных блоков находится в приложении А.

3.4.4 Реализация подпрограмм, генерирующих заданную траекторию

Реализация данных подпрограмм произведена в соответствии с описанием типовых элементов покрытия, рассмотренных в 2 главе.

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

3.4.5 Настройки среды Simulink

Настройки моделирования располагаются в пункте меню Simulation>Configuration Parameters. Основные настойки приведены в таблице 3.

Таблица 3 - Основные настройки модели

Вид настройки

Значение

Start time

0.0

Stop time

6000

Solver type

Variable-step

Solver

Ode45

Relative tolerance

1e-3

Max step time

auto

Min step time

auto

Simulation mode

Normal

3.4.6 Реализация интерфейса

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

? расположение элементов интерфейса в диалоговом окне;

? программирования событий.

Конечным результатом является ПО с графическим интерфейсом пользователя (GUI). ПО хранится в нескольких файлах. ПО запускается из командной строки Matlab.

Для создания ПО с GUI в среде Matlab существует визуальная среда Guide. Поле для создания представлено на рисунке 27.

Рисунок 27 - Guide

Вид разработанного интерфейса к разрабатываемой подсистеме представлен на рисунке 28.

Рисунок 28 - Интерфейс к подсистеме

Интерфейс к подсистеме имеет графического поля, служащее для вывода заданной и полученной траектории. Заданная траектория отображается красным цветом, полученная - синим. Справа расположены 4 кнопки: “Зигзаг”, “Циклоида”, “Меандр”, “Очистить”. Первые три запускают моделирование движения АПНА по соответствующему элементу покрытия с параметрами, устанавливаемыми ниже соответствующие кнопки. Кнопка “Очистить" создана для того, чтобы стирать с графического поля все изображенные траектории. Имеется также область ввода текста, где пользователь может указать радиус окрестность точки (параметр “a” на рисунке 20). После моделирования в соответствующих областях вывода текста отображается среднее и максимальное отклонение полученной траектории от заданной. Исходные код, реализующий графический интерфейс представлен в приложении Б.

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

4. Исследование работы подсистемы формирования программной траектории

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

Существуют две технологии отладки:

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

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

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

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

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

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

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

С точки зрения ISO 9126 [21], Качество (программных средств) можно определить как совокупную характеристику исследуемого ПО, с учётом следующих составляющих:

? надёжность;

? сопровождаемость;

? практичность;

? эффективность;

? мобильность;

? функциональность.

4.1 Отладка работы подсистемы на контрольной задаче

Отладка подсистемы формирования программной траектории автономного необитаемого подводного аппарата проводилась на трех контрольных задачах:

1. Меандр с длиной рабочего галса A=600м, шириной С=2500м и шириной промежуточного гасла B=110 м. Результаты моделирования представлены на рисунке 29.

2. Циклоида с длиной фигуры A=100 м, шагом смещения D=5м и шириной галса B=80м. Результаты моделирования представлены на рисунке 30.

3. Зигзаг с длиной A=1500м и шириной С=150м. Результаты моделирования представлены на рисунке 31.

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

Рисунок 29 - выполнение фигуры меандр

Среднее отклонение от программной траектории составило 3, 42 м, максимальное 11,63 метра.

Рисунок 30 - Выполнение фигуры циклоида

Среднее отклонение от программной траектории составило 5, 29 м, максимальное 11,63 метра.

Рисунок.31 - Выполнение фигуры зигзаг

Среднее отклонение от программной траектории составило 12, 63 м, максимальное 21,77 метра.

Траектория движения АНПА проходит в окрестности заданной траектории при задании различных элементов покрытия.

Заданные и полученные траектории расходятся не значительно (относительно размеров зон покрытия). Максимальная разница между траекториями (20 м) получилась у зигзага.

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

4.2 Отладка взаимодействия с сопрягаемыми элементами

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

? Визуализатор (ы);

? Накопитель данных;

? Бортовой журнал.

Сложность взаимодействия заключается в том, что сопрягаемые подсистемы располагаются на других ПЭВМ. Для передачи данных используются специальные блоки среды Simulink [22]: UDP Send, UDP Receive (рисунок 32), TCP/IP Send, TCP/IP Receive;

Рисунок 32 - Блоки UDP Receive и UDP Send

Для передачи данных использованы блоки UDP Send, UDP Receive. Данные блоки используют протокол транспортного уровня UDP. Главное преимущество данного протокола перед протоколом TCP заключается в большей скорости передачи данных, но UDP не гарантирует доставку данных [16].

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

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

4.3 Предложения по дальнейшему совершенствованию

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

В дальнейшем планируется вводить следующие модификации:

? Ввод модели водной среды (течения, распределения температур, солености и. т.д.);

? Ввод модели, имитирующей БАНС;

? Разработка модели поведения рулей аппарата;

? Более сложное управление АНПА по глубине;

? Ввод более универсальных и сложных законов управления;

? Ввод системы управления расходом ресурсов АНПА;

? Ввод интеллектуального управления АНПА;

? Ввод в систему оборудования, устанавливаемого на АНПА.

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

Заключение

В данной бакалаврской работе проведен обзор существующих классов АНПА и задач автономных необитаемых аппаратов, сформированы требования к подсистеме формирования программной траектории АНПА, выбрано средство реализации (Matlab-Simulink) имитационного моделирования, разработано программное обеспечение, реализующее подсистему, с применением современных технологий и средств разработки. Реализована динамика движения АНПА. Подсистема отлажена и протестирована (получены результаты с отработки контрольных задач). Также отлажено взаимодействие с сопрягаемыми подсистемами (визуализатор и накопитель данных).

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

Данная подсистема позволяет искать наиболее эффективные траектории для движения АНПА, подготавливать операторов для работы с СПУ АНПА. Использование подсистемы приводит к значительному снижению затрат, по сравнению при реальных испытаниях АНПА, что экономически оправданно.

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

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

Список использованных источников

1. Бочаров Л. Необитаемые подводные аппараты: состояние и общие тенденции развития // Микроробототехника - Электроника. Наука, технология, бизнес. - 2009. - №7. - c.62-93.

2. Агеев М.Д., Киселев Л.В. Есть ли экзотика в морских технологиях // Вестник Российской Академии Наук. - 2005. - том 75. - № 8. - с.727-736

3. Исследование прикладных вопросов обеспечения контроля состояния морской среды Балтийского моря в зоне прокладки СЕГ. - СПб.: ЗАО "АПМП", 2006. - 234 с.

4. Киселев Л.В., Инзарцев А.В., Матвиенко Ю.В. Создание интеллектуальных АНПА и проблемы интеграции научных исследований // Подводные роботы и робототехника. - 2006. - №1. - c.6-17.

5. Агеев М.Д. Касаткин Б.А. Автоматические подводные аппараты - Л.: Судостроение, 1981. - 224 c.

6. Голод О.С., Гончар А.И., Шлычек Л.И. Перспективы и концепции разработки автономных необитаемых подводных аппаратов // Гидроакустический журнал (Проблемы, методы освоения Мирового океана). - 2007. - № 4. - с.85-105.

7. Сайт фирмы “C&C” URL: http://www.cctechnol.com

8. Сайт фирмы “Maridan” URL: http://www.maridan. atlas-elektronik.com

9. Сайт фирмы “RD Instrument” URL: http://www.rdinstruments.com

10. Багницкий А.В., Инзарцев А.В. Автоматизация подготовки миссии для автономного необитаемого аппарата в целях обследования акватории // Подводные роботы и робототехника. - 2010. - №10. - c.17-24.

11. Сайт ДВО РАН URL http://www.febras.ru

12. Советов Б.Я., Яковлев С.А. Моделирование систем: Учебник для вузов - 3-е изд., перераб. и доп. - М.: Высш. шк., 2001. - 343 с:

13. Агеев М.Д., Киселев Л.В., Матвиенко Ю.В. и др. Автономные подводные роботы: системы и технологии. - М: Наука, 2005. - с.398.

14. Бессекерский В.А., Попов Е.П. Теория систем автоматического регулирования - М: Наука, 1975 - с.768.

15. Сайт ООО “Softline" URL: http://matlab. exponenta.ru/

16. Говорухин В., Цибулин В. Компьютер в математическом исследовании. Учебный курс. - СПб: Питер, 2001. - 619 с.

17. Дьяконов В.П. Simulink 4. Специальный справочник. - СПб: Питер, 2002. - 528 с.

18. Черных И.В. Simulink. Среда создания инженерных приложений - М: ДИАЛОГ-МИФИ, 2004. - 496 с.

19. Ануфриев И., Смирнов А., Смирнова Е. Matlab 7. Наиболее полное руководство - СПБ: “БХВ-Петербург”-2005. - 1104 с.

20. Сайт ISO URL: http://www.iso.org

21. Справка пакета Simulink - Block Reference

Приложение А

Описание использованных блоков

Таблица А.1 - Использованные блоки

Вид блока

Описание блока

Константа - задает постоянный по уровню сигнал.

Параметры:

1. Constant value - постоянная величина.

2. Interpret vector parameters as 1-D - интерпретировать вектор параметров как одномерный (при установленном флажке).

Вход - создает входной порт для подсистемы или модели верхнего уровня иерархии.

Параметры:

1. Port number - номер порта.

2. Port dimensions - размерность входного сигнала. Если этот параметр равен - 1, то размерность входного сигнала будет определяться автоматически.

3. Sample time - шаг модельного времени.

4. Data type - тип данных входного сигнала: auto, double, single, int8, uint8, int16, uint16, int32, uint32 или boolean.

5. Signal type - тип входного сигнала:

auto - автоматическое определение типа.

real - действительный сигнал.

complex - комплексный сигнал.

6. Interpolate data (флажок) - интерполировать входной сигнал. В случае, если временные отсчеты входного сигнала считываемого из рабочей области MATLAB не совпадают с модельным временем, то блок будет выполнять интерполяцию входного сигнала. При использовании блока Inport в подсистеме данный параметр не доступен.

Задает выражение в стиле языка программирования C.

Параметры:

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

Сумматор - выполняет вычисление суммы текущих значений сигналов.

Параметры:

1. Icon shape - форма блока. Выбирается из списка.

round - окружность,

rectangular - прямоугольник.

2. List of sign - список знаков. В списке можно использовать следующие знаки: + (плюс), - (минус) и | (разделитель знаков).

3. Saturate on integer overflow (флажок) - подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

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

Параметры:

1. Number of inputs - количество входов. Может задаваться как число или как список знаков. В списке знаков можно использовать знаки * (умножить) и / (разделить).

2. Multiplication - способ выполнения операции. Может принимать значения (из списка):

Element-wise - поэлементный.

Matrix - матричный.

3. Saturate on integer overflow (флажок) - подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Усилитель - выполняют умножение входного сигнала на постоянный коэффициент.

Параметры:

1. Gain - коэффициент усиления.

2. Multiplication - способ выполнения операции. Может принимать значения (из списка):

Element-wise K*u - поэлементный.

Matrix K*u - матричный. Коэффициент усиления является левосторонним операндом.

Matrix u*K - матричный. Коэффициент усиления является правосторонним операндом.

3. Saturate on integer overflow (флажок) - подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Тригонометрическая функция - выполняет вычисление тригонометрической функции.

Параметры:

1. Function - вид вычисляемой функции (выбирается из списка):

sin, cos, tan, asin, acos, atan, atan2, sinh, cosh и tanh.

2. Output signal type - тип выходного сигнала (выбирается из списка):

auto - автоматическое определение типа.

real - действительный сигнал.

complex - комплексный сигнал

Интегратор - выполняет интегрирование входного сигнала.

Параметры:

External reset - внешний сброс. Тип внешнего управляющего сигнала, обеспечивающего сброс интегратора к начальному состоянию. Выбирается из списка:

none - нет (сброс не выполняется),

rising - нарастающий сигнал (передний фронт сигнала),

falling - спадающий сигнал (задний фронт сигнала),

either - нарастающий либо спадающий сигнал,

level - не нулевой сигнал (сброс выполняется если сигнал на управляющем входе становится не равным нулю);

2. Initial condition source - источник начального значения выходного сигнала. Выбирается из списка:

internal - внутренний

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

3. Initial condition - начальное условие. Установка начального значения выходного сигнала интегратора. Параметр доступен, если выбран

внутренний источник начального значения выходного сигнала.

4. Limit output (флажок) - ограничение выходного сигнала.

5. Upper saturation limit - верхний уровень ограничения выходного сигнала.

6. Lower saturation limit - нижний уровень ограничения выходного сигнала.

7. Show saturation port - управляет отображением порта, выводящего сигнал, свидетельствующий о выходе интегратора на ограничение. Выходной сигнал данного порта может принимать следующие значения:

0, если интегратор не находится на ограничении.

+1, если выходной сигнал интегратора достиг верхнего ограничивающего предела.

1, если выходной сигнал интегратора достиг нижнего ограничивающего предела.

8. Show state port (флажок) - отобразить/скрыть порт состояния блока. Данный порт используется в том случае, если выходной сигнал интегратора требуется подать в качестве сигнала обратной связи этого же интегратора. На пример, при установке начальных условий через внешний порт или при сбросе интегратора через порт сброса. Выходной сигнал с этого порта может использоваться также для организации взаимодействия с управляемой подсистемой.

9. Absolute tolerance - абсолютная погрешность.

Подсистема - фрагмент Simulink-модели, оформленный в виде отдельного блока

Блок одномерной таблицы - задает в табличной форме функцию одной переменной

Параметры:

Vector of input values - вектор значений входного сигнала. Может быть задан в виде дискретных значений (например, [1 2 7 9]), либо в виде непрерывного диапазона (например, [0: 10]). Элементы вектора или граница диапазона могут быть заданы в виде вычисляемого выражения, например [tan (5) sin (3)].

Vector of output values - вектор выходных значений, соответствующий вектору входных значений.

Решатель системы линейных уравнений

Параметров нет.

Блок объединения сигнала в матрицу

Параметры:

Number of input - количество входных сигналов

. Блок преобразования размерности сигнала - блок изменяет размерность векторного или матричного сигнала.

Параметры:

Output dimensionality - вид размерности выходного сигнала. Выбирается из списка:

1-D array - одномерный массив (вектор).

Column vector - вектор-столбец.

Row vector - вектор-строка

Customize - матрица или вектор заданной размерности.

Output dimensions - значение размерности выходного сигнала. Параметр доступен, если вид размерности установлен как Customize.

Выход - создает выходной порт для подсистемы или для модели верхнего уровня иерархии.

Параметры:

1. Port number - номер порта.

2. Output when disabled - вид сигнала на выходе подсистемы, в случае если подсистема выключена. Используется для управляемых подсистем. Может принимать значения (выбираются из списка):

held - выходной сигнал подсистемы равен последнему рассчитанному значению.

reset - выходной сигнал подсистемы равен значению задаваемому параметром Initial output.

3. Initial output - значение сигнала на выходе подсистемы до начала ее работы и в случае, если подсистема выключена. управляемых подсистем.

Мультиплексор - объединяет входные сигналы в вектор

Параметры:

Number of Inputs - количество входов.

Display option - способ отображения. Выбирается из списка:

bar - Вертикальный узкий прямоугольник черного цвета.

signals - Прямоугольник с белым фоном и отображением меток входных сигналов.

none - Прямоугольник с белым фоном без отображения меток входных сигналов.

Демультиплексор - разделяет входной векторный сигнал на отдельные составляющие.

Параметры:

Number of Outputs - количество выходов.

Bus Selection Mode (флажок) - режим разделения векторных сигналов

Память - выполняет задержку входного сигнала на один такт дискретности

Параметры:

1. Начальное значение выходного сигнала

2. Флаг - наследовать такт дискретность. Если этот флажок выставлен, то блок использует такт дискретности, такой же, как и в предыдущем блоке

3. Прямой проход при линеаризации.

Дифференцирование - выполняет численное дифференцирование входного сигнала.

Параметров нет

Модуль - выполняет вычисление абсолютного значения величины сигнала. Параметры:

Флаг - подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Приложение Б

Исходные коды

Подпрограмма формирования меандра

function Points=Meandr (A,C,B);

N=floor (C/B) +1;

P= [];

for i=0: 2: N-2

Elem= [B*i 0;

B*i A;

B* (i+1) A;

B* (i+1) 0];

P= [P; Elem];

end

Elem= [B* (N-1) 0;

B* (N-1) A];

P= [P; Elem];

Points=P;

Подпрограмма формирования циклоиды

function Points=Sicloida (A,B,D);

N=floor (B/D) +1;

P= [];

for i=0: 1: N-2

Elem= [D*i 0;

D*i A;

B+D*i A;

B+D*i 0];

P= [P; Elem];

end

Points=P;

Подпрограмма формирования зигзага

function Points=ZigZag (A,C);

Fl=false;

N=0;

i=0;

P= [];

while N<A

if not (Fl)

Elem= [0 N];

end

if Fl

Elem= [C N];

end

N=N+C/sqrt (2);

Fl=not (Fl);

P= [P; Elem];

end

Points=P;

Функция для расчета отклонения от программной траектории Delta

function D=Delta (x_c,z_c,x0,z0,x1,z1)

if (x0==x1)

D=abs (x0-x_c);

elseif (z0==z1)

D=abs (z0-z_c);

else

k1= (z1-z0) / (x1-x0);

k2=-1/k1;

b1=z1-k1*x1;

b2=z_c-k2*x_c;

x_p= (b2-b1) / (k1-k2);

z_p=k1*x_p+b1;

D=hypot (x_p-x_c,z_p-z_c);

end

Подпрограмма, реализующая интерфейс подсистемы

function varargout = Fig (varargin)

gui_Singleton = 1;

gui_State = struct ('gui_Name', mfilename,.

'gui_Singleton', gui_Singleton,.

'gui_OpeningFcn', @Fig_OpeningFcn,.

'gui_OutputFcn', @Fig_OutputFcn,.

'gui_LayoutFcn', [],.

'gui_Callback', []);

if nargin && ischar (varargin{1})

gui_State. gui_Callback = str2func (varargin{1});

end

if nargout

[varargout{1: nargout}] = gui_mainfcn (gui_State, varargin{: });

else

gui_mainfcn (gui_State, varargin{: });

end

function Fig_OpeningFcn (hObject, eventdata, handles, varargin)

handles. output = hObject;

guidata (hObject, handles);

function varargout = Fig_OutputFcn (hObject, eventdata, handles)

varargout{1} = handles. output;

function Zigbutton_Callback (hObject, eventdata, handles)

P=ZigZag (str2num (get (handles. Zig1text,'string')),str2num (get (handles. Zig2text,'string')));

K=StartM (P,str2num (get (handles. atext,'string')));

plot (K (:,1),K (:,2),'blue',P (:,1),P (:,2),'red')

set (handles. textDelta,'String',num2str (mean (K (:,3))));;

set (handles. maxDtext,'String',num2str (max (K (:,3))));

function Zigbutton_CreateFcn (hObject, eventdata, handles)

function clearbutton_Callback (hObject, eventdata, handles)

cla

function clearbutton_CreateFcn (hObject, eventdata, handles)

function clearbutton_KeyPressFcn (hObject, eventdata, handles)

function Zigbutton_KeyPressFcn (hObject, eventdata, handles)

function Sicbutton_Callback (hObject, eventdata, handles)

P=Sicloida (str2num (get (handles. Sic1text,'string')),str2num (get (handles. Sic2text,'string')),str2num (get (handles. Sic3text,'string')));

K=StartM (P,str2num (get (handles. atext,'string')));

plot (K (:,1),K (:,2),'blue',P (:,1),P (:,2),'red')

set (handles. textDelta,'String',num2str (mean (K (:,3))));

set (handles. maxDtext,'String',num2str (max (K (:,3))));

function Sicbutton_CreateFcn (hObject, eventdata, handles)

function Sicbutton_KeyPressFcn (hObject, eventdata, handles)

function Meandrbutton_Callback (hObject, eventdata, handles)

P=Meandr (str2num (get (handles. Mnd1text,'string')),str2num (get (handles. Mnd2text,'string')),str2num (get (handles. Mnd3text,'string')));

K=StartM (P,str2num (get (handles. atext,'string')));

plot (K (:,1),K (:,2),'blue',P (:,1),P (:,2),'red')

set (handles. textDelta,'String',num2str (mean (K (:,3))));

set (handles. maxDtext,'String',num2str (max (K (:,3))));

function Mnd1text_Callback (hObject, eventdata, handles)

function Mnd1text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function Sic2text_Callback (hObject, eventdata, handles)

function Sic2text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function Sic1text_Callback (hObject, eventdata, handles)

function Sic1text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function Zig1text_Callback (hObject, eventdata, handles)

function Zig1text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function Zig2text_Callback (hObject, eventdata, handles)

function Zig2text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function Sic3text_Callback (hObject, eventdata, handles)

function Sic3text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function Mnd2text_Callback (hObject, eventdata, handles)

function Mnd2text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function Mnd3text_Callback (hObject, eventdata, handles)

function Mnd3text_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function atext_Callback (hObject, eventdata, handles)

function atext_CreateFcn (hObject, eventdata, handles)

if ispc && isequal (get (hObject,'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject,'BackgroundColor','white');

end

function pushbutton7_Callback (hObject, eventdata, handles)

function text10_CreateFcn (hObject, eventdata, handles)

function pushbutton7_CreateFcn (hObject, eventdata, handles)

Процедура реализующая связь интерфейса и модели StartM

function Koor=StartM (P,R)

global X_Tr

global Z_Tr

global a

a=R;

X_Tr=P (:,1);

Z_Tr=P (:,2);

[t,x,y] =sim ('Main');

Koor=y;

Размещено на Allbest.ru


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

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

    курсовая работа [930,6 K], добавлен 14.01.2013

  • Моделирование траектории движения космического аппарата, запускаемого с борта космической станции, относительно Земли. Запуск осуществляется в направлении, противоположном движению станции, по касательной к её орбите. Текст программы в среде Matlab.

    контрольная работа [138,8 K], добавлен 31.05.2010

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

    дипломная работа [6,7 M], добавлен 29.06.2011

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

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

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

    контрольная работа [227,6 K], добавлен 01.03.2009

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

    курсовая работа [1,3 M], добавлен 25.07.2012

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

    курсовая работа [2,0 M], добавлен 09.10.2011

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

    реферат [509,0 K], добавлен 23.03.2012

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

    курсовая работа [1,1 M], добавлен 16.01.2013

  • Программное обеспечение по автоматизации и управлению предприятием ведущих корпораций в Украине. Система управления деятельностью предприятия "ГАЛАКТИКА". Комплексная система автоматизации предприятий малого и среднего бизнеса "ПАРУС - Предприятие 7.20".

    курсовая работа [1,7 M], добавлен 14.03.2008

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