Skip to content

Tune MPC objective weights to penalize VPP-window appliance operation more strongly #6

Description

@xudongwu-0

Problem

The current MPC objective can still select appliance schedules that overlap with the VPP event window, especially water-heater preheating such as 17:00-19:00 during an 18:00-19:00 VPP event.

This hurts role-play user scores and weakens the interpretation of MPC as a demand-response baseline.

Observed Behavior

In mpc_ep, the planner can choose:

  • washer shifted outside VPP
  • dishwasher shifted outside VPP
  • water heater preheat overlapping VPP

The run summary then reports:

  • water heater ran during VPP
  • user score drops
  • VPP response is considered unsatisfactory by role-play users

Why This Matters

Even when total energy or thermal comfort looks acceptable, the user and grid-side objective should strongly discourage controllable appliances from running during VPP windows.

The current objective appears to under-penalize this behavior relative to comfort/cost terms.

Possible Fixes

  • Increase the VPP-window appliance-overlap penalty in the MPC objective.
  • Add a stronger time-overlap penalty for controllable loads during active DR windows.
  • Penalize water-heater preheat windows that cross VPP start/end.
  • Distinguish unavoidable fixed loads from controllable appliance loads.
  • Add diagnostic reporting for per-device VPP-overlap contribution to the MPC objective.
  • Calibrate objective weights against role-play user scores and appliance shift-success metrics.

Acceptance Criteria

  • MPC should avoid scheduling controllable appliances inside VPP windows unless a hard service constraint makes it unavoidable.
  • Objective diagnostics should clearly show the penalty term responsible for VPP-window overlap.
  • Existing benchmark summaries should make it easy to see whether the change improves VPP behavior without excessive comfort loss.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions