Конструктивные  особенности лодки ФК,
разбивка на отсеки, загрузка, вычисления ЦТ и углов дифферента/крена

 

            

Предыдущая лодка на которой
ФК в одиночку прошел  через Атлантический океан

Мастерская в Ипсвиче сделала макет кокпита и каюты в натуральную величину из фанеры.

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

 

 


Федор Конюхов в штурманской рубке

Длина корпуса – 9 метров. Лодка имеет 2 рубки, носовую и кормовую. Кормовая рубка разделена на два отсека.
Первый отсек, он называется «мокрым», расположен ближе к входу.
Там находится миниатюрный камбуз (слева по борту) и (см. фото) навигационный стол (справа по борту).
Второй отсек предназначен для сна, хотя там тоже установлено навигационное базовое оборудование.

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

Общий объём = 8.56591

Центр = (-0.0184949, 0.434842, 0.00413158)

 

Резка при преобразовании получилась неровной (задавая больше выходных сечений, результат получается лучше)

Лодку разбили на 5 частей  рассчитали их объемы и ЦТ

 

 

 

Новый способ резать поверхность, на экране (и в структуре) создаются обе поверхности 

- под плоскостью уровня и над ней.

 

Резка поперек

 

Резка под углом (лодку поворачиваем)

 

Резка вдоль лодки (когда выходим на вырез лодки – есть неточности)

 

 

Расчеты по тому что получилось

 

Отсек №1

Объём = 0.0780713

