Showing posts with label FEMM. Show all posts
Showing posts with label FEMM. Show all posts

Sunday, September 25, 2016

A MFL inspection demo kit

Long ago in the distant land of late-semester grad school crunch time, an expeditious self-variant thought it was a good idea to voluntarily adopt a course project requiring research and fabrication of equipment.  While I can barely recall the scent of ambition, that physical device was one of its few remaining tangible products.  Let us go back in time for a moment...


With a cluster of retirements happening in the department at the time, I was in the last semesters of my MSc path with no choices for courses that would meet requirements.   After talking with one of the ME professors I'd been working with on a research project, I wound up surfing in a soft overview course on NDT methods.  As the only EE student in a ME course full of ME students, I felt compelled to take every opportunity to see if my own background could bring something fresh to the body of student work and discussion that took place. 

The last course project had quite a bit of latitude, but the basic idea involved a presentation based on a literature review, case study, or physical demonstration pertaining to a selected NDT/NDI method.  I opted to present and demonstrate a basic magnetic flux leakage (MFL) test.  While it would suffice to dig up some mothballed lab equipment and then make a PPT, I intended to make my own equipment and defect samples.  This was an opportunity to adopt an easy project that spanned a range of fun task areas.  It had everything from experimental component characterization, magnetostatic FEA, circuit design and simulation, programming, electronics fab, and machining.  I'd been burned out on project work in Excel and Simulink, and the chance at application and variety was appealing.

The concept of MFL testing is simple.  Local changes in the per-unit-length permeance of a sample can be detected by subjecting the workpiece to a static magnetizing field.  Near-surface flux is increased local to any defect which decreases the magnetic cross-section of the flux path.  All one needs is something to produce a magnetic field in the work, and something to sense the field near the surface.

 

While MFL sees more use in larger-scale applications and applications where the magnetics are purpose-built for particular surface geometry, my requirements meant I had a lot of latitude to make design choices that would otherwise make an impractical commercial product.  To make the equipment low-power and simple, I opted for permanent magnet excitation.  While this meant I didn't have the convenience of easily reducing excitation to ease manipulation or to suit different material thicknesses, I did incorporate the ability to incrementally add or remove magnets.  This makes the probe a bit difficult to use at times, but that's acceptable.

Since I'd been spending a lot of time doing magnetostatic sims in FEMM, I figured I'd play with it and get an idea of what I should expect.  With an approximate model, I could get an idea how much excitation I'd need for a given sample defect.  I could decide on pole and sample dimensions and I could figure out what the flux densities to expect at the sensor for a given selection of magnets. 


I figured the simplest way to sense near-surface leakage flux was to provide a shunt path through a hall effect sensor.  Some small steel pole pieces could serve as my low-reluctance path, and I picked a commutation sensor out of a small BLDC motor.  While I had plenty of these used sensors, they were all unidentifiable SMT parts for which I had no data.  I simply looked at the application I'd taken them out of and decided on a similar method of use.  In most of these 3-phase BLDC motor drive applications, the three sensors are driven in series from a fixed (5v) supply with a single series resistor.  The motor drive IC has three differential sense inputs and does everything else.
  

To characterize the sensor response to an applied field, I borrowed a disused magnetometer from storage at the physics department and set up a test fixture using a modified transformer frame.  Still using a simple series resistor and fixed voltage source, I set the sensor up with an excitation current equal to what it would have in its original application.  I placed the sensor and magnetometer probe in the middle of the fixed core gap and incrementally energized the device with DC.  If I hadn't been a dumbass at the time, I'd have realized that magnetoresistive effects meant that current was actually varying with flux density and possibly reducing response linearity.  While a current-regulated design might have benefits, I didn't think about it at the time.  I wasn't out to make absolute measurements of fields; all I needed were roughly linearized relative measurements.  For all I know, these sensors may have never been rated beyond 50mT or 100mT.  I took what I had and ran with it.



