Działa i to całkiem sprawnie.1. Jeśli kadłub wykonuje ruchy podłużne (góra-dół itp.) to oś obrotu kadłuba w układzie związanym ze średnią powierzchnią morza będzie sobie mocno podróżować i nie ma na to rady. Kanonicznie: jeśli nie ma zewnętrznych więzów, to bierzemy bryłę kadłuba, obliczamy niezrównoważone siły (dają przyspieszenia liniowe środka masy) i momenty względem środka masy (dają przyspieszenia kątowe bryły), całkujemy numerycznie. Jeśli nie działa, mamy błąd.
Przyśpieszenie liniowe "góra/dół" działa pięknie.
Ale momenty sił zależą od osi obrotu... I tu mam schody.
Robione setki razy. Dla małych kątów przechyłu działa idealnie. Dla większych, zależy gdzie umieszczę oś obrotu....Dla celów diagnostycznych proponowałbym "test przechyłowy": przechylamy kadłub, blokujemy kąt obrotu kadłuba, regulujemy zanurzenie do zrównoważenia wyporu i dopiero wtedy obliczmy momenty od sił hydrostatycznych względem środka masy i sprawdzamy w którą stronę chce się obrócić. Jeśli wynik nie zgadza się z pomiarami obiektu rzeczywistego, mamy błąd.
Jak oś obrotu w metacentrum obliczonym dla małego przechyłu - kicha. Jak oś w środku geometrycznym, też kicha.
Generalnie mam jednostki zbyt stabilne. Ale jak się im sztucznie podniesie środek ciężkości ( powiedzmy tak z 1000 ton 20 czy 30 metrów nad poziomem morza w pozycji "0" ) to już jest w miarę OK.
Może po prostu źle liczę środek masy?
W przypadku jednostek prawdziwych gdzie może być środek masy? Znaczy ile nad linią wodną w pozycji "0"?
Jakoś rzadko się o tym wspomina w monografiach. O wysokości metacentrycznej to piszą często, ale o środku wyporu czy masy to już nie.....
Tak to zrobiłem.2. Jeśli nie symulujemy pełnego oddziaływania z wodą, tylko siły hydrostatyczne od powierzchni wody, to należy dodać jakieś arbitralne tłumienie (najprościej proporcjonalne od kwadratu prędkości kątowej i liniowej). Pomaga zarówno na "realizm", jak i na problemy z numeryką.
Inaczej było piękne wahadło fizyczne. Jak się wzięło początkowy przechył powiedzmy 40 stopni i puściło go wolno, to się waha po ~40 stopni na każdą burtę w nieskończoność.
Jeśli oś obrotu jest stała, to będzie zawsze po 40 stopni prawa/lewa burta.
Jeśli zanurzenie się zmienia, to po mniej więcej 40 stopni na burtę, bo wraz z przechyłem, nieco zmienia się siła wyporu ( nie tylko momenty ) a jak się zmieni siła wyporu to i zanurzenie i oś obrotu itd.
Robi się dość skomplikowana trajektoria, ale też w nieskończoność.
A pewnie. Doświadczałem tego zwłaszcza przy wolniejszych procesorach, gdy skok pomiędzy kolejnymi obliczeniami był duży. Teraz po kilku latach przerwy, jak zaczynam symulować na mocniejszych maszynach, to problem staje się o wiele mniejszy. Najprostsza linearyzacja wystarcza ( przynajmniej do jednego - dwóch okrętów jednocześnie, co będzie jak ich będzie więcej to się zobaczy, najwyżej nie będzie to działało w czasie rzeczywistym ).3. Numeryka, szczególnie 'domorosła', jest złośliwa. Przy całkowaniu zacząłbym od jakiegoś Runge-Kutty (prosta linearyzacja bez tłumienia może owocować spektakularną niestabilnością).
Rungego Kudty stopnia 4-5 ( czy jakoś tak ) przerabiałem kiedyś na uczelni....
Jako któreś tam zadanie na laboratorium trzeba było napisać program co coś tam liczył....
Oj nie chce mi się do tego wracać....
Ale jak trzeba.