How liuxiwei0521/redoxbid works
RedoxBid is a Streamlit decision-support prototype for planning vanadium-flow-battery participation in day-ahead energy and regulation markets; it does not submit bids or control a station. Users provide price and optional regulation data, configure a station and battery, then run a baseline schedule, RARR mode assessment, and—when selected—sequential-versus-joint market comparison. Results include schedules, bid recommendations, KPIs, visualizations, and locally archived decisions. The README documents capabilities beyond the sampled excerpts; those are represented at their supported module paths, while uncertain internal call wiring is omitted.
Main entry points: 决策主页面.py Decision workspace · 1_🗄️_电站档案.py Station archive page · market_comparison.py Strategy comparison · components.py Shared UI components
Components 19
Decision workflow
- Decision workspace
app/决策主页面.py - Station archive page
app/pages/1_🗄️_电站档案.py
Market models
- Day-ahead schedule
models/optimization_model.py - RARR mode assessment
models/optimization_model.py - Regulation forecast
models/regulation_forecast.py - Sequential optimization
models/sequential_market_model.py - Joint optimization
models/joint_market_model.py - Strategy comparison
utils/market_comparison.py - Market result types
models/market_types.py
Inputs and archive
- Price forecast input
utils/input_sources.py - Regulation history input
utils/regulation_data.py - Synthetic price sample
data/synthetic_day_ahead_price_forecast.csv - Synthetic regulation sample
data/synthetic_regulation_history.csv - Station and decision archive
utils/database.py
Results and interface
- Schedule visualizations
utils/visualization.py - Shared UI components
ui/components.py - Bilingual presentation
ui/i18n.py
Other components
- Decision user
- CBC solver
Connections 24
- Decision user → Decision workspace: provides inputs
- Decision user → Station archive page: edits profile
- Decision workspace → Price forecast input: loads prices
- Synthetic price sample → Price forecast input: example data
- Decision workspace → Regulation history input: loads history
- Synthetic regulation sample → Regulation history input: fallback data
- Decision workspace → Station and decision archive: loads profile
- Station archive page → Station and decision archive: reads and saves
- Decision workspace → Day-ahead schedule: solves baseline
- Day-ahead schedule → CBC solver: solves model
- Decision workspace → RARR mode assessment: assesses mode
- Decision workspace → Regulation forecast: estimates regulation
- Decision workspace → Strategy comparison: runs comparison
- Strategy comparison → Sequential optimization: solves fixed schedule
- Strategy comparison → Joint optimization: solves co-optimization
- Sequential optimization → CBC solver: solves model
- Joint optimization → CBC solver: solves model
- Strategy comparison → Market result types: uses result types
- Decision workspace → Schedule visualizations: builds charts
- Decision workspace → Station and decision archive: saves decision
- Station archive page → Schedule visualizations: plots history
- Decision workspace → Shared UI components: renders workspace
- Station archive page → Shared UI components: renders archive
- Shared UI components → Bilingual presentation: localizes interface