
Разработка приложения с графическим интерфейсом
Для моделирования движения различных кораблей в среде MatLab было разработано приложение с графическим интерфейсом, скриншот которого представлен на рисунке 6.
Рис. 6. Вид окна приложения с графическим интерфейсом.
При первом запуске приложения открывается окно, представленное на рисунке 6. Изначально никакие параметры кораблей не заданы и, соответственно, отсутствуют какие-либо зависимости на графиках.
Алгоритм работы с приложением:
В панели «Выбор судна» путем нажатия радиокнопки выбирается модель корабля, которую необходимо промоделировать. После выбора судна на панели «Параметры судна» автоматически появляются его технические параметры, заданные в начале данной работы. При повторном нажатии на одну и ту же кнопку никаких сбоев не происходит. При нажатии на радиокнопку иного судна, на соседней панели появляются его параметры.
На панели «Панель управления» пользователю необходимо задать следующие параметры моделирования:
-
Начальные условия
,
изначально они задаются нулевыми
автоматически программой;
- Время разгона и время торможения;
- Относительную силу тяги, ползунок позволяет достаточно точно выбрать необходимое значение.
Шаг моделирования на панели не подлежит изменению, а только отображается заданное в коде программы значение. Желаемая скорость в случае с моделированием без регулятора скорости может быть задана, но никакой роли для работы программы она не имеет.
После выбора и заполнения всех необходимых параметров пользователю необходимо нажать на кнопку «Старт» для моделирования движения выбранного судна. После окончания моделирования на осях, расположенных справа в окне приложения с графическим интерфейсом, появляются необходимые зависимости, а именно расстояние, пройденное кораблем, его скорость и относительная сила тяги в зависимости от времени.
Для моделирования другого судна пользователю требуется повторить пункты а-с.
Для закрытия приложения и завершения его работы пользователю необходимо нажать кнопку «Выход» и приложение закроется.
В данном приложении также присутствует возможность регулировать скорость судна. Данный режим становится доступным после нажатия пользователем клавиши «Регулирование скорости» на панели управления. Пока клавиша остается нажатой программа находится в режиме регулирования скорости. В данном режиме пользователю предлагается ввести необходимое значение скорости, которую должен развивать корабль и время разгона. Также при желании можно задать начальные значения и время торможения. Так как в режиме регулирования скорости относительная сила тяги не может изменяться пользователем, то ползунок для ее изменения становится невидимым. После нажатия кнопки «Старт» строятся зависимости, полученные в результате моделирования.
Стоит учесть, что при вводе значения желаемой скорости, превышающего максимальное значение скорости, заданной изначально в технических параметрах, программа предупредит об ошибке с помощью красной кнопки. Также будут построены зависимости для максимально возможной скорости (заданной техническими характеристиками).
Таблица 6. Сценарий приложения с графическим интерфейсом.
Событие |
Идентификатор элемента управления |
Действие |
Примечание |
Открытие окна приложения (начальная установка) |
app12 |
Включение радиокнопки НВК |
Свойство Value объекта NVK |
Установить начальные значения равными нулю (все окошки показывают 0) |
Свойство Value объектов Kater, KPK, Edit_W, Edit_N, Edit_Vmax, Edit_Vk, Edit_V1max, Edit_X0, Edit_V0, Edit_dt, V_reg, Edit_Vdesirable, Edit_Trazg, Edit_Ttorm, Slider, Lamp |
||
Включение радиокнопки НВК |
NVK |
Установить параметры НВК |
Свойство Value, Edit_W, Edit_N, Edit_Vmax |
Выключить радиокнопки Катер и КПК |
Свойство Value объектов Kater, KPK, Lamp |
||
Выключить видимость текстовых полей Edit_Vk, Edit_V1max |
Свойство Visible объектов Edit_Vk, Edit_V1max |
||
Выключить возможность редактирования параметров корабля |
Свойство Editable объектов Edit_W, Edit_N, Edit_Vmax Edit_Vk, Edit_V1max |
||
Включение возможности редактирования параметров панели управления |
Свойство Editable объектов Edit_X0, Edit_V0, Edit_Vdesirable, Edit_Trazg, Edit_Ttorm |
||
Включение радиокнопки Катер |
Kater |
Установить параметры катера |
Свойство Value, Edit_W, Edit_N, Edit_Vmax |
Выключить радиокнопки НВК и КПК |
Свойство Value объектов NVK, KPK |
||
Установить параметры КПК |
Свойство Value, Edit_W, Edit_N, Edit_Vmax, Edit_Vk, Edit_V1max, |
||
Выключить видимость текстовых полей Edit_Vk, Edit_V1max |
Свойство Visible объектов Edit_Vk, Edit_V1max, Lamp |
||
Выключить возможность редактирования параметров корабля |
Свойство Editable объектов Edit_W, Edit_N, Edit_Vmax, Edit_Vk, Edit_V1max |
||
Включение возможности редактирования параметров панели управления |
Свойство Editable объектов Edit_X0, Edit_V0, Edit_Vdesirable, Edit_Trazg, Edit_Ttorm |
||
Включение радиокнопки КПК
|
KPK
|
Выключить радиокнопки НВК и Катер |
Свойство Value объектов NVK, Kater |
Включить видимость текстовых полей Edit_Vk, Edit_V1max |
Свойство Visible объектов Edit_Vk, Edit_V1max, Lamp |
||
Выключить возможность редактирования параметров корабля |
Свойство Editable объектов Edit_W, Edit_N, Edit_Vmax, Edit_Vk, Edit_V1max |
||
Включение возможности редактирования параметров панели управления |
Свойство Editable объектов Edit_X0, Edit_V0, Edit_Vdesirable, Edit_Trazg, Edit_Ttorm |
||
Изменение ползунка Slider |
Slider |
Считать значение положения ползунка |
Свойство Value объекта Slider |
Включение кнопки регулятора скорости |
V_reg |
Включение кнопки регулятора скорости |
Свойство Value объекта V_reg |
Отключение видимости объекта Slider |
Свойство Visible объекта Slider |
||
Нажатие кнопки «Старт» |
Start |
Считать значения радиокнопки |
Свойство Value объектов NVK, Kater, KPK |
Считать параметры панели управления |
Свойство Value объектов Edit_X0, Edit_V0, Edit_Vdesirable, Edit_Trazg, Edit_Ttorm, Slider, V_reg |
||
Считать параметры корабля |
Свойство Value Edit_W, Edit_N, Edit_Vmax, Edit_Vk, Edit_V1max |
||
Запуск моделирования процесса |
- |
||
Нажатие кнопки «Выход» |
Exit |
Закрытие приложения |
- |
На рисунках 7 – 16 представлены результаты работы программы.
Рис. 7. Моделирование движения НВК без регулирования скорости.
Рис. 8. Моделирование НВК при регулировании скорости при значении желаемой скорости меньшем максимальной.
Рис. 9. Моделирование НВК при регулировании скорости и желаемой скорости большей, чем максимальная.
Из рисунков 7-9 видно, что программа справляется с поставленной задачей моделирования движения НВК «Жаркий». Также регулятор скорости поддерживает постоянство желаемой скорости. При значении желаемой скорости большем, чем максимально возможная скорость, зажигается красная лампочка, сигнализирующая о невозможности достижения желаемой скорости. В этом случае графики строятся для случая с максимальной скоростью.
Рис. 10. Моделирование движения катера без регулирования скорости.
Рис. 11. Моделирование катера при регулировании скорости при значении желаемой скорости меньшем максимальной.
Рис. 12. Моделирование катера при регулировании скорости и желаемой скорости большей, чем максимальная.
Из рисунков 10-12 видно, что программа справляется с поставленной задачей моделирования движения большого рабочего катера. Также регулятор скорости поддерживает постоянство желаемой скорости. При значении желаемой скорости большем, чем максимально возможная скорость, зажигается красная лампочка, сигнализирующая о невозможности достижения желаемой скорости. В этом случае графики строятся для случая с максимальной скоростью.
Рис. 13. Моделирование движения КПК без регулирования скорости.
Рис. 14. Моделирование движения КПК без регулирования скорости с уменьшенным значением относительной тяги.
Рис. 15. Моделирование КПК при регулировании скорости при значении желаемой скорости меньшем скорости глиссирования.
Рис. 16. Моделирование КПК при регулировании скорости при значении желаемой скорости равном скорости глиссирования.
Заключение
В ходе данной работы были освоены и применены навыки составления и написания программных моделей для исследования подвижных объектов в среде MatLab. Был разработан графический интерфейс для моделирования движения трех судов в среде MatLab App Designer (GUI).