For sake of dirty simplicity, I made a LUT and configured an ATTiny25 microcontroller to sense the differential input and drive a meter via PWM.  I could have used a proper differential amplifier or even built a linearizing differential amplifier, but I didn't.  If I had used an instrumentation amplifier, I probably could have had the sensitivity to work with less magnetic excitation.  The microcontroller allows absolute reading of sensor flux density or it can be set into a convenient 'relative' mode where a baseline reading can be zeroed out.  This essentially stretches the scale and exaggerates meter movement when scanning an area.  Although I'm pretty sure I did a board layout for it, I ended up cobbling it together on nasty old perfboard from junk components.  The pot is for setting the meter range.  The meter is from an old rusted tacho/dwell meter I found on a scrap pile.  While the original face marked in RPM was coincidentally correct for reading in Gauss, I kept forgetting which of the multiple scales to use.  Also, fuck CGS units.  I simply made a new scale with tiny ass text so that I'd have something to squint at.


The probe was fabricated out of cold-rolled 1018 flat stock.  The straps are aluminum, and the shanks of the tie-bolts are unthreaded so as to help maintain total yoke permeance.  The sensor is soldered to a small bit of FR4 with a notch cut in it so that the narrow faces of the pole pieces can abut the sensor package directly.  


The sensor assembly is encapsulated in epoxy resin.  One of the yoke poles was lined with kapton tape so that it could be freed from the cured epoxy.  In this way, it can be pulled into alignment when the magnets are installed. Yes, that's an old PS/2 cord.


The operating faces of the yoke and sensor poles were all ground coplanar and then hand-lapped.  Although it was really unnecessary, I also dressed the top faces of the yoke poles and the shunt bar.  Everything is square with little chamfer, which makes it very uncomfortable to use considering how ridiculously strong it is. Due to their much higher intrinsic coercivity, NdFeB magnets don't really need a keeper shunt for the same reason an AlNiCo magnet would; still, it is needed to keep the probe's stray field from being a hazard to other equipment when it's not in use.  When dealing with thick plates, placing the probe or removing it from work surface can be made easier if the shunt is kept in place temporarily.  A design utilizing a diametrically-polarized cylinder magnet as in a switchable test indicator mount would obviate the need for a loose shunt bar, but It would complicate pole geometry, and i wasn't trying to make a marketable product.


The test sample was made from 1x1/4" 1018 bar and includes a slot, a set of flat-bottom holes, and simulated crack features made using rod to plug cross-drilled holes.  All these features are easily detected with the probe on the unmodified face of the bar.  Even the 1/16" deep FBH is clear as day when probed.


After presentation, I really had no use for the thing.  While I probably should have just donated it for class use, I ended up keeping it.  Occasionally, I'll use it to check the air compressor tank or something.  It's not really suited for measuring against curved surfaces, but it works well enough.  Probably the biggest issue is that I can't expect work geometries to be known or consistent.  Every test subject will be unique, and the most I can hope to find is a variation in permeance.  Without a chance to calibrate the process to a particular application profile and geometry, I can't really quantify much.

For sake of this blog post, I dragged an old air compressor tank off the scrap pile and mapped the bottom of the tank.  The paper acts as a positioning guide and it also allows the probe to slide more easily over surfaces without abrasion on rust or stiction against paint.  The map only covers one side of the tank because there's a weld seam on the other side of the centerline.  It's enough to make the point.  There's a 4" wide band of corrosion inside the tank, beyond which the leakage readings are almost constant save for variation caused by seating against a curved surface.



Of course, there are other ways to detect tank damage that's this bad.  In fact, the change in permeance is large enough that it can be detected by sliding a similarly strong magnet along the surface and feeling the change in attraction force.  Of course, it would have to be a strong pot magnet or something designed to make a closed low-reluctance flux path.

Maybe someday I'll come up with a cool job for it to do.  Until then, I guess this is about all the glory it'll get.

