Miravo

Generators

Choose the generator family that matches a member's process behavior, control path, or lifecycle-dependent response.

Pick a generator when a member needs runtime behavior instead of a fixed value.

Technical details

Choose a generator family by role

Resolve input deliberately

generator:
  type: first-order-lag
  tau: 30
  input: { member: "speed_feedback" }
generator:
  type: transport-delay
  delay: 15
  initial_value: 0
  input: { previous_member: "entry_signal" }
generator:
  type: noise
  center: "$param.rated_rpm"
  stddev: 5
generator:
  type: weighted-sum
  terms:
    - input:
        generator:
          type: noise
          center: 0
          stddev: 0.2
      weight: 1

Build a chain, not a bag of signals

speed_setpoint:
  kind: variable
  data_type: Double
  access: readwrite
  unit: rpm
  generator:
    type: timetable
    repeat: true
    interpolation: step
    points:
      - { time: 0, value: 0 }
      - { time: 21600, value: 1200 }
      - { time: 64800, value: 900 }

speed_feedback:
  kind: variable
  data_type: Double
  access: read
  unit: rpm
  generator:
    type: slew-rate-limiter
    input: { member: "speed_setpoint" }
    rate_up: 220
    rate_down: 320
    min: 0
    max: 1850

Keep dependencies readable. Long chains are fine. Hidden coupling is not. Member order remains part of the runtime contract.

Reference

RoleGenerator types
Local sourcesine, noise, random-walk, step, ramp, mean-reverting-noise, timetable, state-machine, waveform, chirp, impulse
Signal transformfirst-order-lag, integrator, transport-delay, slew-rate-limiter, second-order, hysteresis-relay, weighted-sum, gate
Context-awarecorrelated, health-dependent
Supports $param.X in common coefficient fieldssine, noise, waveform, chirp, mean-reverting-noise, correlated, first-order-lag, second-order, transport-delay, hysteresis-relay, weighted-sum

Was this page useful?

Last updated on