Пример #1
0
        /// <inheritdoc/>
        void IBiasingBehavior.Load()
        {
            var y = Parameters.Admittance;

            if (_time.UseDc)
            {
                BiasingElements.Add(
                    y, -y, -y, y, 1, 0, -1, -1,
                    y, -y, -y, y, 1, 0, -1, 0,
                    1, -1, 1, 1, 1
                    );
            }
            else
            {
                BiasingElements.Add(
                    y, -y, -y, y, 1, 1, -1, -1,
                    y, -y, -y, y, 1, 1, -1, -1
                    );
            }

            var sol = BiasingState.Solution;

            // Calculate inputs
            var input1 = sol[_pos2] - sol[_neg2] + Parameters.Impedance * sol[_br2];
            var input2 = sol[_pos1] - sol[_neg1] + Parameters.Impedance * sol[_br1];

            Signals.SetProbedValues(input1, input2);

            // Update the branch equations
            _elements.Add(Signals.Values[0], Signals.Values[1]);
        }
Пример #2
0
        /// <inheritdoc/>
        void IBiasingBehavior.Load()
        {
            var y = Parameters.Admittance;

            BiasingElements.Add(
                y, -y, -y, y, 1, 0, -1, -1,
                y, -y, -y, y, 1, 0, -1, 0,
                1, -1, 1, 1, 1
                );
        }
Пример #3
0
        /// <inheritdoc/>
        void IBiasingBehavior.Load()
        {
            var m = Parameters.ParallelMultiplier;
            var y = Parameters.Admittance * m;

            BiasingElements.Add(
                y, -y, -y, y, 1, 0, -1, -1,
                y, -y, -y, y, 1, 0, -1, 0,
                1, -1, 1, 1, 1
                );
        }
Пример #4
0
        /// <inheritdoc/>
        void IBiasingBehavior.Load()
        {
            var sol   = _biasing.Solution;
            var input = sol[_contPosNode] - sol[_contNegNode];

            Signal.SetProbedValues(input);

            if (_time.UseDc)
            {
                BiasingElements.Add(1, -1, 1, -1, -1, 1);
            }
            else
            {
                BiasingElements.Add(1, -1, 1, -1);
                _elements.Add(Signal.Values[0]);
            }
        }
Пример #5
0
        /// <inheritdoc/>
        void IBiasingBehavior.Load()
        {
            var m   = Parameters.ParallelMultiplier;
            var y   = Parameters.Admittance * m;
            var sol = BiasingState.Solution;

            // Calculate inputs
            var z      = Parameters.Impedance / m;
            var input1 = sol[_pos2] - sol[_neg2] + z * sol[_br2];
            var input2 = sol[_pos1] - sol[_neg1] + z * sol[_br1];

            Signals.SetProbedValues(input1, input2);

            // Apply contributions to the Y-matrix and right-hand side vector
            if (_time.UseDc)
            {
                BiasingElements.Add(
                    y, -y, -y, y, 1, 0, -1, -1,
                    y, -y, -y, y, 1, 0, -1, 0,
                    1, -1, 1, 1, 1
                    );
            }
            else
            {
                BiasingElements.Add(
                    y, -y, -y, y, 1, 1, -1, -1,
                    y, -y, -y, y, 1, 1, -1, -1
                    );
            }
            double c = Signals.InputDerivative;
            double d = -c * z;

            _elements.Add(
                -c, c, d,
                -c, c, d,
                Signals.Values[0], Signals.Values[1]);
        }