POV-Ray : Newsgroups : povray.off-topic : Astonishment : Re: Astonishment Server Time
7 Sep 2024 17:13:25 EDT (-0400)
  Re: Astonishment  
From: Mike Raiford
Date: 15 Jul 2008 08:36:19
Message: <487c99c3@news.povray.org>
scott wrote:

>> Or why do you think software has bugs and holes? :)
> 
> Because usually it's not worth the effort preventing them getting out?  
> It's not because it's impossible.  Compare software released for 
> home/office use with software released for running cars, or factories, 
> or power stations, or planes, or space ships.
> 

You don't think there's bugs in these? ;) NASA's space shuttle is an 
exception. I read an article somewhere that before any program change is 
made, there are meetings upon meetings. I'm sure there are glitches in 
the firmware of cars, you probably don't notice, or think its something 
mechanically wrong.

I can tell you automated manufacturing equipment does, in fact, have 
bugs. I've seen serious software errors in the FIRMWARE of servo 
drives*. Some of which are used in such applications as airplanes. No 
worries, though, most of the bugs can be worked around and the main PID 
loop seems to do what its supposed to. Mostly. I've seen bearings in our 
equipment crushed because a drive didn't stop pumping current into the 
motor when it ran against a hard stop. Entertaining -- it ramped the 
current up high enough to fry the motor coils. Oops. I've personally 
stripped toothed belts bare because of a software error. Had I had the 
blade running (I never do in testing, I always have the blade removed) I 
would have run a saw blade into a steel I-Beam. I can't even imagine the 
consequences for that. I don't think it would be pretty.

There's a reason equipment has a hard-wired emergency stop button that 
cuts the power to the drives and motors.... Oh, and most avionics have 
direct linkage to the controls. The drives AFAIK are only used in 
autopilot, so that can be disengaged if something goes awry.

* For the curious: A servo drive is generally a signal generator and 
amplifier used for driving a servo motor. The signal is controlled by a 
feedback loop (PID - Andrew should know what this means, Proportional, 
Integral, Derivative ) the general case is the greater the error, the 
more current fed to the motor. As the error decreases, so too does the 
current (P), the motor will eventually settle into position smoothly 
(I,D). Thankfully, the heavy calculus lifting is done in the drive's 
firmware all the software has to do is give it the factors found from 
running a tuning routine, then feed it position, velocity or torque 
(depending on your goals) It will then use the PID loop to achieve the 
desired value. Obviously there are limits. The drive may allow a few 
counts either way on position to be "in position" it may allow some 
slack in velocity, or may allow some difference in applied torque. There 
is of course a maximum current the motor can handle for short bursts. A 
maximum amount of error for a certain amount of time the drive will 
tolerate before it gives up, powers down the motor and reports a fault. 
The drive described above didn't do this. The error was right below 
maximum, but far enough to pump the full amount of current into the motor.

I've had some fun with servo drives in a "lab" setting. Usually the 
motor will have a toothed wheel on it, so I can see what its doing. Once 
the motor is in position, if the drive is still on, you can grab the 
wheel and turn it, and depending on the tuning parameters it can have a 
very soft feel, or hard feel. It reacts almost like a rubber band or a 
spring. The more you turn it out of position, the more it fights you. 
Even small motors have an amazing amount of torque. With low enough 
current limits, you can turn the motor past the maximum position error, 
and have it "break free" You can also grab it while its turning, hold it 
and feel it stop trying once the error gets past a certain amount.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.