GRIDRA

Lab

GRIDRA Sense Lab

Telemetry experiments for a single voltage sensor — compare periodic, send-on-delta and level-crossing reporting on synthetic signals, and see how many messages each needs against the critical events it catches, over 60 runs.

Einfach erklärt

Ein Sensor kann eine Spannung viele Male pro Sekunde messen, aber jede gesendete Nachricht kostet Bandbreite und Energie. Welche Messwerte sind also das Senden wert? Dieses Lab vergleicht drei Regeln an einem erfundenen Spannungseinbruch: nach Zeitplan senden, senden, sobald sich der Wert um einen festen Betrag geändert hat, oder nur senden, wenn der Wert einen kritischen Pegel kreuzt. Für jede Regel zählt es die Nachrichten und prüft, was der Empfänger trotzdem erfährt: ob er vom Einbruch gehört hat, wie spät, und ob er Fehlalarme ausgelöst hat. Weil die Signale erfunden sind und die Übertragungsstrecke perfekt ist, zeigen die Ergebnisse, wie sich die Regeln verhalten, nicht wie sich ein reales Netz oder ein reales Schutzrelais verhielte.

  • Synthetic signals
  • Perfect link: no loss, no delay
  • Messages, not bytes
  • Illustrative settings, not validated

Scenario

01 / signal

What happens to the voltage

A deep dip of 70 V lasting 1.2 s, well below the critical level. Switching preset keeps your noise, critical level and seed.


= 15.0 s into a 40 s record (one sample every 0.1 s).

= 1.2 s


White Gaussian noise added to every sample.

A value below this counts as critical. 207 V is 90 % of 230 V, chosen for illustration: not a grid-code or protection setting.

The same seed regenerates the same run.


Try this

  • Pick Brief dip. The dip is 2 samples long and the timer sends once every 20, so over 60 runs it catches only about one dip in ten, while the other two rules catch every one with three messages.
  • Pick Load step, a real change that is not critical. Send-on-delta reports it; the task-aware rule stays silent, and its RMSE shows how little of the signal the receiver now knows.
  • Pick Slow drift and raise the noise. Watch the false-alarm episodes of the level-crossing rule: noise near the critical level makes it flip back and forth.

Sending rules

The trace below always shows one run (seed 1). The numbers can describe that run or the average over 60 runs with different noise and a different timer offset: one run is a lottery for a timer, because whether it lands inside a short dip depends only on where the dip sits against its schedule.

Sending rule shown in the trace
Messages
21 of 400
Events caught
36 of 60
Delay (median)
0.5 s
Messages
3 of 400
Events caught
60 of 60
Delay (median)
0.0 s

No setting here: it reacts only to crossings of the critical level (207 V).

Messages
3 of 400
Events caught
60 of 60
Delay (median)
0.0 s

Trace: Periodic

Periodic: 20 of 400 samples sent; 1 of 1 critical events caught.Top: the measured signal, the noise-free signal, the value the receiver holds, the critical level and the critical events. Middle: one tick per message sent. Bottom: whether the signal is critical, whether the receiver's alarm is up, and where the two disagree.160180200220Vcaught, +1.0 scritical level 207 Vsentcriticalalarmwrong0 s10 s20 s30 s
  • measured (with noise)
  • noise-free signal
  • value the receiver holds
  • critical level
  • critical event
  • receiver's alarm is wrong

Side by side

average of 60 runs
RuleMessages (vs send-all)Events caughtDelay, median / p95False-alarm episodesAlarm wrongRMSE vs measurementRMSE vs truth
Periodic21.0 (−94.8 %)36 / 600.5 / 1.1 s0.60 per run4.05 %13.90 V13.86 V
Send-on-delta3.0 (−99.3 %)60 / 600.0 / 0.0 s0.00 per run0.00 %1.33 V0.86 V
Task-aware (level-crossing rule)3.0 (−99.3 %)60 / 600.0 / 0.0 s0.00 per run0.00 %1.33 V0.86 V

There is deliberately no ranking here. A rule that sends nothing has the fewest messages; a rule that sends everything has no error. Read messages, events caught, false alarms and RMSE together. Delay is counted from an event's starting sample to the earliest received value below the critical level, so on this perfect link it is a best-case lower bound; an alarm that was already up counts as zero delay, which is why false-alarm episodes sit beside it.

Operating curves

Each rule has one cost knob (the period, the threshold, a silence timer). Sliding it traces how messages sent trade against what the receiver gets right, averaged over 60 runs. Compare rules at equal messages sent, following the dashed line, not at equal parameter values. The ring on each curve is that rule's current setting.

