|April 11th, 2016, 04:35 AM||#1|
Joined: Apr 2014
Nonlinear control loop
I've designed a nonlinear control strategy which I can only describe as a PID control, with only the I component, which is non-linear.
I am struggling to define the function in a meaningful way and need some help
The design is actually implemented in a FPGA, but a 'normal' software model would work as well.
What I have is an error signal, simply the magnitude of 'Achieved' - 'Demand' (the magnitude part is important, the direction the control moves is handled separately). I clamp this to sensible limits (similar to limiting the excursion in op-amp electronic control).
So far, so simple.
Now I take this error and add an offset which I call Max_Rate (you will see why in a moment, hopefully).
Now I subtract from it the maximum excursion value for the error.
This gives me a variable whos' equation is:
Max_Excursion - Min(Max_Excursion, Error) + Max_Rate
As the error increases, the value of the variable tends towards Max_Rate, for small errors the the variable tends to Max_Excursion + Max_Rate
Now here's the fun part:
I use this variable as the timing value for a counter.
Huh? Yeah, bare with me....
For large errors, the variable for the timer tends to Max_Rate, If this is the number of milliseconds between counts then we have a counter changing value at 1000/Max_Rate
For small errors, the rate of change tends to 1000/(Max_Excursion + Max_Rate)
So, for small error, the rate of change in control is small, big errors and we have a bigger rate of change.
If we plot Error vs Rate of change in the control, we get a curve which I think is some form of 1/x (with a y limit), but I'm not sure how to prove it.
If anyone can help untangle the mess I've made of this, I'd be grateful
And yes, the control does work
|April 12th, 2016, 01:42 AM||#2|
Joined: Apr 2014
Here's a graph showing the rate of change, Max_Rate of 10, Max_Excursion of 200 and a Demand of 500. The X-axis is the Achieved (not labled), Y is the rate of change.
As the achieved approaches the target demand, the rate of increase to the control decreases. I standard 'I' control would be a straight diagonal line through 500 on the X-axis.
There could be oscillation around the crossover point, but this isn't a problem as it's a minute amount, and is down in the noise when it it hits the real world in the intended application.
|control, loop, nonlinear|
|Thread||Thread Starter||Forum||Replies||Last Post|
|Is it possible to think of a circle as a loop?||HawkI||Geometry||14||March 10th, 2016 06:51 AM|
|Loop formula?||How_Rude||Number Theory||7||May 15th, 2012 02:23 AM|
|While loop problem||daemonlies||Computer Science||6||January 13th, 2012 08:28 PM|
|While Loop Problem||daemonlies||Applied Math||0||January 1st, 1970 12:00 AM|
|While loop problem||daemonlies||Applied Math||3||January 1st, 1970 12:00 AM|