rwth-ebc / aixlib Goto Github PK
View Code? Open in Web Editor NEWA Modelica model library for building performance simulations
Home Page: https://ebc-tools.eonerc.rwth-aachen.de/aixlib
A Modelica model library for building performance simulations
Home Page: https://ebc-tools.eonerc.rwth-aachen.de/aixlib
BuildingsPy can call HTML tidy and check the HTML documentation.
The following Python script will print a couple of warnings and errors that should be fixed.
import os
import buildingspy.development.validator as v
moLibsDir = "C:\Users\mthorade\Documents\Dymola"
moLib = "AixLib\Aixlib"
moLibPath = os.path.join(moLibsDir, moLib)
print(moLibPath)
val = v.Validator()
errStr = val.validateHTMLInPackage(moLibPath)
print(errStr)
Remember to change the path.
Before running the script you need to pip install -U buildingspy
.
You might also need to pip install -U pytidylib
and get tidylib.dll
from http://www.html-tidy.org/
Wouldn't it be absolutely wonderful if this awesome building models would be validated according to some standard, let's say ASHRAE 140?
PRemmen, are you feeling up to it?
Most Rooms in the Building.HighOrder Library of AixLib offer a simple radio button to select the Thermal Mass Class. Unlike the whole GUI, the labels assigned (S, M, L) are abbreviations for the German "Schwer", "Mittel" and "Leicht". This is a possible source of confusion, as it could be misunderstood as "Small", "Medium" and "Large".
It suggest renaming the abbreviations to:
S --> high
M --> medium
L --> low
The Test Cases
are still not sufficient. Here, some further work needs to be done justify the deviations or improve the models
Altitude has to be set to 1609m in RadOnTiltedSurf_Perez
Dear AixLib,
I am really confused about this. I want to use the simulated airload Temperature ( reducedOrderModel.airload.T ) of "AixLib.Building.LowOrder.Examples.LOEM" and use it to get an estimate of Cooling required using the equation ( Q=m.c.dT) where dT=AT-ST
AT=Airload Temperatue
ST=Set Temperature.
How do i access AT, the simulated airload temperatue?
Warning while loading the file .\AixLib\AixLib\Utilities\HeatTransfer.mo.
The Modelica class of AixLib.Utilities.HeatTransfer.HeatConv_inside (class) and its base class Modelica.Thermal.HeatTransfer.Interfaces.Element1D (model) are not compatible.
HeatConv_inside should be of type model, too.
Both boundaries are set to atmospheric pressure, forward side has h = 1e6. I think this might be an error and instead the forward side should have a slightly higher pressure than the return side boundary?
parameter eowo is not specified for use with record
Since the MultiZone model is not part of AixLib yet, this issue is not urgent for now. Should be fixed when integrating MultiZone model into AixLib
Add style guide to wiki for contributions
Models of ASHRAE 140 Validation should be added (LOM and HOM)
Start a branch for building application examples for residential and non residential buildings
Due to parameterization, we do not match the reference values within +/-0.1K. This can be improved.
.. has to be adapted to the AixLib paths
The library should have unit tests for all models as a means of quality control. This should use buildingsPy unit testing routines
Several models also used in AixLib have been improved in another projects. The AixLib models should be updated. All further development of these models shall hence on be done only in AixLib.
Reported via eMail:
Upon Opening the library in OpenModelica, the following error message is given: “The file was not encoded in UTF-8"
In our acknowledgement section, we should reference our public financial support
Implement improved LOM as shown in http://www.ibpsa.org/proceedings/bausimPapers/2014/p1192_final.pdf
E.g. in EqAirTemp.mo line 40:
if sum(wf_wall) + sum(wf_win) + wf_ground <> 0.00001 == false then
This should be changed to:
if not sum(wf_wall) + sum(wf_win) + wf_ground <> 0.00001 then
@PRemmen can you please check whether that gives the same results?
Your AixLib.package.mo
has an annotation which libraries it uses:
annotation(uses(Modelica(version = "3.2.1"), HVAC(version="2.2")));
But HVAC is also used for AixLib.HVAC
(and for the directory that contains that sub-package), resulting in an error message when opening AixLib in Dymola. Maybe the library should be renamed LibHVAC
or something more meaningful and unique.
Maybe you want, in addition, completely remove the uses HVAC annotation, because most users of AixLib do not have access to that library.
The parameters are defined on the floor level in AixLib.Building.HighOrder.House.OFD_MiddleInnerLoadWall.BuildingEnvelope but are not referenced further down in the rooms, so they are not active.
The model should allow for doors both for outside and inside walls. However the existence of the door component is conditioned also by the wall being an inside wall. Additionally the U-value of the door should be adapted for an inside wall, as just half a wall and hence half a door is considered.
In AixLib.HVAC.Interfaces.TwoPort, the differential pressure is calculated as variable p, which is described as "Pressure drop between the two ports (= port_a.p - port_b.p)". Renaming to dp would be more coherent with standard conventions and thus less irritating.
Implement a test to compare models as-is with the same models built on Annex 60 base classes using Modelica Fluid
@tbeu has applied the misspell_fixer from
https://github.com/vlajos/misspell_fixer
to various Modelica libraries.
This spell fixing script should also be applied to AixLib.
Will send a Pull Request later
I have to objections:
Add icon for AixLib
We got some remarks mainly regarding LOM from the Annex 60 group and should consider them.
Mainly, the following items should be done:
The icons need to be revised, the colors might be a bit shiny.
A branch to develop new HVAC components
Your package.order is currently broken.
Dymola will silently fix this when opening the library,
OpenModelica will complain, and it will tell you what is broken where.
So, opening the library in OpenModelica from time to time (e.g. after running the integration scripts)
is a good test to see whether the package.order is correct.
Had a quick look at the radiator model - will fix the typos in the commented code.
The LowOrderExample does not work and does not include a proper simulation setup. This should be corrected
When trying to simulate the high order building model's examples RoomGFOw2 and Appartment_VoWo, simulation fails because the static pipe model divides by zero with lambda2 = 0.
This seems to be a problem with the pipe rather than with the high order examples. For a quick solution, I suggest to replace the static pipe in the examples by the pipe model from MSL.
For the future development an important question is whether to revise the models Pipe and StaticPipe or replace them systematically by other pipe models (from Annex 60 or MSL, for example).
What do you guys think @mlauster, @PRemmen? Others' input is also very welcome of course!
If there are any objections please comment, otherwise we should save each model to a single file as most other libraries do.
Due to changes in the reducedOrderModel the example test cases are not working
The diagram uses
Rectangle[
extent]=...
This is not allowed according to the Modelica Specification and prevents the library from opening with OpenModelica 1.9.1 beta 4.
(see https://trac.openmodelica.org/OpenModelica/ticket/2663)
Already-developed models for Hydraulic separator and Mixing valve have been adjusted to the new format of AixLib.
Dear AixLib Team,
I want to implement a HVAC system from another library inside one of the AixLib
LowOrderModels. The Chiller model and all the components have flow ports(fluids) involved. Is there a way in which i can implement this by modifying the LowerOrderModel? Something like below but instead of getting the temperature from the temperature sensor.. include the chiller(through the flow ports) inside the building.
I would really appreciate the help and any ideas regarding this.
Q_flow_max<< in >>boilerEfficiency<< should be passed from the boiler parameter. At the moment it is set to 20000
-translation into English and proper naming
-update CombiTimeTable for inner loads in test cases 5,8,9,10,12 (split the persons share into peopleConvective and peopleRadiative)
The default value of the boolean parameter is true. It should be false in order to allow for the changes in model only when explicitly needed. For example AixLib.Building.HighOrder.House.OFD_MiddleInnerLoadWall.BuildingAndEnergySystem.OFD_IdealHeaters has by default the parameter set to true, and in this case it is incorrect.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.