VariableSinCosTest
Test component for sine and cosine generators with variable frequency and amplitude inputs.
Creates a test environment that connects amplitude and frequency input sources to sine and cosine wave generators. The amplitude source is a ramp that starts at 2 and decreases to 0 over 3 seconds, while the frequency is held constant at 2 Hz. This test setup allows visualization of how the wave generators respond to changing amplitude while maintaining a constant frequency.
Usage
BlockComponents.VariableSinCosTest()
Behavior
Source
dyad
# Test component for sine and cosine generators with variable frequency and amplitude inputs.
#
# Creates a test environment that connects amplitude and frequency input sources to sine and cosine
# wave generators. The amplitude source is a ramp that starts at 2 and decreases to 0 over 3 seconds,
# while the frequency is held constant at 2 Hz. This test setup allows visualization of how the wave
# generators respond to changing amplitude while maintaining a constant frequency.
test component VariableSinCosTest
# Sine wave generator with variable frequency and amplitude inputs
sine_wave = SineVariableFrequencyAndAmplitude() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 630, "y1": 340, "x2": 730, "y2": 440, "rot": 0}
}
}
}
# Cosine wave generator with variable frequency and amplitude inputs
cos_wave = CosineVariableFrequencyAndAmplitude() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 640, "y1": 90, "x2": 740, "y2": 190, "rot": 0}
}
}
}
# Amplitude source that starts at 2 and linearly decreases to 0 over 3 seconds
amplitude_source = BlockComponents.Ramp(start_time = 0, offset = 2, duration = 3, height = -2) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 220, "y1": 100, "x2": 320, "y2": 200, "rot": 0}
}
}
}
# Frequency source providing a constant value of 2 Hz
frequency_source = BlockComponents.Constant(k = 2) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 210, "y1": 340, "x2": 310, "y2": 440, "rot": 0}
}
}
}
relations
connect(cos_wave.amplitude, amplitude_source.y) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 450, "y": 114}, {"x": 450, "y": 150}], "E": 2}],
"renderStyle": "standard"
}
}
connect(amplitude_source.y, sine_wave.amplitude) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 455, "y": 150}, {"x": 455, "y": 362}], "E": 2}],
"renderStyle": "standard"
}
}
connect(frequency_source.y, sine_wave.frequency) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 500, "y": 390}, {"x": 500, "y": 413}], "E": 2}],
"renderStyle": "standard"
}
}
connect(frequency_source.y, cos_wave.frequency) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 500, "y": 390}, {"x": 500, "y": 163}], "E": 2}],
"renderStyle": "standard"
}
}
metadata {
"Dyad": {"tests": {"case1": {"stop": 10, "signals": ["sine_wave.y", "cos_wave.y"]}}}
}
endFlattened Source
dyad
# Test component for sine and cosine generators with variable frequency and amplitude inputs.
#
# Creates a test environment that connects amplitude and frequency input sources to sine and cosine
# wave generators. The amplitude source is a ramp that starts at 2 and decreases to 0 over 3 seconds,
# while the frequency is held constant at 2 Hz. This test setup allows visualization of how the wave
# generators respond to changing amplitude while maintaining a constant frequency.
test component VariableSinCosTest
# Sine wave generator with variable frequency and amplitude inputs
sine_wave = SineVariableFrequencyAndAmplitude() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 630, "y1": 340, "x2": 730, "y2": 440, "rot": 0}
}
}
}
# Cosine wave generator with variable frequency and amplitude inputs
cos_wave = CosineVariableFrequencyAndAmplitude() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 640, "y1": 90, "x2": 740, "y2": 190, "rot": 0}
}
}
}
# Amplitude source that starts at 2 and linearly decreases to 0 over 3 seconds
amplitude_source = BlockComponents.Ramp(start_time = 0, offset = 2, duration = 3, height = -2) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 220, "y1": 100, "x2": 320, "y2": 200, "rot": 0}
}
}
}
# Frequency source providing a constant value of 2 Hz
frequency_source = BlockComponents.Constant(k = 2) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 210, "y1": 340, "x2": 310, "y2": 440, "rot": 0}
}
}
}
relations
connect(cos_wave.amplitude, amplitude_source.y) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 450, "y": 114}, {"x": 450, "y": 150}], "E": 2}],
"renderStyle": "standard"
}
}
connect(amplitude_source.y, sine_wave.amplitude) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 455, "y": 150}, {"x": 455, "y": 362}], "E": 2}],
"renderStyle": "standard"
}
}
connect(frequency_source.y, sine_wave.frequency) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 500, "y": 390}, {"x": 500, "y": 413}], "E": 2}],
"renderStyle": "standard"
}
}
connect(frequency_source.y, cos_wave.frequency) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 500, "y": 390}, {"x": 500, "y": 163}], "E": 2}],
"renderStyle": "standard"
}
}
metadata {
"Dyad": {"tests": {"case1": {"stop": 10, "signals": ["sine_wave.y", "cos_wave.y"]}}}
}
endTest Cases
Test Case case1
Related
Examples
Experiments
Analyses
Tests