Magnus Olsson
COMSOL Employee
Please login with a confirmed email address before reporting spam
Posted:
9 years ago
27.01.2016, 04:32 GMT-5
Hi Ramón,
Small-signal analysis is a useful approach when you have a nonlinear device like a semiconductor or an inductor with a ferromagnetic core that is driven by a comparatively large static (DC) signal with a superimposed, much smaller AC signal. Then, it is practical to first solve a static model to get the operating point (linearization point) of the device and then solve a frequency domain model for the AC perturbation around that operating point.
Now, in COMSOL that involves two study steps in the same study:
1) Stationary (DC) solution. Note that the DC "signal" can be something like a permanent magnet.
2) Frequency Domain, Linearized (AC) solution.
When setting up the model, you also tell what features/excitations belong to the DC and AC signals.
By adding features/subfeatures labelled "harmonic perturbation" or by using the "linper" operator to tell COMSOL that it is an AC contribution. For example a current excitation of;
100 + linper(1)
will represent 100A DC + 1A AC. If you do not use "harmonic perturbation" features or the "linper" operator it will be interpreted as a DC contribution.
In the postprocessing, you similarly evaluate either the AC or the DC part of the solution and/or excitations. Thus if you select to evaluate for "Harmonic Perturbation" you will get the AC part of the solution or input or whatever expression you are referring to. Thus if you evaluate for a constant, you get zero. As it is not part of the solution, COMSOL assumes it is a DC constant. If you instead evaluate the same way but for linper("the same constant"), you get the constant value.
There are situations when it is better to use operators also in the postprocessing and that is when you are after products or ratios of AC quantities. Then make sure to:
a) Deselect the "compute differential" check box.
b) Use the "lindev" operator to get the AC part of an expression.
For example in the example small signal analysis of an inductor, you can manually evaluate the AC inductance as:
imag((lindev(mf.VCoil_coil)*mf.ICoil_coil-mf.VCoil_coil*lindev(mf.ICoil_coil))/mf.ICoil_coil^2)/mf.omega
That deduction is based on the assumption that the AC coil impedance Z is given by:
Z = V/I = R + j*omega*L
Now, if you did not explicitly use the syntax
lindev(a)/lindev(b)
bur rather just entered
a/b
with "compute differential" selected, COMSOL would behind the scenes rather compute
lindev(a/b)
which is something different.
Finally, I should mention that there is also a "linpoint" operator that extracts the DC part of an expression in postprocessing.
--
Magnus
Hi Ramón,
Small-signal analysis is a useful approach when you have a nonlinear device like a semiconductor or an inductor with a ferromagnetic core that is driven by a comparatively large static (DC) signal with a superimposed, much smaller AC signal. Then, it is practical to first solve a static model to get the operating point (linearization point) of the device and then solve a frequency domain model for the AC perturbation around that operating point.
Now, in COMSOL that involves two study steps in the same study:
1) Stationary (DC) solution. Note that the DC "signal" can be something like a permanent magnet.
2) Frequency Domain, Linearized (AC) solution.
When setting up the model, you also tell what features/excitations belong to the DC and AC signals.
By adding features/subfeatures labelled "harmonic perturbation" or by using the "linper" operator to tell COMSOL that it is an AC contribution. For example a current excitation of;
100 + linper(1)
will represent 100A DC + 1A AC. If you do not use "harmonic perturbation" features or the "linper" operator it will be interpreted as a DC contribution.
In the postprocessing, you similarly evaluate either the AC or the DC part of the solution and/or excitations. Thus if you select to evaluate for "Harmonic Perturbation" you will get the AC part of the solution or input or whatever expression you are referring to. Thus if you evaluate for a constant, you get zero. As it is not part of the solution, COMSOL assumes it is a DC constant. If you instead evaluate the same way but for linper("the same constant"), you get the constant value.
There are situations when it is better to use operators also in the postprocessing and that is when you are after products or ratios of AC quantities. Then make sure to:
a) Deselect the "compute differential" check box.
b) Use the "lindev" operator to get the AC part of an expression.
For example in the example small signal analysis of an inductor, you can manually evaluate the AC inductance as:
imag((lindev(mf.VCoil_coil)*mf.ICoil_coil-mf.VCoil_coil*lindev(mf.ICoil_coil))/mf.ICoil_coil^2)/mf.omega
That deduction is based on the assumption that the AC coil impedance Z is given by:
Z = V/I = R + j*omega*L
Now, if you did not explicitly use the syntax
lindev(a)/lindev(b)
bur rather just entered
a/b
with "compute differential" selected, COMSOL would behind the scenes rather compute
lindev(a/b)
which is something different.
Finally, I should mention that there is also a "linpoint" operator that extracts the DC part of an expression in postprocessing.
--
Magnus