Control loop precision

Jun 03, 2016 21 Replies

Well, BAD software certainly has range to be Really Bad. Although, given a big enough FPGA I think there's plenty of room for the designers to get in trouble with poor design practices.

Do you use one set of math hardware and do the control loop calculations with a state machine? I assume you do because you say it's a small FPGA, and you have (I'm pretty sure) 512 clocks between samples.

If that's the case, then you could add the sigma-delta stuff into the state machine, hopefully without making it much bigger.

Can you ask your customer about noise level, or have them check? FPGA, software or vacuum tubes, fewer functions means fewer opportunities for bugs.

Tim Wescott Control systems, embedded software and circuit design I'm looking for work! See my website if you're interested http://www.wescottdesign.com

My son and I have a running joke about a world where we all have personal time machines, and can go back in time to harangue our past selves when they're about to make a mistake.

At any rate, I know it couldn't have existed in 2004, because Future Me did not appear and tell Past Me to double-check his math.

On re-doing my math, I get a peak-peak variation of about 0.2 degrees. This wouldn't be tight enough to satisfy me (thereby raising questions about "well enough"), because you can't count on any one thing to be your entire error budget -- my usual rule of thumb is that, if you're not doing a detailed spreadsheet, pound the easy stuff down to 1/10 of your total error budget, and get the hard stuff down to 1/4. And, if you can't do that, do a spreadsheet.

So, to get down to 0.02 degrees you'd need more bits -- I'm not going to do the calculation, but I hope that it fairly works out to 10 to 12 bits.

With a math error. Once again, Present Me is looking for a time machine to go back and harangue Past Me.

I must have been assuming a unidirectional DAC, going from 0 to 255 (I was actually drawing on my first paid gig doing motion control, and that was the case then). With 8 bits, the acceleration is roughly 8000 deg/ sec^2/count. To get that into terms of sample rate just substitute in Ts = 1/(sample rate):

(8000 deg/sec^2/count) * (1/100Hz)^2 = 0.8 deg/Ts^2/count.

Now again at 8000Hz:

(8000 deg/sec^2/count) * (1/8000)^2 = 125 * 10^(-6)

The theory is still valid, but I think I need to republish the paper, with corrections.

Tim Wescott Wescott Design Services http://www.wescottdesign.com I'm looking for work -- see my website!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required