this post was submitted on 07 Nov 2023
8 points (100.0% liked)

Electrical and Computer Engineering

865 readers
1 users here now

Electrical and computer engineering (ECE) community, for professionals and learners. Discuss ECE related topics here, for instance digital design, signal processing, circuit analysis, electromagnetics, microelectronics, power electronics, RF electronics, etc.

founded 1 year ago
MODERATORS
 

I'm working on implementing the PID compensator on the top of page 20 here. I've already got a circuit working, but it oscillates a ton, and I was hoping to tune it with a better strategy than just guess and check.

The datasheet doesn't go into a lot of detail on how it's supposed to work, but I found a whitepaper that covers single-stage PID compensators in more detail here.

I've got this compensator working, I've modeled it in spice and the poles and zeroes show up where they should, but I have no idea how to actually tune it to my system.

My understanding is that I need to fit the equation (3) on the second link to the form kp + kds + ki/s, but it's an algebraic nightmare.

What I'm hoping for is some derivation of the PID constants in terms of the components in my system. Then I can work on one of the many tuning methods. The datasheet even assigns names to components implying that they're responsible for setting one of the constants (Cd and Rd for derivative term for example), but I'm fairly certain they can't be completely isolated like that.

Also, if the answer is just that I need to re-learn how to do partial fractions, I'm okay with that.

top 4 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (1 children)

It’s been years since I took controls classes.

Does this help? https://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlPID

I’m not sure if your asking about the math or how to implement your k values into the controller.

I’m just passing by from the homepage of lemmy

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Upvote just for that link I hand it out every time I get asked a controls question

But yea another guy drifting in from the homepage who normally works with physical systems where I can assume I'm in the continuous domain and can do the PID loop with a fast enough computer / sensors.

That said seems like the relationship poles / zeros and your physical components are given by the set of equations found in eq 4 of your second link.

Assuming you used, something like desired second order behavior (%OS, settling time etc), pole placement or lqr methods to pick where those poles should be for your desired system performance you should be able to plug those poles/ zeros in with one real component value to nail something to reality then solve for the rest.

Again you'll probably get values that are stupid specific and you'll round up or down to get things you actually can buy or have on hand and you'll recompute the poles and zeros and see how far off you are from your goal. Provided they aren't shifted tooff the right hand side of the plane you can test or simulate to make sure you meet your minimal performance requirements.

Edit shifted left to right damn I should do control theory rants at 11pm

[–] piranhaphish 2 points 1 year ago

If you can run the algorithm online, then the Ziegler-Nichols method has given me decent results.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

Lol this is probably a major shot in the dark, because I have no idea what you're talking about. But incase it helps lol, I remember at uni, a lecturer talking about PID once, and they changed the time to 1 second, and since you don't need to multiply/divide by 1, it reduced the complexity of the algebra.

(You can also use a base of that like 0.001 or whatever and multiply it back out).

Again no idea if this has anything to do with it but yeah.