• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. RF Design
  3. LC parallel circuit at resonant frequency

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 64
  • Views 23714
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LC parallel circuit at resonant frequency

baristaskin
baristaskin over 10 years ago

Dear All,

I am trying to simulate a simple LC parallel circuit when it is drived by a voltage source.

I'm expecting the current of the voltage source V1 to get smaller as its frequency gets closer to the resonant frequency.

When I simulate this circuit at the resonant frequency, with spectre default values, I get:

I tried to play around with the following parameters:

maxstep, reltol, vabstol, iabstol

without success.

My question is: how do I setup Spectre in order to get consistent and accurate results?

What I expect to see is a sine-shaped current signal with no DC value.

I'm including the netlist of the simulation shown above:

// Generated for: spectre
// Generated on: Mar 2 16:11:27 2015
// Design library name: paper3
// Design cell name: LC_osc
// Design view name: schematic
simulator lang=spectre
global 0
parameters _EXPR_8=1.986858915135295e-08 C=1p L=100n vdd=1 \
freqC=503.30696M cycles=10 L_IC=-sqrt(C/L)*vdd/2

// Library name: paper3
// Cell name: LC_osc
// View name: schematic
L1 (Vin 0) inductor l=L r=1a ic=0
V1 (Vin 0) vsource type=sine freq=freqC ampl=vdd/2 sinephase=90 sinedc=0
C1 (Vin 0) capacitor c=C ic=vdd/2
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
checklimitdest=psf
tran tran stop=_EXPR_8 errpreset=conservative write="spectre.ic" \
writefinal="spectre.fc" annotate=status maxiters=5
finalTimeOP info what=oppoint where=rawfile
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts where=rawfile
save Vin V1:p L1:1
saveOptions options save=allpub

 

