Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
262 commits
Select commit Hold shift + click to select a range
dfa75ba
Organizing Data records
LoneMeertens Jun 13, 2025
be7c659
addition electrical datasheet parameters to record
LoneMeertens Jun 13, 2025
aa6dfdf
add documentation to the User’s Guide
LoneMeertens Jun 13, 2025
29bb250
adding documentation to Data package
LoneMeertens Jun 13, 2025
7781057
update documentation types package
LoneMeertens Jun 14, 2025
b69d92a
update documentation BaseClasses package + clean up
LoneMeertens Jun 14, 2025
69555ea
make sure pel and qTh are outputted in final model
LoneMeertens Jun 16, 2025
b480afd
Update documentation Examples package
LoneMeertens Jun 16, 2025
3cdbab2
Addition validation adapted pvt models
LoneMeertens Jun 16, 2025
53bcd70
Adding validation model
LoneMeertens Jun 16, 2025
da10064
finalizing documentation Validation package
LoneMeertens Jun 20, 2025
22b5636
Track PVT2 data bestanden met Git LFS
LoneMeertens Jun 20, 2025
25f6491
Remove large PVT2 data files from normal Git index
LoneMeertens Jun 20, 2025
89c0396
Re-add PVT2 data files via Git LFS
LoneMeertens Jun 20, 2025
21b8524
Remove large PVT2 data files from normal Git index
LoneMeertens Jun 20, 2025
0519fe0
Re-add PVT2 data files via Git LFS
LoneMeertens Jun 20, 2025
8e5b293
-
LoneMeertens Jun 20, 2025
9945449
Track grote bestanden met Git LFS
LoneMeertens Jun 20, 2025
a125ad5
Stop tracking .mos files with Git LFS to match upstream
LoneMeertens Jun 20, 2025
bc00b6b
improvements: icon + documentation
lucasverleyen Jun 20, 2025
c9f0c7e
improvements: documentation + graphics
lucasverleyen Jun 20, 2025
810dd90
Improvements: formatting
lucasverleyen Jun 20, 2025
326be18
Merge branch 'originLucas/issue1436_addPvtModel' into issue1436_addPv…
LoneMeertens Jun 20, 2025
c8c172a
Update IDEAS/Fluid/PvtCollectors/package.mo
LoneMeertens Jun 20, 2025
6e97f4a
Remove to many empty lines
LoneMeertens Jun 20, 2025
10d9596
IDEAS.Fluid.PvtCollectors.BaseClasses.EN12975HeatLoss renamed to .EN1…
LoneMeertens Jun 20, 2025
bf1b88e
Adding LongWaveRadiation model for validation
LoneMeertens Jun 20, 2025
66c9f98
fix: restore missing line in .gitattributes
LoneMeertens Jul 1, 2025
d255416
refactor: rename EN12975HeatLoss_QuasiDynamic.mo to EN12975QuasiDynam…
LoneMeertens Jul 1, 2025
21d8dda
chore: fix typo in comment in EN12975QuasiDynamicHeatLoss.mo
LoneMeertens Jul 1, 2025
8c668c0
refactor: replace Real parameters with Modelica.Units.SI types in EN1…
LoneMeertens Jul 1, 2025
7a394cb
docs: update parameter name from "Collector gross area" to "Collector…
LoneMeertens Jul 1, 2025
6ecf2b0
style: rename connector from WeaBus to weaBus in EN12975QuasiDynamicH…
LoneMeertens Jul 1, 2025
a1843c9
style: rename variables in EN12975QuasiDynamicHeatLoss.mo to match na…
LoneMeertens Jul 1, 2025
1fea72f
feat: add defaultComponentName to EN12975QuasiDynamicHeatLoss.mo
LoneMeertens Jul 1, 2025
324732a
refactor: rename model EN12975QuasiDynamicHeatLoss in Examples to fol…
LoneMeertens Jul 1, 2025
d3af258
Revert "refactor: rename model EN12975QuasiDynamicHeatLoss in Example…
LoneMeertens Jul 1, 2025
1cff398
refactor: rename model to EN12975HeatLoss
LoneMeertens Jul 1, 2025
7f4aad4
refactor: rename component to heaLosQuaDyn in EN12975HeatLoss.mo for …
LoneMeertens Jul 1, 2025
e4e71f0
fix: resolve error with final and unit annotations on parameters in E…
LoneMeertens Jul 1, 2025
34633b0
style: remove redundant whitespace in EN12975HeatLoss.mo
LoneMeertens Jul 1, 2025
5bae08f
style: remove redundant whitespace in EN12975HeatLoss.mo
LoneMeertens Jul 1, 2025
5d1c885
refactor: rename Gstc to HGloHorNom in PartialPvtCollector and remove…
LoneMeertens Jul 1, 2025
2c9aa55
docs: update documentation for parameter HGloHorNom in PartialPvtColl…
LoneMeertens Jul 1, 2025
83d7af8
style: unify unit brackets to [ ] in PartialPvtCollector model
LoneMeertens Jul 1, 2025
df35dd5
docs: clarify description of Modelica.Units.SI.Irradiance parameter H…
LoneMeertens Jul 1, 2025
9a7a49f
refactor: rename _T_ref to TpvtRef in PartialPvtCollector
LoneMeertens Jul 1, 2025
2cc4283
fix: correct error in °C to K conversion in PartialPvtCollector
LoneMeertens Jul 1, 2025
e1414f2
refactor: replace Real with Modelica.Units.SI.DimensionlessRatio for …
LoneMeertens Jul 1, 2025
f4fdab9
refactor: make UAbsFluidCalc a final parameter and remove output modi…
LoneMeertens Jul 1, 2025
396487e
docs: update documentation for UAbsFluidCalc in PartialPvtCollector
LoneMeertens Jul 1, 2025
03b1e8e
refactor: rename Modelica.Blocks.Interfaces.RealOutput pel to pEl in …
LoneMeertens Jul 1, 2025
6b74eb5
docs: add units to pEl and qTh outputs in PartialPvtCollector
LoneMeertens Jul 1, 2025
bac9993
refactor: change solarPowerInternal from RealOutput to Real and updat…
LoneMeertens Jul 1, 2025
9202b33
refactor: rename gGlob to HGloTil to match weaBus naming convention i…
LoneMeertens Jul 1, 2025
1a5ff6b
refactor: replace Real with Modelica.SIunits types in GenericQuasiDyn…
LoneMeertens Jul 1, 2025
03585e4
refactor: rename parameter Pstc to P_nominal and update documentation
LoneMeertens Jul 1, 2025
96e88b7
refactor: replace Real with Modelica.Units.SI types in GenericQuasiDy…
LoneMeertens Jul 1, 2025
c05ec27
refactor: rename eta0El to etaEl for clarity and consistency
LoneMeertens Jul 1, 2025
68045bf
chore: remove IDEAS.Fluid.PvtCollectors.Data.Concentrating package
LoneMeertens Jul 1, 2025
28c3099
chore: remove IDEAS.Fluid.PvtCollectors.Data.WISC package
LoneMeertens Jul 1, 2025
0042d13
refactor: update path to IDEAS.Fluid.PvtCollectors.QuasiDynamicPvtCol…
LoneMeertens Jul 1, 2025
839f739
refactor: update paths to QuasiDynamicPvtCollector and Data.Uncoverd.…
LoneMeertens Jul 1, 2025
2c241a3
style: remove redundant whitespaces in UI_TRNSYSValidation
LoneMeertens Jul 1, 2025
ef60f1a
style: remove redundant whitespaces in IDEAS.Fluid.PvtCollector
LoneMeertens Jul 1, 2025
87b6553
refactor: update path in Wisc of pvtCol
LoneMeertens Jul 1, 2025
db16150
refactor: make winSpeTil a final parameter in PvtCollectors
LoneMeertens Jul 1, 2025
e220928
refactor: rename QuasiDynamicPvtCollector to PVT
LoneMeertens Jul 1, 2025
df384e3
refactor: make heaLos and solGai final parameters in PVTQuasiDynamicC…
LoneMeertens Jul 1, 2025
ed2d1e0
refactor: change winSpeTil type from Real to Modelica.Units.SI.Velocity
LoneMeertens Jul 1, 2025
ed3c214
docs: update package description in Types
LoneMeertens Jul 1, 2025
6715a27
docs: update documentation in UsersGuide
LoneMeertens Jul 1, 2025
07bce22
refactor: add BaseClasses to Validation for shared models; move and r…
LoneMeertens Jul 2, 2025
08a155a
refactor: extend EN12975QuasiDynamicHeatLossValidation from SolarColl…
LoneMeertens Jul 2, 2025
4c0404c
refactor: rename eta0El and Pstc parameters; rename PartialPvtCollect…
LoneMeertens Jul 2, 2025
095533f
style: remove whitespace
LoneMeertens Jul 2, 2025
e5fbf1c
refactor: extend quasi-dynamic heat loss block from SolarCollectorSte…
LoneMeertens Jul 2, 2025
2c9ca7d
refactor: replace HGloTil math Add block with equation in PartialPvtC…
LoneMeertens Jul 2, 2025
cefc702
refactor: remove thermal heat loss terms from main model; retained on…
LoneMeertens Jul 2, 2025
ff0e6f2
refactor: rename HGloHor to HGloTil to reflect global irradiance on t…
LoneMeertens Jul 2, 2025
4bd2d86
remove PartialQuasiDynamicHeatLoss and and restructure EN12975QuasiD…
LoneMeertens Jul 2, 2025
4eb96e9
refactor: add E_L and winSpePla as input connectors in EN12975QuasiDy…
LoneMeertens Jul 2, 2025
d529a86
style: update icon in EN12975QuasiDynamicHeatLossValidation
LoneMeertens Jul 2, 2025
8100971
refactor: rename variables to match weaBus naming conventions
LoneMeertens Jul 2, 2025
f1868cb
refactor: remove winSpePla input connector from EN12975QuasiDynamicHe…
LoneMeertens Jul 2, 2025
8c0346f
refactor: rename all EN12975 models to ISO9806 to reflect 2013 revisi…
LoneMeertens Jul 2, 2025
c5e832b
refactor: rename all occurrences of 'Pvt' to 'PVT' to reflect standar…
LoneMeertens Jul 2, 2025
e3868d5
style: unify "heat loss" naming in GenericQuasiDynamic for consistency
LoneMeertens Jul 2, 2025
addc4bd
docs: add heat loss equation to ISO9806QuasiDynamicHeatLoss documenta…
LoneMeertens Jul 2, 2025
6658895
refactor: correct variable names to follow naming convention
LoneMeertens Jul 2, 2025
3146ff5
feat: add ISO9806HeatLoss example comparing steady state and quasi-dy…
LoneMeertens Jul 2, 2025
237f215
docs: add revision history to ISO9806QuasiDynamicHeatLoss documentation
LoneMeertens Jul 2, 2025
bd0cbc6
docs: add documentation and revision history to PartialPVTCollector
LoneMeertens Jul 3, 2025
433d356
refactor: rearrange models and packages according to Modelica Buildin…
LoneMeertens Jul 3, 2025
8574d6c
refactor: rename validation data records for clarity and consistency
LoneMeertens Jul 3, 2025
046e134
feat: add one generic data record per PVT collector type
LoneMeertens Jul 3, 2025
088de47
docs: add details to WISC example for improved clarity and usage
LoneMeertens Jul 3, 2025
c5b4494
refactor: rename EN standard references to ISO to reflect updated sta…
LoneMeertens Jul 3, 2025
280710a
style: reorder models alphabetically for consistency
LoneMeertens Jul 3, 2025
6ac2552
feat: add separate ElectricalPVT block for visual integration in PVT …
LoneMeertens Jul 3, 2025
9e3ee08
fix: restore annotations for heat loss connection
LoneMeertens Jul 3, 2025
2528150
feat: extend ElectricalPVT block with input and output connectors
LoneMeertens Jul 3, 2025
3aa3eb7
feat: implement working PVT model extending PartialSolarCollector wit…
LoneMeertens Jul 7, 2025
6e3f5ec
refactor: clean up PVT model and assign Real output variables
LoneMeertens Jul 7, 2025
b5f8812
fix: remove duplicate default parameter definition in PVT model
LoneMeertens Jul 7, 2025
69a499d
refactor: replace internal variables with output connectors in PVT mo…
LoneMeertens Jul 7, 2025
386df7b
feat: add ElectricalPVT block to PartialPVT1 model analogous to Gener…
LoneMeertens Jul 7, 2025
bc2ad2e
fix: correct errors in UN_validation datasheet
LoneMeertens Jul 7, 2025
9b557c3
feat: add ElectricalPVT block to PartialPVT2 model analogous to Gener…
LoneMeertens Jul 7, 2025
ae06dd9
fix: correct error in UN_validation datasheet
LoneMeertens Jul 7, 2025
12bddc9
refactor: remove unused PartialPVTCollector model; replaced by PVT mo…
LoneMeertens Jul 7, 2025
fa0a50e
refactor: rename STC heat loss and gain block to avoid confusion with…
LoneMeertens Jul 7, 2025
3f6050b
docs: update documentation across models and packages
LoneMeertens Jul 7, 2025
3feef8e
docs: add reference for solar thermal heat gain
LoneMeertens Jul 7, 2025
ea79d64
docs: modify table layout for improved readability
LoneMeertens Jul 7, 2025
97da51d
docs: update documentation across models and packages
LoneMeertens Jul 7, 2025
3a23d73
docs: update documentation across models and packages
LoneMeertens Jul 7, 2025
603fc74
docs: add revision history to all models and packages
LoneMeertens Jul 7, 2025
b3c4325
docs: update documentation for SimInfoManager and WeatherReader
LoneMeertens Jul 7, 2025
0fcf680
docs: add revision history to all models and packages
LoneMeertens Jul 7, 2025
f3caf33
docs: update documentation
LoneMeertens Jul 7, 2025
ff305b8
docs: update documentation
LoneMeertens Jul 7, 2025
29104f6
refactor: restructure PVT1.PVTQuasiDynamicCollectorValidation to exte…
LoneMeertens Jul 7, 2025
d78e13c
refactor: restructure PVT2.PVTQuasiDynamicCollectorValidation to exte…
LoneMeertens Jul 7, 2025
1640252
docs: update documentation
LoneMeertens Jul 7, 2025
b1af928
style: use full component paths in models for clarity and consistency
LoneMeertens Jul 7, 2025
78dc98f
feat: extend ISO9806QuasiDynamicHeatLossValidation from ISO9806QuasiD…
LoneMeertens Jul 7, 2025
630898f
docs: update documentation
LoneMeertens Jul 8, 2025
0705abf
refactor: restructure models and packages to follow naming and organi…
LoneMeertens Jul 8, 2025
563dc69
refactor: adapt UAbsFluid expression in validation files after moving…
LoneMeertens Jul 9, 2025
66a6a4e
feat: add pLossFactor parameter to validation models for compatibilit…
LoneMeertens Jul 9, 2025
18733ec
feat: add pLossFactor parameter to remaining validation models for .m…
LoneMeertens Jul 9, 2025
65a2772
fix: correct typo in model path
LoneMeertens Jul 9, 2025
652035e
Revert specific files from commit c5e832b1e
LoneMeertens Jul 9, 2025
8989e21
Revert specific files from commit c5e832b1e
LoneMeertens Jul 9, 2025
156edcd
Merge branch 'master' into issue1436_addPvtModel
jelgerjansen Jul 10, 2025
cb3c8a8
fix: correct indexing of meaPel to use appropriate column from meaDat
LoneMeertens Jul 10, 2025
2a7d6bf
fix: correct type name from TAmbKel to TFluKel
LoneMeertens Aug 1, 2025
9398f4c
docs: clarify system loss factor and reference results
LoneMeertens Aug 1, 2025
ef7f932
docs(data): update description for data records to reflect literature…
LoneMeertens Aug 8, 2025
7646d1a
docs: corrected plossfactor description to align with examples
LoneMeertens Aug 8, 2025
2275e5a
refactor: rename PVT1 to PVT_UI and PVT2 to PVT_UN across models and …
LoneMeertens Aug 8, 2025
0b781e8
docs: link new naming conventions clearly to PVT1 and PVT2 of paper
LoneMeertens Aug 8, 2025
7fc19eb
Merge remote-tracking branch 'lone/issue1436_addPvtModel' into issue1…
jelgerjansen Aug 8, 2025
51e9728
refactor: rename measurement files and string to new PVT naming
LoneMeertens Aug 8, 2025
b95466b
refactor: Rename large files via cmd to avoid Git LFS procedure
LoneMeertens Aug 8, 2025
7be841a
test: add .mos scripts for unit testing validation models
LoneMeertens Aug 8, 2025
133625e
Merge branch 'issue1436_addPvtModel' of github.com:open-ideas/IDEAS i…
LoneMeertens Aug 8, 2025
ee05042
test: add unit test model 'ISO9806HeatLoss' with plots
LoneMeertens Aug 8, 2025
12f7d49
test: add unit test for WISC model with plots and minor model adaptation
LoneMeertens Aug 8, 2025
a366a6e
test: add unit test mos script for PVT_UI with plots
LoneMeertens Aug 8, 2025
8fdf63f
test: add unit test mos script for PVT_UN with plots
LoneMeertens Aug 8, 2025
2079987
test: add Test IDEAS.Fluid.PVTCollectors job to github actions yml file
LoneMeertens Aug 8, 2025
ca89f3c
chore: remove absolute file reference from .gitattributes
LoneMeertens Aug 12, 2025
4007b67
docs: add doc string to IDEAS/Fluid/PvtCollectors/package.mo and remo…
LoneMeertens Aug 12, 2025
1991207
docs: update UserGuide documentation
LoneMeertens Aug 12, 2025
6cd0f15
docs: update UserGuide documentation
LoneMeertens Aug 12, 2025
34bb48e
docs: adjust documentation in PVTQuasiDynamicCollector
LoneMeertens Aug 13, 2025
5955268
refactor: rename pLossFactor to eleLosFac
LoneMeertens Aug 13, 2025
b73fd57
feat: set eleLosFac default to 9% and add min=0, max=1
LoneMeertens Aug 13, 2025
af5a1d1
refactor: rename tauAlpaEff to tauAlpEff for naming consistency
LoneMeertens Aug 13, 2025
69858d4
feat: add min=0, max=1 to eleLosFac and tauAlpEff in general and vali…
LoneMeertens Aug 13, 2025
26ea15e
docs: rewrite documentation string for CollectorType
LoneMeertens Aug 13, 2025
dad89cf
docs: rewrite documentation string for per unit parameters
LoneMeertens Aug 13, 2025
caf493e
refactor: switch RealInputs and RealOutput to protected variables in …
LoneMeertens Aug 13, 2025
fe463eb
refactor: redeclare final package for medium declaration
LoneMeertens Aug 13, 2025
59c01e9
refactor: use Modelica.Math functions and add doc strings for effecti…
LoneMeertens Aug 13, 2025
a450aa1
refactor: set defaultComponentName to "pvtCol"
LoneMeertens Aug 13, 2025
5e7e140
docs: update doc strings
LoneMeertens Aug 13, 2025
b14fb1b
refactor: apply Modelica.Units.SI to ElectricalPVT parameters
LoneMeertens Aug 13, 2025
17d90a0
refactor: change back to sqrt, since problems with Modelica.Math.sqrt
LoneMeertens Aug 13, 2025
2611996
refactor: change Tm to Tflu
LoneMeertens Aug 13, 2025
fac1288
refactor: update variable names, apply Modelica.Units.SI, and switch …
LoneMeertens Aug 13, 2025
f795e9f
refactor: update SolarCollectors paths
LoneMeertens Aug 13, 2025
b2e2b3d
refactor: declare Medium once at top level in ISO9806HeatLoss example
LoneMeertens Aug 13, 2025
075e3bc
docs: updating dox strings parameters
LoneMeertens Aug 13, 2025
ecb305b
docs: remove indents in all model documentation
LoneMeertens Aug 13, 2025
d46b155
docs: update doc string model
LoneMeertens Aug 13, 2025
ea3fcc3
docs: use proper greek naming symbols following convention
LoneMeertens Aug 13, 2025
c75b628
docs: update documentation in ISO9806QuasiDynamicHeatLoss
LoneMeertens Aug 14, 2025
97031b5
style: move "=" to same line and remove "ParamSet"
LoneMeertens Aug 14, 2025
2471a66
docs: remove obsolete doc lines
LoneMeertens Aug 14, 2025
fe202fc
chore: update .gitattributes paths from PVT2 to PVT_UI/UN
LoneMeertens Aug 14, 2025
d8a82aa
docs: update doc in Data package
LoneMeertens Aug 14, 2025
21b9df1
docs: update doc
LoneMeertens Aug 14, 2025
2f3eda2
refactor: apply Modelica.Units.SI and clean whitespace in ISO9806Quas…
LoneMeertens Aug 14, 2025
c344e39
refactor: convert til to parameter
LoneMeertens Aug 14, 2025
6373b30
docs: update icons for base classes
LoneMeertens Aug 14, 2025
fd7d550
refactor: use SI units where possibe
LoneMeertens Aug 14, 2025
cec2d70
docs: adapt doc in LWR model
LoneMeertens Aug 14, 2025
2fbe75e
chore: remove leftover PVT1 and PVT2 files
LoneMeertens Aug 14, 2025
80bac23
fix: correct eleLosFac value
LoneMeertens Aug 14, 2025
98c84a8
docs: update initial temp doc string
LoneMeertens Aug 14, 2025
690fad4
docs: refer to paper
LoneMeertens Aug 14, 2025
a8268c8
docs: update references
LoneMeertens Aug 14, 2025
6e6c88b
docs: update data packages
LoneMeertens Aug 14, 2025
4a2fbdd
docs: centr. doc and add reference to userguide
LoneMeertens Aug 14, 2025
13ba5e2
chore: switch from weabus to meaDat to eliminate models
LoneMeertens Aug 14, 2025
264108c
chore: remove obsolete models related to weaBus
LoneMeertens Aug 14, 2025
93797ef
chore: move all baseclass models to one BaseClasses package in Valida…
LoneMeertens Aug 14, 2025
1bf29f1
fix: remove wrongly placed protected status
LoneMeertens Aug 14, 2025
26286dd
feat: include CollectorType in recordsand modify models accordingly
LoneMeertens Aug 14, 2025
8d7f03b
chore: remove stc related validity check for a1
LoneMeertens Aug 14, 2025
0c49f4f
refactor: compute HGloTil graphically to improve model clarity
LoneMeertens Aug 14, 2025
3c86979
fix: correct unit mismatch by renaming variables to Pel and Qth and u…
LoneMeertens Aug 17, 2025
094e4bb
fix: rename Pel in ElectricalPVT
LoneMeertens Aug 17, 2025
386764b
refactor: replace equation-style assignment with graphical connection…
LoneMeertens Aug 17, 2025
d2941f7
feat: expose UAbsFluid as overridable parameter in ElectricalPVT (Adv…
LoneMeertens Aug 17, 2025
f5203b6
docs: fix small doc and ref errors
LoneMeertens Aug 18, 2025
cda75e2
docs. Fixing small errors in doc
LoneMeertens Aug 18, 2025
1bc9b6d
docs: update doc validation models
LoneMeertens Aug 18, 2025
b0beb2c
Remove IDEAS/.gitattributes file (obsolete)
jelgerjansen Aug 19, 2025
f1e80e2
BaseClasses.ElectricalPVT:
jelgerjansen Aug 19, 2025
218fc44
BaseClasses.QuasiDynamicHeatLoss:
jelgerjansen Aug 19, 2025
642fff7
BaseClasses.package:
jelgerjansen Aug 19, 2025
3c409e1
BaseClasses.Examples.package:
jelgerjansen Aug 19, 2025
b019d6a
BaseClasses.QuasiDynamicHeatLoss:
jelgerjansen Aug 19, 2025
fa354ab
Unify revision notes of BaseClasses package
jelgerjansen Aug 19, 2025
86baebb
Data packages and models:
jelgerjansen Aug 19, 2025
5fa9763
Examples:
jelgerjansen Aug 19, 2025
4052d55
Types.package:
jelgerjansen Aug 19, 2025
56c626f
UsersGuide:
jelgerjansen Aug 19, 2025
0af6106
PvtQuasiDynamicCollector:
jelgerjansen Aug 19, 2025
6ea16a5
Add Simulate and plot commands to Examples
jelgerjansen Aug 19, 2025
711bbdb
Validation.PVT_UI:
jelgerjansen Aug 19, 2025
51df0bf
Remove PVT_UI.BaseClasses
jelgerjansen Aug 19, 2025
00b4a7d
Fix typo in name weatherData file
jelgerjansen Aug 19, 2025
4ae004e
Validation.PVT_UN:
jelgerjansen Aug 19, 2025
d2bf3b4
Merge branch 'master' into issue1436_addPvtModel
jelgerjansen Aug 19, 2025
d62f1e0
test: add reference result files for unit tests
LoneMeertens Aug 20, 2025
ea2102b
Fix typo in .gitattributes
jelgerjansen Aug 20, 2025
3a0f096
Temporarily set PVT collectors as first test and check existance of file
jelgerjansen Aug 20, 2025
d847161
Fix typo
jelgerjansen Aug 20, 2025
6737399
Set correct file structure
jelgerjansen Aug 20, 2025
a692990
Remove file existence test
jelgerjansen Aug 20, 2025
f413de2
Temporary rename to allow case-only change
jelgerjansen Aug 20, 2025
619217f
Rename PvtCollectors to PVTCollectors
jelgerjansen Aug 20, 2025
43fea2b
Only test PVTCollectors.(BaseClasses.)Examples
jelgerjansen Aug 20, 2025
7cfd6fb
Rename PvtCollectors to temporary folder
jelgerjansen Aug 20, 2025
73ff3a9
Rename folder to PVTCollectors
jelgerjansen Aug 20, 2025
8691a00
Update capitals in gitattributes
jelgerjansen Aug 20, 2025
efdc841
Set PVT dynamics to FixedInitial to avoid warning in unit tests
jelgerjansen Aug 20, 2025
72f22ce
Update github-actions.yml file
jelgerjansen Aug 20, 2025
3786abc
Update capital letters in Validation models
jelgerjansen Aug 20, 2025
831c493
Remove obsolete LFS-tracked file
jelgerjansen Aug 20, 2025
b28f4f2
Only test Examples and BaseClasses.Examples
jelgerjansen Aug 20, 2025
ab570aa
Set github actions back alphabetically
jelgerjansen Aug 20, 2025
bbf5183
Only test for Validation UN models
jelgerjansen Aug 20, 2025
814a31b
Fix typo
jelgerjansen Aug 20, 2025
872edb9
Only test PVTCollectors.Examples and PVTCollectors.BaseClasses.Examples
jelgerjansen Aug 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
# Set default behaviour, in case users don't have core.autocrlf set.
* text=auto

# Explicitly declare text files we want to always be normalized and converted
# to native line endings on checkout.
*.mo text
*.mos text
*.mop text
*.py text
*.txt text

# Declare files that will always have CRLF line endings on checkout.
#*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
IDEAS/Resources/Data/Fluid/PVTCollectors/Validation/PVT_UN/PVT_UN_measurements.txt filter=lfs diff=lfs merge=lfs -text
3 changes: 3 additions & 0 deletions .github/workflows/github-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ jobs:
run: make test-dymola PACKAGE=\"IDEAS.Fluid.MixingVolumes\" INTERACTIVE=false
- name: Test IDEAS.Fluid.Movers
run: make test-dymola PACKAGE=\"IDEAS.Fluid.Movers\" INTERACTIVE=false
- name: Test IDEAS.Fluid.PVTCollectors
run: make test-dymola PACKAGE=\"IDEAS.Fluid.PVTCollectors.BaseClasses.Examples\" INTERACTIVE=false
&& make test-dymola PACKAGE=\"IDEAS.Fluid.PVTCollectors.Examples\" INTERACTIVE=false
- name: Test IDEAS.Fluid.Sensors
run: make test-dymola PACKAGE=\"IDEAS.Fluid.Sensors\" INTERACTIVE=false
- name: Test IDEAS.Fluid.SolarCollectors
Expand Down
210 changes: 210 additions & 0 deletions IDEAS/Fluid/PVTCollectors/BaseClasses/ElectricalPVT.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
within IDEAS.Fluid.PVTCollectors.BaseClasses;
model ElectricalPVT
"Calculate the electrical power output of a PVT using the PVWatts v5 approach"
extends Modelica.Blocks.Icons.Block;
extends IDEAS.Fluid.SolarCollectors.BaseClasses.PartialParameters;

// Parameters
parameter Modelica.Units.SI.Irradiance HGloHorNom = 1000 "global horizontal irradiances";
parameter Modelica.Units.SI.Efficiency eleLosFac = 0.09 "PV loss factor";
parameter Modelica.Units.SI.Temperature TpvtRef = 298.15 "Reference cell temperature";
parameter Real gamma "Temperature coefficient [1/K]";
parameter Modelica.Units.SI.Power P_nominal "Nominal PV power";
parameter Modelica.Units.SI.Area A "PV area";
parameter Modelica.Units.SI.Efficiency eta0 "Zero-loss efficiency";
parameter Modelica.Units.SI.DimensionlessRatio tauAlpEff "Effective transmittance–absorptance product";
parameter Modelica.Units.SI.CoefficientOfHeatTransfer c1 "First-order heat loss coefficient";
parameter Modelica.Units.SI.Efficiency etaEl "Electrical efficiency";

parameter Modelica.Units.SI.CoefficientOfHeatTransfer UAbsFluid =
((tauAlpEff - etaEl) * (c1 + abs(gamma)*HGloHorNom)) / ((tauAlpEff - etaEl) - eta0)
"Heat transfer coefficient between the fluid and the PV cells, calculated from datasheet parameters";

// Inputs
Modelica.Blocks.Interfaces.RealInput Tflu[nSeg]
"Fluid temperatures per segment [K]"
annotation (Placement(transformation(extent={{-140,40},{-100,80}}),
iconTransformation(extent={{-140,40},{-100,80}})));
Modelica.Blocks.Interfaces.RealInput Qth[nSeg]
"Thermal power density per segment [W/m2]"
annotation (Placement(transformation(extent={{-140,-20},{-100,20}}),
iconTransformation(extent={{-140,-20},{-100,20}})));
Modelica.Blocks.Interfaces.RealInput HGloTil
"Global tilted irradiance [W/m2]"
annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),
iconTransformation(extent={{-140,-80},{-100,-40}})));

