Packages

o

edu.cmu.cs.ls.keymaerax.btactics

SwitchedSystems

object SwitchedSystems

Provides support for generating switched system models under various switching mechanisms.

Also provides proof automation for stability proofs

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SwitchedSystems
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Controlled(initopt: Option[Program], modes: List[(String, ODESystem, List[(String, Program)])], u: Variable) extends SwitchedSystem with Product with Serializable

    Controlled switching models

    Controlled switching models

    initopt

    optional initialization program

    modes

    list of modes, each mode consisting of: name: String (representing constant function name()) ode: ODESystem (continuous dynamics) transitions : List[(String,Program)] (transitions p->q where program a is executed along the transition, e.g., a guard and/or reset map)

    u

    the mode control variable u

  2. case class Guarded(modes: List[(String, ODESystem, List[(String, Formula)])], u: Variable) extends SwitchedSystem with Product with Serializable
  3. case class StateDependent(odes: List[ODESystem]) extends SwitchedSystem with Product with Serializable

    State dependent switching Switching between a list of ODEs (with domains)

  4. sealed trait SwitchedSystem extends AnyRef
  5. case class Timed(modes: List[(String, DifferentialProgram, Option[Term], List[(String, Option[Term])])], u: Variable, timer: Variable) extends SwitchedSystem with Product with Serializable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def attractivitySpec(ss: SwitchedSystem): Formula
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  7. def controlledFromProgram(p: Program, topt: Option[Variable]): Controlled
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def guardedFromProgram(p: Program, topt: Option[Variable]): Guarded
  13. def guardedTransitionMap(ss: SwitchedSystem): List[(Int, Int, Formula)]

    Extract an underlying indexed transition map suitable for MLF generation

    Extract an underlying indexed transition map suitable for MLF generation

    ss

    the switched system under consideration

  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def odeActive(sys: ODESystem, dom: Formula): Option[(String, Map[NamedSymbol, Expression])]

    Check that ODE's domain includes points that are about to locally exit or enter it under the dynamics of the ODE

    Check that ODE's domain includes points that are about to locally exit or enter it under the dynamics of the ODE

    sys

    the ODE under consideration

    dom

    the "global" domain of points to be considered

    Note

    for closed domains, this is automatically true

    ,

    returns an option with string and counterexample if it manages to find one

  20. def proveAttractivityCLF(V: Term): DependentPositionTactic
  21. def proveAttractivityCLF(V: Option[Term]): DependentPositionWithAppliedInputTactic
    Annotations
    @Tactic( x$13 , x$14 , x$15 , x$16 , x$17 , x$19 , x$20 , x$18 , x$21 , x$22 , x$23 , x$24 )
  22. def proveAttractivityStateMLF(Vp: List[Term]): DependentPositionWithAppliedInputTactic
    Annotations
    @Tactic( x$37 , x$38 , x$39 , x$40 , x$41 , x$43 , x$44 , x$42 , x$45 , x$46 , x$47 , x$48 )
  23. def proveAttractivityTimeMLF(Vp: List[Term], Lp: List[Formula], rate: Term): DependentPositionWithAppliedInputTactic
    Annotations
    @Tactic( "attractivityTimeMLF" , "attractivityTimeMLF" , ... , "Γ |- Vp' <= Lp*Vp, rate > 0" , ... , macros.this.Tactic.<init>$default$6 , macros.this.Tactic.<init>$default$7 , macros.this.Tactic.<init>$default$8 , macros.this.Tactic.<init>$default$9 , ... , ... , ... )
  24. def proveStabilityCLF(V: Term): DependentPositionTactic
  25. def proveStabilityCLF(V: Option[Term]): DependentPositionWithAppliedInputTactic
    Annotations
    @Tactic( x$1 , x$2 , x$3 , x$4 , x$5 , x$7 , x$8 , x$6 , x$9 , x$10 , x$11 , x$12 )
  26. def proveStabilityStateMLF(Vp: List[Term]): DependentPositionWithAppliedInputTactic
    Annotations
    @Tactic( x$25 , x$26 , x$27 , x$28 , x$29 , x$31 , x$32 , x$30 , x$33 , x$34 , x$35 , x$36 )
  27. def proveStabilityTimeMLF(Vp: List[Term], Lp: List[Formula]): DependentPositionWithAppliedInputTactic

    MLF tactic for time-dependent

    MLF tactic for time-dependent

    Vp

    list of Lyapunov functions V_p

    Lp

    list of lambdas such that V_p' <= -lambda V_p note: lambdas is provided as a list of Formulas expected to have shape lambda_p <= 0 or lambda_p > 0 This is to support parametric lambda (where the sign is not necessarily known)

    returns

    Tactic proving stability for the Timed switched system at a given position

    Annotations
    @Tactic( "stabilityTimeMLF" , "stabilityTimeMLF" , ... , "Γ |- Vp' <= Lp*Vp" , ... , macros.this.Tactic.<init>$default$6 , macros.this.Tactic.<init>$default$7 , macros.this.Tactic.<init>$default$8 , macros.this.Tactic.<init>$default$9 , ... , ... , ... )
  28. def proveStable(lyap: Term, prog: Program, varsopt: Option[List[Variable]] = None, restr: Option[Formula] = None): DependentPositionTactic

    Prove stability specification at the given top-level position using the given Lyapunov function V V must satisfy the "basic" properties: V(0) = 0, V > 0 away from the origin

    Prove stability specification at the given top-level position using the given Lyapunov function V V must satisfy the "basic" properties: V(0) = 0, V > 0 away from the origin

    Additionally, V must be a "throughout" invariant of the hybrid program

    lyap

    the (common) Lyapunov function

    prog

    ?

    varsopt

    ?

    restr

    ?

    returns

    stability tactic

  29. def slowSwitch(odes: List[ODESystem], dwell: Term, s: Variable = "s_".asVariable, u: Variable = "u_".asVariable, topt: Option[BaseVariable] = None): Program

    Standard slow switching model Each ODE is indexed 0,...,n-1

    Standard slow switching model Each ODE is indexed 0,...,n-1

    odes

    ODEs in the family

    dwell

    the (global) minimum dwell time

    returns

    a hybrid program modeling slow switching between the ODEs

  30. def stabilitySpec(ss: SwitchedSystem): Formula
  31. def stableOrigin(prog: Program, varsopt: Option[List[(Variable, Term)]] = None, restr: Option[Formula] = None): Formula

    Stability of the origin for a given hybrid program \forall eps > 0 \exists del > 0 \forall x ( ||x|| < del -> [ a ] ||x|| < eps )

    Stability of the origin for a given hybrid program \forall eps > 0 \exists del > 0 \forall x ( ||x|| < del -> [ a ] ||x|| < eps )

    prog

    the hybrid program a to specify stability

    varsopt

    Optional list of variables to quantify and perturb. By default None will pick non-differential freeVars(a) \cap boundVars(a)

    restr

    an optional additional restriction on the initial perturbation With the additional options, we can write down slightly more nuanced specifications \forall eps > 0 \exists del > 0 \forall x ( ||x|| < del -> [ a ] ||x|| < eps )

  32. def stateDependentFromProgram(p: Program, topt: Option[Variable]): StateDependent
  33. def stateSwitchActive(odes: List[ODESystem], dom: Formula = True): Option[(String, Map[NamedSymbol, Expression])]

    Check that all states can locally evolve under at least one ODE

    Check that all states can locally evolve under at least one ODE

    odes

    ODEs in the family

    dom

    the expected domain of the overall system (defaults: the entire state space)

  34. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  35. def timeSwitch(odes: List[(ODESystem, Option[Term])], transitions: List[List[(Int, Term)]], s: Variable = "s_".asVariable, u: Variable = "u_".asVariable, topt: Option[BaseVariable] = None): Program

    General time dependent switching model Each ODE is indexed 0,...,n-1 Each index i can be associated with an (optional) positive time bound t <= T_i for the maximum dwell time Each pair (i,j) can be associated with a positive time tau_{ij} <= t for minimum dwell time before transition

    General time dependent switching model Each ODE is indexed 0,...,n-1 Each index i can be associated with an (optional) positive time bound t <= T_i for the maximum dwell time Each pair (i,j) can be associated with a positive time tau_{ij} <= t for minimum dwell time before transition

    odes

    ODEs in the family with their time bounds

    transitions

    for each ODE i, an associated list of pairs (j,tau_{ij})

    returns

    a hybrid program modeling time-dependent switching between the ODEs

  36. def timedFromProgram(p: Program, topt: Option[Variable]): Timed
  37. def toString(): String
    Definition Classes
    AnyRef → Any
  38. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  40. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped