AccumulatorDemo Icon
Examples.AccumulatorDemo
Test harness that samples a sine wave and accumulates it using both accumulator types.
This model demonstrates:
- Generating a continuous sine wave
- Sampling it at a fixed rate (10 Hz)
- Accumulating the discrete samples using both syntactic and graphical approaches
Usage
DiscreteComponents.Examples.AccumulatorDemo()
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
dt | – | 0.1 |
Behavior
\[ \begin{equation} \left[ \begin{array}{c} \mathrm{connect}\left( sine_{+}y(t), sampler_{+}u(t) \right) \\ \mathrm{connect}\left( sampler_{+}y(t), acc_{syntactic_{+}u(t)} \right) \\ \mathrm{connect}\left( sampler_{+}y(t), acc_{graphical_{+}u(t)} \right) \\ \mathtt{sine.y}\left( t \right) = \mathtt{sine.offset} + \mathtt{sine.amplitude} ifelse\left( t \geq \mathtt{sine.start\_time}, \sin\left( \mathtt{sine.phase} + 6.2832 \mathtt{sine.frequency} \left( - \mathtt{sine.start\_time} + t \right) \right), \sin\left( \mathtt{sine.phase} \right) \right) \\ \mathrm{connect}\left( u(t), sampler_{+}u(t) \right) \\ \mathrm{connect}\left( sampler_{+}y(t), y(t), clock_{+}y(t) \right) \\ \frac{\mathrm{d} \mathtt{sampler.clock.dummy.dummy}\left( t \right)}{\mathrm{d}t} = 0 \\ \mathtt{sampler.sampler.y}\left( t \right) = Sample(ModelingToolkit.InferredClock.var"typeof(InferredClock)"(ModelingToolkit.InferredClock.var"##Storage#InferredDiscrete"(0)))\left( \mathtt{sampler.sampler.u}\left( t \right) \right) \\ \mathtt{acc\_syntactic.y}\left( t \right) = \mathtt{acc\_syntactic.u}\left( t \right) + Shift(t, -1)\left( \mathtt{acc\_syntactic.y}\left( t \right) \right) \\ \frac{\mathrm{d} \mathtt{acc\_syntactic.dummy.dummy}\left( t \right)}{\mathrm{d}t} = 0 \\ \mathrm{connect}\left( y(t), unitdelay_{+}u(t) \right) \\ \mathrm{connect}\left( unitdelay_{+}y(t), add_{+}u1(t) \right) \\ \mathrm{connect}\left( u(t), add_{+}u2(t) \right) \\ \mathrm{connect}\left( add_{+}y(t), y(t) \right) \\ \mathtt{acc\_graphical.unitdelay.y}\left( t \right) = Shift(t, -1)\left( \mathtt{acc\_graphical.unitdelay.u}\left( t \right) \right) \\ \frac{\mathrm{d} \mathtt{acc\_graphical.unitdelay.dummy.dummy}\left( t \right)}{\mathrm{d}t} = 0 \\ \mathtt{acc\_graphical.add.y}\left( t \right) = \mathtt{acc\_graphical.add.k1} \mathtt{acc\_graphical.add.u1}\left( t \right) + \mathtt{acc\_graphical.add.k2} \mathtt{acc\_graphical.add.u2}\left( t \right) \\ \end{array} \right] \end{equation} \]
Source
"""
Test harness that samples a sine wave and accumulates it using both accumulator types.
This model demonstrates:
- Generating a continuous sine wave
- Sampling it at a fixed rate (10 Hz)
- Accumulating the discrete samples using both syntactic and graphical approaches
"""
example component AccumulatorDemo
"Continuous sine wave source at 1 Hz"
sine = BlockComponents.Sine(frequency = 1.0, amplitude = 1.0)
"Samples the sine wave at 0.1 second intervals"
sampler = DiscreteComponents.PeriodicSampler(dt = 0.1)
"Accumulator using clock syntax"
acc_syntactic = AccumulatorSyntactic()
"Accumulator using block diagram"
acc_graphical = AccumulatorGraphical()
structural dt::Real = 0.1
relations
connect(sine.y, sampler.u)
connect(sampler.y, acc_syntactic.u)
connect(sampler.y, acc_graphical.u)
end
Flattened Source
"""
Test harness that samples a sine wave and accumulates it using both accumulator types.
This model demonstrates:
- Generating a continuous sine wave
- Sampling it at a fixed rate (10 Hz)
- Accumulating the discrete samples using both syntactic and graphical approaches
"""
example component AccumulatorDemo
"Continuous sine wave source at 1 Hz"
sine = BlockComponents.Sine(frequency = 1.0, amplitude = 1.0)
"Samples the sine wave at 0.1 second intervals"
sampler = DiscreteComponents.PeriodicSampler(dt = 0.1)
"Accumulator using clock syntax"
acc_syntactic = AccumulatorSyntactic()
"Accumulator using block diagram"
acc_graphical = AccumulatorGraphical()
structural dt::Real = 0.1
relations
connect(sine.y, sampler.u)
connect(sampler.y, acc_syntactic.u)
connect(sampler.y, acc_graphical.u)
metadata {}
endTest Cases
No test cases defined.
Related
- Examples
- Experiments
- Analyses