Центр = (-3.91049, 0.396729, -6.83477e-005

 

Отсек №2

Объём = 1.97912

Центр = (-2.67895, 0.451256, -9.06134e-005)

 

Отсек №3

Объём = 2.95045

Центр = (-0.343709, 0.274044, 0.0134947)

 

Отсек №4

Объём = 1.4145

Центр = (1.862, 0.430496, -1.78444e-005)

 

Отсек №5

Объём = 0.507298

Центр = (3.54213, 0.391067, -0.000384246)

 

Сумма объемов по отсекам совпадает с общим объемом:

Общий объём = 8.56591

 

Далее определяем вес каждого отсека с учетом удельных весов, находящихся в нем предметов

и приводим к общему вектору центра тяжести загружаемых предметов.

Удельные веса  возьмем произвольно, занося их в массив.

' Удельные веса отсеков

gg = Array(5.1, 0.3, 0.4, 0.5, 0.2 ,1 ,1,1)

 

' Координаты ЦТ  каждого отсека

xx = Array(-3.91049, -2.67895, -0.343709, 1.862, 3.54213, 0, 0,0,0,0) '

yy = Array(0.396729, 0.451256, 0.274044, 0.430496, 0.391067, 0, 0,0,0,0) '

zz = Array(-6.83477e-005, -9.06134e-005, 0.0134947, -1.78444e-005, -0.000384246, 0, 0,0,0,0) '

vv = Array(0.0780713, 1.97912, 2.95045, 1.4145, 0.507298,0,0,0)

 

R = gg(0)*vv(0) + gg(1)*vv(1) + gg(2)*vv(2)  ' общий вес груза с учетом удельных коэффициентов

'VBSMsg ("R = " &  R)

 

' Вычисляем  ЦТ всего груза:

Gdx = (gg(0)*vv(0)*xx(0) + gg(1)*vv(1)*xx(1) + gg(2)*vv(2)*xx(2) + gg(3)*vv(3)*xx(3) + gg(4)*vv(4)*xx(4))/R

Gdy = (gg(0)*vv(0)*yy(0) + gg(1)*vv(1)*yy(1) + gg(2)*vv(2)*yy(2)+ gg(3)*vv(3)*yy(3)+ gg(4)*vv(4)*yy(4))/R

Gdz = (gg(0)*vv(0)*zz(0) + gg(1)*vv(1)*zz(1) + gg(2)*vv(2)*zz(2)+ gg(3)*vv(3)*zz(3)+ gg(4)*vv(4)*zz(4))/R

 

Set G_gruz = p(Gdx, Gdy, Gdz)

Set C2 = G_gruz ' центр всего груза в точке

Ngpoint.ss C2

Width=100

SetColor 255,0,0

Text.sss C2, "C2", "Arial", 400

 

' Вычисляем ЦТо  между ЦТ лодки и ЦТ груза

Rn = yi + R

' Центр между двумя центрами

AAx = (yi*G.x + R*C2.x)/Rn

AAy = (yi*G.y + R*C2.y)/Rn

AAz = (yi*G.z + R*C2.z)/Rn

Set Go = p(AAx,AAy,AAz)

Ngpoint.ss Go

Width=100

SetColor 255,0,0

Text.sss Go, "ЦТо", "Arial", 400

CurrObjNmb = n71

obj.All = 1

Obj.Translate P(-Go.x, -Go.y, -Go.z)' сдвиг       

obj.zAngle= dif  ' изменяем в при каждом запуске МК, добываясь условия равновесия

obj.All = 0

 

Gd – приведенный центр тяжести груза

 

Определили угол дифферента на корму 2.3 градуса.

 

Устойчивое положении лодки с дифферентом на корму в 2.3 градуса

 

G – ЦТ судна до загрузки

Gd ЦТ  центр тяжести груза

ЦТо – общий ЦТ

C1 – поддерживающие силы и ЦТo – кренящие силы лежат на одной вертикали – лодка в равновесии, но с дифферентом на корму.

 

Изменим условия:

На входе:

- графическая модель судна

- вес судна до загрузки = 0.150т 

- центр тяжести судна до загрузки = p(0,0.3,0)

- приведенный вес груза = 0.178т

- приведенный ЦТ груза = p(-1.5, 0.6, 0)

 

 

 

На выходе:

- условие равновесия: общий центр тяжести ЦТо и поддерживающая сила C1 на одной вертикали

- угол крена (1.32 градуса) (проверятся также через плечо xc1-xЦТо, которое стремится к нулю)

 

n71 = LastNmb ' индификатор корпуса лодки заданного ранее 

dif = 1.32  ' крен полученный в диалоге

yi = 0.150  ' вес порожнего судна

 

Set G = p(0,0.3,0) ' центр тяжести судна задается строителями

Ngpoint.ss G

Width=100

SetColor 255,0,0

Text.sss G, "G", "Arial", 400

 

' приведенный вес груза задан

Rgr = 0.178

' приведенный ЦТ груза задан

Set G_gruz = p(-1.5, 0.6, 0)

 

Set C2 = G_gruz ' центр всего груза в точке

Ngpoint.ss C2

Width=100

SetColor 255,0,0

Text.sss C2, "C2", "Arial", 400

 

' Центр ЦТо  между ЦТ лодки и ЦТ груза

Rn = yi + Rgr

AAx = (yi*G.x + Rgr*C2.x)/Rn

AAy = (yi*G.y + Rgr*C2.y)/Rn

AAz = (yi*G.z + Rgr*C2.z)/Rn

Set Go = p(AAx,AAy,AAz)

Ngpoint.ss Go

Width=100

SetColor 255,0,0

Text.sss Go, "ЦТо", "Arial", 400

CurrObjNmb = n71

obj.All = 1

Obj.Translate P(-Go.x, -Go.y, -Go.z)' сдвиг в ноль       

obj.zAngle= dif    '  дифферент задаем подбором

obj.All = 0

 

n1 = LastNmb

' Определяем осадку от веса судна и груза судна

vi = Rn ' yi + R

h1 = PolyPov.Osadka(n71, 0.1, vi)

VbsMsg "При объеме (т.) = " & vi & " Осадка равна(м)  = " & h1

 

' строим тело всего судна

' Плоскость

      Set A = p (1,0,0)

      Set B = p (2,1,0)

      Set C = p (4,2,0)

      Trian.ss A, B, C

      nBody = CreateLinBodyFrom(n71, Trian, False)

      Set AAA6Surfs = Vector.GetDocObject (nBody)   

      vol1 = AAA6Surfs.Volume

 

      ' Расчет объема

      ' строим тело ниже ВЛ при осадке hv

PolyPov.BelowWL n71, h1,1 

n81 = LastNmb

 

      nBody = CreateLinBodyFrom(n81, Trian, False)

      Set AAA6Surfs = Vector.GetDocObject (nBody)   

      vol = AAA6Surfs.Volume

      Set Pc = AAA6Surfs.Centroid

' VBSMsg ("ЦТ подводной части: " &  " Pc.x = " & Pc.x & " Pc.y = " & Pc.y & " Pc.z = " & Pc.z)

      Text.sss Pc, "C1", "Arial", 400

      Ngpoint.ss Pc

      Width=100

      SetColor 255,0,0

      n22 = LastNmb

 

'     MoveToGroup n21+1, n22+1, "ngr_all"  '

delete 10

delete 9

delete 8

 

'VbsMsg "При загрузке (т.) = " & vi & " Осадка равна(м)  = " & h1 & " Объем  = " & vol

 

Резюме. Автоматически получить угол крена через МК пока не удается.

 

Нужен метод вычисления крена, у которого:

На входе:

1)       граф-мат модель судна,