Operating curves: events missed against messages sent, for Periodic, Send-on-delta, Task-aware (level-crossing rule).Horizontal axis: share of samples sent as messages, logarithmic. Vertical axis: events missed. One curve per sending rule; a ring marks each rule's current setting and a dashed vertical line marks the selected rule's message share, so the other curves can be read at equal messages sent.0 %20 %40 %60 %80 %100 %0.3%1%3%10%30%100%messages sent, % of samples (log scale)events missedequal messagesPeriodic, every 120 samples: 1.08 % of samples sent, events missed 90 %Periodic, every 80 samples: 1.50 % of samples sent, events missed 85 %Periodic, every 50 samples: 2.24 % of samples sent, events missed 75 %Periodic, every 30 samples: 3.57 % of samples sent, events missed 60 %Periodic, every 20 samples: 5.24 % of samples sent, events missed 40 %Periodic, every 12 samples: 8.56 % of samples sent, events missed 0 %Periodic, every 8 samples: 12.72 % of samples sent, events missed 0 %Periodic, every 5 samples: 20.20 % of samples sent, events missed 0 %Periodic, every 3 samples: 33.50 % of samples sent, events missed 0 %Periodic, every 2 samples: 50.13 % of samples sent, events missed 0 %Periodic, every 1 sample: 100.00 % of samples sent, events missed 0 %Send-on-delta, delta 8 V: 0.75 % of samples sent, events missed 0 %Send-on-delta, delta 12 V: 0.75 % of samples sent, events missed 0 %Send-on-delta, delta 20 V: 0.75 % of samples sent, events missed 0 %Send-on-delta, delta 35 V: 0.75 % of samples sent, events missed 0 %Send-on-delta, delta 5 V: 0.80 % of samples sent, events missed 0 %Send-on-delta, delta 3 V: 4.03 % of samples sent, events missed 0 %Send-on-delta, delta 2 V: 16.77 % of samples sent, events missed 0 %Send-on-delta, delta 1 V: 48.08 % of samples sent, events missed 0 %Send-on-delta, delta 0.5 V: 72.36 % of samples sent, events missed 0 %Task-aware (level-crossing rule), no silence timer: 0.75 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 100 samples: 1.50 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 50 samples: 2.25 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 30 samples: 3.50 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 20 samples: 5.25 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 10 samples: 10.25 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 5 samples: 20.25 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 3 samples: 33.50 % of samples sent, events missed 0 %Task-aware (level-crossing rule), silence timer 2 samples: 50.00 % of samples sent, events missed 0 %
  • Periodic
  • Send-on-delta
  • Task-aware (level-crossing rule)

For the task-aware rule the knob is a silence timer ("send anyway after N quiet samples"). On a perfect link it only adds messages, because the alarm already follows every crossing, so its miss and wrong-alarm points stay put and only the RMSE falls. With sparse messages the RMSE against the measurement cannot fall much below about 1.4 × the noise level: the held value is an old noisy sample whose noise is independent of today's.

Data behind the curves
RuleSettingMessages, % of samplesEvents missedAlarm wrongRMSE vs measurement
Periodicevery 1 sample100.000 %0.00 %0.00 V
Periodicevery 2 samples50.130 %0.25 %3.02 V
Periodicevery 3 samples33.500 %0.50 %4.43 V
Periodicevery 5 samples20.200 %1.00 %7.01 V
Periodicevery 8 samples12.720 %1.73 %9.22 V
Periodicevery 12 samples8.560 %2.75 %10.86 V
Periodicevery 20 samples5.2440 %4.05 %13.90 V
Periodicevery 30 samples3.5760 %4.70 %14.81 V
Periodicevery 50 samples2.2475 %5.30 %15.25 V
Periodicevery 80 samples1.5085 %5.53 %15.06 V
Periodicevery 120 samples1.0890 %5.65 %14.76 V
Send-on-deltadelta 0.5 V72.360 %0.00 %0.15 V
Send-on-deltadelta 1 V48.080 %0.00 %0.40 V
Send-on-deltadelta 2 V16.770 %0.00 %0.92 V
Send-on-deltadelta 3 V4.030 %0.00 %1.25 V
Send-on-deltadelta 5 V0.800 %0.00 %1.33 V
Send-on-deltadelta 8 V0.750 %0.00 %1.33 V
Send-on-deltadelta 12 V0.750 %0.00 %1.33 V
Send-on-deltadelta 20 V0.750 %0.00 %1.33 V
Send-on-deltadelta 35 V0.750 %0.00 %1.33 V
Task-aware (level-crossing rule)no silence timer0.750 %0.00 %1.33 V
Task-aware (level-crossing rule)silence timer 100 samples1.500 %0.00 %1.36 V
Task-aware (level-crossing rule)silence timer 50 samples2.250 %0.00 %1.36 V
Task-aware (level-crossing rule)silence timer 30 samples3.500 %0.00 %1.41 V
Task-aware (level-crossing rule)silence timer 20 samples5.250 %0.00 %1.37 V
Task-aware (level-crossing rule)silence timer 10 samples10.250 %0.00 %1.35 V
Task-aware (level-crossing rule)silence timer 5 samples20.250 %0.00 %1.26 V
Task-aware (level-crossing rule)silence timer 3 samples33.500 %0.00 %1.15 V
Task-aware (level-crossing rule)silence timer 2 samples50.000 %0.00 %0.99 V

