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.

← Back to work