// Outputs (user-facing)
Modelica.Blocks.Interfaces.RealOutput Pel
"Total electrical power output [W]"
annotation (Placement(transformation(extent={{100,40},{140,80}}),
iconTransformation(extent={{100,40},{140,80}})));
Modelica.Blocks.Interfaces.RealOutput TavgCel
"Average PV module temperature [K]"
annotation (Placement(transformation(extent={{100,-20},{140,20}}),
iconTransformation(extent={{100,-20},{140,20}})));
Modelica.Blocks.Interfaces.RealOutput TavgFlu
"Average fluid temperature [K]"
annotation (Placement(transformation(extent={{100,-80},{140,-40}}),
iconTransformation(extent={{100,-80},{140,-40}})));

protected
// internal variables (not exposed as connectors)
Modelica.Units.SI.Temperature temMod "Average cell/module temperature ";
Modelica.Units.SI.Temperature temMea "Average fluid temperature";
Modelica.Units.SI.Temperature TCel[nSeg];
Modelica.Units.SI.Temperature TDif[nSeg];
Modelica.Units.SI.Power Pel_int[nSeg];

equation
for i in 1:nSeg loop
TCel[i] = Tflu[i] +Qth[i] / UAbsFluid;
TDif[i] = TCel[i] - TpvtRef;
Pel_int[i] = (A_c/nSeg) * (P_nominal/A) * (HGloTil/HGloHorNom) *
(1 + gamma * TDif[i]) * (1 - eleLosFac);
end for;

