Automatic optimization/calibration technology - applied to EnergyPlus building energy models for matching measured data.
Directories:
- demo - quickest way to see Autotune run (uses 15-minute data)
- installer - install scripts to setup Autotune web-service
- frontend - webpage for defining residential or medium office building and starting Autotune
- backend - Autotune server that listens and processes new jobs
- service - web service for accepting new job requests
- example - web service client for calling the web service (with example data files)
Building energy models (EnergyPlus, energy audit tools, etc.) of existing buildings are unreliable unless calibrated so they correlate well with actual energy usage. Calibrating models is costly because it is currently an “art”, requiring significant manual effort by an experienced, skilled professional. Manual tuning is also imperfect, non-repeatable, and non-transferable.
Deploy a generalized, automated building energy model tuning methodology that enables models to reproduce measured data by selecting best-match input parameters in a systematic, automated, and repeatable fashion. In application, this aims to significantly reduce the costs to develop building energy models, enhance the cost-effectiveness of retrofit projects, and expand the market to smaller buildings. It also improves the state of the art in energy savings measurement and verification (M&V) for performance contracting, fault-detection and diagnostics (FDD), building automation, and related purposes.
The related research addresses: multi-objective optimization, web services for easy integration with existing business processes, field-deployable systems, sensitivity analysis, quality assurance and control for missing or corrupt data, big data mining, a suite of machine learning algorithms to generate calibration functions, optimal calibration algorithm selection using high performance computing resources, quantified assessments of trade-offs between tuning accuracy and amount of data available, calibration using monthly data (12 points/year), demonstrations using research houses with 15-minute sensor channels (700,000 data points per year), and implementation of a testing methodology for quantifying accuracy of the final calibrated model to the real building. For more information on the research behind Autotune, please see http://bit.ly/autotune_papers.
This illustrates the basic Autotune calibration functionality in the quickest way possible and with a minimum amount of user effort. This demonstrates calibration of 303 parameters running only 16 EnergyPlus simulations, so a user shouldn't expect much of an improvement in error for this short demo.
- Windows operating system - desktops, laptops, netbooks
- [EnergyPlus 7.0](http://apps1.eere.energy.gov/buildings/energyplus/energyPlus_download.cfm?previous Legacy EnergyPlus 7.0)
- [Python 2.7](https://www.python.org/downloads/release/python-2710/ Python 2.7 Downloads)
- Note - When selecting options, enable "Add python.exe to Path" at the bottom of the list
- Install inspyred
- Open a command prompt (Start->cmd->enter)
pip install inspyred
- Run Autotune
- Double-click demo\autotune.bat
- This example will show results after each of 3 generations and completes in ~5 minutes.
This larger demo illustrates the full functionality of having Autotune running on a server as a web-service. A virtual machine of the setup is provided for getting up and running fairly quickly.
A fully functioning Ubuntu Linux Virtual Machine has been created with all dependencies to provide a quick demonstration of Autotune. Just VirtualBox and Vagrant are required to download and launch this image.
- Install VirtualBox and Vagrant
- Enable Virtualization Technology (VT-x) in BIOS
- All passwords for this system (including screen timeout) are
autotune
- Configure Vagrant
- On a command line terminal, in a new directory of your choice, run
vagrant init sanyalj/ornl-autotune
- this will create a Vagrantfile. - Edit the Vagrantfile to add the following snippet within the
Vagrant.configure(2) do |config|
...end
section:# Config username config.ssh.username = "autotune" # start GUI config.vm.provider "virtualbox" do |v| v.gui = true end
vagrant up --provider virtualbox
- this will download the VM from Atlas (the new version of VagrantCloud) and then power up the instance with a Linux (Ubuntu) GUI.- If loading the image in the window is not responsive, open VirtualBox, right-click the "Autotune_default" image, select settings, and set memory and processor in the green area to optimize for your system's capabilities.
- On a command line terminal, in a new directory of your choice, run
We have observed, on one occassion, that the VM created in VirtualBox after the vagrant progess was marked as a 32-bit version of Ubuntu. This resulted in a blank GUI when running vagrant up
. Changing it to 64-bit resolved the problem.
- Standalone
- Double-click
Autotune_standalone_demo.sh
- this runs the python script using example files
- Double-click
- Web Service Client
- Double-click
Autotune_webservice_client.sh
- the Autotune web service is loaded at startup, this will run a webservice client that uses the Autotune web service using example files
- Double-click
- Website
- Double-click
Autotune_webpage.html
- this allows a user to interact with a web interface to define a building, location, measured data, and submit the calibration to the Autotune web service.
- Double-click
Note: Options #2 and #3 will provide you a tracking number. Please use this tracking number in the VirtualBox's browser (which will open to the Autotune homepage) to check the job status and if complete, download the resulting calibrated input files.
These instructions are used to setup a machine so that Autotune can be invoked through the provided website and/or web service.
Requirements:
- Windows operating system - we recommend installing on a centralized web server for widespread use as a web service
- [EnergyPlus 7.0](http://apps1.eere.energy.gov/buildings/energyplus/energyPlus_download.cfm?previous Legacy EnergyPlus 7.0)
- PHP 5.x
- Apache PHP
- [IIS PHP] (https://www.youtube.com/watch?v=3Q27FJYmpwQ "Example PHP install video")
- [Python 2.7](https://www.python.org/downloads/release/python-2710/ Python 2.7 Downloads)
- Python suds
- Inspyred
- Open a command prompt (Start->cmd->enter)
pip install inspyred
- MySQL
Linux (Ubuntu example here), PHP 5.x, MySQL, Python 2.7, Python suds, Energyplus 7.0 in default install location
sudo apt-get install git
sudo apt-get install lamp-server^
(it will prompt for mysql password)sudo apt-get install php-soap
sudo apt-get install python-mysqldb
sudo apt-get install python-pip
sudo apt-get install python-numpy
sudo pip install inspyred
- Install EnergyPlus, use default locations
sudo ./SetEPlusV700036-lin.sh
Use the password you obtained for this version of EnergyPlus
- Extract additional weather files to WeatherData directory of EnergyPlus
- Download WeatherData.tar.gz
tar zxvf WeatherData.tar.gz
sudo mv WeatherData/* /usr/local/EnergyPlus-7-0-0/WeatherData/
- In
/etc/mysql/my.cnf
max_allowed_packet = 64M
- Underneath the [mysqld] section:
- add
lower_case_table_names = 1
- Restart MySQL
sudo /etc/init.d/mysql restart
- In
php.ini
max_execution_time = 180
max_input_time = 180
post_max_size = 64M
upload_max_filesize = 64M
- Clone/export the git repo
- Modify the
installer/install-settings.ini
to supply appropriate values - Run
sudo python install.py
- In the location of the autotune on the web-server:
sudo chmod 777 backend
sudo chmod 777 frontend
sudo chmod 777 service
sudo chmod 777 backend/autotune.log
mysql -u root -p
create database autotune;
create user 'autotune'@'%' identified by 'password';
grant all on autotune.* to 'autotune'@'%';
mysql -u root -p autotune < backend/autotune.sql
- To run the example in
service/example
python pyClient.py
- Web frontend:
- Go to:
http://localhost/autotune/frontend/home.html