Материалы сайта
Это интересно
Оптимизация режимов движения судов с использованием MATLAB 5.0
Оптимизация режима движения судна Цель работы. Распределить скорость движения судна по четырём участкам трассы так, чтобы суммарный расход топлива был минимальным. Программа. %Подготовка исходных данных 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 ( результаты для четырёх участков; Вывод. В качестве вывода приведена графическая зависимость расхода топлива (ось абсцисс) от времени прохождения всех участков (ось ординат).