referring to the drawings , wherein like reference numbers correspond to like or similar components throughout the several figures , and beginning with fig1 , a solenoid monitoring system 10 includes a solenoid device or a solenoid ( s ) 18 connected to an electric motor ( m ) 22 or other solenoid - controllable device , e . g ., a vehicular starter motor , a motorized valve , a robot , etc . having an output shaft or member 23 . motion of the member 23 can be harnessed as needed to perform any of a variety of useful work . the solenoid 18 is of the electro - mechanical type , and therefore includes one or more wire coils 20 surrounding a moveable piston or plunger 28 , with the motion of plunger 28 indicated in fig1 by the arrows a and b . the solenoid 18 can be configured as either a single coil or a dual - coil solenoid as described above without departing from the intended scope of the invention . the system 10 includes an electronic control unit or controller ( c ) 50 and a pair of sensors 16 a , 16 b , with the sensors 16 a , 16 b being adapted for measuring , sensing , detecting , or otherwise determining or collecting a predetermined set of electrical values , and for relaying the values to the controller 50 . the solenoid 18 can be electrically connected to a battery ( b ) 12 or other suitable electrical energy supply , and is in wireless or hardwired communication with the sensors 16 a , 16 b to receive values corresponding to the battery voltage ( v b ) and the solenoid current ( i s ), respectively . a temperature sensor 16 c can also be provided for use in adjusting certain measurements as set forth below . depending on the particular system in which the system 10 is used , the battery 12 can also be electrically connected to one or more accessories ( a ) 21 . for example , if the system 10 is used in conjunction with a vehicle ( not shown ), the accessories 21 can include a radio , interior or exterior lights , seat warmers or positioning devices , etc . the solenoid 18 can also serve as a starter solenoid or electromagnetic switch for control of a starter motor . if one or more accessories 21 are used , the electrical current ( i s ) supplied to the solenoid 18 can be determined or calculated by the controller 50 , such as by subtracting the known or estimated accessory current ( i a ) from the known or measured battery current ( i b ). likewise , if no such accessories 21 are used , the solenoid current ( i s ) is equal to the battery current ( i b ). still referring to fig1 , the controller 50 includes one or more microprocessors or central processing units ( cpu ) 60 and sufficient computer - accessible memory 70 . such memory 70 can include , for example , read only memory ( rom ), random access memory ( ram ), electrically - programmable read only memory ( eprom ), etc ., of a size and speed sufficient for executing the method or algorithm 100 as set forth below with reference to fig4 . the controller 50 can also be provided with other required hardware , such as a high speed clock , requisite analog to digital ( a / d ) and digital to analog ( d / a ) circuitry , any necessary input / output circuitry and devices ( i / o ), as well as appropriate signal conditioning and / or buffer circuitry . any algorithms resident in the controller 50 or accessible thereby , including the algorithm 100 of the invention as described below , can be stored in memory 70 and automatically executed to provide the respective functionality . the controller 50 can be electrically connected to an audio / visual indicator 80 and / or a display 84 , with the display 84 being adapted for displaying information or a text message 82 . for example , the indicator 80 can be a warning lamp , the activation of which can sound an audible tone or alarm alone or in conjunction with illumination of the indicator 80 . likewise , the display 84 can be a display portion of a control panel or a marquee when used , for example , on a manufacturing floor , or as a portion of an instrument panel , center console , rear view mirror assembly , etc . ( not shown ) of a vehicle when used aboard a vehicle , such as in the example of a solenoid 18 used for controlling a motor 22 configured as a vehicular starter motor . referring to fig2 , a performance curve 30 for the solenoid 18 shown in fig1 includes three solenoid operating regions i , ii , and iii , with the y - axis denoting the solenoid current ( i s ), and with the x - axis denoting time ( t ). with respect to region i , the curve segment 32 in this region describes the exponential rise in solenoid current ( i s ) from t = 0 until a peak or maximum solenoid current ( i s , max ) is reached at point d , or at t 1 . within the segment 32 , the point c corresponds to the exponential time constant ( τ ), as that term will be understood in the art . that is , in region i the solenoid current ( i s ) increases exponentially , and is dictated by the equivalent resistance ( r eq ) and the equivalent inductance ( l eq ) of the solenoid 18 . therefore , the solenoid current ( i s ) at point c is approximately 63 % of the maximum , i . e ., i s , max / e . with respect to region ii , this region begins at point d and describes the duration or interval during which the plunger 28 of the solenoid 18 ( see fig1 ) begins to move in response to an induced magnetic field , as set forth above . in region ii , the segment 34 between points d and e represents a region in which solenoid inductance increases , thus resulting in a decrease in solenoid current ( i s ). in other words , an opposing electro - motive force , referred to hereinafter as the back - emf , is created as the plunger 28 moves in response to the induced magnetic field . finally , region iii or segment 36 commences at point e , i . e ., the point in time at which the motor 22 starts . for example , at point e the solenoid 18 configured as a switch can be fully actuated , thus allowing the battery 12 of fig1 to energize the motor 22 . referring to fig3 a , an exemplary electrical circuit 25 is shown for an exemplary starting circuit using the solenoid 18 of fig1 . the circuit 25 represents the battery 12 via the battery voltage ( v b ) and the battery resistance ( r b ). the solenoid 18 in this example is a dual - coil solenoid as described above , and therefore includes a hold - in coil 20 a and a pull - in coil 20 b , as those terms are understood in the art . the hold - in coil 20 a and the pull - in coil 20 b can be represented by each of an inductance ( l h , l p , respectively ) and a resistance ( r h and r p , respectively ). likewise , the motor 22 of fig1 , or more precisely the windings thereof , can be represented by an inductance ( l a ) and a resistance ( r a ). referring to fig3 b , the circuit 25 of fig3 a can be reduced in region i of fig2 to the equivalent circuit 25 a . that is , within region i , the battery voltage ( v b ) can be determined using the equation v b =( i s )( r eq )+( l eq )( δi s / δt ). the rate of change of the solenoid current ( i s ) can be modeled and plotted as : i s ( t )=( v b / r eq )( 1 − e − t / τ ). the time constant ( τ ) for the solenoid current to rise to the level of ( 1 / e ) of the maximum or peak current ( i s , max ) can thus be measured , and the equivalent inductance ( l eq ) can be calculated as l eq = τ * r eq . as will be understood by those of ordinary skill in the art , the total or equivalent resistance and inductance of any electrical device can be calculated using basic circuit analysis equations . for example , the respective resistance and inductance values of resistors and inductors in series can be added to determine the equivalent resistance and inductance , while ( n ) resistors or inductors in parallel can be calculated via the equation 1 / r eq = 1 / r 1 + 1 / r 2 + . . . 1 / r n and 1 / l eq = 1 / l 1 + 1 / l 2 + . . . 1 / l n . also as will be understood by those of ordinary skill in the art , solenoid designs can vary , with some types of solenoids reaching a maximum current or steady peak before the plunger 28 begins to move , and other types having a plunger 28 that moves well in advance of reaching such a peak . in the first type of solenoid , i . e ., a type reaching a peak or maximum current ( i s , max ) before motion of the plunger 28 , the rate of change of the solenoid current ( i s ) is zero at the peak of point d , and at this point d the above equation reduces to : v b =( i s )( r eq ,) i . e ., with r eq = v b / i s at the peak of point d . in the second type of solenoid , the equivalent resistance ( r eq ), and the equivalent inductance ( l eq ) at point d can be estimated using a predetermined parameter estimation technique , for example regression analysis , linear least squares , polynomial least squares , recursive least squares , etc . that is , using the linear form y = ax + b , with y = δi s / δt , x = i s , a =− r eq / l eq , and b = 1 / l eq , it follows that δi s / δt =(− r eq / l eq )( i s )+ 1 / l eq . thus , using regressive least squares ( rls ) techniques , r eq =− a / b and l eq = 1 / b . regardless of the particular type of solenoid 18 used in the system 10 of fig1 , the performance of the solenoid 18 in region i can be modeled . referring to fig3 c , an equivalent circuit 25 b is shown for region ii of fig2 . in region ii , the battery voltage ( v b ) can be determined by the equation : v b =( i s )( r eq )+( l eq )( di s / dt )+ e ( x g ), with the variable e ( x g ) being equal to the back - emf of the solenoid 18 as a function of travel of the plunger 28 . the equivalent resistance ( r eq ) from region i can be used , and e ( x g ) and l eq can be estimated using a predetermined parameter estimation technique as set forth above . referring to fig4 , and with particular reference to the various elements of the system 10 shown in fig1 , the method of the invention is executable by the controller 50 using the algorithm 100 . beginning at step 102 , the values of the battery voltage ( v b ) and the solenoid current ( i s ) are measured , detected , or otherwise acquired , such as by using the sensors 16 a , 16 b as explained above . if an optional accessory 21 draws power from the battery 12 along with the solenoid 18 , this value is first considered when determining the solenoid current ( i s ), and prior to energizing the solenoid 18 . for example , the actual or estimated current draw of the accessory 21 or multiple accessories 21 is first subtracted from a measured or known battery current ( i b ) to determine the solenoid current ( i s ) before proceeding to step 104 . at step 104 , the algorithm 100 can check a set of predetermined conditions and , using these conditions , can determine whether it is appropriate to proceed . for example , the algorithm 100 can sense or detect a “ power on ” or start signal for starting the motor 22 or other connected device , or can determine if the motor 22 or other device connected to the solenoid 18 is operating as expected , such as by referencing diagnostic codes ( not shown ) in the controller 50 , by conducting a test of the motor 22 or other such components , etc . if the predetermined conditions are met at step 104 , the algorithm 100 proceeds to step 106 . otherwise , the algorithm 100 is finished . at step 106 , the equivalent resistance ( r eq ) and the equivalent inductance ( l eq ) of the solenoid 18 are determined using any appropriate means . for a solenoid of the first type explained above , i . e ., a solenoid reaching a peak or maximum solenoid current before motion of the plunger begins , the algorithm 100 can calculate the equivalent resistance ( r eq ) and the equivalent inductance ( l eq ) using the peak current ( i s , max ) and the time constant τ . for a solenoid of the second type , i . e ., a solenoid that does not reach such a peak or maximum solenoid current before motion of the plunger begins , the algorithm 100 can use the parameter estimation techniques set forth previously hereinabove in order to estimate the values of the equivalent resistance ( r eq ) and the equivalent inductance ( l eq ). however these values are ultimately determined , the algorithm 100 proceeds to step 108 once such a determination is made . at step 108 , the algorithm 100 can obtain nominal or calibrated values for resistance ( r cal ) and the inductance ( l cal ), i . e ., associated resistance and inductance values previously determined and recorded as reference values for a known “ good ” solenoid . these calibrated values can be adjusted as needed for the present temperature of the solenoid 18 , which can be readily determined using a temperature sensor 16 c as shown in fig1 . likewise , the values for r eq and l eq can be adjusted for temperature to match the temperature at which the calibrated values were originally determined . the calibrated values for the resistance ( r cal ) and the inductance ( l cal ) can be stored temporarily in a memory location resident in or accessible by the controller 50 , after which the algorithm 100 proceeds to step 110 . at step 110 , using the calibrated values from step 108 , i . e ., r cal and l cal , a state of health of the solenoid 18 , hereinafter referred to as the soh factor , is calculated for the solenoid 18 for each of the resistance and the inductance values . in particular , an soh factor for the resistance , or soh r , can be calculated using the equation : with δr defining the absolute value of the deviation of the equivalent value of the resistance , i . e ., r eq , determined at step 106 above , from the calibrated or threshold resistance value ( r cal ), i . e ., δr =| r eq − r cal |. the same calculation is performed to determine an soh factor for the inductance , or soh l . the comparative values can be used to further isolate the root cause of failure within the solenoid 18 . for example , when the equivalent resistance value , or r eq , exceeds that of the corresponding calibrated threshold ( r cal ) by a predetermined margin , determined during calibration and therefore usable as a threshold value , the result can indicate an open circuit in the solenoid 18 . likewise , if the equivalent resistance value ( r eq ) is less than that of the corresponding calibrated threshold ( r cal ) by a predetermined margin , also determined during calibration and therefore usable as another threshold or lower limit value , the result can indicate a shorted winding in the solenoid 18 . if a dual - coil solenoid is used , similar comparisons can be used to determine whether a hold - in coil or a pull - in coil is open . the values of each soh factor , i . e ., soh r and soh l , can be plotted or otherwise recorded in an accessible manner within memory of the controller 50 , after which the algorithm 100 proceeds to step 112 . at step 112 , the values of the soh factors are compared , and the minimum value is selected . if the minimum of the two soh factors soh r and soh l is less than a predetermined or calibrated threshold , the algorithm 100 proceeds to step 114 . otherwise , the algorithm 100 proceeds to step 116 . at step 114 , the controller 50 determines that the winding 20 of the solenoid 18 is likely faulty , and executes a control action , such as by setting an appropriate flag or recording a suitable value indicating such a prognosis , or alternately by activating one or both of the indicator 80 and display 84 . the algorithm 100 is then finished . at step 116 , and during region ii , the algorithm 100 uses the equivalent resistance value ( r eq ) determined at step 106 , and estimates the back - emf or e ( x g ) using a suitable parameter estimation technique as set forth above , e . g ., regressive least squares ( rls ) in an exemplary embodiment . the algorithm 100 then proceeds to step 118 . at step 118 , the algorithm 100 determines if the back - emf , or e ( x g ), exceeds a calibrated threshold . alternately or concurrently , step 118 can also include executing a similar state of health ( soh ) determination as explained above at steps 110 and 112 . that is , after the back - emf is estimated or otherwise determined at step 116 , a calibrated back - emf value , or e cal , can be referenced in memory , and a deviation or δe value can be determined as δe =| e ( x g )− e cal |. if so , the algorithm 100 proceeds to step 120 . otherwise , the algorithm 100 is finished . at step 120 , the controller 50 determines that the plunger 28 is likely faulty , and sets an appropriate flag or records a suitable value indicating such a prognosis . the controller 50 can alternately or concurrently activate the indicator 80 and / or display 84 as set forth above . the algorithm 100 is then finished . while the best modes for carrying out the invention have been described in detail , those familiar with the art to which this invention relates will recognize various alternative designs and embodiments for practicing the invention within the scope of the appended claims .