GithubHelp home page GithubHelp logo

nrel / beeam Goto Github PK

View Code? Open in Web Editor NEW
5.0 9.0 3.0 108.78 MB

License: Other

Modelica 22.55% C 0.76% Python 1.25% C++ 0.10% MATLAB 2.99% R 0.17% Motoko 0.30% Jupyter Notebook 69.19% Ruby 2.44% HTML 0.26%

beeam's Introduction

Building Electrical Efficiency Analysis Model (BEEAM)

This is the development site for the BEEAM library and documentation.

Description

The Building Electrical Efficiency Analysis Model (BEEAM) is a Modelica library that simulates the efficiency of building electrical distribution systems using harmonic power flow. BEEAM has the following features:

  • Models a wide variety of building distribution topologies, including three-phase AC, single-phase AC, unipolar DC, bipolar DC, and hybrid networks
  • Models both balanced and unbalanced load conditions
  • Accurately represents power electronic converter losses, including at part load conditions
  • Provides granular estimates of losses throughout the distribution system

BEEAM may be combined with other Modelica libraries to develop more complex models. Users can also package a BEEAM model within a functional mockup unit (FMU), enabling co-simulation with other modeling tools.

Note: BEEAM is a working name/acronym and is subject to change.

Current Release

BEEAM 0.3.0-beta (2022-09-30)

Installation

To install and use BEEAM with a graphical Modelica simulation environment (OpenModelica, Dymola, Wolfram System Modeler, MapleSim, etc.), follow these instructions:

  1. Download BEEAM by cloning this repository or downloading a release
  2. Extract the archive at a convenient location
  3. Go to the File menu and select Open
  4. Navigate to and select HPF/package.mo (relative to the respository root directory)

The library will load and the user should be able to HPF listed in the library viewer.

Workflow

The primary way to use BEEAM is to create and simulate a model within a graphical Modelica environment. The Scripts directory provides scripts for simulation results post-processing, however, at present these scripts are not enabled for general use. Some scripts require data sources that are restricted to the development team, while others require modification for local use. The scripts will be updated prior to final release of the library.

Executing BEEAM via co-simulation requires the following steps:

  1. Create a model
  2. Create the correct external interfaces within the model for co-simulation using the functional mockup interface (FMI)
  3. Export a model as a functional mockup unit (FMU)
    1. OpenModelica is an open source Modelica environment with an FMU export option, but the FMU export is not very robust. The export FMU usually fails to load in FMU libraries.
    2. Dymola, a commercial Modelica implementation, is an alternative with robust FMU export.
    3. Previously, the open source jModelica environment was also an alternative with robust FMU export. However, Modelon (the primary jModelica developer) has discontinued jModelica as an open source project.
  4. Simulate the exported FMU together with other FMUs using PyFMI, FMPy, or a similar library. Both PyFMI and FMPy are open source. PyFMI has Assimulo as a dependency. FMPy includes both a simulator and a GUI.

The FMU directory contains examples for cosimulation of BEEAM with EnergyPlus.

Development Notes

Modelica Libraries

BEEAM has been tested with the following Modelica environments:

OpenModelica is the primary development environment, but the library has also been tested with Dymola and jModelica.

Library Organization

Library structure and organization is not final. The notes in this section represent working concepts for library organization.

  1. Current development is being done in the root of the library. The components defined here are all single phase. This will continue until all bugs are removed and the system is functioning.
  2. Eventually the components may be moved into their respective sublibraries e.g. SinglePhase and MultiPhase.

License

BEEAM is licensed for use under the terms of the Berkeley Software Distribution 3-clause (BSD-3) license; see LICENSE.

beeam's People

Contributors

avpreetothee avatar brianlball avatar matthewsteen avatar omkarnrel avatar stephen-frank avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beeam's Issues

Restructure/Normalize Transformer Models

The transformer model currently accepts all parameters in volt-ampere units. This makes scaling the model quite difficult when voltage, current, and power ratings change. The transformer model should be modified to use per-unit parameters together with ratings, such that the transformer model can be modified easily by solely changing the device ratings (leaving all the model parameters, in per-unit, the same).

This also has the advantage that per-unit values for transformer parameters can be easily evaluated at a glance for conformance with expected ranges. (E.G. series reactance in the range 0.02-0.10).

Combine AC and DC "sections" of HPF model?

At present, the AC side of a BEEAM/HPF model uses harmonic power flow (h ≥ 1), while the DC side uses the standard Modelica DC components (which are time-based). It might make sense to fully generalize the HPF model for both AC and DC components, so that any h ≥ 0 is valid (with h = 0 representing DC). This would eliminate the need to use different connector types for the AC and DC sides and could provide a path for "universal input" device models and similar in the future.

This would require a re-thinking and standardization of BEEAM model architecture.

Restructure/Normalize Converter Model Parameters

Restructure the AC/DC converter model parameters (efficiency curve, harmonics) to use a normalized or per-unit approach. All parameters would be relative to rated voltage, current, and power such that the converter model can be scaled solely by adjusting the device ratings.

This task will also require restructuring model-fitting scripts to produce normalized outputs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.