Prototype · Internship · Optimisation · Siact Power · Aug 2023 — Jun 2024
Microgrid scheduling
Model the grid, ask a solver for a feasible plan, then see whether a learned policy can compete on cost without breaking constraints.
Independent reconstruction — not an internship system screenshot. 12 kWh battery, 4 kW limit, greedy hour versus look-ahead.
Result
At Siact Power I supported a scheduling prototype in Pyomo with the CBC solver, helped train a Q-learning agent, and built a React + FastAPI app so someone else could upload a scenario. Git and Docker kept the experiments repeatable.
Problem
A policy that looks cheap on one day can still violate energy or power limits. Cost without feasibility is not a plan.
Role
Algorithm engineer intern. I contributed to the MILP model, reward and action-state design, and the visualisation layer. I do not claim ownership of the company’s production scheduler.
Decisions
Compare RL against MILP on the same constraints. Keep the public sketch separate: a 12 kWh house, 4 kW charge limit, time-of-use tariff, greedy hour versus a small look-ahead. That page is a clean-room habit, not Pyomo, not CBC, and not private data.
Evidence
Grid dispatch is public. Physics for three Adelaide-shaped days × greedy / look-ahead is pinned as pytest fixtures. The internship artefacts stay off this site.
Limits
The live sketch is not the company model. I do not publish cost deltas from the internship.