constrain

Control Strainer (ConStrain) is a data-driven knowledge-integrated framework that automatically verifies that building system controls function as intended.

https://github.com/pnnl/constrain

Science Score: 62.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    5 of 9 committers (55.6%) from academic institutions
  • Institutional organization owner
    Organization pnnl has institutional domain (www.pnnl.gov)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.0%) to scientific vocabulary

Keywords

bms building commissioning data hvac simulation verification
Last synced: 6 months ago · JSON representation ·

Repository

Control Strainer (ConStrain) is a data-driven knowledge-integrated framework that automatically verifies that building system controls function as intended.

Basic Info
Statistics
  • Stars: 9
  • Watchers: 8
  • Forks: 2
  • Open Issues: 28
  • Releases: 6
Topics
bms building commissioning data hvac simulation verification
Created almost 3 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

Control Strainer (ConStrain): A Data-driven Control Verification Framework (formally known as ANIMATE)

Unit tests status: Tests

Background and Motivation

Advances in building control have shown significant potential for improving building energy performance and decarbonization. Studies show that designs utilizing optimized controls that are properly tuned could cut commercial building energy consumption by approximately 29% - equivalent to 4-5 Quads, or 4-5% of the energy consumed in the United States. Driven by the significant control-related energy-saving potential, commercial building energy codes (such as ASHRAE 90.1) have progressed with many control-related addenda. For example, from the publication of 90.1-2004 to 90.1-2016 (four code cycles), 30% of the new requirements are related to building control (with most of them focused on HVAC system control).

However, one of the challenges to realizing those savings is the correct implementation of such advanced control strategies and regularly verifying their actual operational performance. A field study found that only 50% of systems observed have their control system correctly configured to meet the energy codes requirement, and control-related compliance verification is typically not included in the commissioning (Cx) scope. The current control verification is often manually conducted, which is time-consuming, ad-hoc, incomplete, and error-prone.

What is ConStrain?

ConStrain is a data-driven knowledge-integrated framework that automatically verifies that controls function as intended. The figure below shows an overview of ConStrain and how it can be used. ConStrain was born out of the need of automating the verification of time-series data describing the behavior of building components, especially the control functions.

ConStrain is designed around three key features: building control knowledge integration, analytics, and automation. The framework includes three major components: a control verification algorithm library (rule-based, procedure-based, and AI-based), an automated preparation process and verification case generation, a standardized performance evaluation and reporting process.

While the development of ConStrain was motivated by use cases with building energy modeling (BEM), it is now evolved for more application scenarios towards real building control verification.

Overview of ConStrain

Who shall be interested in this framework?

  • Cx agent – reduce effort and cost, while increasing rigor.
  • Building operator – implement Continuous Commissioning (CCx) to avoid performance drift.
  • Authority having jurisdiction (AHJ) – achieve better compliance rates for control provisions in code.
  • Mechanical engineer/energy modeler – ensure that chosen systems and their controls will comply with code.
  • Energy code/control guideline developer – identify ambiguity in code languages.
  • BEM software developer – identify control related issues in simulation engine.

Current Version of ConStrain?

The current version of ConStrain includes the framework implementation, a preliminary development and implementation of the verification library (based on ASHRAE 90.1-2016 control related requirement), and the test cases of verification algorithms using prototype building models. The current list of implemented verification algorithms includes supply air temperature control, economizer high limit, integrated economizer control, zone temperature control (dead band), zone temperature control (setback), hot water temperature reset, chilled water temperature reset, etc.

A newly released API helps users to use ConStrain more easily. An API workflow demo is provided at demo/api_demo and test/api/test_workflow.py

See the Publications section for more information and example of uses of the framework.

Get Started

Publications

Referencing

If you wish to cite ConStrain in academic work please use: Lei, X., Lerond, J., Jung, Y. J., & Chen, Y. (2025). ConStrain (Version 0.6.0) [Computer software]. https://github.com/pnnl/ConStrain

Owner

  • Name: Pacific Northwest National Laboratory (Public)
  • Login: pnnl
  • Kind: organization
  • Email: dev-central@pnnl.gov
  • Location: United States of America

This Org is intended for the hosting of approved released PNNL software repositories for public use and collaboration.

Citation (CITATION.cff)

