4 (Оптимизация режимов движения судов с использованием MATLAB 5.0)
Описание файла
Документ из архива "Оптимизация режимов движения судов с использованием MATLAB 5.0", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "4"
Текст из документа "4"
Оптимизация режима движения судна
Цель работы.
Распределить скорость движения судна по четырём участкам трассы так, чтобы суммарный расход топлива был минимальным.
Программа.
%Подготовка исходных данных
delt=0.07;
tmin=[5.86 2.73 1.6 3.3967]; tmax=[7.47 3.71 2.37 4.5167];
t=[tmin; tmax]; tb=[tmax-tmin];
G1=[967.42 941.39 912 892.29 878.02 846.11 823.73 798.51 775.22 ...
764.2 741.28 719.36 706.85 678.15 673.74 659.91 645.65 ...
630.98 623 610.9 598.95 590.07 577.2 571.46];
G2=[521.73 491.12 463.51 437.33 415.2 392.7 377.45 358.23 346.86 ...
328.98 316.25 305.38 295.48 285.86 277.11];
G3=[281.47 255.5 231.07 210.41 192.31 177.55 166.97 157.77 ...
149.86 144.48 140.91 139.23];
G4=[590.60 561.90 535.10 510.20 487.06 465.67 445.94 427.82 ...
411.23 396.12 382.42 370.06 358.99 349.13 340.42 332.80 325.41];
%Формирование векторов t1, t2, t3, t4
t1=t(1,1):delt:t(2,1);
t2=t(1,2):delt:t(2,2);
t3=t(1,3):delt:t(2,3);
t4=t(1,4):delt:t(2,4);
%Пригонка данных
[a1,H1]=polyfit(t1,G1,3);
[a2,H2]=polyfit(t2,G2,3);
[a3,H3]=polyfit(t3,G3,3);
[a4,H4]=polyfit(t4,G4,3);
a=[a1;a2;a3;a4];
%Апроксимация исходных зависимостей
N=25;
deltM=tb./(N-1);
%Моделирование
TM=[];Gm=[];
for i=1:4;
tm=t(1,i):deltM(i):t(2,i);
TM=[TM;tm];
gm=polyval(a(i,:),tm);
Gm=[Gm;gm];
end
deltt=deltM;
%Оптимизация распределения времени движения
GG=[];
F=Gm;
for xr=1:N;
I=1:xr;
L=Gm(1,I)+Gm(2,xr-I+1);
[Lopt,I]=min(L);
X1=5.86+I*deltt(1)-deltt(1);
X2=2.73+(xr-I)*deltt(2);
Pacn=[Lopt.*0.001;X1;X2;X1+X2];
GG=[GG Pacn];
end
D=GG(1,:);
C=GG(4,:);
PP=[];RRR=[];
for J=2:3;
DD=[];RR=[];CC=[];
for xr=1:N;
I=1:xr;
L=D(I)+0.001.*F(J+1,xr-I+1);
[Lopt,I]=min(L);
X1=C(I);
X2=TM(J+1,1)+(xr-I)*deltt(J+1);
Pacn=[Lopt;X1;X2;X1+X2];
DD=[DD Pacn(1,:)];
RR=[RR Pacn];
CC=[CC Pacn(4,:)];
end
PP=[PP;DD(1,:)];
RRR=[RRR RR];
D=DD;
C=CC;
end
RRR=[GG RRR];
R12=RRR(:,1:N)
R23=RRR(:,N+1:2*N)
R34=RRR(:,2*N+1:3*N)
plot(R34(1,:),R34(4,:)),grid
Результат.
R12 =
Columns 1 through 7
1.4899 1.4647 1.4402 1.4164 1.3934 1.3710 1.3494
5.8600 5.9271 5.9942 6.0613 6.1283 6.1954 6.2625
2.7300 2.7300 2.7300 2.7300 2.7300 2.7300 2.7300
8.5900 8.6571 8.7242 8.7912 8.8583 8.9254 8.9925
Columns 8 through 14
1.3285 1.3083 1.2889 1.2703 1.2522 1.2343 1.2172
6.3296 6.3967 6.4638 6.5308 6.5308 6.5979 6.5979
2.7300 2.7300 2.7300 2.7300 2.7708 2.7708 2.8117
9.0596 9.1267 9.1937 9.2608 9.3017 9.3688 9.4096
Columns 15 through 21
1.2001 1.1838 1.1675 1.1521 1.1367 1.1220 1.1075
6.6650 6.7321 6.7321 6.7992 6.7992 6.8663 6.8663
2.8117 2.8117 2.8525 2.8525 2.8933 2.8933 2.9342
9.4767 9.5437 9.5846 9.6517 9.6925 9.7596 9.8004
Columns 22 through 25
1.0936 1.0799 1.0668 1.0538
6.9333 6.9333 7.0004 7.0004
2.9342 2.9750 2.9750 3.0158
9.8675 9.9083 9.9754 10.0162
R23 =
Columns 1 through 7
1.7720 1.7468 1.7223 1.6985 1.6754 1.6530 1.6314
8.5900 8.6571 8.7242 8.7912 8.8583 8.9254 8.9925
1.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000
10.1900 10.2571 10.3242 10.3912 10.4583 10.5254 10.5925
Columns 8 through 14
1.6105 1.5904 1.5710 1.5523 1.5342 1.5164 1.4992
9.0596 9.1267 9.1937 9.2608 9.3017 9.3688 9.4096
1.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000
10.6596 10.7267 10.7937 10.8608 10.9017 10.9688 11.0096
Columns 15 through 21
1.4821 1.4658 1.4496 1.4341 1.4187 1.4040 1.3895
9.4767 9.5437 9.5846 9.6517 9.6925 9.7596 9.8004
1.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000
11.0767 11.1437 11.1846 11.2517 11.2925 11.3596 11.4004
Columns 22 through 25
1.3756 1.3619 1.3488 1.3358
9.8675 9.9083 9.9754 9.9754
1.6000 1.6000 1.6000 1.6321
11.4675 11.5083 11.5754 11.6075
R34 =
Columns 1 through 7
2.3626 2.3374 2.3129 2.2892 2.2661 2.2437 2.2221
10.1900 10.2571 10.3242 10.3912 10.4583 10.5254 10.5925
3.3967 3.3967 3.3967 3.3967 3.3967 3.3967 3.3967
13.5867 13.6538 13.7209 13.7879 13.8550 13.9221 13.9892
Columns 8 through 14
2.2012 2.1810 2.1616 2.1422 2.1236 2.1051 2.0870
10.6596 10.7267 10.7267 10.7937 10.8608 10.8608 10.9017
3.3967 3.3967 3.4434 3.4434 3.4434 3.4900 3.4900
14.0563 14.1234 14.1700 14.2371 14.3042 14.3509 14.3917
Columns 15 through 21
2.0691 2.0514 2.0343 2.0172 2.0004 1.9841 1.9678
10.9688 10.9688 11.0096 11.0767 11.0767 11.1437 11.1846
3.4900 3.5367 3.5367 3.5367 3.5834 3.5834 3.5834
14.4588 14.5055 14.5463 14.6134 14.6600 14.7271 14.7679
Columns 22 through 25
1.9518 1.9363 1.9209 1.9057
11.1846 11.2517 11.2925 11.2925
3.6300 3.6300 3.6300 3.6767
14.8146 14.8817 14.9225 14.9692
В результате получаем матрицы, в которых:
-
1 строка расход топлива на участках;
-
2 строка время движения по предыдущим участкам;
-
3 строка время движения по i-тому участку;
-
4 строка суммарное время движения по участкам.
R12 результаты для двух участков;
R23 результаты для трёх участков;
R34 результаты для четырёх участков;
Вывод.
В качестве вывода приведена графическая зависимость расхода топлива (ось абсцисс) от времени прохождения всех участков (ось ординат).