For my engineering honours project, I'm performing a study of voltage control on the electrical distribution network, using reactive power provision from residential solar inverters. Basically, each solar inverter runs a 'Volt-VAr' curve, which is set-up using 6 variables. An example curve is found here:
The input variables are Qmin, Qmax, Umin, Umax, and the slopes on the left and right hand sides of the curve (Inductive Droop % and Capacitive Droop %).
I've modelled a bunch of electrical networks in power-flow software, using a default curve. For each network, I have a large CSV output dataset from each network (voltage, active/reactive power at each terminal/load/generator).
I'm looking to find the curve that produces the optimal results on each network. There are four result variables to optimise for, and I have four optimisation functions to represent this. What I want to do is to start with a baseline curve, plug the results from that test into a machine learning algorithm, and have the algorithm output a new set of curve parameters to test. These parameters will be used for the next test, and the results of that test will be fed back into the algorithm, which will again output a set of incrementally optimised curve parameters, and so on until I have an 'optimised' curve for each network.
The four objective functions (borrowed from a similar study) are:
There is a set of constraints on the optimisation variables, as below (again borrowed from a previous study, my values are different but variables are the same):
As far as I can tell, I think this is a multivariate optimisation problem. Closest similar problem I could find was this: What is the most appropriate machine learning approach for this scenario?
I don't have any prior experience with machine learning, but this seems like a simple enough problem that is ideal for an ML solution. I've seen previous papers tackle this with an evolutionary/genetic algorithm, but with little detail on the actual implementation they used. I don't have any prior experience with machine learning, but this seems like a simple enough problem that is ideal for an ML solution. I've seen previous papers tackle this with an evolutionary/genetic algorithm, but with little detail on the actual implementation they used.
I'd love some recommendations on what methods/algorithms would be good to use, and where to start. I'm using Python, but MATLAB is fine too. I understand that this is a fairly basic/vague question, but traversing the mass of in-depth discussions on ML techniques is difficult without a starting point.
Thanks in advance!