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 lookup table (LUT) is generated based on the properties settings.
component  component dialog window  component parameters 

Nonlinear inductor 

 The flux method uses a userdefined fluxcurrent 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 fluxcurrent 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 fluxcurrent 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 fluxcurrent curve for the LUT. The property window and the generated preview fluxcurrent 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 lookup 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 RC snubber can be chosen.
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 fluxcurrent 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 datapoint, 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 nondecreasing 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.