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. |