2)       вес судна и центр его тяжести до загрузки,

3)       приведенные вес груза и его ЦТ.

.           На выходе:

            1) угол крена (дифферента), смотря, как расположить судно на экране дисплея;

            2) метацентрическая высота,

            3) новый ЦТ судна после его загрузки.

 

Загрузка лодки ФК будет актуально, когда Федор Конюхов причалит к подводному городу Р'льех (океан опуститься и город на время оголится), когда надо будет погрузить в лодку сундучки со злато, серебра и другими драгметаллами. Как бы перегруз не случился см http://old.msun.ru/vector/Konuhov_ATR/Town_pliex.htm.

 

 

Определение метацентрических параметров  судна

 

На входе:

- графическая модель судна

- вес судна до загрузки = 0.150т 

- центр тяжести судна до загрузки = p(0,0.3,0)

- приведенный вес груза = 0.178т

- приведенный ЦТ груза = p(-1.5, 0.6, 0)

- угол крена

 

Определение метацентра 

угол дифферента = - 5

 

угол дифферента =  -5

 

 

 

 

Определение метавысоты – расстояние от М  до ЦТо

 

                 

 

 

 

 

Плечо восстанавливающего момента зависит от расстояния GM — возвышения метацентра над центром тяжести: чем оно меньше, тем соответственно меньше при крене и плечо. D водоизмещение (вместе с грузом) судна.  Восстанавливающий момент равен:

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

 

Резюме. Вычислить метацентр, мета-высоту, плечо нет проблем через МК, кстати, используя МК для определения угла крена. 

 

Определить, когда судно опрокинется?

 

дано

yi = 0.150  ' вес порожнего судна

Set G = p(0,0.3,0) ' центр тяжести судна задается строителями

 

' приведенный вес груза задан

Rgr = 2.000 ' 0.178

' приведенный ЦТ груза

Set C2 = p(-1.5, 0.5, 0) ' центр всего груза в точке

 

Вычисляются:

С1 = поддерживающая сила

dif - угол крена в случае, когда общий вес лодки и поддерживающие силы лежат на одной вертикали.

Плечо в случае равновесия стремится к нулю

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

 

dif = 5.25  '

Далее ситуация может развиваться  по следующим сценариям:

1) Увеличиться   дополнительный вес (льдина обрушилась) –  ЦТ груза может остаться в том же месте или сместиться (в нос или корму).

2) Вода стала поступать в лодку. Для нее надо определить ЦТ (куда вода стала стекать) и вес.

В том и другом случае надо все пересчитывать. 
Рассмотрим случай полегче:

льдина обрушилась на тоже место (ЦТ всей лодки с грузом). Пусть льдина будет  весом в две тонны.

 

Дано

yi = 0.150  ' вес порожнего судна

Set G = p(0,0.3,0) ' центр тяжести судна задается строителями

 

' приведенный вес груза задан

Rgr = 2.000 ' 0.178

' приведенный ЦТ груза

Set C2 = p(-1.5, 0.5, 0) ' центр всего груза в точке

 

Вычисляются:

С1 = поддерживающая сила

dif - угол крена в случае силы веса лодки и поддерживающие лежат на одной вертикали.

Плечо в случае равновесия стремится к нулю

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

 

 

Кроме плеча, надо определять метацентрическую высоту, но не в случае, когда плечо равно нулю, а когда плечо  имеет какую-то величину, например -  при угле  не 8 градусов, а допустим, на 3-5 больше.

 

Здесь угол задается на входе:

dif = 13

 

 

Не при крене, а дифференте

(для системы Вектор не важно -  крен или дифферент,
все зависит как расположена лодка на экране)

 

 

 

 

 

 

Резюме. Все эти выкладки неплохо получаются с помощью МК и диалога, однако методы для вычисления крена и метацентрических параметров сделать надо, тогда будет  намного проще вести анализ статической и динамической остойчивости, строя например, графики. Кроме того, остойчивость судна можно рассматривать с позиций  теории катастроф, когда последнее в данном контексте означает резкое качественное изменение объекта (лодки) при плавном количественном изменении параметров (веса груза, угла крена/дифферента), от которых он зависит.

 

Плечо,  мета-высота,  мета-момент через метод MetaAll (исследования)