Load sharing PID control philosophy.

G'day,
Some questions,(perhaps obvious) on control philospohy. I've looked at the Web, talked to my pet academic, etc and wander
if anyone has come across the following questions.
1. Is there a standard reference/implementation for something that people would class as a good extended PID (or other) control system including load sharing amongst units of varying capacity. The system to be controlled looks like:
N generating units each with a capacity to generate from 0 up to Available[i] kW. Available[i] unfortunately varies with time. You do not have control over Available.
The aim of course is to keep the total power output of all N units to a setpoint and to evenly (sort of) load the units. The sharing is required to minimse the losses in capacity caused by changes in Available[i]
An example system of this sort would be a wind farm since the wind does vary and the available power varies as the cube of the wind speed.
2. Note that most (all :-) intergraters for the PID run from the beginning of time (or startup) till now. This obviously smells a bit strange since who cares what the system the system was doing 10 days ago.
Are there any benefits in limiting the intergral part to be from now-Ti to now (e.g. over the last 30s)?
Thanks
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Phil,
1. Load sharing is actually much simpler than it might seem. Firstly, you need a controller on each unit that maintains the output of the unit to a specific setpoint. The setpoint should be in term of 0-100% of capacity.. Secondly, you need a controller that measures total demand and provides the output necessary to keep it to a setpoint. This output should be in terms of 0-100%. Now you simply send this output as the setpoint to all controllers. They all have the same percent of capacity as their setpoint but the actual capacity of each unit can be defined separately.
One point of caution: Do NOT measure the actual output and use that to create a setpoint to the controllers. Then you are working in circles and weird things will happen. If your total supply to the power network consists only of your generators, then set your total load controller to maintain a constant frequency or voltage on the grid.
This scheme allows you the following freedoms:
a) You can put any one or more individual controllers on manual at a fixed setting, leave it on local auto at a fixed load, or even turn it off. The master controller will simply ramp the others up or down as needed to make the total correct. This will work perfectly until you run out of capacity. A small refinement is to multiply the output by the total capacity of the system over the actual capacity of those units under cascade control. (Watch out for divide by zero.) Doing this will provide you with a controller gain inversely proportional to the process gain.
b). You can base the master control on any relevant value, even put it in manual. The load will share according to the capacity of the individual supplies (which you have defined).
c) Minor errors in individual units have only minor effects on the overall loop. They simply mean that the unit will take a slightly different share of the load than you had allowed by setting its capacity. They do not destabilize the system. The master unit will add or delete to make up the total and it is the only measurement whose accuracy has significant impact.
2. Leave the integrator alone! Allowing it to simply integrate forever is definitely the simplest approach. The only limit should be when the loop is not in full control such as when it is disconnected by logic or has reached 0 or 100% output. Then anti-reset-windup must be applied. You are mistaken when you assume that what happened ten days ago has no affect. If the controller was balanced out by the reset term ten days ago and has been on setpoint ever since, deleting its integral from ten days ago buts you right back with whatever error you had then. Whenever you turn a control loop on, there is a bit of bouncing around until the integrator finds the right amount of reset. From then on it holds you on setpoint. Its kind of like education. You don't wipe out your brain from everything you learned more than ten years ago. That's when you learned how to count :-).
Walter.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Phil Maker wrote:

Load sharing is a particular concern of the power transmission folks; I would look to them for an answer for this. You can't really load share if _all_ your sources have independent capabilities without cutting the user off: you have to have some generation capacity to keep things going when the wind dies (and incidentally you have to spend money to keep the turbines hot so that the power will be there when you need it)

Limiting the integral part to some finite point in the past limits the integrator's ability to absolutely reset the DC error to zero. This can be done as an anti-windup measure, but it comes at the cost of not getting perfect DC tracking. It may "smell strange" to integrate back to system startup, but it works.
Incidentally, if you have anti-windup on your integrator it doesn't remember back all the way -- it only remembers back to where it came out of limiting.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.