Linear or nonlinear capacitor with optional tolerance, operational limits and fault behavior
Simscape / Electrical / Passive
The Capacitor block lets you model linear, nonlinear (table-based), and frequency-dependent capacitors, including polar capacitors. Optionally, you can also model the following effects:
You can turn these modeling options on and off independently of each other. When all the additional options are turned off, the component behavior is identical to the Simscape™ Foundation library Capacitor block.
In its simplest form, the Capacitor block models a linear capacitor, described with the following equation:
$$I=C\frac{dV}{dt}$$
where:
I is the current.
C is the capacitance.
V is the voltage.
t is the time.
To model a nonlinear or polar capacitor, set the Capacitance model
parameter to Lookup table
and provide a lookup
table of capacitance-voltage values:
For polar capacitors, where this lookup table is asymmetric with respect to
the applied terminal voltage, set the Symmetric C-V table
parameter to No - use C-V data
as-is
.
For other types of nonlinear capacitor, ensure symmetry of the capacitance
with regards to the applied terminal voltage by setting the Symmetric
C-V table parameter to Yes - use voltage magnitude
when computing C
.
To model a frequency-dependent capacitor with resistive and dielectric losses, set the
Capacitance model parameter to Dielectric
relaxation
(Debye)
.
The Debye relaxation model considers a collection of noninteracting dipoles in the
frequency domain. The result is in terms of a complex permittivity. The real (𝜖′) and
imaginary (𝜖′′) parts of the complex permittivity are given by the equations:
$$\epsilon \text{'}={\epsilon}_{\infty}+\frac{{\epsilon}_{s}-{\epsilon}_{\infty}}{1+{\omega}^{2}{\tau}^{2}}$$
$$\epsilon \text{'}\text{'}=\frac{({\epsilon}_{s}-{\epsilon}_{\infty})\omega \tau}{1+{\omega}^{2}{\tau}^{2}},$$
where 𝜔 is the radial frequency, 𝜖_{∞} is the real permittivity at very high frequency, 𝜖_{𝑠} is the real permittivity at low frequency and 𝜏 is the relaxation time constant.
In the time-domain, the characteristic equation for a capacitor in the Debye model is
$$\tau i=-q+{C}_{s}(\alpha \tau \dot{\nu}+\nu ),$$
where 𝐶_{𝑠} is the low-frequency capacitance, 𝛼 = 𝜖_{∞}/𝜖_{𝑠}, 𝑞 is the charge, 𝑖 is the current and 𝑣 is the voltage across the capacitor.
Most datasheets do not provide explicit values for the complex permittivity nor for the relaxation time; however, often the dissipation factor is provided at two frequencies. The parameters 𝛼 and 𝜏 may be derived from these values as described by the equations:
$$\tau =\frac{D{F}_{1}D{F}_{2}({\omega}_{2}^{2}-{\omega}_{1}^{2})+\sqrt{D{F}_{1}^{2}D{F}_{2}^{2}{({\omega}_{2}^{2}-{\omega}_{1}^{2})}^{2}+4{\omega}_{1}{\omega}_{2}(D{F}_{2}{\omega}_{2}-D{F}_{1}{\omega}_{1})(D{F}_{1}{\omega}_{2}-D{F}_{2}{\omega}_{1})}}{2{\omega}_{1}{\omega}_{2}(D{F}_{2}{\omega}_{2}-D{F}_{1}{\omega}_{1})}$$
$$\alpha =\frac{{\omega}_{1}\tau -D{F}_{1}}{{\omega}_{1}\tau (1+D{F}_{1}{\omega}_{1}\tau )},$$
where 𝜔_{1} and 𝜔_{2} are two different frequencies, and DF_{1} and DF_{2} are the dissipation factors calculated at said frequencies, respectively.
The argument of the square root must be positive for a valid parameterization in the Debye model.
You can apply tolerances to the nominal value you provide for the Capacitance parameter. Datasheets typically provide a tolerance percentage for a given capacitor type. The table shows how the block applies tolerances and calculates capacitance based on the selected Tolerance application option.
Option | Capacitance Value |
---|---|
| C |
| Uniform distribution: C · (1 –
tol + 2·
tol·
Gaussian distribution:
C · (1 + tol
· |
| C · (1 + tol ) |
| C · (1 – tol ) |
In the table,
C is the Capacitance parameter value, nominal capacitance.
tol is the fractional tolerance, Capacitance tolerance (%) /100.
nSigma is the value you provide for the Number of standard deviations for quoted tolerance parameter.
rand
and randn
are standard
MATLAB^{®} functions for generating uniform and normal distribution
random numbers.
Note
If you choose the Random tolerance
option and you
are in "Fast Restart" mode, the random tolerance value is updated on every
simulation if at least one between the fractional tolerance,
tol, or the Number of standard deviations for
quoted tolerance, nSigma, is set to Run-time
and is defined with a variable (even if you do not modify that variable).
You can specify operating limits in terms of maximum working voltage and the maximum (instantaneous) power dissipation in the series resistance and in the parallel conductance of the capacitor.
For polar capacitors, you can define the working voltage range in such a way that the block provides a warning, or an error, if the polarity of the applied voltage becomes incorrect.
When an operating limit is exceeded, the block can either generate a warning or stop the simulation with an error. For more information, see Operating Limits.
Instantaneous changes in capacitor parameters are unphysical. Therefore, when the Capacitor block enters the faulted state, the capacitance, resistance, and conductance transition to their faulted values over a period of time, according to the following formula:
CurrentValue =
FaultedValue – (
FaultedValue –
UnfaultedValue ) · sech
(∆t / τ) | (1) |
where:
∆t is the time since the onset of the fault condition.
τ is the user-defined time constant associated with the fault transition.
The block can trigger the start of fault transition:
At a specific time
When terminal voltage is outside the permissible voltage range for longer than a specific time interval
You can enable or disable these trigger mechanisms separately, or use them together if more than one trigger mechanism is required in a simulation. When more than one mechanism is enabled, the first mechanism to trigger the fault transition takes precedence. In other words, component fails no more than once per simulation.
You can also choose whether to issue an assertion when a fault occurs, by using the Reporting when a fault occurs parameter. The assertion can take the form of a warning or an error. By default, the block does not issue an assertion.
Use the Variables section of the block interface to set the priority and initial target values for the block variables prior to simulation. For more information, see Set Priority and Initial Target for Block Variables.
The Capacitor voltage variable lets you specify a high-priority target for the initial capacitor voltage at the start of simulation.