Features

Lodestar's feature list.

  • Automatic resolution of circular data-dependencies (algebraic loops).
  • Transparent compile-time error checking, as well as run-time checks prior to executing code.
  • Easy extensibility with a simple yet powerful Block API based on template metaprogramming.
  • Clean C++ code generation with predetermined function execution order, as well as resolved data-dependencies.
  • Zero-overhead abstraction using templated classes; it does not matter if you have a thousand inputs, or just one.
  • Out-of-the-box networking support, with efficient serialization.
  • Automatic direct encryption and decryption of messages for enhanced security using state-of-the-art elliptic curve algorithms.

Control Routines

For now, this section will be a checkboxed list; more details will follow. We adhere in most cases to the classification system used in SLICOT1. Cursive identifiers are extensions to the SLICOT system that we devised for additional features that Lodestar provides.

  • A: Analysis Routines

    • AB: State-Space Analysis
      • AB04: Continuous/Discrete Time
        • AB04MD: Discrete-time <-> continuous-time conversion by bilinear transformation. - Generalized bilinear transformations have been implemented, with specialization for Tustin, Euler, and backward differencing transforms.
          ls::analysis::BilinearTransformation - Beyond the SLICOT spec, zero-order hold transformations based on exponential and logarithmic matrices have been implemented.
          ls::analysis::ZeroOrderHold
      • AB07: Inverse and Dual Systems
        • AB07ND: Inverse of a given state-space representation
  • F: Filtering

    • FB: Kalman Filters
      • FB01: N/A
        • FB01VD: One recursion of the conventional Kalman filter - We currently have an implementation for finite horizon Kalman gain computation for discrete-time linear time invariant systems.
          ls::filter::DiscreteLQE
  • S: Synthesis Routines

    • SB: State-Space Synthesis
  • T: Transformation Routines

    • TD: Rational Matrix
      • TD05: Rational Matrix to State-Space Conversion
        • TD05AD: Minimal state-space representation for a proper transfer matrix - This is currently implemented for scalar transfer functions, but can easily be extended to transfer function matrices.
          ls::systems::TransferFunction::toStateSpace
  • U: Utility Routines

    • UD: Numerical Data Handling
    • US: Symbolic Manipulation/Data Handling
      • US01: Ordinary Differential Equations

  1. SLICOT: Subroutine Library in Systems and Control Theory↩︎

  2. GiNaC: GiNac is Not a CAS (Computer Algebra System). ↩︎