This shows you the differences between two versions of the page.

gnucap:user:sensitivity_command [2016/10/17 18:17] felixs comment on implementation status |
gnucap:user:sensitivity_command [2018/10/16 15:40] (current) felixs explain more, reference current draft implementation |
||
---|---|---|---|

Line 3: | Line 3: | ||

see "Computer Methods for Circuit Analysis and Design (Vlach and Singhal)". | see "Computer Methods for Circuit Analysis and Design (Vlach and Singhal)". | ||

- | In gnucap it may look like this: | + | Essentially, an (infinitesimal) change in a parameter p can be thought as a (infinitesimal) current injected into the network. an observable can be thought as a function f of the voltage vector v. if f is linear, then, ignoring the offset, it can be written as a scalar product s=< F, v >=<F, Gi>=<G^t^-1 F, i> with some vector F. but then df/dp=<G^t^-1 F, di/dp> |

+ | | ||

+ | now fix an observable, compute G^t^-1 F (use BSMATRIX::fbsubt), then visit the components that depend on a parameter, get the injected current and evaluate the scalar product. the result is the sensitivity of the observable wrt the parameter... | ||

+ | | ||

+ | In gnucap spice mode it may look like this: | ||

include netlist.ckt | include netlist.ckt | ||

Line 18: | Line 22: | ||

devices need to provide a ''XPROBE sens_probe_ext(string) const'' for this to work. this function uses the adjacent values from ''sim->_sens''. | devices need to provide a ''XPROBE sens_probe_ext(string) const'' for this to work. this function uses the adjacent values from ''sim->_sens''. | ||

- | there's a "sens" command in gnucap-uf, where the component interface and sim_data has been augmented. needs more thought before inclusion. | + | there's a "sens" command in gnucap-sim, http://git.savannah.gnu.org/cgit/gnucap/gnucap-plugins.git/log/?h=sim. it uses ad hoc modified components exploring the usefulness of the probe rework. needs more thought before porting upstream. |

+ | | ||

+ | - need new probe semantics, but output rework is not ready yet | ||

+ | - parameter sensitivities (derivatives for expressions are not implemented) | ||

+ | - need "parameter probes" to maintain spice command semantics. |