Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/09/06 17:50
Read: times


 
#111772 - gonna get a PhD, or a lobotomy
Responding to: ???'s previous message
Erik Malund said:
I have had the "pleasure" of inyetviewing/working with recent Phd graduates, and, in all cases, I would rather work with a techical school graduate with 25 years of experience.


I had the misfortune of having to fix an 8051-based temperature-control board designed and programmed by a guy with a Ph.D. in controls. Very simple PID loop with a 9600 bps RS-232 connection to a host computer. The host could send ASCII commands (like temperature setpoint, enable/disable) and get status back (current temperature, loop error, etc). Basically, a timer set the interval at which temperature samples were taken (12-bit ADC), the loop was updated and a new heater value was written to a 12-bit DAC.

The first problem was the communication seemed to fail. Characters would get dropped, etc. The PhD said, "it must be line noise or something." Yeah, right: the serial cable was about two feet long.

Delving into his code, some things became apparent. First, whenever he got the timer-tick interrupt, he completely recalculated the loop variables. Then, as part of this, he was converting the 12-bit ADC values to some long fixed-point representation of temperature in degrees Celsius! His loop worked on this value, and the result was a heater power in watts, which then had to get converted to a 12-bit value for the DAC. All in the ISR! So, no wonder he was dropping characters at the serial port--he was spending too much time in the ISR!

So I asked what's with all the conversions, and he said, "well, it wouldn't work with doubles, it seemed to crash, so I had to create this fixed-point representation ..."

Yep, you guessed it. He'd tried to take his Matlab/Simulink model, which of course used floating-point values and worked in the natural units of temperature and power, and spit out a C program that probably ran fine on a PC, and execute it on the micro. He ran into the issue with floating-point libraries being non-reentrant but didn't realize what that meant. Then he ran into execution-time issues because he was an idiot. Too much theory, no practical experience, and worse, an arrogant attitude.

Needless to say, I re-wrote the whole thing. The loop itself was model in integer ADUs instead of degrees, no ridiculous conversions necessary. The timer-tick ISR read the ADC and set a "got new temperature reading" flag which the main program recognized, and then updated the loop and wrote a new heater value to the DAC. Ran fine.

(The whole thing should have never been built in the first place .. just buy a Lakeshore box and be done with it.)

-a

PS: one former colleague got his PhD. We did a bunch of projects, where he did the theoretical stuff and I actually built the hardware. He wasn't allowed to touch a soldering iron. This arrangement worked well.

List of 22 messages in thread
TopicAuthorDate
i suggest you read            01/01/70 00:00      
   Flawed article            01/01/70 00:00      
      men only            01/01/70 00:00      
         you don;'t know Jack            01/01/70 00:00      
            you want a laugh?            01/01/70 00:00      
               Tar with the same brush            01/01/70 00:00      
                  i dont think so            01/01/70 00:00      
                     grades???            01/01/70 00:00      
                     Snobbery            01/01/70 00:00      
                        re grades            01/01/70 00:00      
                           Graduates            01/01/70 00:00      
                              yes, but            01/01/70 00:00      
                                 Value of Education            01/01/70 00:00      
                                    It is sad, but            01/01/70 00:00      
                                       Cost of Education            01/01/70 00:00      
                           gonna get a PhD, or a lobotomy            01/01/70 00:00      
                              lobotomy? do you like the idea?            01/01/70 00:00      
                              just to clerify            01/01/70 00:00      
                                 I'm glad you said that ...            01/01/70 00:00      
                           Likewise ...            01/01/70 00:00      
   Correct by construction            01/01/70 00:00      
      i do, follow much of it            01/01/70 00:00      

Back to Subject List