Skip to content

Conversation

@jmaguire1
Copy link
Collaborator

Creating an abstract class for thermostatic loads, including HVAC and water heating. Making lots of other changes too.

Work that is complete and in progress:

  • Create ThermostaticLoad class
  • Replace on/off "Mode" variables and outputs with "On Fraction" variables and outputs
    • Water heating
    • HVAC
    • Other loads
    • Move update_mode_times to update_results and update reset_time
    • Incorporate load fraction and other ext controls in on fraction
  • Update Equipment.update_model function to always call run_internal_control
    • Modify function
    • Create new variables for external controls
  • Add new tstat mode to prevent overshoot
    • Add method in run_internal_control
    • Test for water heating
    • Test for HVAC
  • Update Simulator.update function to consolidate control_signal and schedule_inputs (maybe wait on this)
    • Modify function
    • Change/merge controls and schedule names
    • Maybe replace current_schedule with individual variables
    • Update example scripts and docs
  • Remove duty cycle control functions, and related inputs and outputs in docs
  • Remove Mode related inputs and outputs in docs
  • Add new inputs and outputs in docs
    • prevent_overshoot
    • on fraction outputs

Still need to review issues and see which this will address.

  • Reference the issue your PR is fixing
  • Assign at least 1 reviewer for your PR
  • Test with run_dwelling.py or other script
  • Update documentation as appropriate
  • Update changelog as appropriate

@jmaguire1
Copy link
Collaborator Author

@mnblonsky: what happened was #140 was based on ev1.7, which I closed since it'd been merged. Didn't lose any of your commit history or anything, I think this should just supersede what was there.

@jmaguire1 jmaguire1 marked this pull request as draft December 6, 2024 22:37
@mnblonsky
Copy link
Collaborator

Noting that this covers #95. It probably covers other issues too.

@mnblonsky
Copy link
Collaborator

Here's a very quick overview of what's been done to date:

  • Removed duty cycle controls for equipment that modify on/off status across multiple time steps
  • Removed Equipment.mode field and replaced with Equipment.on as a boolean field. Some equipment have additional fields, e.g., HPWH has hp_on and er_on. Also removed/revised other related fields, like time_in_mode.
  • Created a ThermostaticLoad class that will by inherited by all water heater and HVAC classes, and moved similar code there.
  • Updated most water heater classes to work with ThermostaticLoad.
  • Modified order of operations within Equipment.update_model to make external control implementation simpler.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants