Заключение.
Идентификация равновесного положения надводного корабля в условиях реального волнения
Ришес К. Равновесие для выживания // Популярная механика, 2014. № 145. http://www.popmech.ru/weapon/50 840-kak-spasat-atomnye-podvodnye-lodki/. Благовещенский С. Н., Холодилин А. Н. Бортовая качка судна на волнении: Учебное пособие. Л.: Изд. ЛКИ, 1983. 6 с. Thomas P. Hettmansperger, Joseph W. McKean. Robust Nonparametric Statistical Methods: Second Edition. Chapman & Hall/CRC Monographs… Читать ещё >
Заключение. Идентификация равновесного положения надводного корабля в условиях реального волнения (реферат, курсовая, диплом, контрольная)
Проведенное исследование показывает, что идентификацию равновесного положения надводного корабля в условиях реального волнения с критериями наибольшего абсолютного отклонения и среднего абсолютного отклонения эффективнее осуществлять с помощью второй формулы изолированной бортовой качки, используя для настройки параметров регрессионной модели в формуле либо ранговый метод, либо метод наименьших модулей.
Целью данной работы ставилась качественная оценка методов и моделей, что было успешно выполнено.
Настоящее исследование возможно продолжить, уточнив модели, взяв в рассмотрение не только бортовую качку, но и килевую, рысканье, продольную, поперечную, вертикальную.
Список литературы
равновесный надводный корабль моделирование.
- 1. Ришес К. Равновесие для выживания // Популярная механика, 2014. № 145. http://www.popmech.ru/weapon/50 840-kak-spasat-atomnye-podvodnye-lodki/
- 2. Колызаев Б. А., Косоруков А. И., Литвиненко В. А. Справочник по проектированию судов с динамическими принципами поддержания. Л.: Судостроение, 1980. 141 с.
- 3. Благовещенский С. Н., Холодилин А. Н. Бортовая качка судна на волнении: Учебное пособие. Л.: Изд. ЛКИ, 1983. 6 с.
- 4. Режим, диагноз и прогноз ветрового волнения в морях и океанах / Под ред. Е. С. Нестерова. М.: Изд-во РОСГИДРОМЕТ, 2013. 108 с.
- 5. Давидан И. Н., Лопатухин Л. И., Рожков В. А. Ветровое волнение как вероятностный гидродинамический процесс. Л.: Гидрометеоиздат, 1978. 120 с.
- 6. Нечаев Ю. И., Хейн Тун. Анализ и прогноз поведения судна в экстремальной ситуации на основе нечеткой системы знаний // Искусственный интеллект, 2009. № 3. 435 с.
- 7. Нечаев Ю. И., Петров О. Н. Непотопляемость судов: подход на основе современной теории катастроф. Спб.: Арт-Экспресс, 2014. С. 209−212.
- 8. Волков Н. Г., Кондрашов В. С., Мороз З. Д. Сравнение алгоритмов минимизации при реализации метода наименьших модулей. М.: ЦНИИатоминформ, 1987. 3 с.
- 9. Айвазян С. А., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: исследование зависимостей: Справочное издание. М.: Финансы и статистика, 1985. 212 с.
- 10. Louis A. Jaeckel. Estimating Regression Coefficients by Minimizing the Dispersion of the Residuals // The Annals of Mathematical Statistics, 1972. Vol. 43, Number 5 (1972). P. 1450. http://projecteuclid.org/euclid.aoms/1 177 692 377
- 11. Хеттманспергер Т. Статистические выводы, основанные на рангах. М.: Финансы и статистика, 1987. 257 с.
- 12. Thomas P. Hettmansperger, Joseph W. McKean. Robust Nonparametric Statistical Methods: Second Edition. Chapman & Hall/CRC Monographs on Statistics & Applied Probability, 2011. P. 183.
Приложения.
apprx.m.
function [A, B] = apprx (n, startotr, endotr, ap, cosn, pereklModel).
startotr = 0;
endotr = 2500;
n = (endotr — startotr)*5;
ap = 0.1;
cosn = 50;
A = 1;
B = 2;
idots = 0;
files = dir ('C:matlabShipsData');
schet = 0;
for j = 1: length (files).
if (files (j).isdir () == 0).
schet = schet + 1;
spisok{schet} = files (j).name;
spisok{schet} = strcat ('C:matlabShipsData', spisok{schet});
temparr = load (spisok{schet});
letemparr = length (temparr (, 1));
for i=1:letemparr.
data (schet, i, 1) = temparr (i, 1);
data (schet, i, 2) = temparr (i, 2);
if (temparr (i, 2) == 0).
zero (schet) = data (schet, i, 1);
end.
end.
end.
end.
kolv = length (spisok);
iter = 20;
for i = 1: iter.
[xsred (i:), xsr (i:), xssrm (i:), xssrp (i:)] = stab (n, ap, startotr, endotr, cosn, kolv, data, zero);
for j = 1: length (xsred (i:)).
if (abs ((xssrp (i, j) — xssrm (i, j))/(xssrp (i, j) + xssrm (i, j))) > 0.01).
omega (i, j) = (xssrp (i, j) — xssrm (i, j))/(xssrp (i, j) + xssrm (i, j));
idots = idots + 1;
xsred2(idots) = xsred (i, j);
xsr2(idots) = xsr (i, j);
xssrm2(idots) = xssrm (i, j);
xssrp2(idots) = xssrp (i, j);
omega2(idots) = omega (i, j);
zero2(idots) = zero (j);
dotsx (idots) = xsr (i, j);
if (pereklModel == 1).
dotsy (idots) = (zero (j)/xsred (i, j) — 1)/omega (i, j);
else.
dotsy (idots) = (zero (j) — xsred (i, j))/omega (i, j);
end.
end.
end.
end.
minx = min (dotsx);
maxx = max (dotsx);
polykoofMNK = MNK (dotsx, dotsy, 2);
polyxMNK = polyval (polykoofMNK, minx:0.1:maxx);
a = [10 10];
polykoofMNM = fminsearch (@(ax) MNM (dotsx, dotsy, 2, ax), a);
polykoofMNM = polykoofMNM (end:-1:1);
polykoofMNM (end + 1) = 0;
polyxMNM = polyval (polykoofMNM, minx:0.1:maxx);
a = [10 10];
polykoofMNMX = fminsearch (@(ax) minimax (dotsx, dotsy, 2, ax), a);
polykoofMNMX = polykoofMNMX (end:-1:1);
polykoofMNMX (end + 1) = 0;
polyxMNMX = polyval (polykoofMNMX, minx:0.1:maxx);
a = [10 10];
ast = fminsearch (@(ax) medianbounds (dotsx, dotsy, ax), a);
z0 = median (dotsy — dotsx.*ast (1) — (dotsx.^2).*ast (2));
polykoofRang = fmincon (@(ax)rangoc (dotsx, dotsy, ax), ast, [], [], [], [], [], [], @(ax)medianbound (dotsx, dotsy, ax));
polykoofRang = polykoofRang (end:-1:1).
polykoofRang (end + 1) = 0;
polyxRang = polyval (polykoofRang, minx:0.1:maxx);
a = [10 10];
polykoofMNQ4 = fminsearch (@(ax) MNQ4(dotsx, dotsy, 2, ax), a);
polykoofMNQ4 = polykoofMNQ4(end:-1:1);
polykoofMNQ4(end + 1) = 0;
polyxMNQ4 = polyval (polykoofMNQ4, minx:0.1:maxx);
a = [10 10];
polykoofMNQ3 = fminsearch (@(ax) MNQ3(dotsx, dotsy, 2, ax), a);
polykoofMNQ3 = polykoofMNQ3(end:-1:1);
polykoofMNQ3(end + 1) = 0;
polyxMNQ3 = polyval (polykoofMNQ3, minx:0.1:maxx);
hold on.
plot (dotsx, dotsy, 'ro');
plot (minx:0.1:maxx, polyxMNK, 'g');
plot (minx:0.1:maxx, polyxMNM, 'b');
plot (minx:0.1:maxx, polyxMNMX, 'k');
plot (minx:0.1:maxx, polyxRang, 'y');
plot (minx:0.1:maxx, polyxMNQ3, 'c');
plot (minx:0.1:maxx, polyxMNQ4, 'm');
epsilonMNKs = 0;
epsilonMNMs = 0;
epsilonMNMXs = 0;
epsilonRangs = 0;
epsilonMNQ3s = 0;
epsilonMNQ4s = 0;
for i = 1: idots.
if (pereklModel == 1).
epsilonMNK (i) = abs (xsred2(i)*(1 + (polykoofMNK (2)*xsr2(i) + polykoofMNK (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNM (i) = abs (xsred2(i)*(1 + (polykoofMNM (2)*xsr2(i) + polykoofMNM (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNMX (i) = abs (xsred2(i)*(1 + (polykoofMNMX (2)*xsr2(i) + polykoofMNMX (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonRang (i) = abs (xsred2(i)*(1 + (polykoofRang (2)*xsr2(i) + polykoofRang (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNQ3(i) = abs (xsred2(i)*(1 + (polykoofMNQ3(2)*xsr2(i) + polykoofMNQ3(1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNQ4(i) = abs (xsred2(i)*(1 + (polykoofMNQ4(2)*xsr2(i) + polykoofMNQ4(1)*xsr2(i).^2)*omega2(i)) — zero2(i));
else.
epsilonMNK (i) = abs ((xsred2(i) + (polykoofMNK (2)*xsr2(i) + polykoofMNK (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNM (i) = abs ((xsred2(i) + (polykoofMNM (2)*xsr2(i) + polykoofMNM (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNMX (i) = abs ((xsred2(i) + (polykoofMNMX (2)*xsr2(i) + polykoofMNMX (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonRang (i) = abs ((xsred2(i) + (polykoofRang (2)*xsr2(i) + polykoofRang (1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNQ3(i) = abs ((xsred2(i) + (polykoofMNQ3(2)*xsr2(i) + polykoofMNQ3(1)*xsr2(i).^2)*omega2(i)) — zero2(i));
epsilonMNQ4(i) = abs ((xsred2(i) + (polykoofMNQ4(2)*xsr2(i) + polykoofMNQ4(1)*xsr2(i).^2)*omega2(i)) — zero2(i));
end.
epsilonMNKs = epsilonMNKs + epsilonMNK (i);
epsilonMNMs = epsilonMNMs + epsilonMNM (i);
epsilonMNMXs = epsilonMNMXs + epsilonMNMX (i);
epsilonRangs = epsilonRangs + epsilonRang (i);
epsilonMNQ3s = epsilonMNQ3s + epsilonMNQ3(i);
epsilonMNQ4s = epsilonMNQ4s + epsilonMNQ4(i);
end.
epsilonMNKs = epsilonMNKs/idots.
epsilonMNMs = epsilonMNMs/idots.
epsilonMNMXs = epsilonMNMXs/idots.
epsilonRangs = epsilonRangs/idots.
epsilonMNQ3s = epsilonMNQ3s/idots.
epsilonMNQ4s = epsilonMNQ4s/idots.
epsilonMNKm = max (epsilonMNK).
epsilonMNMm = max (epsilonMNM).
epsilonMNMXm = max (epsilonMNMX).
epsilonRangm = max (epsilonRang).
epsilonMNQ3m = max (epsilonMNQ3).
epsilonMNQ4m = max (epsilonMNQ4).
end.
stab.m.
function[xsred, xsr, xssrm, xssrp] = stab (n, ap, a, b, cosn, kolv, data).
h = (b — a)/n;
i = 1;
fi = waves (a, b, h, cosn);
xsi (i) = fi (1);
ti (i) = 0;
ti2(i) = 0;
ti2(i + 1) = h/2;
for kolvi = 1: kolv.
polyship = polyfit (data (kolvi, 1), data (kolvi, 2), 3);
i = 1;
xi (i, 1) = 0;
xi (i, 2) = 0;
xsred (kolvi) = 0;
xprsred (kolvi) = 0;
for t = a+h:h:(b-h).
i = i + 1;
ti (i) = t;
ti2(2*i) = t;
ti2(2*i — 1) = ti2(2*i) — h/2;
res = yamrk4(xi (i — 1, 1), xi (i — 1, 2), h, fi (i*2 — 1), fi (i*2), fi (i*2 + 1), ap, polyship, data (kolvi, 1), data (kolvi, 2));
xi (i, 1) = res (1);
xi (i, 2) = res (2);
xsred (kolvi) = xi (i, 1) + xsred (kolvi);
xsi (i) = fi (2*(i — 1)+1) — ap*xi (i, 2) — Ax (xi (i, 1), polyship, data (kolvi, 1), data (kolvi, 2));
xprsred (kolvi) = xsi (i) + xprsred (kolvi);
end.
xsred (kolvi) = xsred (kolvi)/n;
xprsred (kolvi) = xprsred (kolvi)/n;
xim = xi (, 1)';
[extret, extrex] = extrs (ti, xi (, 1), xsred (kolvi));
[extrets, extrexs] = extrs (ti, xsi, xprsred (kolvi));
xsr (kolvi) = xmid (extret, extrex);
[xssrm (kolvi), xssrp (kolvi)] = xsmid (extrets, extrexs, xprsred (kolvi));
ti2(2*i — 1) = b — h/2;
ti2(2*i) = b;
ti2(2*i + 1) = b+h/2;
% if kolvi == kolvi.
% hold on.
%polyx = polyval (polyship, -50:0.1:50);
%plot (-50:0.1:50, polyx);
%plot (data (kolvi, 1), data (kolvi, 2), 'ro');
%data (kolvi, 1).
%data (kolvi, 2).
%plot (ti, xi (, 1));
% plot (extret, extrex, 'ro');
%plot (ti, xsred (kolvi));
%plot (ti, xsi);
% plot (extrets, extrexs, 'ro');
% plot (ti, xprsred (kolvi));
% end.
end.
end.
waves.m.
function [zn] = waves (pr1, pr2, h, n).
random = rand (1, n);
i = 0;
phi = random.*(2*pi);
wstart = 0.3;
wend = 1.4;
dw = (wend — wstart)/n;
for j = 1: n.
w (j) = wstart + (j — 1)*dw + dw/2;
c (j) = quadl ('spectrplotn', (wstart + (j — 1)*dw), (wstart + j*dw), 10e-5);
c (j) = sqrt (2*c (j));
end.
for t = pr1:(h/2):pr2.
i = i + 1;
ti (i) = t;
zn (i) = 0;
for j = 1: n.
zn (i) = zn (i) + (0.33)*c (j)*cos (w (j)*t + phi (1, j));
end.
end.
%hold on.
%plot (ti, zn).
end.
spectrplotn.m.
function [y] = spectrplotn (x).
h = 4;
tau = 4.8*sqrt (h);
A = 0.28*(2*pi).^4*h.^2*tau.^(-4);
B = 0.44*(2*pi).^4*tau.^(-4);
h1 = 3;
tau1 = 4.8*sqrt (h1);
A1 = 0.28*(2*pi).^4*h1.^2*tau1.^(-4);
B1 = 0.44*(2*pi).^4*tau1.^(-4);
k = 5;
n = 4;
p = 9;
m = 8;
y = A.*x.^(-k).*exp (-B.*x.^(-n)) + A1.*x.^(-p).*exp (-B1.*x.^(-m));
end.