%%
%装载epanet工具包
clc;
clear;
run('E:\epanet-toolkit\start_toolkit.m');
%%
d=epanet('管网.inp');%导入管网文件
d.openHydraulicAnalysis;%开启模拟
d.openQualityAnalysis;
d.initializeHydraulicAnalysis;%初始化
d.initializeQualityAnalysis;
%%
junctionIndex=d.getNodeJunctionIndex;
junctionamount=size(junctionIndex,2);
DemandPattern=d.getNodeDemandPatternNameID;
i=1;
while (i<=junctionamount)
d.setNodeDemandPatternIndex(i,0.3);
i=i+1;
end
%%
DemandPatternafter=d.getNodeDemandPatternNameID;
Simulationtime=d.getTimeSimulationDuration;
QualityStep=d.getTimeQualityStep;
pollutiontimes=1;
ii=1;
finaloutput=[lbk][rbk];
while (ii<=junctionamount)
d.setNodeSourceQuality(ii,5);
d.setNodeSourceType(ii,'FLOWPACED');
d.setNodeSourcePatternIndex(ii,2);
nodeQuality=[lbk][rbk];
iii=1;
d.runHydraulicAnalysis;
while (iii<=Simulationtime+QualityStep+QualityStep)
d.runQualityAnalysis;
nodeQuality1=d.getNodeActualQuality;
nodeQuality=[lbk]nodeQuality;nodeQuality1[rbk];
d.nextQualityAnalysisStep;
d.nextHydraulicAnalysisStep;
iii=iii+QualityStep;
end
d.closeQualityAnalysis;
d.closeHydraulicAnalysis;
output=nodeQuality;
abandon=size(output,2);
output(1,:)=[lbk][rbk];
output(:,abandon)=[lbk][rbk];
output=round(output,4);
output=output';
timeperiod=[lbk][rbk];
timeperiods=0;
while (timeperiods<size(output,2))
timeperiod(1,timeperiods+1)=timeperiods;
timeperiods=timeperiods+1;
end
pollutionnode=[lbk][rbk];
timeperiods=0;
while (timeperiods<size(output,2))
pollutionnode(1,timeperiods+1)=ii;
timeperiods=timeperiods+1;
end
timeperiods=0;
pollutiontime=[lbk][rbk];
while (timeperiods<size(output,2))
pollutiontime(1,timeperiods+1)=pollutiontimes;
timeperiods=timeperiods+1;
end
finaloutputs=[lbk]output;timeperiod;pollutionnode;pollutiontime[rbk];
finaloutput=[lbk]finaloutput,finaloutputs[rbk];
d.setNodeSourceQuality(ii,0);
d.setNodeSourceType(ii,'CONCEN');
ii=ii+1;
end
%装载epanet工具包
clc;
clear;
run('E:\epanet-toolkit\start_toolkit.m');
%%
d=epanet('管网.inp');%导入管网文件
d.openHydraulicAnalysis;%开启模拟
d.openQualityAnalysis;
d.initializeHydraulicAnalysis;%初始化
d.initializeQualityAnalysis;
%%
junctionIndex=d.getNodeJunctionIndex;
junctionamount=size(junctionIndex,2);
DemandPattern=d.getNodeDemandPatternNameID;
i=1;
while (i<=junctionamount)
d.setNodeDemandPatternIndex(i,0.3);
i=i+1;
end
%%
DemandPatternafter=d.getNodeDemandPatternNameID;
Simulationtime=d.getTimeSimulationDuration;
QualityStep=d.getTimeQualityStep;
pollutiontimes=1;
ii=1;
finaloutput=[lbk][rbk];
while (ii<=junctionamount)
d.setNodeSourceQuality(ii,5);
d.setNodeSourceType(ii,'FLOWPACED');
d.setNodeSourcePatternIndex(ii,2);
nodeQuality=[lbk][rbk];
iii=1;
d.runHydraulicAnalysis;
while (iii<=Simulationtime+QualityStep+QualityStep)
d.runQualityAnalysis;
nodeQuality1=d.getNodeActualQuality;
nodeQuality=[lbk]nodeQuality;nodeQuality1[rbk];
d.nextQualityAnalysisStep;
d.nextHydraulicAnalysisStep;
iii=iii+QualityStep;
end
d.closeQualityAnalysis;
d.closeHydraulicAnalysis;
output=nodeQuality;
abandon=size(output,2);
output(1,:)=[lbk][rbk];
output(:,abandon)=[lbk][rbk];
output=round(output,4);
output=output';
timeperiod=[lbk][rbk];
timeperiods=0;
while (timeperiods<size(output,2))
timeperiod(1,timeperiods+1)=timeperiods;
timeperiods=timeperiods+1;
end
pollutionnode=[lbk][rbk];
timeperiods=0;
while (timeperiods<size(output,2))
pollutionnode(1,timeperiods+1)=ii;
timeperiods=timeperiods+1;
end
timeperiods=0;
pollutiontime=[lbk][rbk];
while (timeperiods<size(output,2))
pollutiontime(1,timeperiods+1)=pollutiontimes;
timeperiods=timeperiods+1;
end
finaloutputs=[lbk]output;timeperiod;pollutionnode;pollutiontime[rbk];
finaloutput=[lbk]finaloutput,finaloutputs[rbk];
d.setNodeSourceQuality(ii,0);
d.setNodeSourceType(ii,'CONCEN');
ii=ii+1;
end