Keyboard Shortcuts
Likes
- LTspice
- Messages
Search
Re: .MEAS Failure
Hello All:
?
.options numdgt=15. caused the plot window to crash at the end of simulation as it was rendering.
That plot window crash took LTspice 24.0.12 down with it.
I will restart and try again.
?
On the next try the .meas result was:
.meas TooLow1 FIND V(XSW11:X1:Qc,XSW11:X1:Qe) WHEN V(XSW11:X1:Qc,XSW11:X1:Qe)=2 FALL=1
toolow1: v(xsw11:x1:qc,xsw11:x1:qe)=2 at 0.00804695
AND
.meas TooLow2 FIND V(XSW12:X1:Qc,XSW12:X1:Qe) WHEN V(XSW12:X1:Qc,XSW12:X1:Qe)=2 FALL=1
Measurement "toolow2" FAIL'ed
?
TooLow2 saw no point that fell below 2V on the XSW12 signal, so it reported "Measurement "toolow2" FAIL'ed".
Both syntax error and, failure to find the measurement specified, produce the same "Measurement "toolow2" FAIL'ed" error message.
Isn't that a fine kettle of fish.
?
Subtracting 8ms from the start and stop values on the abscissa saw the plot window simply stop rendering in mid-redraw.
I am not going to burn any more time divining how LTspice works.
I will now move on to more productive efforts.
?
In my case ".options numdgt=15" broke 24.0.12.
The .raw file for the run is 11.5GB.
?
Before trying to shift the abscissa I did see that the values either side of 2.
With 15 digits, the values were much closer to 2 but still no 2.000000000000 value.
?
Interpolation notwithstanding, the end result of .MEAS NAME FIND V(X) WHEN V(X)=2 FALL=1;
is indestinguishable from the end result of .MEAS NAME FIND V(X) WHEN V(X)<2 which fails on syntax.
?
All I needed was a way to find if a BJT C-E voltage ever falls below 2V.
.MEAS NAME FIND V(X) WHEN V(X)=2 FALL=1 works for that purpose.
?
Many thanks to all whom opined.
?
All for now Sent:?Monday, February 24, 2025 at 5:38 PM
From:?"Tony Casey via groups.io" <tony@...> To:[email protected] Subject:?Re: [LTspice] .MEAS Failure On 24/02/2025 22:50, eewiz via groups.io wrote:
No, that is not the case - wrong conclusion. Try again with: .options numdgt=15. By default, the .raw file is written with single precision; this option enables double precision (and approximately doubles the .raw file size). ? There was no test to see if data was ever == 2 as the .MEAS statement would imply.That's because the computation used interpolation - an estimation based on the closest two available data points, as previously stated. Obviously, there is no actual data point at exactly 2V. .MEAS can only make guesses on the data that actually exists in the .raw file, as it is a post-analysis calculation. There's no guarantee that any analysis can achieve a data point that shows V ≡ 2V, regardless of the maximum time step. This is why interpolation is used. That's just how the LTspice time step algorithm works. -- Regards, Tony ? |
||
Re: .MEAS Failure
On Mon, Feb 24, 2025 at 05:38 PM, Tony Casey wrote:
By default, the .raw file is written with single precision; this option enables double precision (and approximately doubles the .raw file size). Although that is true for voltages and currents, time values are always saved to the .raw file with double precision.? Time is special in that way.
?
What probably happened here is that the Waveform Cursor pop-up window itself displays the numbers with less precision than they are saved in the .raw file.
?
You can probably see that effect in a couple of ways:
?
I am certain there was no simulated point where the voltage data was exactly ==2.? The .MEAS statement is not lying.? It knows that it was on one side of 2 at one point, and on the other side of 2 on the next point, so it must have crossed 2.00000000000 between those two, but not a point that was simulated.? It has to interpolate.
?
Andy
? |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
On Mon, Feb 24, 2025 at 03:28 PM, john23 wrote:
Because settings such as those can sometimes help simulations run better.? That is the simple explanation. ?
Cshunt and Gshunt add a bit of capacitance and conductance from every circuit node to ground.? Both of them help when the circuit matrix is near to singular, by adding damping to the circuit.? The more damping there is, the closer it is to a set of linear equations, making it somewhat easier to approach a good solution in a smaller number of? tries.
?
Setting Abstol and Vntol to larger numbers allows the simulator to "solve" the network equations sooner (fewer iterations).? The network equations are nonlinear, which means that LTspice needs to iterate a number of times at each point, until its error estimates are smaller than the *TOL tolerance settings.? By setting those *TOL numbers larger, it is less likely to "get stuck" at any one point, iterating indefinitely and never getting a small enough error estimate.?
?
Larger tolerance settings can cause larger errors and less accuracy.? Larger *shunt values degrade the circuit somewhat by adding conductances or capacitances that were not there (at least, they were not there in the original circuit description).? They both help SPICE's solver think it has found a solution, but that solution MIGHT be less accurate.? With luck, the difference is insignificant.? Remember that every simulation of a nonlinear circuit is an approximation.
?
Andy
? |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
On Mon, Feb 24, 2025 at 04:52 PM, Bell, Dave wrote:
There is nothing inconsistent about it.? You have misunderstood.
?
"10f" always ALWAYS means 10 femto.
?
"10F" always ALWAYS means 10 femto.
?
It never ever means 10 Farads.
?
Now, if you were to write "10 f" or "10 F" with a space between the "10" and the "f", then you have listed two things, not one.? In that case, SPICE (and LTspice) always interpret the "10" to mean ten, so you would get 10 Farads -- and then it sees a lonely unattached "F" sitting there, which it might either ignore, or flag as an error.? It would be the same if you wrote "10 X".? The "X" does not belong.? SPICE either makes an error, or quietly ignores it.? SPICE could in some cases - I think intentionally - ignore things that clearly did not belong.
?
Andy
? |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
On Mon, Feb 24, 2025 at 12:38 PM, John Woodgate wrote:
We are.
?
U1 is the integrator with C1 in its feedback path.? For DC, C1 is an open circuit so it is open-loop at DC.
?
Wow.? You got quite different component markers than I did, from the same schematic!? Since those numbers are embedded within the schemeatic file itself, I don't know how that would have happened. One never expects Timestep Too Small errors.? They only happen when the simulator runs into great difficulty in the right way. ?
Did I also mention that I never saw a Timestep Too Small error when I tried that simulation?? It was something "john23" had in his Error Log listing.? ?In my simulation it just ran very very slowly but did not abort.
?
Andy
? |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育I say try it in a circuit. Yes, SPICE ignores
case, but it doesn't ignore SPACES in this context. It ignores
any character after the space. 10f is 10F is 10 femtofarads: 10
f is 10 F is 10 is 10 farads. On 2025-02-24 23:32, Bell, Dave via
groups.io wrote:
--
OOO - Own Opinions only If something is true: * as far as we know - it's science *for certain - it's mathematics *unquestionably - it's religion |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育OK, I tried it, and well, it’s weird and not as I expected. I stand corrected! ? Dave ? From: [email protected] <[email protected]>
On Behalf Of John Woodgate
Sent: Monday, February 24, 2025 3:23 PM To: [email protected] Subject: EXTERNAL: Re: [LTspice] intuition behind a solution to crashing time domain simulation #Time-step-too-small ? I think you have misunderstood. You can put a 10f (femtofarad) cap in an .ASC by writing that value in the component property pane. Try it: feed a 10f cap via 1meg and the -3dB point is at 16MHz. On 2025-02-24 23:00, Bell, Dave via groups.io wrote:
-- |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育NOT if you type “10f”! That’s the same as “10F”, isn’t it? For time, resistance, etc.10m = 10M <> 10meg or 10Meg, etc. ? From: [email protected] <[email protected]>
On Behalf Of John Woodgate
Sent: Monday, February 24, 2025 3:23 PM To: [email protected] Subject: EXTERNAL: Re: [LTspice] intuition behind a solution to crashing time domain simulation #Time-step-too-small ? I think you have misunderstood. You can put a 10f (femtofarad) cap in an .ASC by writing that value in the component property pane. Try it: feed a 10f cap via 1meg and the -3dB point is at 16MHz. On 2025-02-24 23:00, Bell, Dave via groups.io wrote:
-- |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
But, if that's the case, can it possibly mean 10 FARADS in ".options cshunt 10f" ?
toggle quoted message
Show quoted text
All of the other options default to values that make nearly no difference. -----Original Message-----
From: [email protected] <[email protected]> On Behalf Of David Schultz via groups.io Sent: Monday, February 24, 2025 3:11 PM To: [email protected] Subject: EXTERNAL: Re: [LTspice] intuition behind a solution to crashing time domain simulation #Time-step-too-small On 2/24/25 3:29 PM, Bell, Dave via groups.io wrote: Is “10f” a special case in the parasitics settings?Farads being the only possible unit for capacitance, there is no need to specify it. -- David Schultz "The cheeper the crook, the gaudier the patter." - Sam Spade |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育I think you have misunderstood. You can put a
10f (femtofarad) cap in an .ASC by writing that value in the
component property pane. Try it: feed a 10f cap via 1meg and the
-3dB point is at 16MHz. On 2025-02-24 23:00, Bell, Dave via
groups.io wrote:
--
OOO - Own Opinions only If something is true: * as far as we know - it's science *for certain - it's mathematics *unquestionably - it's religion |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
On 2/24/25 3:29 PM, Bell, Dave via groups.io wrote:
Is “10f” a special case in the parasitics settings?Farads being the only possible unit for capacitance, there is no need to specify it. -- David Schultz "The cheeper the crook, the gaudier the patter." - Sam Spade |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育Yes, I agree, on all counts. It means Farads, in lower OR upper case. But in the .options context, it appears to accept 10f as 10 femtofarads. That’s logical, because who would want a 10F parasitic shunt capacitance? ? I’m just disturbed that it’s different, between contexts. Not much different from ^ vs. **, where the carat could mean exponentiation or exclusive OR ? ? From: [email protected] <[email protected]>
On Behalf Of John Woodgate
Sent: Monday, February 24, 2025 2:03 PM To: [email protected] Subject: EXTERNAL: Re: [LTspice] intuition behind a solution to crashing time domain simulation #Time-step-too-small ? I think that 10 means 10 farads, 10m means 10 millifarads etc, but, with a space in between, 10 f or 10 F or 10 m means 10 farads and the following letter is disregarded, or throws an error in some cases. This works in the component properties pane. On 2025-02-24 21:52, Bell, Dave via groups.io wrote:
-- |
||
Re: .MEAS Failure
开云体育On 24/02/2025 22:50, eewiz via
groups.io wrote:
No, that is not the case - wrong conclusion. Try again with: .options numdgt=15. By default, the .raw file is written with single precision; this option enables double precision (and approximately doubles the .raw file size). There was no test to see if data was ever == 2 as the .MEAS statement would imply.That's because the computation used interpolation - an estimation based on the closest two available data points, as previously stated. Obviously, there is no actual data point at exactly 2V. .MEAS can only make guesses on the data that actually exists in the .raw file, as it is a post-analysis calculation. There's no guarantee that any analysis can achieve a data point that shows V ≡ 2V, regardless of the maximum time step. This is why interpolation is used. That's just how the LTspice time step algorithm works. -- Regards, Tony |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育I think that 10 means 10 farads, 10m means 10
millifarads etc, but, with a space in between, 10 f or 10 F or
10 m means 10 farads and the following letter is disregarded, or
throws an error in some cases. This works in the component
properties pane. On 2025-02-24 21:52, Bell, Dave via
groups.io wrote:
--
OOO - Own Opinions only If something is true: * as far as we know - it's science *for certain - it's mathematics *unquestionably - it's religion |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育In *this case*, I see that. Seems like a bit inconsistent… ? From: [email protected] <[email protected]>
On Behalf Of John Woodgate
Sent: Monday, February 24, 2025 1:36 PM To: [email protected] Subject: EXTERNAL: Re: [LTspice] intuition behind a solution to crashing time domain simulation #Time-step-too-small ? 10f is recognized as 10 femtofarads. On 2025-02-24 21:29, Bell, Dave via groups.io wrote:
-- ?
|
||
Re: .MEAS Failure
Hello All:
?
.meas TooLow1 FIND V(XSW11:X1:Qc,XSW11:X1:Qe) WHEN V(XSW11:X1:Qc,XSW11:X1:Qe)=2 FALL=1
works and produces;
toolow1: v(xsw11:x1:qc,xsw11:x1:qe)=2 at 0.00804696
?
Zooming in the plot window to the end of the universe, I see this point.
8.0469636ms 2.0000203V
The next point is:
8.0469636ms 1.9999355V
The time values must have greater precision than can be seen because a node can't have two different voltages at the same time.
I now see that since there is no value in the data that is exactly 2.0000000 it had to perform a poor mans less-than function.
The code saw that 1.9999355 was less-than 2 where the previous sample 2.0000203 was more than two.
So that's a fall.
There was no test to see if data was ever == 2 as the .MEAS statement would imply.
I now see that the Fall and Rise modifiers mimic less-than or greater-than behavior for the .MEAS FIND WHEN statement.
?
All for now
?
Sent:?Monday, February 24, 2025 at 12:17 PM
From:?"eewiz via groups.io" <eewiz@...> To:[email protected] Subject:?Re: [LTspice] .MEAS Failure ?
Hello All:
?
Sorry for being late to the party but I had to grab some sleep time.
?
So, it's equality only.
No matter how many times I read the .meas help I would not come to that conclusion.
To me;?WHEN <expr> means WHEN <any and all types of mathematical experssion>.
WHEN <expr of equality only> would be much more redily understandable.
?
I noticed that there were no examples of anything like:
Print the time if and when a power exceeds 5W.
Print the time if and when a collector-emitter voltage goes less than 2V.
Print the time if and when a snubbed node ever exceeds 15.6V.
?
Those are always the type of questions that I regularly need answers to.
?
Thanks very much for the examples.
I will see if I can get the answers I need using only equality.
? All for now ?
Sent:?Monday, February 24, 2025 at 11:24 AM
From:?"Tony Casey via groups.io" <tony@...> To:[email protected] Subject:?Re: [LTspice] .MEAS Failure On 24/02/2025 15:57, Andy I via groups.io wrote:
But I distinctly recall Helmut Sennewald cautioning people not to test for equality.? Better to use >= or <=.? The implication was that it did not use linear interpolation in those situations.? I thought .MEAS was one of them.This would be the case, for example, in a B-source expression, which disallows the "=" operator anyhow, e.g.: ? B1 EQ0 0 V=if(V(test)=0,1,0) ..which triggers an error, but: ? B1 EQ0 0 V=if(V(test)==0,1,0) ..doesn't. However, in the example of my simple sine source circuit, the 2nd of those expressions only results in V(eq0)=1 once at time=0, because none of the following data points result in V(test)=0, even though it is clear the waveform is periodic and passes through zero twice every cycle. This example therefore doesn't use interpolation, it simply looks at each data point. -- Regards, Tony |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育10f is recognized as 10 femtofarads. On 2025-02-24 21:29, Bell, Dave via
groups.io wrote:
--
OOO - Own Opinions only If something is true: * as far as we know - it's science *for certain - it's mathematics *unquestionably - it's religion |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
开云体育Is “10f” a special case in the parasitics settings? For a regular cap, it would mean 10 Farads! ? From: [email protected] <[email protected]>
On Behalf Of john23 via groups.io
Sent: Monday, February 24, 2025 12:29 PM To: [email protected] Subject: EXTERNAL: Re: [LTspice] intuition behind a solution to crashing time domain simulation #Time-step-too-small ? ? ? The following line solved the problem.Is there some manual or intution regarding why these might help? .options cshunt =10f gshunt=10n abstol=10n vntol=1m ? Thanks. |
||
Re: intuition behind a solution to crashing time domain simulation
#Time-step-too-small
?
?
The following line solved the problem.Is there some manual or intution regarding why these might help?
.options cshunt =10f gshunt=10n abstol=10n vntol=1m
?
Thanks. |