Monday, June 15, 2015

Measuring thermal resistance

In the course of all the dumb things I do with electronics, I have often been forced to ask if some on-hand adhesive would be adequate for mounting heat sinks.  Often this is a matter of ad-hoc retrofitting rather than better design practice.  An example might be putting small milled heat sinks on a Raspberry Pi or replacing a small GPU heat sink with a trashy integral fan.  Maybe I need an insulating washer for a Multwatt-15 package, and all I have is mica for a TO-220.  Will an aluminized mylar antistatic bag work well enough?

"Don't worry, this is just temporary" --me, ca. 2009

Beyond that, what about more typical design guidelines?  Figures for typical case-sink thermal resistance for a common TO-220 package vary widely.  Whose numbers should I have confidence in using -- or should I just assume the worst numbers I can find?  That hardly seems better than guessing.

Asking the internet for the thermal properties of anything other than a legitimate TIM is pretty much futile.  Even those figures listed for half of the common materials at the bottom of the market are probably questionable anyway.  Is that $0.99 white goo from ebay really 1.5 W/mK?  After stumbling on enough clickbait advertisements non-quantitative or questionable computer cooling articles or product reviews wherein heat flows are measured in minutes of videogame, I figured I might as well just do it myself.  That's not to say my efforts were all that accurate.  Consider this more as an inexpensive method in development than a set of authoritative results.


So how to measure thermal resistance of a TIM?  There are a number of ways. A smart way might be like the above image.  Say we use heated and chilled volumes of water pumped through heat exchangers.  If we can measure the inlet and outlet temperatures on the heat exchangers, as well as the volume flow rates on either side, we can quantify the heat flow that actually passes through the thermal interface.  Sure, heat is being being lost in the hoses and into the air, but so long as we know the temperature differentials and the mass flow rates (implied by volumetric flow), we can eliminate those unknowns.  This could be a static configuration, or maybe we could switch the inlet from chilled to heated and extract the thermal resistance from the transient response.


That's a really cool idea, but I don't have a bunch of flow meters and pumps and I don't feel like putting that together just to test some goo once in a while.  Certainly, there are a lot of other methods that are all documented and standardized.  It seems that in most cases though, fabrication of either heaters, sensors, or interface surfaces becomes difficult, expensive, or at least tedious.  I don't want to have to hand-finish any more surfaces than necessary. 

Let's try something that's cheaper lazier simpler.  Consider the above diagram involving an electric heater and a heat sink.  In this configuration, it's simple enough to find the input heat flow, but how can the flux through the interface be quantified if the cold side is just a heat sink and ambient losses are unknown?  My primary assumption is this: if the stray losses on the heater can be made negligible, then the input power is approximately equal to the heat flux through the TIM.  Then, for the fixture area:


Maybe that's a bit too hopefully simplistic.  Maybe we can try to come up with an approximate loss ratio by using a simulation model.  Or better yet, if we can run the heater in the absence of the heat sink, we can get a rough figure for the heater-ambient thermal resistance, i.e. the resistance of the stray loss path.  If that information were available, the resistance of the conduction path then becomes:


By the time the numbers congeal in my mind, I already have visions of an assembly method.  Before we bother getting out of the chair, let's see if any of this seems reasonable.  With a few minutes of effort in FEMM, I threw together a questionable simulation of such a fixture.  The primary flaw is the fact that I didn't model any sort of convection transfer at the solid-air boundaries.  I just set a fixed boundary temperature at the extremities of the heat sink. It'll be close enough.  There are only a few things I want to know here:
  • What is the temperature gradient like around the interface?  
  • Will sensor placement be critical? 
  • Is the flux density uniform across the interface plane?
  • What's a ballpark figure for the stray losses from the heater?
Along with the goofy boundary condition selection, the axisymmetric model often forces approximations of shapes that aren't cylinders coaxial to the z-axis.  The heater resistors are modeled as a single cylinder with a geometry that approximates the degree to which cross-bored holes will occlude the cross-sectional area of the heater bar.


