My Math Forum  

Go Back   My Math Forum > Science Forums > Computer Science

Computer Science Computer Science Forum

Thanks Tree1Thanks
  • 1 Post By weirddave
LinkBack Thread Tools Display Modes
April 11th, 2016, 04:35 AM   #1
Senior Member
Joined: Apr 2014
From: UK

Posts: 921
Thanks: 331

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
Thanks from Joppy
weirddave is offline  
April 12th, 2016, 01:42 AM   #2
Senior Member
Joined: Apr 2014
From: UK

Posts: 921
Thanks: 331

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.
weirddave is offline  

  My Math Forum > Science Forums > Computer Science

control, loop, nonlinear

Thread Tools
Display Modes

Similar Threads
Thread Thread Starter Forum Replies Last Post
Is it possible to think of a circle as a loop? HawkI Geometry 14 March 10th, 2016 05: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 07:28 PM
While Loop Problem daemonlies Applied Math 0 December 31st, 1969 04:00 PM
While loop problem daemonlies Applied Math 3 December 31st, 1969 04:00 PM

Copyright © 2019 My Math Forum. All rights reserved.