Вестник МГТУ, 2025, Т. 28, № 4/1.
Вестник МГТУ. 2025. Т. 28, № 4/1. С. 558-571. DOI: https://doi.org/10.21443/1560-9278-2025-28-4/1-558-571 Скриншот рабочего окна программы, на котором показаны некоторые результаты исследования, приведен на рис. 1. В графическом координатном поле (X, Y) изображена траектория "зигзага 20/20". На нижнем (голубом) поле построены изменения во времени курса судна-модели и положения руля; отражены моменты перекладки положения руля; положение изменяется линейно с постоянной скоростью после перекладки. Точками отмечены моменты переключения положения руля и точки максимального зарыскивания. Задача исследования заключается в том, чтобы с помощью программы отыскать указанные точки и зафиксировать кинематические параметры движения в этот момент. Рис. 1. Скриншот рабочего окна программы, выполняющей испытания математической модели движения судна Fig. 1. The main frame of the program that tests the mathematical model of the vessel's movement В программу введены глобальные массивы для записи необходимых характеристик движения в требуемые моменты времени (времени события, координат судна, скорости, отклонения курса от начального значения, угловой скорости, положения руля): Public Tzig(9), Xzig(9), Yzig(9) as Integer; Public Vzig(9), DKzig(9), Rulzig(9), Omzig(9) As Single. Определим 3 первых зарыскивания, т. е. зафиксируем состояние модели при испытаниях в 6 точках. Также введены необходимые для дальнейших испытаний глобальные переменные (среди них и логические сигналы): delRuldK - разность между положением руля и отклонением курса от начального значения; IsSeekEqulRK As Boolean - сигнал поиска равенства отклонения курса от начального и положения руля; IsSeekMax As Boolean - сигнал поиска максимума отклонения курса от начального значения. В каждом единичном цикле интегрирования модельных уравнений движения выполняется ряд операций по анализу состояния модели. Для упрощения алгоритма поиска следует учесть тот факт, что нет необходимости параллельно вести поиск максимума и равенства отклонения курса с положением руля. На рис. 1 показано, что точки с этими свойствами сменяют друг друга. Поэтому введены булевы переменные (семафоры), сигналящие программе, что следует искать в данный момент. Так, вначале открывается семафор для поиска только равенства положения руля и отклонения от начального курса. Когда это состояние достигнуто, данные сохраняются в списке элементов массивов с номером NP найденной точки: Tzig(NP) = Т: Xzig(NP) = xk1: Yzig(NP) = yk1: Vzig(NP) = Vk, DKzig(NP) = dellk: Rulzig(NP) = rulk: Omzig(NP) = omk1 * cc, а номер точки увеличивается на единицу NP = NP + 1. Соответствующий семафор выключается (IsSeekMax = false), а другой включается (IsSeekEqulRK = true). Процесс продолжается до исчерпания числа необходимых шести точек. Точки с четными номерами 0, 2, 4 будут относиться к равенству отклонения курса от начального и положения руля, а точки с номерами 1, 3, 5 - к максимуму зарыскивания. Таким образом, получаем 6-7 = 42 маневренных характеристики для 6 точек. 561
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz