5 (Оптимизация режимов движения судов с использованием MATLAB 5.0)
Описание файла
Документ из архива "Оптимизация режимов движения судов с использованием MATLAB 5.0", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "5"
Текст из документа "5"
Оптимальные режимы работы судовых генераторных агрегатов
Цель работы.
Найти оптимальное распределение мощности между дизель-генераторами.
Программа.
%Исходные данные
delt=10;
P1=0:delt:50;
P2=0:delt:70;
P3=0:delt:80;
F1=(0.03*(P1.^2)+2*P1+80);
F2=(0.015*(P2.^2)+1.45*P2+100);
F3=(0.01*(P3.^2)+0.95*P3+120);
%Решение
for T=1:2;
r1=size(F1);
r2=size(F2);
if r1(2)<=r2(2)
N=r1(2);M=r2(2);
else
N=r2(2);M=r1(2);
end
[x,y]=meshgrid(F1,F2);
z=x+y;
M
N
X=rot90(z,3);
XX=[];IM=[];IM3=[];
for cc=-(N-1):(M-1);
[v,I]=min(diag(X,cc));
XX=[XX v];
if cc<=-1
IM3=[IM3 abs(cc-I)];
else
IM=[IM I];
end
IMM=[IM3 IM];
end
X1=rot90(XX,2);
IM1=rot90(IMM,2);
Opt1=[X1;IM1.*delt-delt];
r=size(X1);
v1=1:r(2);
P=v1.*delt;
Opt2=[Opt1;P-delt];
Opt=[Opt2(1,:);Opt2(2,:);Opt2(3,:)-Opt2(2,:);Opt2(3,:)]
F2=Opt(1,:);
F1=F3;
end
Результат.
M =
8
N =
6
Opt =
180 196 215 237 260 285 313 342 373 407 442 483 530
0 0 0 0 10 10 10 20 20 20 30 40 50
0 10 20 30 30 40 50 50 60 70 70 70 70
0 10 20 30 40 50 60 70 80 90 100 110 120
M =
13
N =
9
Opt =
Columns 1 through 7
300.0000 310.5000 323.0000 337.5000 353.5000 370.0000 388.5000
0 10.0000 20.0000 30.0000 30.0000 40.0000 50.0000
0 0 0 0 10.0000 10.0000 10.0000
0 10.0000 20.0000 30.0000 40.0000 50.0000 60.0000
Columns 8 through 14
407.5000 428.0000 450.0000 472.5000 495.5000 520.0000 545.0000
50.0000 60.0000 60.0000 70.0000 70.0000 80.0000 80.0000
20.0000 20.0000 30.0000 30.0000 40.0000 40.0000 50.0000
70.0000 80.0000 90.0000 100.0000 110.0000 120.0000 130.0000
Columns 15 through 21
573.0000 602.0000 633.0000 667.0000 702.0000 743.0000 790.0000
80.0000 80.0000 80.0000 80.0000 80.0000 80.0000 80.0000
60.0000 70.0000 80.0000 90.0000 100.0000 110.0000 120.0000
140.0000 150.0000 160.0000 170.0000 180.0000 190.0000 200.0000
Также существует второй метод решения этой задачи, который представлен в программе ниже.
Программа.
%Исходные данные
delt=10;
P1=0:delt:50;
P2=0:delt:70;
P3=0:delt:80;
F1=(0.03*(P1.^2)+2*P1+80);
F2=(0.015*(P2.^2)+1.45*P2+100);
F3=(0.01*(P3.^2)+0.95*P3+120);
%Решение
FA=F1; FB=F2;
for j=1:2;
e1=size(FA); N=e1(2);
e2=size(FB); M=e2(2);
[x,y]=meshgrid(FA,FB);
z=x+y
Dmin=[]; D1min=[]; D2min=[];
Im=[]; I1m=[]; I2m=[];
for k=1:M+N-1;
if k<=N
DD=[];
for i=k:-1:1;
g=z(i,k-i+1);
DD=[DD g];
end
[L,I]=min(DD);
Dmin=[Dmin L];
Im=[Im I];
elseif (N DD1=[]; for i1=k:-1:k-N+1; g1=z(i1,k-i1+1); DD1=[DD1 g1]; end [L1,I1]=min(DD1); D1min=[D1min L1]; I1m=[I1m I1]; elseif (M DD2=[]; for i2=M:-1:k-N+1; g2=z(i2,k-i2+1); DD2=[DD2 g2]; end [L2,I2]=min(DD2); D2min=[D2min L2]; I2m=[I2m k-M+I2]; end end F12=[Dmin D1min D2min] I11=[Im I1m I2m]; r=size(F12); v=1:r(2); P=v.*delt; Opt=[F12;I11.*delt-delt;P-delt]; Optim12=[Opt(1,:);Opt(2,:);Opt(3,:)-Opt(2,:);Opt(3,:)] FB=Optim12(1,:); FA=F3; end Результат. z = 180 203 232 267 308 355 196 219 248 283 324 371 215 238 267 302 343 390 237 260 289 324 365 412 262 285 314 349 390 437 290 313 342 377 418 465 321 344 373 408 449 496 355 378 407 442 483 530 F12 = 180 196 215 237 260 285 313 342 373 407 442 483 530 Optim12 = 180 196 215 237 260 285 313 342 373 407 442 483 530 0 0 0 0 10 10 10 20 20 20 30 40 50 0 10 20 30 30 40 50 50 60 70 70 70 70 0 10 20 30 40 50 60 70 80 90 100 110 120 z = Columns 1 through 7 300.0000 310.5000 323.0000 337.5000 354.0000 372.5000 393.0000 316.0000 326.5000 339.0000 353.5000 370.0000 388.5000 409.0000 335.0000 345.5000 358.0000 372.5000 389.0000 407.5000 428.0000 357.0000 367.5000 380.0000 394.5000 411.0000 429.5000 450.0000 380.0000 390.5000 403.0000 417.5000 434.0000 452.5000 473.0000 405.0000 415.5000 428.0000 442.5000 459.0000 477.5000 498.0000 433.0000 443.5000 456.0000 470.5000 487.0000 505.5000 526.0000 462.0000 472.5000 485.0000 499.5000 516.0000 534.5000 555.0000 493.0000 503.5000 516.0000 530.5000 547.0000 565.5000 586.0000 527.0000 537.5000 550.0000 564.5000 581.0000 599.5000 620.0000 562.0000 572.5000 585.0000 599.5000 616.0000 634.5000 655.0000 603.0000 613.5000 626.0000 640.5000 657.0000 675.5000 696.0000 650.0000 660.5000 673.0000 687.5000 704.0000 722.5000 743.0000 Columns 8 through 9 415.5000 440.0000 431.5000 456.0000 450.5000 475.0000 472.5000 497.0000 495.5000 520.0000 520.5000 545.0000 548.5000 573.0000 577.5000 602.0000 608.5000 633.0000 642.5000 667.0000 677.5000 702.0000 718.5000 743.0000 765.5000 790.0000 F12 = Columns 1 through 7 300.0000 310.5000 323.0000 337.5000 353.5000 370.0000 388.5000 Columns 8 through 14 407.5000 428.0000 450.0000 472.5000 495.5000 520.0000 545.0000 Columns 15 through 21 573.0000 602.0000 633.0000 667.0000 702.0000 743.0000 790.0000 Optim12 = Columns 1 through 7 300.0000 310.5000 323.0000 337.5000 353.5000 370.0000 388.5000 0 10.0000 20.0000 30.0000 30.0000 40.0000 50.0000 0 0 0 0 10.0000 10.0000 10.0000 0 10.0000 20.0000 30.0000 40.0000 50.0000 60.0000 Columns 8 through 14 407.5000 428.0000 450.0000 472.5000 495.5000 520.0000 545.0000 50.0000 60.0000 60.0000 70.0000 70.0000 80.0000 80.0000 20.0000 20.0000 30.0000 30.0000 40.0000 40.0000 50.0000 70.0000 80.0000 90.0000 100.0000 110.0000 120.0000 130.0000 Columns 15 through 21 573.0000 602.0000 633.0000 667.0000 702.0000 743.0000 790.0000 80.0000 80.0000 80.0000 80.0000 80.0000 80.0000 80.0000 60.0000 70.0000 80.0000 90.0000 100.0000 110.0000 120.0000 140.0000 150.0000 160.0000 170.0000 180.0000 190.0000 200.0000 Вывод. В итоге работы получены одинаковые результаты решения данной задачи при помощи двух методов её решения. Цель работы выполнена.