Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Linear Engine / L2V4bGlicmlzL2R0bC9kM18xL2FwYWNoZV9tZWRpYS83MTc1

.pdf
Скачиваний:
16
Добавлен:
07.02.2016
Размер:
2.19 Mб
Скачать

Csaba Toth-Nagy

Linear engine development for series hybrid electric vehicles

Results1=[Addition;Results1]

ChromResults=[Chrom;ChromResults]

TargetResultsForTraining=[Efficienc;TargetResultsForTraining]

Perficiency=[[Preformance,NNPredEfficiency];Perficiency] savefile = sprintf('ResultsFreeTravelForNN%d',filecounter); savefileChrom = sprintf('ChromResultsForNN%d',filecounter);

savefileTarget = sprintf('TargetResultsForTraining%d',filecounter); savefileNN = sprintf('NNperformanceandprediction%d',filecounter);

[raws,columns]=size(Results1);

FinalResults=Results1(:,11); save FinalResults FinalResults filecounter=raws+1;

save savefile

save (savefile,'Results1')

save (savefileChrom,'ChromResults')

save (savefileTarget,'TargetResultsForTraining') save (savefileNN,'Perficiency')

save filecounter filecounter

save Results12forTraining Results1

Webie

t=[1:1:400];

T=1;

a=2;

% Threshold=0.037; Qp=(1-(Thresholdinj-FreeTravel/2)/(StrokeEffective))*HeatAddition;%(i); Qd=(Thresholdinj-FreeTravel/2)/StrokeEffective*HeatAddition;%(i); tp=20;

td=200;%10,20,30,60,100 Mp=3;

Md=.5;

en=0; for=1:length(t)

Q(j)=(a*Qp/tp*(Mp+1)*(j/tp)^Mp*exp(-a*(j/tp)^(Mp+1))+a*Qd/td*(Md+1)*

(j/td)^Md*exp(-a*(j/td)^(Md+1)));en=en+Q(j);

end

Calc

function [Press,Temp,PressEnergy,HeatLoss] = Calc(StrokeEffective,Stroke,Position,

193

Csaba Toth-Nagy

Linear engine development for series hybrid electric vehicles

PositionPrev,VolumePrev,PressPrev,PressPrevPrev,TempPrev,Surface,Volume,Press

EnergyPrev,

WebieCounter,Q,time,frequency,Diameter);

Pambient=100000;

Tambient=273+90;

if TempPrev<=Tambient

TempPrev=Tambient;

end

Gamma=1.4;

C2=3.24e-3; A=(Diameter)^2*pi/4;

VolumeOfCylinder=A*(StrokeEffective);

DensityOfAir=1.23;

MassOfAir=DensityOfAir*VolumeOfCylinder; R=8.3144/28.9e-3;

if and(PressPrev==PressPrevPrev, Q==0)

C1=2.28; else

C1=6.18;

end

cc=(C1*frequency*2*Stroke+C2*VolumeOfCylinder*TempPrev/PressPrev/VolumePrev*(Press Prev-

PressPrevPrev)); hg=3.26*Diameter^(-0.2)*abs(PressPrev/1000)^0.8*TempPrev^(-0.53)*cc^0.8; HeatLoss=Surface*(TempPrev-Tambient)*hg*time;

if Q==0

Dp=Gamma*PressPrev/Volume*(Volume-VolumePrev)+(Gamma-1)*(HeatLoss)/Volume; %

else

Dp=Gamma*PressPrev/Volume*(Volume-VolumePrev)+(Gamma-1)*(-Q+HeatLoss)/ Volume; %

end Press=PressPrev-Dp;

Temp=81+abs(Press)*Volume/MassOfAir/R; if Position<0

PressEnergy=(Press*VolumePrev-Pambient*VolumeOfCylinder)/(Gamma-1);

else PressEnergy=-abs(Q)+HeatLoss+PressEnergyPrev-((Press)*(Position-PositionPrev))*A;

end

194

Csaba Toth-Nagy

Linear engine development for series hybrid electric vehicles

CalcZero

function [Press,Temp,PressEnergy,HeatLoss] = CalcZero(Tambient,Pambient); cc=0;

hg=0;

HeatResistance=0;

HeatLoss=0;

Dp=0;

Press=Pambient;

Temp=Tambient;

PressEnergy=0;

Shift

function [Press]=Shift(Press) Temporary=Press(5000:14999); clear Press

Press=Temporary;

Freq

if or(Position(i)>=0 & Position(i-1)<=0,Position(i)<=0 & Position(i-1)>=0)zerocross1=i;

frequenci(i)=Frequency/(zerocross1-zerocross2)/2; tempzerocross=zerocross3;

zerocross3=zerocross2;

zerocross2=zerocross1;

else frequenci(i)=frequenci(i-1);

end

Chrom2NNInputForNeural

% load ChromResultsForNN51 [raws,columns]=size(ChromResults) Chromosome=ChromResults;

for k=1:raws

% Bore = 38 mm - 152 mm Diameter=bin2dec(Chromosome(k,1:10))/1024; %Stroke Effective = Bore/2 x 0.5 ... 1.5

StrokeEffective=bin2dec(Chromosome(k,11:20))/1024; %Free Travel = Stroke Effective x -0.5 ... 0.5 FreeTravel=bin2dec(Chromosome(k,21:30))/1024;

%Mass = Bore^2/4*pi*SE*RoAl(4700kg/m^3) x 0.5 ... 1.5/5 m=bin2dec(Chromosome(k,31:40))/1024;

%Fuel Injected = Bore^2/4*pi*SE*RoAir(1.23 kg/m^3)/14.7 x 0.1 ... 1 if FreeTravel<0

195

Csaba Toth-Nagy

Linear engine development for series hybrid electric vehicles

FuelInjected=(bin2dec(Chromosome(k,41:50

))/1024)*(StrokeEffective+FreeTravel)/St

rokeEffective; else

FuelInjected=bin2dec(Chromosome(k,41:50))/1024;

end

%InjTiming = Stroke Effective x 0.1 ... 0.9 InjTiming=bin2dec(Chromosome(k,51:60))/1024; %IgnTiming = Stroke Effective x 0.1 ... 0.5 IgnTiming=bin2dec(Chromosome(k,61:70))/1024;

% clear ResultsForTraining

ResultsForTraining(:,k)=[Diameter,StrokeEffective,FreeTravel,m,FuelInjected(1

),InjTiming,IgnTiming]';

save ResultsForTraining ResultsForTraining;

196

Соседние файлы в папке Linear Engine