Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How do you usually approach a problem?

  1. May 25, 2013 #1
    Hi:


    Me and my team are currently building a 3d printer for a senior project, and throughout this project I have noticed that we often run into problems with calibration, drivers, etc. we find this troublesome because we often find it hard to identify the source of the problem.


    So my question is , how do you usually identify a problem? instead of thrusting into different direction blindly, how do we effectively deduce the source of the problem, I often just try taking off parts one by one and see when it works and when it does, but I am only amble to narraow down problems so far because if you remove part A, things may run smoothly but it's not clear rather or not part A is the source of the problem because it could be that part B is causing the problem in part A (i hope im making sense).


    so just in general, how do you guys go about identifying a problem?


    edit: I am talking about problems/bugs in general in engineering, including mechanical (which is what I had trouble with the most).






    thanks
     
    Last edited: May 25, 2013
  2. jcsd
  3. May 25, 2013 #2

    jedishrfu

    Staff: Mentor

    Programmers often run into this problem of trying to locate a bug. We do it by adding print statements at strategic points and see whats going on. Say we have data being processed by 5 different modules A, B, C, D, and E and we find that module E output is wrong. We run the program again focusing on first module C (via prints) if the data looks right then problem must lie in D or E so we look at D (because its in between) if its output is wrong then we know the bug is somewhere in D. We repeat the strategy as we look at the code in D and find the bug.

    Similarly in electronics we would use a volt meter or oscilloscope to look at circuit signals in key spots until we find the problem. Electronics debugging is a real art since you cant just pop every component out to test it but instead must understand something about the circuit and how it works.
     
  4. May 25, 2013 #3

    Bobbywhy

    User Avatar
    Gold Member

    hihiip201, As jedishrfu mentions above, one must understand the circuit in order to troubleshoot a problem. This means a complete and absolute knowledge of the system from the simplified functional block diagram level to a detailed theory of operation. If you don't know what these terms mean you've a long way to go!

    Then you need basic test equipment like a multimeter and oscilloscope, and you need to know how to use them correctly. More specialized systems require special test equipment.

    Here are two guides for you to use to assist you to prepare yourself:

    Elements of System Level Troubleshooting
    http://www.allaboutcircuits.com/videos/5.html

    here’s a textbook that costs about US$82.00:
    Troubleshooting Electrical/Electronic Systems
    3rd Edition
    By: Glen A. Mazur, Thomas E. Proctor
    http://www.atplearning.com/troubleshooting-electricalelectronic-systems-p14.aspx [Broken]
     
    Last edited by a moderator: May 6, 2017
  5. May 25, 2013 #4
    Sorry guys I didn't mean to lead you guys in the wrong direction, but with problems encountered in engineering in general, not only electrical or computer engineering, but mechanical driving, how would I go about identifying problems?
     
  6. May 25, 2013 #5

    Bobbywhy

    User Avatar
    Gold Member

    Start by trying this:

    http://en.wikipedia.org/wiki/Fault_detection_and_isolation

    On the Wiki page study the "See Also" items, and the references at the bottom, and also, do a Google Search using the terms "fault isolation" for many other examples.
     
  7. May 25, 2013 #6

    Danger

    User Avatar
    Gold Member

    My first approach is always to just take the thing apart down to its smallest bits and then put it back together. If it still doesn't work, then it's time to get creative. A lot of the time, though, that initial rebuild will knock loose whatever was causing the problem.
     
  8. May 25, 2013 #7

    Bobbywhy

    User Avatar
    Gold Member

    Example: An airborne radar system in a fighter aircraft may have a malfunction, maybe mechanical, maybe electrical. It is up to the maintenance technician or engineer to discover which part is faulty, replace it, and test the system to prove the fault has been removed and the system functions 100% correctly again.

    Since the radar system consists of about TEN replaceable subassembly units the worker could begin by changing out one unit with a known good unit and then testing the system. If the testing shows that the fault remains, then she knows that the fault was NOT in that unit replaced. Now she may continue this "shotgun" approach, as we call it, and just continue to change out subassemblies until finally one fixes the fault and the system tests A-OK.

    Or, she could use the technique described in my post number three (a complete and absolute knowledge of the system from the simplified functional block diagram level to a detailed theory of operation). Knowing how the system functions (mechanical or electrical) she can to deduce from the failure symptoms WHICH subassembly is likely to be causing the fault, then change that subassembly, and retest to verify.
     
  9. May 25, 2013 #8

    Danger

    User Avatar
    Gold Member

    That is always my second approach if my first doesn't work. Incidentally, there is a peculiarity regarding cars in this regard. Every time that you disassemble and reassemble an automatic transmission, there is one part left over. No one knows what it is, and the thing works better without it. :confused:
     
  10. May 25, 2013 #9

    jim hardy

    User Avatar
    Science Advisor
    Gold Member
    2016 Award

    General approach is "draw an imaginary circle around problem and gradually tighten that circle".

    Programmers will tell you fastest way is a "Binary Search", isolating the trouble into one half or the other of your imaginary circle.

    So in the ten board example given above:
    one could swap half the boards from a good system; that tells you which half contains the bad board.
    If that cures it put half the original ones back,
    and continue to isolate it to one board that way.

    That should isolate one of ten boards in maximum of four tries.
    But one is seldom so lucky.
     
  11. May 25, 2013 #10

    jedishrfu

    Staff: Mentor

    That's not how we'd do it. That's how an engineer imagines how programmers do it. We don't touch hardware due to union rules and wait for the engineer. :-)
     
  12. May 25, 2013 #11

    Bobbywhy

    User Avatar
    Gold Member

    This link from post number three offers this:

    “Some of the strategies used in troubleshooting include block diagram thinking, signal tracing, signal injection, diagnostic software, observation and substitution.

    Observation; the most important tool in your troubleshooting toolkit is the power of observation- when we say ‘observation' this is all of the senses, you can see but you can also smell, and you can also hear, and often times in a diagnostic system it is not always what you see, sometimes it's what you smell that tells a lot. Those of you that have been around in this business you know there that's smell of burning components that tells you something is very wrong. Sometimes even you'll hear sounds that shouldn't be there.”

    Elements of System Level Troubleshooting
    http://www.allaboutcircuits.com/videos/5.html
     
  13. May 26, 2013 #12

    jim hardy

    User Avatar
    Science Advisor
    Gold Member
    2016 Award

    Indeed, i have high regard for programmers . In one way you guys are quite fortunate - software doesn't break, hardware does.

    But what is a simple hardware guy like myself to make of this?
    http://en.wikipedia.org/wiki/Binary_search_algorithm

    You're right - i can only imagine. :)
     
  14. May 28, 2013 #13
    If you want things as general as they get, a system is a collection of components with inputs connected to outputs that define a path of logic. To troubleshoot an anomalous output, check the inputs of each component in the path. This means you should at least know what each component does, i.e. what outputs should be generated for a specific input. If you check the inputs and they're wrong, then something is wrong up the line somewhere. If the inputs are right and the outputs are right for that component, then check that component off your search list. If the inputs are right for that component and the outputs are wrong, then you have a bad component and you need to replace it or search within that component for bad sub-components.

    That having been said, the differing methods of problem solving are really based on how well you know your components and your system. If you don't know anything about the components or system logic except what the "right answer" looks like, you'd probably use the "shotgun" approach (what I do when I work on cars :-) ). The "take apart a working system" method usually is used when you don't know what the individual components really do, but you know the general operation of the system. Individual component testing is what you would do if you understand your components and system. If you practically know how everything was built/created, then you can even do sub-component testing.

    Of course, any mixture of these problem-solving methods will be employed depending on your knowledge of components. For example, a programmer working with an API knows his/her code really well, but has only as much knowledge about the inner workings of the API calls as the available documentation contains and their own testing. This kind of situation can also occur in mechanical and electrical systems as well, since you typically buy components from vendors that contain specs for their products, but you generally won't know the intricate details of the product.
     
  15. Jun 6, 2013 #14
    tagging this topic to read later
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: How do you usually approach a problem?
Loading...