These quick checks suggest that for a relatively small heater power (23W), only a modest amount of insulation should be required to keep losses quite low (1-5%), even when jacket temperatures are at ambient.  So long as attention is paid to geometry, sensor placement shouldn't be terribly critical either.  Let's cobble together some rickety bullshit!

Heater bar, resistors, thermal overload, spring, scrap aluminum
Milled CPU heat sink
Heater bar and spring guide in insulator case (nested peanut butter jars)

The assembly is fairly self-explanatory.  The heater bar is machined from aluminum; the heat sink is fabricated by modifying a CPU heat sink.  The frame is assembled from scrap aluminum.  The heater has an integral spring and the compression screw uses a stop so that pressures are repeatable.


The resistor leads are insulated with wire insulation trimmings.  The resistors are bonded to the heater bar using STARS-922 "heat sink plaster".  This is a semi-setting heat sink compound.  It congeals within a few minutes, but doesn't form a tough film like an RTV silicone would.  This makes it easier to replace parts if necessary.  At the time, I was not sure of the properties of this material, but I wanted to be able to press the resistors out if necessary.  Besides, experimentally determining unknown properties was kind of the whole point behind building the fixture, wasn't it?

WOULD YOU LOOK AT ALL THAT STUFF

Once things are together, there are a couple things we can try to test.  The generic ebay thermocouples can be characterized to eliminate any static offsets they might cause.  The heater losses can also be checked to some degree.  If the exposed face of the heater is insulated, the bar can be gradually brought up to a nominal operating temperature to find its resistance to ambient.  Combining this figure with preliminary TIM tests suggest that stray losses are well within 3%.  For a good thermal contact such as a metal-filled grease, stray losses should constitute only about 1-2% of the input power.  It's nice when simulations jive.  With thermal resistance of the loss path known, the more accurate method for calculating interface resistance can be used.

We can also try to figure out the spring constant and set the stop at a reasonable interface pressure.  Due to a mismeasurement, I ended up adjusting this in the middle of things; not everything is measured at the same pressure.  For the most part though, the differences are negligible.  As a reference, typical TO-220 mounting forces from Philips suggest a pressure range of about 80-600 kPa. I'm testing at the low end, but I'd have to use different springs and brackets to go much higher. 

I've tested a few things so far, and the results are fairly expected.  When translated to suit transistor packages, the resistance figures seem appropriate.  What's interesting (and disconcerting) is that the areal resistance (K*m^2/W) doesn't quite jive with any of the specifications for the products used.  Of course, they're generic ebay grease, so I'd sooner accept the experimental result.  The kapton tape is the film alone with its adhesive removed.  The grease used with the insulator films is the ZP brand white grease.  Permatex Ultra Grey has the highest filler content and density of any of Permatex's RTV gasket products (afaik).  The orange high-temperature product is one of the lowest-solids materials they offer. 

I could've made a table, but nnnnope
Thermal resistances when translated to common semiconductor packages

I'd like to try to work out some volumetric conductivity (W/(m*k)) figures, but I've had difficulty getting repeatable results.  I need to come up with a better method of determining or enforcing TIM film thickness.  I'm not that terribly concerned with volumetric conductivity, though.  For most electronics applications, I feel that it makes more sense to leave the otherwise unknown film thickness buried in the metric. 

I'd like to try testing a bunch of other things, but these are just the common sorts that I had on hand.  If anyone wants me to test something, let me know.  Hah! Just kidding.  I know nobody will ever read this.  In case you don't exist, here are some perishable links to the materials used:
It should be noted that some materials like the metal-filled greases and acetoxy-cure RTV silicones have electrically important properties that bear consideration.  Some day I might show my method for testing that.  I also hope to have some of the mechanical properties of the STARS-922 tested soon as well.