Thank you in advance.

  • Cancel
  • ShawnLogan
    ShawnLogan over 10 years ago

    Dear baristaskin,

    This circuit will push the numerical accuracy of the simulation due to its infinite Q. As a result, you can try to force a very small time step to try to better estimate the period of the waveform. However, I would recommend lowering the Q a bit with a small resistor or pursuing a different simulation methodology.

    For example, if you are just trying to show that the LC impedance becomes very large as the frequency approaches resonance (and hence draws little current), perhaps you might run a small signal AC simulation of just the tank circuit and examine its input impedance. This can be done by applying an input current source across your network with AC magnitude  1 and sweeping the frequency across the resonant frequency of the tank. As the frequency approaches the resonance frequency, the magnitude of the impedance will become infinite - which indicates the current required ti sustain the tank is approaching 0. The result will appear as in Figure 1.

    I hope this helps!

    Shawn

    Figure 1

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 10 years ago

    You can find additional Information in http://kenkundert.com/docs/bctm98-MSsim.pdf (pages 18-35).

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • baristaskin
    baristaskin over 10 years ago

    Dear Shawn,

    Thank you for your reply.

    The reason why I'm not using an AC analysis is because in my project I am using a non-linear circuit that I can't linearize.

    Here I was simply providing a minimum working example of the problem I run into when I simulate the circuit I'm working on.

    Very briefly, in place of the capacitor there is going to be a non-linear network (hundreds of transistors) that can be modeled, for the sake of simplicity, as a resistor in series with a capacitor.

    The Idea is to make this non linear system oscillate with the inductor, since RL can be fairly small.

    With such a system, and a required oscillation of 1V, I can't use AC analysis and I have to rely on transient.

    I need very high precision in the current solutions because I will use that data to compute the power consumption (ideally, when RL = 0 the power consumption is zero).

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 10 years ago

    Dear baristaskin,

    Thank you for the added information. You've mentioned a few things that I may not fully understand, but I will try to comment. My apologies if I am not interpreting the issue correctly!

    1. You noted , "The Idea is to make this non linear system oscillate with the inductor, since RL can be fairly small.". There is no guarantee that placing an inductor in parallel with an arbitrary non-linear network with a capacitive impedance is going to produce an oscillation. If you also add a voltage source (as shown in your handwritten image), the voltage source acts as an infinite capacitance and probably defeats any study of the non-linear system.

    If you are trying to study the impedance of your non-linear system, I would recommend using a linear and non-linear (transient) analysis with only an ideal current source in parallel with your non-linear network - i.e., remove the inductor L and voltage source. With the current source, from a small signal point of view and transient point of view, set its amplitude to some value and sweep its frequency. Record the voltage across the current source in an AC or transient simulation and divide the voltage by the input current. The result will be the real and imaginary parts of the input impedance of your non-linear network. From this information, you can deduce whether it will oscillate with an inductor. You can also determine the magnitude of any possible oscillation by setting the current to a value that produces an impedance equal and opposite to that of the series resistance and inductor you place in parallel with it (in lieu of the current source).

    2. You also note "With such a system, and a required oscillation of 1V, ...". I'm not sure I understand your concern. Specifically, are you trying to force an oscillation amplitude of 1 V? If so, using the above mentioned technique, you can determine the oscillation amplitude, but its amplitude is set by the non-linearity of your network to produce an impedance equal and opposite to that of the impedance you place in parallel with it - if it oscillates under that condition.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • baristaskin
    baristaskin over 10 years ago

    Dear Shawn,

    Thank you for your reply, I appreciate it.

    Regarding your points:

    1) This non-linear network has been already used in a cross-coupled LC oscillators as the capacitive load; without the voltage source and with correct initial conditions the circuit oscillates with the inductance (it's a damped oscillation of course). These are the reasons why I'm assuming it would oscillate. What do you mean by "the voltage source acts as an infinite capacitance"?

    I am not interested in the impedance of the non-linear network, but only in its oscillation with an inductor.

    2) I specified that I needed an oscillation of 1V simply to emphasize that I can't use a small signal analysis. What I am trying to do is forcing an oscillation with the voltage amplitude that I decide. In the simple LC circuit the amplitude of the oscillation is given by the initial condition on the capacitor (if you choose to start from there, otherwise it's given by the initial current of the inductor).

    The bottom line is that I am interested in computing the power dissipated by the voltage source, at the resonant frequency of the system.

    I already know that my non-linear network can oscillate with an inductor, so the problem is finding the right settings for Spectre in order to get rid of all that numerical gibberish.

    I hope this helps understand better what I am trying to do.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 10 years ago

    Dear baristaskin,

    Thank you - very helpful information!

    >  This non-linear network has been already used in a cross-coupled LC oscillators as the capacitive load;

    I understand - hence it may be something like a variable capacitive element to modify the frequency.

    > What do you mean by "the voltage source acts as an infinite capacitance"?

    It acts as an energy storage element (i.e., charge source with unlimited amount of charge)

    > 2) I specified that I needed an oscillation of 1V simply to emphasize that I can't use a small signal analysis.

    I understand...

    > What I am trying to do is forcing an oscillation with the voltage amplitude that I decide.

    Are you trying to make the voltage source appear as the source of power to sustain the oscillation?

    > The bottom line is that I am interested in computing the power dissipated by the voltage source, at the resonant frequency of the system.

    I think I'm understanding what you want - you basically want to know how much power is necessary to sustain oscillation at of your non-linear network combined with the inductor.  Effectively, you would like the voltage source to be your "sustaining" amplifier and determine how much power is required. Yes? No?

    The problem with using a voltage source is that it  has zero output impedance. Hence, it will directly impact the natural frequency of oscillation (i.e., its resonant frequency) and you will always be struggling with numerical accuracy issues if you try to force it to the resonant frequency of the network.

    I would approach it by changing the voltage source to a sinusoidal current source. Run a transient simulation at several current source amplitudes over a range of frequencies. The current source has an infinite output impedance and therefore models an ideal "sustaining amplifier". You can determine the power the current source is applying as you approach the resonant frequency. You will need to change the current source amplitude if you are trying to keep a constant voltage swing. It is still a difficult numerical problem.

    With high Q circuits, it is very desirable to consider an analysis where you separate the sustaining amplifier and tank circuits to predict both oscillation and large signal behavior. Negative resistance analyses are designed for this reason.

    I am sorry if my understanding is still not correct - but hope this spurs you with some added thoughts!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • baristaskin
    baristaskin over 10 years ago

    Thank you Shawn, my apologies for not explaining this clearly from the beginning. :)

    > Are you trying to make the voltage source appear as the source of power to sustain the oscillation?

    Precisely.

    > Effectively, you would like the voltage source to be your "sustaining" amplifier and determine how much power is required. Yes? No?

    Yes. Ideally (when Q is infinite) my sustaining amplifier wouldn't consume any power since its current would be zero.

    For a finite Q the power provided by the sustaining amplifier would only be the one that is dissipated by the real part of the LC tank.

    Does this make sense?

    > I would approach it by changing the voltage source to a sinusoidal current source.

    Thank you for the advice. This works way better, although I still get inconsistent results depending on the type of transient analysis: conservative, moderate, and liberal all give different results in terms of voltage amplitude and number of oscillations needed to go to steady state.

    Is this only a "trick" to make the simulator behave? My idea is to build an actual circuit and use an op amp as sustaining amplifier for that LC parallel.

    Thank you.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 10 years ago

    Dear baristaskin,

    Thank you for your excellent answers - I now understand your issue precisely.

    > This works way better, although I still get inconsistent results depending on the type

    > of transient analysis: conservative, moderate, and liberal all give different results in terms

    > of voltage amplitude and number of oscillations needed to go to steady state.

    Networks that have high Q resonant elements have always posed difficulties in simulation. In fact, they fall into a term described as "stiff" differential equations. In essence, the solution consists of a combination of rapidly moving and relatively slow moving regions that require the solver to use very small time steps over a long simulation period. As such, their solution is challenging - irrespective of the algorithm or simulator. Therefore, the use of an errpreset of at least "conservative" is required - or the use of "moderate" with a forced low value of parameter "maxstep" (maximum integration time step). I also tend to use "gear2only"  in these applications. The use of "moderate" (without  maxstep) or "liberal" may make the simulator skip over very important regions of the solution and hence provide inaccurate results.

    > Is this only a "trick" to make the simulator behave? My idea is to build an actual circuit

    > and use an op amp as sustaining amplifier for that LC parallel.

    It is really not a "trick". Given the difficulty of simulating high Q based networks - and the long simulation times to capture the steady-state performance - the use of alternate techniques is a requirement. I designed quartz based oscillators for much of my career and used techniques that separated the high Q resonator from the sustaining amplifier (such as I mentioned). This provided excellent correlation with measured parameters such as the frequency of oscillation and waveform amplitudes. Attempts to accurately quantify these parameters with a Q of 1000+ using conventional transient simulations with the high Q resonator in the circuit proved futile. Certainly, you can use this simulation to verify performance or capture portions of the waveforms, but from a design iteration perspective, the time required is a bit excessive.

    I hope this helps!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    smlogan said:
    I also tend to use "gear2only"  in these applications

    Using gear2only for transient simulations of oscillators is often not the best idea, because gear2only introduces some damping which can damp out the oscillation. We do use it in the shooting portion of a PSS analysis in some errpreset modes because the oscillation has generally built up by then (it's not used as the method during   the tstab portion), but for a transient in general I wouldn't use it. For non-oscillators it's good, but for oscillators, I would be careful...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • baristaskin
    baristaskin over 10 years ago

    Dear Shawn,

    Thank you so much for your time, that information was very helpful.

    I have been simulating my circuit using a current source, as you suggested, and I am obtaining encouraging results.

    I have now a more practical question, which is:

    In an actual circuit, can a voltage source be used as the sustaining amplifier? My idea is to use the current source in the simulator in order to get power numbers and whatnot, but to design and use an op amp for the fabricated IC. 

    Thank you.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information