1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

What tools do control engineers use?

  1. Nov 6, 2012 #1
    Hey everyone-

    Does anyone have any idea what kind of software/computer languages/tools a control systems engineer would use on a daily basis?

    I know 'control systems engineer' is a vague title- I'm looking specifically at like aircraft flight control systems (networks of mechanical and hydraulic actuators, electric motors, and other hardware to control ailerons, rudder, flaps, and other control surfaces, landing gear, etc...)

    In universities they teach a lot of MATLAB in the controls-oriented classes, is this true of industry too?
  2. jcsd
  3. Nov 6, 2012 #2
    It depends upon what kinds of control systems you work on. MATLAB can be quite useful, but there is also quite a bit of work to be done in very routine areas such as HVAC design, Generation turbines, Water treatment, petrochemical refineries, and many other places.

    Most of these jobs are relatively hands-on and very straightforward. Yes, I took all that fancy math and I can still use it. However, as my mentors told me: If you're using more than a book and a scientific calculator to get your primary design you're probably doing something wrong. Someone has done these calculations before you came along and it is best to use their work, unless it is known to be wrong or deficient in some way.

    The vast majority of my career has been like this. I have applied some heavy math on occasion, but those instances are few and far between.

    Even in complex fields such as fluid dynamics, there are usually response curves that follow exponential or logarithmic functions. There are very few cases of abstract non-linear matrices. If you find yourself in such territory, take a good hard look around and make absolutely certain that you're not re-inventing someone else's work. You will probably find an appropriate approximation or "plant equation" that can adequately describe what you will need to do.

    The reason I discourage new engineers from doing what they learned in school is because it is easy to make mistakes and overlook a critical element. At the energies and expenses involved here you REALLY do not want to make mistakes. I'm not suggesting that we forget these fundamentals, but I am suggesting that we look to leverage the work of others that has already been proven.

    So you ask what tools we use? I start with a pencil, paper, and a calculator. When I have a concept, I'll refine it with more detailed calculations. However in most cases, I won't go in to heavy analysis unless there is a very specific reason for it. Situations like that exist when designing for situations that have never been explored before. Very few other situations need that sort of attention.

    Remember, the design doesn't need to be perfect. It merely needs to be good enough. Almost nobody is willing to pay for "perfect."

    This is the reality of the engineering world. Your professors can refine a design so that it is nearly ideal for a very specific range of conditions. However the real world has unexpected conditions, sloppy sensors, poor maintenance with wear and tear, and you'll need to include some slop in your model. When you acknowledge the degree of slop that exists in most applications, you'll realize that it is rarely ever worth working past three digits of accuracy in most cases.

    Again, the most important tools are a pencil and a brain.

    I've been in this career of controls engineering for nearly 27 years. It is exciting, interesting, infuriating, funny, and occasionally even dangerous. I recommend it highly even if you don't often get to play with all the cool math toys they taught in school.
  4. Nov 6, 2012 #3
    At my company, controls engineers use C#, LabView, and ladder logic implemented on PLCs. The application is typically machine control for manufacturing; slides, motors, data acquisition and the like. As you say, controls engineering is very broad. This is only one example.
  5. Nov 6, 2012 #4
    What do they use C# for, in particular ?
  6. Nov 7, 2012 #5
    I'm working on a machine now where the HMI and the control logic are implemented in C#.
  7. Nov 7, 2012 #6
    Matlab can be used for prototyping and testing.

    Implementation in aerospace is typically going to occur in C, C++, or Ada.

    I have not personally seen C# in aerospace controls applications because most of those applications are safety critical which has a whole set of requirements for the coding, compiler, operating system, etc. These requirements preclude Windows and therefore C#. Instead you end up seeing RTOSs like VxWorks or Integrity being used.

    Some of the low level hydraulic control like for flaps might use PLCs, never worked at that low of a level so not sure.
  8. Nov 7, 2012 #7
    Brrrrr i see why aeroplanes crash! :P
  9. Nov 8, 2012 #8
    Just so that you know, I am also an instrument rated private pilot. I have been licensed since the late 1980s.

    Real machines get dirty. They wear. They require adjustments and they don't always get expert care.

    If you do not adjust your designs for those conditions so that the process or machine degrades gracefully; then yes, there will be a crash. However, wise engineers realize where the wear and tear will come from, they realize what adjustments need to be made and what tools may be used.

    If you think that these things remain as pristine as they were when the left the factory, you are gravely mistaken. If you specify an exquisite design that must be inspected with a micrometer every morning, you're doing it wrong.

    The real world ain't like that.
  10. Nov 9, 2012 #9
    Excellent post!
  11. Nov 10, 2012 #10
    Jake, thanks so much for the perspective! You're obviously extremely experienced in these matters.

    Thanks to everyone that posted, I really appreciate it.

    This makes a lot of sense, I'm going to have to get a better idea of what the specific position will require first, but I think I'll start learning some sort of higher-level computer language, like C or Python.

    Thanks again everyone.

    Take care
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook