Skip to content

pseudo steady state mode for dynamical blocks #105

Description

@milanofthe

Sometimes in big complex systems, individual components have wildly different timescales for their physics. In some cases it makes sense to approximate components with very fast dynamics as being in a steady state at each timestep, such that the component becomes purely algebraic.

To achieve this, the time derivative of the block ode

$$\dot{x} = f(x, u, t)$$

will be forced to zero (transients have settled locally). Then the behavior of the block becomes algebraic and is defined by this algebraic implicit equation

$$0 = f(x, u, t)$$

that has to be solved for x for given block inputs u and time t.

Implementation ideas:

  • define new pseudosteadystate(t) method for blocks and implement it for blocks that have dynamic operators
  • add a new _pss flag to blocks and enable pss as an arg for the blocks that support it
  • in the timestepping methods of the block check if _pss is set and handle the logic accordingly

This will work but maybe there is a more elegant solution

  • alternatively build a PeriodicSteadyState block that wraps other blocks and solves the algebraic equation through the same interface as the Simulation using the already existing SteadyState solver

I think thats more elegant but might be less efficient

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestnumericsnumerical solversroadmapThis label identifies issues that are development roadmap items for PathSim

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions