PID Engine RPM Controller

Hi Paul,
Yep a stepper motor set up like this is effectively an integrator, ie when you move it to a new position it stays there, it's doesn't return to a zero
position when you stop stepping. Most position control systems are integrators by their very nature, ie you tell them to move to a new position they do, and in general it doesn't take much to hold them there.
In this case you would limit the amount of integral gain in your PID controller, as the system has 2 integrators there's a risk it could go unstable :o(
What is the response time of your throttle?? are you trying to maintain a certain engine speeds over a wide range of engine loads?? how quickly can the load change?? you may be able to get away with just a PI controller...
Dave

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

Got it! Thanks.

Is this true for both the positional and velocity algorithms?

Do you mean the response time of the engine speed to changes in throttle? I don't really know, but is relatively slow in microcontroller terms - probably well over a second at least.

Yes, as best I can.

Instantly, upon application of higher electrical current (we are driving a generator).

Tried that, but it seems to want D for stability.
Thanks!
Paul
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hi,
I had a bit of a re-think last night, the "D" term might be required for stability.
If the engine speed starts to drop off quickly ( say due to an increase in load ) the D term will detect this and cause the output to increase.
Again you have to a bit carefully with the amount of "D" you add in.
Dave

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 15 Jun 2004 00:56:05 +0100, the renowned "David Powell"

That's transient response to a load change, not "stability" (as in "not oscillating").

;-)
Best regards, Spehro Pefhany
--
"it's the network..." "The Journey is the reward"
snipped-for-privacy@interlog.com Info for manufacturers: http://www.trexon.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
In my prototype, I am outputing the positional PID algorithm and translating to a certain number of steps and applying that directly to the stepper motor. i.e. I am treating that output of the PID as if it were a delta, rather than absolute position.
It seems pretty clear to me, based on the comments of all the guys that what I've wound up with is an integrator (the motor) after the PID controller. I can implement the velocity algorithm, but I'm trying to figure out what impact my first attempt has on the response. Does that imply that my "extra" integration is effectively cancelling out the derivative?
Thanks,
Paul

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

Yes. Following a derivative with an integrator cancels the derivative.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
So by having an intergrating stepper motor placed after a positional PID algorithm, what exactly does that yield? A PI controller with amplified I?
Paul

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Overall I suppose you could call it a "PII" controller, but so many plants have integrating action that you may as well just call it a PID with an integrating plant and be done with it.
There's nothing wrong, by the way, with using an unusual controller to go with an unusual plant or requirement set. I have recently implemented both a proportional-integral-integral controller for a plant with velocity-only feedback, and a proportional-derivative-derivative controller for an inherently integrating driver along with a plant with a long thermal time lag.
Paul W. wrote:

--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Wouldn't that have serious problems with noise? Or did you have an unusually clean signal? I guess a temperature loop might indeed qualify as really smooth and that is why you are using DD in the first place.
Walter.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
First, the driver was inherently integrating (it was actually integrating in software because we had a strict limitation on the speed that we could ramp up the cooler, so it went PDD -> limit -> integrate). Second, the loop closure was at a Hertz or two, so the differentiators were leveled off at around 5-10Hz, which really kept the noise down. And finally, it sits in a proprietary product next to a bunch of other control loops and video acquisition, all of which need to be good to 14-16 bits, so the we _really_ knew our noise reduction techniques and we had the leverage to apply them.
Walter Driedger wrote:

--

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

Excuse me if I am wrong, but
Doesn't the input and output have to be linear (or linearizable) and be able to convert to 0 to 100% to work? And that the System Dynamics have to be stable to be tunable?
Neil
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 15 Jun 2004 05:23:27 GMT, the renowned Neil Kurzman

Do you think any real system fits both (or even either) of those criteria?
Best regards, Spehro Pefhany
--
"it's the network..." "The Journey is the reward"
snipped-for-privacy@interlog.com Info for manufacturers: http://www.trexon.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Neil Kurzman wrote:

-- snip --

In this case the input and output are both linearizable (no real world systems are linear in the end -- if nothing else they break when you set bombs off next to them, which is not a linear phenomenon).
A system doesn't have to be stable for it to be stabilizable (I assume this is what you mean by "tunable"). Take your average Saturn-V booster with an Apollo crew capsule on top -- this is basically a semi-flexible inverted pendulum with markedly insufficient aerodynamic stabilization. Without control the best that you could hope for is that the thing would be in one piece when it hit the ground, more realistically it would have buckled in the middle someplace before the pieces hit earth. Yet with appropriate sensors and automatic control the think can shoot a couple of men to the moon.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 15 Jun 2004 08:41:01 -0700, the renowned Tim Wescott

I guess that without actuator position feedback the linearization of the output would have to be mechanical in nature. Not that would necessarily be a problem- a cam and follower can create an arbitrary montonic function, at least in theory.

I think it's even worse than that with the Saturn V- more like two stacked inverted pendulums (still a controllable system). Smaller rockets are not so flexible.. so strapping a whack of smaller rockets together like the Russians did gets around the old bending-in-the-middle-and-exploding issue.
Best regards, Spehro Pefhany
--
"it's the network..." "The Journey is the reward"
snipped-for-privacy@interlog.com Info for manufacturers: http://www.trexon.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Spehro Pefhany wrote:

-- snip --

Do you even need to explicitly linearize it? Unless you're really whacking the throttle around the engine's response to throttle changes is going to be monotonically non-decreasing if not linear, even to pulses to the throttle stepper. Assuming that you can sacrifice performance to ease of control system design you should be able to just de-tune the controller to make it all work.
--

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

Actually, with the stepper motor, we don't necessarily need position feedback. Provided there are no missed steps, we can constantly track position.
Funny you should mention, I am working on linearizing - I've collected the data already and have a nice curve. Implementing a characterizer table which has throttle position versus load.
Paul
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On 19 Jun 2004 06:58:56 -0700, the renowned bushie snipped-for-privacy@hotmail.com (Paul W.) wrote:

Yeah, I know, provided you zero it at power-on, of course (which could be as simple as ramming it up against the stop for long enough). Goes without saying perhaps that I don't like to make that presumption.

How nonlinear is it?
Best regards, Spehro Pefhany
--
"it's the network..." "The Journey is the reward"
snipped-for-privacy@interlog.com Info for manufacturers: http://www.trexon.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Sat, 19 Jun 2004 14:22:58 GMT, Spehro Pefhany

That is exactly the presumption made by floppy disk head positioning systems. They usually do not have any sensor to indicate the home position.
-Robert Scott Ypsilanti, Michigan (Reply through this forum, not by direct e-mail to me, as automatic reply address is fake.)
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Engines are notorious for being *very* non-linear - that's about the only way I can express it. If you think about a throttle plate (butterfly valve) and its geometry, you can see how the airflow would be drastically different at low loads versus high loads. So at low loads, small changes in throttle make a huge jump in speed, and this changes a lot at higher loads.
Paul
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
But isn't that the problem with all integrating systems,: "Providing there are no missed steps." You need some way of re-syncing the position once in a while. Murphy's going to get you.
Walter.

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.