I am using OrCAD/Cadence PSPICE Lite 16.6. I am trying to do a temperature analysis of a circuit. In particular a resistor.


simulate this circuit – Schematic created using CircuitLab

Now, the temperature is from -30 to 60 Celcius. I understand that knowing the ppm I can do a .model as shown below -

R9 N1 N2 R1 10K .model Rmod8 TC1 = 1.5E-3

The TC1 - denotes the ppm (1500ppm). Now, the resistor als has a random tolerance of 1%. How do I give that ? Like a range. And at each temp ( from -30 to 60) the random tolerance of 1% exists. How can I implement that in PSPICE code ?

Also, if I dont need to use the TC1 approach(i.e through a .model), how can I do it through a mathematical formula. In other words -

Ta -room temp, Tt - temperature under study(from -30 to 60) TCR - ppm property of resistor Ra - resistance at room temp Rt - resistance at Tt.

Now, the formula for Rt = {Ra*(TCR*(Tt - Ta))/10^6}. I tried implementing this using the .param command as shown below -

.param R1 1000 .param R1t_temp = {R1*(TCR*(Temp - Ta)/1000000)} R8 3 5 R1t_temp .Dc lin Temp 28 60 2

So, I am doing a DC sweep analysis of temp - from 28 to 60. But, there is an error as the R1t_temp value obtained from the .param is not put in the R8 3 5 R1t_temp.


1) I would not use a circuit like this to evaluate a TC. If both resistors have the same TC, the voltage at Node1 will not change over temperature as you have made a voltage divider. I would replace R1 with a current source, then the voltage on Node1 is directly proportional to the value of R2. I'd plot V(node1) / Isource = R2

You would see variation when only one of the resistors has a TC but then you'd have to calculate that back and... that's too complex for me, I prefer keeping things simple.

2) tolerance is something different, tolerance is statistics. 10% means it can be up to 10 % higher or lower in value. Component spread (the actual name) is simulated with a statistical (Monte Carlo) analysis on top of your "normal" simulation. MC can do 20 simulations and then tell you average and sigma values. See the manual how to make a resistor that has statistical properties.

  • \$\begingroup\$ Thank you. That brings me to the question - what exactly is TC or temperature coefficient ? And what is its effect in case of resistance value. \$\endgroup\$ – Board-Man Feb 18 '16 at 12:40
  • \$\begingroup\$ TC is the change in value over temperature. For example a TC of +0.01 / degree C means +1% increase in value for 1 degree temperature rise. -0.01/degr.C would mean a decrease in value. So a 1000 ohm, +0.01/degrC resistor at 20 C would become 1100 ohm at 30 degrees C and 900 ohms at 10 degrees C. But this is how I use it, have a look in the PSPICE manual to know what they are doing, I have not used PSPICE since 1994 ;-) \$\endgroup\$ – Bimpelrekkie Feb 18 '16 at 12:45
  • \$\begingroup\$ But, the point of placing a value for a resistor which is the result of a mathematical expression ? Is it possible using some other commands or so ? \$\endgroup\$ – Board-Man Feb 18 '16 at 13:16
  • \$\begingroup\$ Can't you just fill in a formula for the value of the resistor instead of a number ? so instead of your .PARAM statement put the formula in place of the value of the resistor. But usually you get a TC1 and maybe a TC2 for a component and then you can just use the model. TC1 and TC2 being coefficients for a polynomial: R = R0 * (TC1 * Temp + TC2 * Temp^2) \$\endgroup\$ – Bimpelrekkie Feb 18 '16 at 13:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.