This version (1.0) of the Heartbreak application lets control algorithm developers test their algorithms against a simple three-node thermal model: one outdoor node (whose temperature will be given by a schedule), a wall node and an indoor air node. The three nodes are connected to each others by equivalent conductances, and the wall and indoor air node have a defined thermal capacity.
Furthermore the outdoor irradiance is also given by a schedule, and it is assumed that the solar gains on the wall and the indoor air nodes are proportional to the horizontal outdoor irradiance.
You're gonna need to have Maven installed if you want to (re)compile this application. Download it and install it. This application has been tested with Maven 2.0.9.
If you use this application to test the Adhoco control algorithms, you will also need to manually install a couple of artifacts to your local repository. From the command line, run the following:
$ mvn install:install-file -DgroupId=com.adhoco -DartifactId=controller -Dversion=1.1 -Dpackaging=jar -Dfile=/path/to/aControl_clear.jar $ mvn install:install-file -DgroupId=com.adhoco -DartifactId=engine -Dversion=1.1 -Dpackaging=jar -Dfile=/path/to/aEngine_clear.jar $ mvn install:install-file -DgroupId=com.adhoco -DartifactId=zbport -Dversion=1.1 -Dpackaging=jar -Dfile=/path/to/ZBport_clear.jar $ mvn install:install-file -DgroupId=com.adhoco -DartifactId=logging -Dversion=1.1 -Dpackaging=jar -Dfile=/path/to/logging.jar
You should now be able to build the application. From the command line, run this:
$ mvn clean install
This will delete the previous build, compile everything, run the tests (pass a -DskipTests parameter if you wish to skip the unit tests), package the application and prepare an executable. When the build is complete you can go to the target/appassembler directory. This directory will have three subdirectories. bin holds the executable script that will run the application. etc holds the heartbreak.properties file, which defines all user-definable parameters. lib holds all the application's dependencies.
If you want to run the application against the Eccobuild data you must first import that data into a database.
The src/main/bash directory has two shell scripts for importing the Eccobuild data. They assume you have a local MySQL database to which you have administrative rights without password.
To import the illuminance data, go to the directory holding the *.ill data files. From there, run the following:
$ path/to/importeccobuild.sh file1.ill file2.ill ... (or simply *.ill)
This will create a coolcontrol database with one table per city/orientation/blinds combination.
To import the climate data, run the following:
$ path/to/importclimate.sh <table_name> <file_name>
where table_name is an arbitrary table name that must then be specified in the heartbreak.properties file.
You now have everything you need to run the application. Review the etc/heartbreak.properties file to make sure all parameters are what you want, and simply call:
$ bin/heartbreak
The application will show on standard output the result of calling the HeatingBreaker.testBasicHeating() method. See that class's source code for details.