What this lab does, and does not, show

  • Synthetic signals only. Nothing here is measured data, and nothing has been validated against a grid, a device or a published result. The 230 V nominal is the usual European low-voltage value; the critical level, depths and durations are illustrative.
  • A perfect link: no packet loss, no latency, no protocol headers. A message is received the instant it is sent, and cost means message count, not bytes. Delays therefore come from the sending rule alone; real delays would be longer.
  • The task-aware rule is told the critical level, and the receiver raises its alarm at that same level. Its low message count is built in, and it pays for it with a poor picture of the signal (see the RMSE columns). It is level-crossing reporting, an established idea in event-based sampling: not a new method, and not a claim about what a learned or approximate task would achieve.
  • Noise is white and Gaussian. Real measurement noise, quantisation and sensor faults are not modelled.
  • This is not a protection study. Nothing here says what a real relay, meter or control centre should do.
  • The papers listed below give background for the question and for the send-on-delta rule. This lab does not reproduce or test any result from them.

Planned next, not built yet

Order and scope may change.

  • V0.2: packet loss and delay, byte counts including headers, rules matched at equal message budgets, and a receiver that debounces its alarm.
  • V0.3: age-based measures of how stale or wrong the receiver's picture is, and a proper treatment of event detection.
  • V0.4: a toy physical channel (noise and bit errors) under the same comparison.

How this is built

Signal
230 V RMS nominal, 400 samples, one every 0.1 s. A disturbance (a dip, a step or a drift) is added, then white Gaussian noise from a seeded generator. The sensor measures every sample for free; the rules only choose which measurements to send.
Critical
A value below the critical level. A critical event is a continuous stretch of the noise-free signal below that level; one that runs to the end of the record is cut off there.
Receiver
Holds the last value it received and raises an alarm while that value is below the critical level. The opening sample is always sent, so the receiver starts with something to hold.
Periodic
Sends sample k when k is a multiple of the period (plus an offset). One message per period, whatever the signal does.
Send-on-delta
Sends when the new measurement differs from the last sent value by at least δ. A property of the rule: the receiver's held value is never δ or more away from the current measurement.
Task-aware (level-crossing)
Sends when the measurement is on the other side of the critical level from the last sent value. The task is reduced to one question, “is it below?”, so only changes of the answer are sent.
Events caught, delay
An event is caught if the receiver's alarm is up at some sample during it. Delay counts from the event's starting sample to the earliest such sample. An alarm that was already up counts as zero delay, so read delay together with false-alarm episodes.
Alarm wrong
The share of samples where the receiver's alarm disagrees with the truth: raised when nothing is critical (a false alarm) or silent while something is. A false-alarm episode is one continuous stretch of false alarm.
60 runs
Every “average of 60 runs” number comes from 60 signals with different noise. The periodic timer's offset is spread evenly across its period, and all three rules see the same 60 signals, so differences between rules are not luck of the draw.
RMSE
Root-mean-square gap between the receiver's held value and either the measurement or the noise-free signal. It measures how well the receiver knows the signal, which is not the same as whether it knows about the event.
Reproducibility
The same seed and engine version regenerate the same run. The export file records both, the disturbance, the critical level, every rule's setting and all results.

Explore: Fault Analysis Lab

Dips like these are typically caused by faults. See how a fault's type and location set the voltage a sensor would have to report.

Explore: PD Sensor Signal Chain Lab

Another sensing question: what a partial-discharge sensor actually delivers before anything is sent anywhere.

Further reading