Pel = sum(Pel_int);
temMod = sum(TCel) / nSeg;
temMea = sum(Tflu) / nSeg;
TavgCel = temMod;
TavgFlu = temMea;

annotation (
defaultComponentName="eleGen",
Documentation(info="<html>
<p>
This component computes the electrical power output of a photovoltaic-thermal (PVT) collector using the PVWatts v5 methodology (Dobos, 2014), adapted for PVT systems.
It is part of a validated, open-source Modelica implementation that relies solely on manufacturer datasheet parameters, as described in Meertens et al. (2025).
</p>
<p>
The model calculates the electrical output for each segment <i>i ∈ {1, ..., n<sub>seg</sub>}</i> as:
</p>
<p align=\"center\" style=\"font-style:italic;\">
P<sub>el,i</sub> = (A<sub>c</sub> / n<sub>seg</sub>) &#183 (P<sub>nom</sub> / A)
&#183 (G<sub>tilt</sub> / G<sub>nom</sub>) &#183 (1 + &gamma; &#183 &Delta;T<sub>i</sub>) &#183 (1 - eleLosFac)
</p>
<p>
where:
<ul>
<li>
<i>&Delta;T<sub>i</sub> = T<sub>cell,i</sub> - T<sub>ref</sub></i>: temperature difference between PV cell and reference temperature
</li>
<li>
<i>P<sub>nom</sub></i>: nominal PV power under STC [W]
</li>
<li>
<i>A</i>: gross collector area [m²]
</li>
<li>
<i>A<sub>c</sub></i>: effective collector area (equal to A if not otherwise specified)
</li>
<li>
<i>G<sub>tilt</sub></i>: global irradiance on the tilted collector plane [W/m²]
</li>
<li>
<i>G<sub>nom</sub></i>: nominal irradiance (typically 1000 W/m²)
</li>
<li>
<i>&gamma;</i>: temperature coefficient of power [%/K]
</li>
<li>
<i>eleLosFac</i>: lumped system loss factor
</li>
</ul>
</p>
<p>
The PV cell temperature is estimated from the fluid temperature and thermal power density using:
</p>
<p align=\"center\" style=\"font-style:italic;\">
T<sub>cell,i</sub> = T<sub>m,i</sub> + q<sub>th,i</sub> / U<sub>AbsFluid</sub>
</p>
<p>
The internal heat transfer coefficient <i>UAbsFluid</i> is approximately calculated from datasheet parameters.
For the mathematical description and visualisation, see <a href='modelica://IDEAS.Fluid.PVTCollectors.UsersGuide'>IDEAS.Fluid.PVTCollectors.UsersGuide</a>.
</p>

<h5>Electrical performance and losses</h5>
<p>
The electrical submodel includes an overall system loss factor <code>eleLosFac</code>.
PVWatts reports a total electrical power loss of 14%, resulting from the following mechanisms:
</p>
<table border=\"1\" cellpadding=\"4\">
<tr>
<th style=\"text-align:left;\">Electrical power loss mechanism</th>
<th style=\"text-align:center;\">Default value</th>
</tr>
<tr>
<td style=\"text-align:left;\">Soiling</td>
<td style=\"text-align:center;\">2 %</td>
</tr>
<tr>
<td style=\"text-align:left;\">Shading</td>
<td style=\"text-align:center;\">3 %</td>
</tr>
<tr>
<td style=\"text-align:left;\">Mismatch</td>
<td style=\"text-align:center;\">2 %</td>
</tr>
<tr>
<td style=\"text-align:left;\">Wiring</td>
<td style=\"text-align:center;\">2 %</td>
</tr>
<tr>
<td style=\"text-align:left;\">Connections</td>
<td style=\"text-align:center;\">0.5 %</td>
</tr>
<tr>
<td style=\"text-align:left;\">Light‑induced degradation</td>
<td style=\"text-align:center;\">1.5 %</td>
</tr>
<tr>
<td style=\"text-align:left;\">Nameplate rating</td>
<td style=\"text-align:center;\">1 %</td>
</tr>
<tr>
<td style=\"text-align:left;\">Availability</td>
<td style=\"text-align:center;\">3 %</td>
</tr>
<tr>
<th style=\"text-align:left;\">Total</th>
<th style=\"text-align:center;\">14 %</th>
</tr>
</table>
<p>
For well-maintained, unshaded modules, experimental validation (Meertens et al., 2025)
found that using <code>eleLosFac = 9%</code> gives excellent agreement with
measured electrical output. For PVT collectors with a high positive tolerance on the
electrical output, this system loss factor can even be lower.
Users may adjust <code>eleLosFac</code> to account for site-specific soiling or shading effects.
</p>

<h4>Implementation Notes</h4>
<p>
This model is designed for (unglazed) PVT collectors and supports discretization into multiple segments to capture temperature gradients along the flow path.
It is compatible with the thermal model based on ISO 9806:2013 and is suitable for dynamic simulations where irradiance and fluid temperatures vary over time.
</p>

<h4>References</h4>
<ul>
<li>
Dobos, A. P. (2014). <i><a href='https://docs.nrel.gov/docs/fy14osti/62641.pdf'>PVWatts Version 5 Manual</a></i>. NREL/TP-6A20-62641
</li>
<li>
Meertens, L., Jansen, J., Helsen, L. (2025).
<i>Development and Experimental Validation of an Unglazed Photovoltaic-Thermal Collector Modelica Model that only needs Datasheet Parameters</i>,
submitted to the 16th International Modelica & FMI Conference, Lucerne, Switzerland, Sep 8–10, 2025.
</li>
</ul>
</html>",
revisions="<html>
<ul>
<li>
July 7, 2025, by Lone Meertens:<br/>
First implementation PVT model.
This is for <a href=\"https://github.com/open-ideas/IDEAS/issues/1436\">#1436</a>.
</li>
</ul>
</html>"));

end ElectricalPVT;
129 changes: 129 additions & 0 deletions IDEAS/Fluid/PVTCollectors/BaseClasses/Examples/ISO9806HeatLoss.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
within IDEAS.Fluid.PVTCollectors.BaseClasses.Examples;
model ISO9806HeatLoss
"Example showing the use of ISO9806QuasiDynamicHeatLoss"
extends Modelica.Icons.Example;
replaceable package Medium = IDEAS.Media.Water "Medium in the system";

parameter IDEAS.Fluid.PVTCollectors.Data.GenericQuasiDynamic per=
IDEAS.Fluid.PVTCollectors.Data.Uncovered.UI_Validation()
"Performance data" annotation (choicesAllMatching=true);
Modelica.Blocks.Sources.Sine T1(
amplitude=15,
f=0.1,
offset=273.15 + 10) "Temperature of the first segment"
annotation (Placement(transformation(extent={{-92,-22},{-72,-2}})));
Modelica.Blocks.Sources.Sine T2(
f=0.1,
amplitude=15,
offset=273.15 + 15) "Temperature of the second segment"
annotation (Placement(transformation(extent={{-68,-36},{-48,-16}})));
Modelica.Blocks.Sources.Sine T3(
f=0.1,
amplitude=15,
offset=273.15 + 20) "Temperature of the third segment"
annotation (Placement(transformation(extent={{-90,-52},{-70,-32}})));
ISO9806QuasiDynamicHeatLoss heaLosQuaDyn(
nSeg=3,
redeclare package Medium = Medium,
c1=per.c1,
c2=per.c2,
c3=per.c3,
c4=per.c4,
c6=per.c6,
A_c=per.A) annotation (Placement(transformation(extent={{18,-2},{38,18}})));

IDEAS.Fluid.SolarCollectors.BaseClasses.EN12975HeatLoss heaLosSteSta(
A_c=per.A,
nSeg=3,
redeclare package Medium = Medium,
a1=per.c1,
a2=per.c2)
annotation (Placement(transformation(extent={{18,-68},{38,-48}})));
Modelica.Blocks.Sources.Sine TEnv(
f=0.01,
offset=273.15 + 10,
amplitude=15) "Temperature of the surrounding environment"
annotation (Placement(transformation(extent={{-80,24},{-60,44}})));
Modelica.Blocks.Sources.Sine winSpePla(
f=1/(24*3600),
phase=0,
offset=3,
amplitude=5) "wind speed in the collector plane"
annotation (Placement(transformation(extent={{60,58},{80,78}})));
Modelica.Blocks.Sources.RealExpression HHorIR(y=400) "long wave irradiance"
annotation (Placement(transformation(extent={{-1.5,58},{17.5,74}})));
Modelica.Blocks.Interfaces.RealOutput QLos_flow_QuaDyn[3]
"Heat loss rate at current conditions"
annotation (Placement(transformation(extent={{60,-2},{80,18}})));
Modelica.Blocks.Interfaces.RealOutput QLos_flow_SteSta[3]
"Heat loss rate at current conditions"
annotation (Placement(transformation(extent={{62,-68},{82,-48}})));
Modelica.Blocks.Sources.RealExpression HGloTil(y=800) "Global irradiance on the tilted surface"
annotation (Placement(transformation(extent={{26.5,58},{45.5,74}})));
equation
connect(winSpePla.y, heaLosQuaDyn.winSpePla);
connect(HHorIR.y, heaLosQuaDyn.HHorIR);
connect(HGloTil.y, heaLosQuaDyn.HGloTil);
connect(T3.y, heaLosQuaDyn.TFlu[3]) annotation (Line(points={{-69,-42},{-44,-42},
{-44,2},{-20,2},{-20,2.66667},{16,2.66667}},
color={0,0,127}));
connect(T2.y, heaLosQuaDyn.TFlu[2]) annotation (Line(points={{-47,-26},{-44,-26},
{-44,2},{16,2}}, color={0,0,127}));
connect(TEnv.y, heaLosQuaDyn.TEnv) annotation (Line(points={{-59,34},{8,34},{8,
14},{16,14}}, color={0,0,127}));
connect(heaLosSteSta.TEnv, TEnv.y) annotation (Line(points={{16,-52},{8,-52},{
8,34},{-59,34}}, color={0,0,127}));
connect(T1.y, heaLosSteSta.TFlu[1]) annotation (Line(points={{-71,-12},{-68,
-12},{-68,2},{-44,2},{-44,-64.6667},{16,-64.6667}},
color={0,0,127}));
connect(T2.y, heaLosSteSta.TFlu[2]) annotation (Line(points={{-47,-26},{-44,-26},
{-44,-64},{16,-64}}, color={0,0,127}));
connect(T3.y, heaLosSteSta.TFlu[3]) annotation (Line(points={{-69,-42},{-44,
-42},{-44,-63.3333},{16,-63.3333}},
color={0,0,127}));
connect(T1.y, heaLosQuaDyn.TFlu[1]) annotation (Line(points={{-71,-12},{-68,-12},
{-68,1.33333},{16,1.33333}}, color={0,0,127}));
connect(heaLosQuaDyn.QLos_flow, QLos_flow_QuaDyn)
annotation (Line(points={{39,8},{70,8}}, color={0,0,127}));
connect(heaLosSteSta.QLos_flow, QLos_flow_SteSta)
annotation (Line(points={{39,-58},{72,-58}}, color={0,0,127}));
annotation (
Documentation(info="<html>
<p>
This example demonstrates the implementation of
<a href=\"modelica://IDEAS.Fluid.PVTCollectors.BaseClasses.ISO9806QuasiDynamicHeatLoss\">
IDEAS.Fluid.PVTCollectors.BaseClasses.ISO9806QuasiDynamicHeatLoss</a>,
which calculates the quasi-dynamic heat loss of a PVT or solar thermal collector
according to the ISO 9806:2013 standard.
</p>
<p>
In addition to showcasing the ISO 9806-based model, this example also compares its behavior
to the steady-state heat loss model
<a href=\"modelica://IDEAS.Fluid.SolarCollectors.BaseClasses.EN12975HeatLoss\">
IDEAS.Fluid.SolarCollectors.BaseClasses.EN12975HeatLoss</a>,
which is based on the now-superseded EN 12975 standard.
</p>
<p>
This comparison highlights the differences between the steady-state and quasi-dynamic
approaches, particularly in how they account for environmental factors such as wind speed
and long-wave irradiance.
</p>
</html>",
revisions="<html>
<ul>
<li>
July 2, 2025, by Lone Meertens:<br/>
First implementation of ISO 9806 quasi-dynamic heat loss example.
This is for <a href=\"https://github.com/open-ideas/IDEAS/issues/1436\">1436</a>.
</li>
</ul>
</html>"),
__Dymola_Commands(file="modelica://IDEAS/Resources/Scripts/Dymola/Fluid/PVTCollectors/BaseClasses/Examples/ISO9806HeatLoss.mos"
"Simulate and plot"),
experiment(
StartTime=0,
StopTime=86400,
Interval=60,
Tolerance=1e-06,
__Dymola_Algorithm="dassl"));
end ISO9806HeatLoss;
13 changes: 13 additions & 0 deletions IDEAS/Fluid/PVTCollectors/BaseClasses/Examples/package.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
within IDEAS.Fluid.PVTCollectors.BaseClasses;
package Examples
"Collection of models that illustrate model use and test models"
extends Modelica.Icons.ExamplesPackage;

annotation (preferredView="info", Documentation(info="<html>
<p>
This package contains examples for the use of models that can be found in
<a href=\"modelica://IDEAS.Fluid.PVTCollectors.BaseClasses\">
IDEAS.Fluid.PvtCollectors.BaseClasses.</a>
</p>
</html>"));
end Examples;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ISO9806HeatLoss
Loading