Up for Review: Create a Functional PID Controller on the NI myRIO—The Hardware

Thread Starter

RK37

Joined Jun 26, 2015
677
http://www.allaboutcircuits.com/projects-preview/36635

Dear author and reviewers,

Here are the results of my technical review. One purpose of this review is to facilitate discussion and input from other AAC contributors. If the reviewer community decides that a particular issue does not require revision, all the better—leave it as is. Any issues that are deemed significant enough to require revision should be addressed before the article is published.

If I have botched or missed anything, please bring me in front of the class and apply the dunce cap. That’s how I learn.

Thanks to all for your time and expertise.


I made a number of revisions and added a link to an existing article on PID theory. The following are remaining issues.

1. “Moreover, as the temperature changes, its internal winding resistance will also change; hence, it will not perform the same in two different environments.”

I don’t think that ambient temperature change with a motor is a good example of how a device will not exhibit consistent/predictable performance under varying conditions, for two reasons: 1) The winding is made of typical conductive material, presumably copper or aluminum, and we usually don’t worry about copper or aluminum wires exhibiting significant changes in resistance in response to ambient temperature changes. 2) Motors with high winding currents will experience heating from power dissipated inside the motor. I would say that this internal heat generation is far more significant than typical ambient temperature changes.

2. Re: Figure 1

The image includes some items that are not in the list. Do you want to modify the list so that it is consistent with the image? Also, is that steel/copper wool? What is that used for?

3. “A regular analogue DC servo will usually have an op-amp-based controller already contained within the casing”

I think it is safe to say that every servo will have a controller, since (in my experience) the integrated feedback control is a defining characteristic of a servomotor. But maybe only some of them use op-amps? Or have you come across a servo that does not include a controller?

4. Re: Table 1

You don’t need the degree symbol in the column header (i.e., next to “Rotation Relative to Centre”) because it is attached to each entry in the column. (This applies also to the right-hand column in Table 2; see comment #6.)

5. Re: Table 1 and Table 2

We should use “Pulse Width” instead of “Pulse Length” because this is the more standard term and because it is consistent with how we describe the servo’s control signal, i.e., pulse-width modulation.

6. Re: Table 2

The velocity information is a bit confusing. First, what is “proportional velocity”? Should that be “angular velocity”? Also, the typical unit for a velocity is distance per time (e.g., meters per second) or angle per time (e.g., radians per second), whereas the table uses seconds/angle. This unit becomes even more awkward when you have a negative sign, because now you are saying that the motor turns 60° in negative 0.14 seconds. And it becomes downright baffling when we see that the motor turns 60° in zero seconds! Would it be possible to change the table so that the velocity is given in degrees or rotations per second?
 

Mark Narvidas

Joined Jan 28, 2016
6
RK37,

Thanks for your thorough feedback. I will address/action all the points on Saturday (10 September) in detail. In the mean time if you come across anything else do not hesitate to include it for review.

Mark
 
Hi again,

I have addressed all of the points raised. Thanks again for taking time to review my article. A few comments below:

1. Good observation, I have changed wording to "...environmental variables..." rather than using the temperature example which did not make sense as you've explained.

2. Changed the list to reflect the image. The steel wool works wonders when used for cleaning the tip of the soldering iron.

3. I have meant exactly what you pointed out, however my wording might have been ambiguous so I have changed it.

4. & 5. are valid points - addressed as per suggestions.

6. The sec/60degree unit, as silly as it's expressed, appears to be a standard as far as Hobby RC Servos go. However a reader less involved in the field might find it weird, just as you pointed out, so I have changed the units to Rad/Sec to make it more universal.

If you have any additional comments, I'd appreciate if you let me know below. Thanks!

Mark
 

Thread Starter

RK37

Joined Jun 26, 2015
677
Mark,

Thanks for the feedback and revisions. I appreciate it.

I think we still need to update the value given for the rotational velocity. Previously you had 0.14 seconds per 60 degrees. That comes out to 0.14/60 = 0.0023 seconds per degree. If we invert the unit, we have 1/0.0023 = 428.57 degrees per second. If we convert this to radians, we have 7.48 radians per second, as opposed to the current value of 0.134 radians per second. Does this calculation seem right to you?

By the way, I checked one servo page and I noticed that the strange seconds/60 degrees unit was used. So I can see why you used it. However, AAC is trying to appeal to a more professional/university/non-hobby audience, so in our case it is better to use a more "formal" unit such as radians per second or rotations per second.
 
Mark,

Thanks for the feedback and revisions. I appreciate it.

I think we still need to update the value given for the rotational velocity. Previously you had 0.14 seconds per 60 degrees. That comes out to 0.14/60 = 0.0023 seconds per degree. If we invert the unit, we have 1/0.0023 = 428.57 degrees per second. If we convert this to radians, we have 7.48 radians per second, as opposed to the current value of 0.134 radians per second. Does this calculation seem right to you?

By the way, I checked one servo page and I noticed that the strange seconds/60 degrees unit was used. So I can see why you used it. However, AAC is trying to appeal to a more professional/university/non-hobby audience, so in our case it is better to use a more "formal" unit such as radians per second or rotations per second.
Clearly my mental maths failed on me! That's correct, the value should be 7.48 rad/sec - I've just changed it on the article as well.

Regarding the sec/60deg unit, I think it's used simply because most servos won't be able to complete even a full rotation, hence one could argue that RPM or Rad/Sec is less applicable. Irrespectively of that, because article talks about making servo continuous rotation your suggested addition drives the point home even better, so I'm happy we've changed it.
 

Thread Starter

RK37

Joined Jun 26, 2015
677
Clearly my mental maths failed on me! That's correct, the value should be 7.48 rad/sec - I've just changed it on the article as well.

Regarding the sec/60deg unit, I think it's used simply because most servos won't be able to complete even a full rotation, hence one could argue that RPM or Rad/Sec is less applicable. Irrespectively of that, because article talks about making servo continuous rotation your suggested addition drives the point home even better, so I'm happy we've changed it.
Thanks for making that change, Mark. I'm glad we're on the same page with the math.

Now the strange servo unit makes more sense--a typical rotational velocity unit would be somewhat out of place because the servo can't make even one full rotation, much less rotate continuously. But as you say, it's good that we're using the new unit because your modified servo will be able to rotate freely.

I'm going to move this one to Ready for Publication.
 
Top