This shows you the differences between two versions of the page.
| — |
gnucap:manual:examples:experimentally_finding_model_parameters [2015/12/11 15:39] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Experimentally finding model parameters ====== | ||
| + | |||
| + | Sometimes you need to determine model parameters, based on having no real information. | ||
| + | |||
| + | In this example, we find the parameter "IS" of a diode, based on its forward voltage. | ||
| + | |||
| + | We would like to have a diode... | ||
| + | |||
| + | D2 (a k) 1n4004 | ||
| + | |||
| + | Now you need a model statement ... | ||
| + | |||
| + | .model 1n4004 d (a whole bunch of parameters) | ||
| + | |||
| + | You could do a web search for a detailed model, but usually you | ||
| + | can just do some experimenting.. | ||
| + | |||
| + | If you are at the stage where you are asking about this, the | ||
| + | detail will only confuse you, most likely of the worst kind of | ||
| + | confusion, where you don't realize it. | ||
| + | |||
| + | Most of the time, the only parameter you need for a diode is | ||
| + | saturation current, which of course isn't in the data sheet. | ||
| + | |||
| + | ok .. so how do I figure that out?? | ||
| + | |||
| + | Well ... Look at the specs, or measure it. Let's say we found | ||
| + | that the forward voltage at 1 amp is .7 volts. | ||
| + | |||
| + | Use the simulator to build a test circuit .. | ||
| + | |||
| + | I1 (0 1) dc 1 | ||
| + | D1 (1 0) my_diode | ||
| + | |||
| + | You need a model statement .. | ||
| + | .model my_diode d (is=something) | ||
| + | |||
| + | but I don't know what the value of something is. | ||
| + | |||
| + | With gnucap .. try this....... | ||
| + | |||
| + | gnucap> build | ||
| + | >i1 (0 1) dc 1 | ||
| + | >d1 (1 0) my_diode | ||
| + | >.model my_diode d is=something | ||
| + | > ******** blank line to exit build mode | ||
| + | gnucap> probe op v(1) | ||
| + | parameter something has no value | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.83376 **** using default IS | ||
| + | gnucap> param something=1u | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.35733 | ||
| + | gnucap> param something=1n | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.53599 | ||
| + | gnucap> param something=1p | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.71465 | ||
| + | gnucap> param something=2p | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.69673 | ||
| + | gnucap> param something=1.5p | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.70417 | ||
| + | gnucap> param something=1.8p | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.69945 | ||
| + | gnucap> param something=1.7p | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.70093 | ||
| + | gnucap> param something=1.75p | ||
| + | gnucap> op | ||
| + | # v(1) | ||
| + | 27. 0.70018 | ||
| + | gnucap> exit | ||
| + | |||
| + | |||
| + | There .. close enough ,,, | ||
| + | Now use the value 1.75p for IS. | ||
| + | |||
| + | Here's your model statement: | ||
| + | .model my_diode d is=1.75p | ||