Capacitor
Linear or nonlinear capacitor with optional tolerance, operational limits and fault behavior
Libraries:
Simscape /
Electrical /
Passive
Description
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.
Tolerances
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
andrandn
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).
Operating Limits
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.
Model Thermal Effects
Since R2024a
You can expose the thermal port to observe the power loss and the change in temperature of the capacitor and to set the thermal mass. To expose the thermal port, in the Thermal section, select the Model thermal port parameter.
Exposing the thermal port also enables a parameter, Temperature, in the Operating Limits section, that defines the maximum valid temperature for the block operation.
Use the Variables tab to set the initial temperature target.
Faults
To model a fault in the Capacitor block, in the Faults section, click the Add fault hyperlink in the parameter that corresponds to the specific fault that you want to model. When the Create Fault window opens, you use it to specify the fault properties. For more information about fault modeling, see Fault Behavior Modeling and Fault Triggering.
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
/ τ)
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.
If you want to trigger a fault at a specific time, in the
Fault Inspector window, set Trigger type to
Timed
. If you want to determine whether a system fails and, if
so, when it fails, in the Fault Inspector window, set Trigger
type to Behavioral
.
Variables
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.
The Temperature variable lets you specify a high-priority target for the temperature at the start of simulation. To enable this variable, in the Thermal section, select the Model thermal port parameter. (since R2024a)