start value for sine

This commit is contained in:
h_vogt 2009-12-20 08:44:50 +00:00
parent aa93968573
commit 99533fa109
4 changed files with 23 additions and 11 deletions

View File

@ -1,3 +1,6 @@
2009-12-20 Holger Vogt
* fixinf the time 0 value of sine in isrc, vsrc
2009-12-19 Paolo Nenzi
* src/spicelib/devices/isrc/isrcacct.c, src/spicelib/devices/vsrc/vsrcacct.c:
fixed bug reported by Holger. "time" value in accept routine was incorrectly

View File

@ -277,11 +277,15 @@ int measure_extract_variables( char *line )
* .MEASURE {DC|AC|TRAN} result INTEG<RAL> out_variable
* + <TD=td> <FROM=val> <TO=val>
*
* .MEASURE {DC|AC|TRAN} result DERIV<ATIVE> out_variable
* + <TD=td> <FROM=val> <TO=val> <AT=val>
* .MEASURE {DC|AC|TRAN} result DERIV<ATIVE> out_variable AT=val
*
* .MEASURE {DC|AC|TRAN} result DERIV<ATIVE> out_variable
* + <TD=td> <FROM=val> <TO=val> <AT=val>
* .MEASURE {DC|AC|TRAN} result DERIV<ATIVE> out_variable WHEN out_variable2=val
* + <TD=td>
* + <CROSS=# | CROSS=LAST> <RISE=#|RISE=LAST> <FALL=#|FALL=LAST>
*
* .MEASURE {DC|AC|TRAN} result DERIV<ATIVE> out_variable WHEN out_variable2=out_variable3
* + <TD=td>
* + <CROSS=# | CROSS=LAST> <RISE=#|RISE=LAST> <FALL=#|FALL=LAST>
* ----------------------------------------------------------------- */
int len ; /* length of string */

View File

@ -139,12 +139,14 @@ ISRCload(GENmodel *inModel, CKTcircuit *ckt)
time -= TD;
if (time <= 0) {
#ifdef XSPICE
value = VO + VA * sin(phase);
} else {
value = VO + VA * sin(FREQ*time * 2.0 * M_PI + phase) *
exp(-time*THETA);
#else
value = VO;
} else {
#ifdef XSPICE
value = VO + VA * sin(FREQ*time * 2.0 * M_PI + phase) *
exp(-time*THETA);
#else
value = VO + VA * sin(FREQ*time * 2.0 * M_PI) *
exp(-time*THETA);
#endif

View File

@ -148,13 +148,16 @@ VSRCload(GENmodel *inModel, CKTcircuit *ckt)
time -= TD;
if (time <= 0) {
value = VO;
} else {
#ifdef XSPICE
value = VO + VA * sin(phase);
} else {
value = VO + VA * sin(FREQ*time * 2.0 * M_PI + phase) *
exp(-time*THETA);
#else
value = VO + VA * sin(FREQ * time * 2.0 * M_PI) *
value = VO;
} else {
value = VO + VA * sin(FREQ * time * 2.0 * M_PI) *
exp(-(time*THETA));
#endif
/* gtri - end - wbk - add PHASE parameter */