help-gnucap
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gnucap] Settling time measurement for underdamped systems


From: Seshadri V
Subject: Re: [Help-gnucap] Settling time measurement for underdamped systems
Date: Wed, 15 Jul 2009 22:34:37 -0700 (PDT)

Hello Al,

Thanks for the insight. I tried the exact same logic for the measurement.
The reason I am asking is because of the rise = last and fall = last
statement. When you have an output ringing multiple times before settling to
the final desired value( say 10 significant but gradually decreasing swings
before reaching 5 volts), when you use rise = last and fall = last, it would
work fine if the last refers to the 10th swing. But I think the simulator
has some kind of internal tolerance that detects the rising edge based on
slopes or something and I came to that conclusion since the rise = last and
fall = last specifies only the first swing and not the swings after that.
Please correct me if I am wrong here and it would be nice if you can tell me
how the rising and falling edges are detected when you specify rise = last
and fall = last, I mean what conditions decide them?

That is why I am looking for alternate logic to measure the settling time.
This is a measurement syntax I would like to use in my test bench and I want
it to be generic since I wont know if the output waveform has a damped
response or an underdamped response.

Let me know if my explanation is not clear enough, I will try to come up
with a detailed explanation.

Thanks

Seshadri

al davis-13 wrote:
> 
> On Wednesday 15 July 2009, Seshadri V wrote:
>> I would like to know if there is some way to measure settling
>> time of an underdamped system( ringing output) in gnucap.
>> AFAIK, there is no direct way measuring the number of ringing
>> before the output reaches a steady state output. Because the
>> simulator identifies only the first rising edge of the output
>> and the oscillations following the first overshoot are not
>> identified by the simulator.
> 
> First you need to define "settling time".  
> Then use a combination of measures.
> 
> How about:  "10% to 90%" ...  
> the time from the 10% crossing to the last 90% crossing.
> 
> Let's assume you know the amplitude before. 
> For now, let's assume it is a 5 volt pulse.  
> The voltage starts at 0, and ends up at 5.  
> The simulation run has a single step.
> 
> Do some setup ..
>>param startvalue = 0
>>param endvalue = 5
> 
> Finding the 10% point is easy:
>>measure starttime=cross("v(out)" 
cross={startvalue+(endvalue-startvalue)*0.1} rise first)
> 
> For the 90% point, you don't know whether the last one is high or low, so
> try both:
>>measure highendtime = cross("v(out)"
cross={startvalue+(endvalue-startvalue)*1.1} fall last)
>>measure lowendtime = cross("v(out)"
cross={startvalue+(endvalue-startvalue)*0.9} rise last)
> Note the use of the keys "rise" and "fall".
> 
> Then take the later of these:
>>param endtime={max(highendtime, lowendtime)}
> 
> The settling time is the difference:
>>param settlingtime = {endtime-starttime}
>>eval settlingtime
> 
> You may also want to measure the frequency of the ringing:
>>measure t2 = cross("v(out)" cross=endvalue before=endtime rise last)
>>measure t1 = cross("v(out)" cross=endvalue before=t2 rise last)
>>param frequency = {1/(t2-t1)}
>>eval frequency
> 
> I didn't test this .. there might be mistakes here.
> This makes certain assumptions about the waveform.
> You could get bogus results if the assumptions are wrong.
> 
> Now, a reminder ...  
> params are evaluated like in a functional language with dynamic scope.
> If you think imperitive language, static scope, you may be surprised.
> 
> 
> 
> 
> _______________________________________________
> Help-gnucap mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/help-gnucap
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Settling-time-measurement-for-underdamped-systems-tp24506699p24510409.html
Sent from the Gnucap - Help mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]