Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fusion plant feature #560

Closed
wants to merge 54 commits into from
Closed

Conversation

cfe316
Copy link
Collaborator

@cfe316 cfe316 commented Oct 10, 2023

Description of the fusion module

FUSION is, more or less, a few extra operational constraints plus an expression for parasitic (recirculating) power.

  • Fusion plants are set of extra variables, expressions, and constraints that "bolt on" to a THERM=1 plant.

    • This is similar to how the Maintenance module is a "bolt-on" to a THERM=1 plant.
    • Fusion and Maintenance are fully cross-compatible.
  • This PR does not include multi-hour thermal storage (as my Joule paper had), but it does keep that future application in mind. I think the best picture is that it does include sub-hourly thermal storage (perhaps 10 or 20 minutes worth) for the time between pulses.

  • A fusion plant has three types of parasitic power, expressed in four parameters

    • Passive parasitic power is on at a constant rate all the time (but can be specified as being lower during maintenance.) This models vacuum pumps, cryoplant, tritium handling systems etc which are always on.
    • Active parasitic power is on when a 'pulse' is on. This models RF or NBI heating.
    • Start energy is extra energy required during the hour a pulse starts. This models fast solenoid swings or extra heating power.
    • Start power models a very large, but brief peak power level (e.g. 300 MW for a minute) during startup. This affects the CapacityReserveMargin policy, but not overall power balance.
  • Two new variables vPulseStart and vPulseUnderway keep track of pulses. These are roughly analogous to vSTART and vCOMMIT.

    • One can set a "dwell time" that occurs at the start of a pulse, to model the 10-15 minutes time between pulses. During this time the fusion core can't generate heat.
    • It's possible to specify a maximum pulse length, e.g. 2 hours for something like EU-DEMO. This makes the reactor need to vPulseStart every other hour.
    • It's also possible to model a maximum number of pulses per annum, if you want to do that.
  • The fusion variables interact with the standard THERM variables through vP and vCOMMIT:

    • The core can't pulse unless the plant is vCOMMIT'd.
    • vP <= vPulseUnderway - dwell_time * vPulseStart
  • Standard constraints on vP apply

    • Min_power
    • Max_power (pP_Max)
    • Ramp up / Ramp_down
    • Minimum Up_time / down_time
  • There are no additional constraints for something like the ramp rate of the core: fusion physics is much faster than 1h.

  • The net power of a fusion plant is vP[t] - eFusionParasiticTotal[t].

The interface

  • No new input files.
  • 7 + 1 new columns in Generators_data.csv
    1. Parasitic_Passive
    2. Parasitic_Active
    3. Parasitic_Start_Energy
    4. Dwell_Time
    5. Max_Up_Time
    6. Max_Starts
    7. Parasitic_Start_Power
    8. Parasitic_Passive_Maintenance_Remaining (only required if the plant also has Maintenance turned on).

Two new output files:

  • fusion_parasitic_power.csv
  • fusion_pulse_starts.csv

New column in power_balance.csv "Fusion parasitic power"

Summary / implementation progress

  • Functions to apply Fusion to resources (or components of resources, e.g. the thermal core for future thermal+storage devices).

  • Interoperable with Maintenance formulation

  • Adjustments to zonal power balance for parasitic (recirculating) power

  • Add adjustments to capacity reserve margin

  • Add adjustments to Reserves (?) - might need help with this

  • Add adjustments to ESR policy.

  • Hook up to specialized output files

    • capacityfactor.csv
    • CapacityValue.csv
    • ChargingCost.csv ?
    • ESR_Revenue
    • power_balance.csv : add parasitic power to Charging column?
    • ReserveMarginRevenue : incorporate parasitic power
  • Documentation

@cfe316 cfe316 requested review from gmantegna and lbonaldo October 10, 2023 18:49
@cfe316 cfe316 force-pushed the feature-fusion branch 3 times, most recently from a134296 to af0dfea Compare November 20, 2023 16:37
@cfe316 cfe316 force-pushed the feature-fusion branch 7 times, most recently from 4b95396 to 1c4eb68 Compare December 5, 2023 23:22
@cfe316
Copy link
Collaborator Author

cfe316 commented Aug 15, 2024

Closing in favor of #743, which incorporates the latest changes.

@cfe316
Copy link
Collaborator Author

cfe316 commented Aug 19, 2024

Closing in favor of #743

@cfe316 cfe316 closed this Aug 19, 2024
@cfe316 cfe316 deleted the feature-fusion branch August 19, 2024 20:48
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.

1 participant