Nonlinear passive components

Description of nonlinear passive components in Schematic Editor

Nonlinear inductor

Nonlinear inductor is available in Typhoon HIL's library of components. It is implemented as a controlled current source as a function of the inductor’s flux. Function i(Φ) (where i is the inductor current and Φ is the inductor flux) is defined through the properties window of the component. A look-up table (LUT) is generated based on the properties settings.

Table 1. Nonlinear passive components in the Schematic Editor core library
component component dialog window component parameters

Nonlinear inductor

• Vector of flux values (Wb)
• Vector of inductance values (H)
• Vector of current values (A)
• Initial current (A)
• Curve preview button
• Enable snubber
• Snubber type
• Resistance
• Capacitance
• DCM optimization
The Parameter definition property provides a choice of four different parameter definition methods:
• The flux method uses a user-defined flux-current curve. Linear interpolation is applied to the flux values between the defined points, while linear extrapolation is applied in case a current value is outside of the specified range. The property window and the generated preview flux-current curve are shown in Figure 1.
• The inductance method uses inductance and current vectors to calculate the fluxes, assuming that $\Phi \left(i\right)=Li$ . It is assumed that inductance has a constant value for currents smaller than the smallest current value in the current values vector. Linear interpolation is applied to the flux vector values that are calculated based on provided inductance and current values. The property window and the generated preview flux-current curve are shown in Figure 2.
• The inductance (dΦ/di) method uses inductance and current vectors to calculate the fluxes, assuming that $\Phi \left(I\right)={\int }_{0}^{I}Ldi$ . It is assumed that inductance has a constant value for currents smaller than the smallest current value in the current values vector. Linear interpolation is first applied to the inductance vector values in order to ensure a continuous function L(i). This function is integrated in order to get the flux-current curve for the LUT. The property window and the generated preview flux-current curve are shown in Figure 2.
• The hysteresis method uses multiple different saturation curves which can be defined in the component properties. The current difference due to the hysteresis effect is injected in parallel with the nonlinear current coming from saturation effects, but according to the slower execution rate defined in the Signal Processing execution rate property. Additional information on hysteresis calculation can be found in the Hysteresis effects section.

The schematic diagram of the nonlinear inductor model is shown in Figure 3. In the electrical circuit, nonlinear inductor is represented as a current source. Voltage across the inductor is measured and integrated, the result of the integration being the inductor’s flux. Flux is used to address the LUT. The output of the look-up table is the inductor current which is fed to the controlled current source.

The snubber circuit can be added in parallel with the current source using the Enable snubber checkbox. Either the purely resistive R snubber or the R-C snubber can be chosen.

The DCM optimization property provides a possible optimization of the nonlinear inductor component in certain converter discontinuous conduction modes. When enabled, this property creates a linear inductor in parallel with a current source and modifies the current source to simulate only the saturation effects. Nonlinear inductor with this property disabled normally has a single simulation time step delay between the integrated flux and the current associated with it. Unlike a current source, linear inductor has no delay between the current and the voltage on its terminal, making it more responsive in linear operating points.
Note: The DCM optimization property increases both the matrix memory utilization and time slot utilization of the model when enabled.

Hysteresis effects

Simulating hysteresis effects requires signal processing implementation. Therefore, an execution rate for hysteresis simulation must be specified. To capture this effect for an arbitrary dynamic signal, its period should be at least 20 times faster than the execution rate of hysteresis sampling, defined in Execution rate. Hysteresis is further defined through three lists/arrays which have different labels depending on the type of transformer or nonlinear inductor as shown in Figure 4. Hysteresis flux values define the hysteresis upper curve for the positive current, positive flux quadrant. The hysteresis bottom curve and the three other flux-current quadrants are extrapolated using symmetry. When hysteresis is enabled, the current source is created in parallel with a nonlinear inductor, injecting current only due to hysteresis effects with an execution rate specified through the Execution rate parameter. Nonlinear current functionality, however, will always be simulated with the solver execution rate, making saturation effects significantly more responsive than the hysteresis effect.

To properly define hysteresis, the data value for both Flux values and Hysteresis flux values must be specified for the zero current data-point, which means that the first value of Current values and Flux values lists/arrays must be 0, and that the first value of the Hysteresis flux values list/array must be the remanent flux value. Secondly, all three of these properties must have the same number of elements and all three must be monotonically non-decreasing lists/arrays. Hysteresis flux values must have at least one element that is higher in value than the corresponding element in the Flux values list, followed by at least one element that has the same value as the corresponding element in Flux values. The first common element for Hysteresis flux values and Flux values is defined as the Hysteresis upper curve threshold.

Figure 5 demonstrates an example of properly defined parameter values using the settings below.

Flux values [Wb]: [0, 0.004, 0.008, 0.011, 0.013, 0.014, 0.0145, 0.015]
Current values [A]: [0, 1, 2, 3, 4, 5, 6, 7]
Hysteresis flux values [Wb]: [0.004, 0.007, 0.01, 0.012, 0.0135, 0.0141, 0.0145, 0.015]
Clicking the Preview button will validate the hysteresis parameters, but only if they are defined directly in the respective property fields and not if they are defined through the namespace. After validation, the Hysteresis curve will be extended, showing the expected simulation hysteresis curve as shown in Figure 6.
When the simulated flux value surpasses the Hysteresis upper curve threshold, the upper curve becomes the trajectory for the flux-current set-points and stays that way until the next trigger event. When the simulated flux value falls bellow the Hysteresis bottom curve threshold, the bottom curve becomes the trajectory for the flux-current set-points and stays that way until the next trigger event. When the simulation is first started, the original curve is a reference, until the next trigger event. A way to disable hysteresis and return the reference curve to the original magnetization curve during runtime, is to set the scada input named demagnetize_scada_in to 1. To re-enable the hysteresis upper and bottom curve, set the scada input demagnetize_scada_in to 0.