Re: Settling time measurement for underdamped systems

Seshadri V <[email protected]>
Newsgroups gmane.comp.gnu.gnucap.general
Message-ID <[email protected]>
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
> [email protected]
> 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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.