Предупреждение получено претензий У меня есть «резервные соединения (из-за других соединений)». Я связываю один HeatPort
с несколькими компонентами, которые расширяются за счет использования массива. Смотрите сегмент кода ниже.
Использование each
не работает, или я не сделал это правильно.
Redundant connection(s) (due to other connections):
connect(topFrontExteriorConvection.solid, module3_PipeComponents[2].port_a);
connect(topFrontExteriorConvection.solid, module3_PipeComponents[3].port_a);
connect(topFrontExteriorConvection.solid, module3_PipeComponents[4].port_a);
connect(topFrontExteriorConvection.solid, module3_PipeComponents[5].port_a);
connect(topFrontExteriorConvection.solid, module3_PipeComponents[6].port_a);
in the connection set.
ecoCeramicRadiation.T =module3_PipeComponents[1].port_a.T =module3_PipeComponents[2].port_a.T =module3_PipeComponents[3].port_a.T =module3_PipeComponents[4].port_a.T =module3_PipeComponents[5].port_a.T =module3_PipeComponents[6].port_a.T =topFrontExteriorConvection.solid.T
Note that this is not an actual error, and the redundancy can be removed in several ways.
Баланс тепла между .solid
и .port_a
должен быть математически правильным, но я, возможно, неправильно устанавливаю баланс в Modelica. Пожалуйста, дайте мне знать, если есть способ, которым я могу создать эти соединения без их избыточности. Хотя это только предупреждение, я получаю следующую ОШИБКУ на основании этих предупреждений.
Edit 1
Я настроил вторичную модель, в которой компонент больше не массивируется, а несколько раз копируется в модель. Тепловой порт подключен к нескольким другим тепловым портам, но я все еще получаю вышеуказанное сообщение. Соединения выглядят так:
Что-то не так с типом соединения?
Edit 2
Добавление фрагментов кода. Ниже приведен соответствующий код для предупреждения о избыточном соединении. В этой модели есть больше кода, но он был удален для краткости.
parameter Integer numPipes=6 "Number of repeating pipes.";
Buildings.HeatTransfer.Convection.Exterior topFrontExteriorConvection(
hFixed=exteriorConvectionCoefficientFixed,
conMod=extMode,
azi=Azimuth,
til=ecoCeramicTopPanelTilt,
A=surfaceAreaTop);
Components.Module3_PipeComponents module3_PipeComponents[numPipes](
each segmentLength=segmentLength,
each thicknessEco=thicknessEco,
each pipeVolume=pipeVolume,
each fluidFlow=fluidFlow,
each initialFluidTemp=initialFluidTemp,
each fluidDensity=fluidDensity,
each pipeDiameter=pipeDiameter,
each pipeLength=pipeLength,
each surfaceAreaTop=segSurfaceArea);
equation
connect(fluidInlet, module3_PipeComponents[1].flowPort_a);
for i in 1:numPipes - 1 loop
connect(module3_PipeComponents[i].flowPort_b, module3_PipeComponents[i+1].flowPort_a);
end for;
for i in 1:numPipes loop
connect(ecoCeramicRadiation, module3_PipeComponents[i].port_a);
connect(topFrontExteriorConvection.solid, module3_PipeComponents[i].port_a);
connect(module3_PipeComponents[i].port_b, topInsulationConduction.port_a);
end for;
connect(module3_PipeComponents[numPipes].flowPort_b, fluidOutlet);