Ejemplo n.º 1
0
 /// <summary>
 /// Create states
 /// </summary>
 /// <param name="method"></param>
 public void CreateStates(IntegrationMethod method)
 {
     if (method == null)
     {
         throw new ArgumentNullException(nameof(method));
     }
     QCap = method.CreateDerivative();
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Create states
        /// </summary>
        /// <param name="states">States</param>
        public override void CreateStates(StatePool states)
        {
            if (states == null)
            {
                throw new ArgumentNullException(nameof(states));
            }

            _flux = states.CreateDerivative();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="inductance">Inductor</param>
        /// <param name="current">Current</param>
        /// <param name="flux">Flux</param>
        /// <param name="state">State</param>
        public UpdateFluxEventArgs(double inductance, double current, StateDerivative flux, BaseSimulationState state)
        {
            flux.ThrowIfNull(nameof(flux));

            Inductance   = inductance;
            Current      = current;
            OriginalFlux = flux.Current;
            Flux         = flux;
            State        = state ?? throw new ArgumentNullException(nameof(state));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Setup the behavior
        /// </summary>
        public override void Bind(Simulation simulation, BindingContext context)
        {
            base.Bind(simulation, context);
            _load = context.GetBehavior <BiasingBehavior>();
            _load.TranBehavior = this;

            var method = ((TimeSimulation)simulation).Method;

            Qb = method.CreateDerivative();
            Qg = method.CreateDerivative();
            Qd = method.CreateDerivative();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="inductance">Inductor</param>
        /// <param name="current">Current</param>
        /// <param name="flux">Flux</param>
        /// <param name="state">State</param>
        public UpdateFluxEventArgs(double inductance, double current, StateDerivative flux, RealState state)
        {
            if (flux == null)
            {
                throw new ArgumentNullException(nameof(flux));
            }

            Inductance   = inductance;
            Current      = current;
            OriginalFlux = flux.Current;
            Flux         = flux;
            State        = state ?? throw new ArgumentNullException(nameof(state));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Setup the behavior
        /// </summary>
        public override void Bind(Simulation simulation, BindingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            _load = context.GetBehavior <BiasingBehavior>();
            _load.TranBehavior = this;

            var method = ((TimeSimulation)simulation).Method;

            Qb = method.CreateDerivative();
            Qg = method.CreateDerivative();
            Qd = method.CreateDerivative();
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Bind the behavior.
        /// </summary>
        /// <param name="simulation">The simulation.</param>
        /// <param name="context">The context.</param>
        public override void Bind(Simulation simulation, BindingContext context)
        {
            base.Bind(simulation, context);

            _state = ((BaseSimulation)simulation).RealState;
            var solver = _state.Solver;

            PosPosPtr = solver.GetMatrixElement(PosNode, PosNode);
            NegNegPtr = solver.GetMatrixElement(NegNode, NegNode);
            NegPosPtr = solver.GetMatrixElement(NegNode, PosNode);
            PosNegPtr = solver.GetMatrixElement(PosNode, NegNode);
            PosPtr    = solver.GetRhsElement(PosNode);
            NegPtr    = solver.GetRhsElement(NegNode);

            var method = ((TimeSimulation)simulation).Method;

            QCap = method.CreateDerivative();
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Create states
        /// </summary>
        /// <param name="states">States</param>
        public override void CreateStates(StatePool states)
        {
            if (states == null)
            {
                throw new ArgumentNullException(nameof(states));
            }

            VoltageBs = states.CreateHistory();
            VoltageGs = states.CreateHistory();
            VoltageDs = states.CreateHistory();
            CapGs     = states.CreateHistory();
            CapGd     = states.CreateHistory();
            CapGb     = states.CreateHistory();
            ChargeGs  = states.CreateDerivative();
            ChargeGd  = states.CreateDerivative();
            ChargeGb  = states.CreateDerivative();
            ChargeBd  = states.CreateDerivative();
            ChargeBs  = states.CreateDerivative();
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Create states
        /// </summary>
        /// <param name="method"></param>
        public override void CreateStates(IntegrationMethod method)
        {
            if (method == null)
            {
                throw new ArgumentNullException(nameof(method));
            }

            _vgs   = method.CreateHistory();
            _vds   = method.CreateHistory();
            _vbs   = method.CreateHistory();
            _capgs = method.CreateHistory();
            _capgd = method.CreateHistory();
            _capgb = method.CreateHistory();
            _qgs   = method.CreateDerivative();
            _qgd   = method.CreateDerivative();
            _qgb   = method.CreateDerivative();
            _qbd   = method.CreateDerivative();
            _qbs   = method.CreateDerivative();
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Create states
        /// </summary>
        /// <param name="method"></param>
        public override void CreateStates(IntegrationMethod method)
        {
            if (method == null)
            {
                throw new ArgumentNullException(nameof(method));
            }

            VoltageBs = method.CreateHistory();
            VoltageGs = method.CreateHistory();
            VoltageDs = method.CreateHistory();
            CapGs     = method.CreateHistory();
            CapGd     = method.CreateHistory();
            CapGb     = method.CreateHistory();
            ChargeGs  = method.CreateDerivative();
            ChargeGd  = method.CreateDerivative();
            ChargeGb  = method.CreateDerivative();
            ChargeBd  = method.CreateDerivative();
            ChargeBs  = method.CreateDerivative();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Create states
        /// </summary>
        /// <param name="states">States</param>
        public override void CreateStates(StatePool states)
        {
            if (states == null)
            {
                throw new ArgumentNullException(nameof(states));
            }

            _vgs   = states.CreateHistory();
            _vds   = states.CreateHistory();
            _vbs   = states.CreateHistory();
            _capgs = states.CreateHistory();
            _capgd = states.CreateHistory();
            _capgb = states.CreateHistory();
            _qgs   = states.CreateDerivative();
            _qgd   = states.CreateDerivative();
            _qgb   = states.CreateDerivative();
            _qbd   = states.CreateDerivative();
            _qbs   = states.CreateDerivative();
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Bind behavior.
        /// </summary>
        /// <param name="simulation">The simulation.</param>
        /// <param name="context">Data provider</param>
        public override void Bind(Simulation simulation, BindingContext context)
        {
            base.Bind(simulation, context);

            // Clear all events
            if (UpdateFlux != null)
            {
                foreach (var inv in UpdateFlux.GetInvocationList())
                {
                    UpdateFlux -= (EventHandler <UpdateFluxEventArgs>)inv;
                }
            }

            var solver = State.Solver;

            BranchBranchPtr = solver.GetMatrixElement(BranchEq, BranchEq);
            BranchPtr       = solver.GetRhsElement(BranchEq);

            var method = ((TimeSimulation)simulation).Method;

            _flux = method.CreateDerivative();
        }
Ejemplo n.º 13
0
 /// <summary>
 /// Create states
 /// </summary>
 /// <param name="method"></param>
 public void CreateStates(IntegrationMethod method)
 {
     method.ThrowIfNull(nameof(method));
     QCap = method.CreateDerivative();
 }