cff-version: 1.2.0
title: ConStrain
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Xuechen
    family-names: Lei
    email: xuechen.lei@pnnl.gov
    affiliation: Pacific Northwest National Laboratory
    orcid: 'https://orcid.org/0000-0003-3310-9750'
  - given-names: Jeremy
    family-names: Lerond
    email: jeremy.lerond@pnnl.gov
    affiliation: Pacific Northwest National Laboratory
    orcid: 'https://orcid.org/0000-0002-1630-6886'
  - given-names: Yun Joon
    family-names: Jung
    orcid: 'https://orcid.org/0000-0003-1311-8932'
    affiliation: Pacific Northwest National Laboratory
    email: yunjoon.jung@pnnl.gov
  - given-names: Yan
    family-names: Chen
    email: yan.chen@pnnl.gov
    affiliation: Pacific Northwest National Laboratory
    orcid: 'https://orcid.org/0000-0002-2988-9136'
identifiers:
  - type: url
    value: 'https://github.com/github/ConStrain'
repository-code: 'https://github.com/github/ConStrain'
url: 'https://pnnl.github.io/ConStrain/'
abstract: >-
  Control Strainer (ConStrain): A Data-driven Control
  Performance Verification Framework (formally known as
  ANIMATE)
license: BSD-2-Clause
commit: 7f1798889b07e02cd126549e1c8ae5b1c89f24cd
version: 0.6.0
date-released: '2024-09-30'

GitHub Events

Total
  • Create event: 36
  • Release event: 1
  • Issues event: 10
  • Watch event: 4
  • Delete event: 1
  • Issue comment event: 15
  • Push event: 262
  • Pull request review event: 159
  • Pull request review comment event: 146
  • Pull request event: 57
  • Fork event: 2
Last Year
  • Create event: 36
  • Release event: 1
  • Issues event: 10
  • Watch event: 4
  • Delete event: 1
  • Issue comment event: 15
  • Push event: 262
  • Pull request review event: 159
  • Pull request review comment event: 146
  • Pull request event: 57
  • Fork event: 2

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 776
  • Total Committers: 9
  • Avg Commits per committer: 86.222
  • Development Distribution Score (DDS): 0.689
Past Year
  • Commits: 195
  • Committers: 6
  • Avg Commits per committer: 32.5
  • Development Distribution Score (DDS): 0.585
Top Committers
Name Email Commits
Xuechen (Jerry) Lei x****i@p****v 241
Lerond, Jeremy j****d@p****v 229
yunjoonjung y****g@p****v 226
FanFeng f****6@g****m 44
Julian Slane j****y@p****v 22
Jeremy Lerond l****3@c****l 5
Jeremy Lerond l****3@c****v 5
Yan Chen y****n@p****v 3
Jeremy Lerond l****3@c****v 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 20
  • Total pull requests: 91
  • Average time to close issues: 24 days
  • Average time to close pull requests: about 1 month
  • Total issue authors: 7
  • Total pull request authors: 5
  • Average comments per issue: 0.05
  • Average comments per pull request: 0.45
  • Merged pull requests: 75
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 51
  • Average time to close issues: 9 days
  • Average time to close pull requests: 19 days
  • Issue authors: 7
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.2
  • Merged pull requests: 40
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lymereJ (10)
  • leijerry888 (3)
  • yunjoonjung-PNNL (3)
  • FWuellhorst (1)
  • lazlop (1)
  • wehuang16 (1)
  • jslane-h (1)
Pull Request Authors
  • lymereJ (50)
  • yunjoonjung-PNNL (24)
  • leijerry888 (23)
  • jslane-h (21)
  • Fan-Feng (3)
Top Labels
Issue Labels
bug (2)
Pull Request Labels
DO NOT MERGE (1) enhancement (1)

Dependencies

.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/unit_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
requirements.txt pypi
  • eppy *
  • fuzzywuzzy *
  • matplotlib *
  • pandas *
  • scikit-learn *
  • scipy *
  • seaborn *
  • tqdm *
  • uuid *
setup.py pypi
  • eppy *
  • fuzzywuzzy *
  • matplotlib *
  • numpy *
  • pandas *
  • scikit-learn *
  • scipy *
  • seaborn *
  • tqdm *