You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| `function_type` | type of function {`POLYNOMINAL`} |
781
-
| `order` | `POLYNOMINAL` only. Order of polynominal function |
782
-
| `coefficients` | `POLYNOMINAL` only. The coefficients, length must be equal to `order + 1` . Starts with highest-power term. |
783
-
784
-
Currently, only an N-order Polynomial function is implemented. Other function types could include logistic, expoentials, sigmoid, etc. Open an issue (or pull request) if you would like to see more functions added.
785
-
786
-
The `coefficients`(here `coeff`) are specified in the following order (`N`)
Note: The function device only accepts a single signal. Multi-variate functions are not supported currently - if they are implemented, a new device type should be created.
806
+
Note: The function device only accepts a single signal. Multi-variate polynomial functions are not currently supported.
793
807
794
808
#### Example
795
809
@@ -802,10 +816,90 @@ Implement the function `y = 1*x + 100`
802
816
order: 1
803
817
coefficients: [1, 100]
804
818
signals:
805
-
- observed_device_name: sig_gen_1signal
819
+
- observed_device_name: sig_gen_1
820
+
request_signal_name: output
821
+
```
822
+
823
+
824
+
### Summation
825
+
Specify two or more signals to sum together
826
+
827
+
#### Example
828
+
829
+
Implement the function `y = x1 + x2`
830
+
831
+
```yaml
832
+
- device_class: Function
833
+
name: fun_2
834
+
function_type: SUMMATION
835
+
signals:
836
+
- observed_device_name: sig_gen_1
837
+
request_signal_name: output
838
+
- observed_device_name: sig_gen_2
806
839
request_signal_name: output
807
840
```
808
841
842
+
### Multiplication
843
+
Specify two or more signals to multiply together
844
+
845
+
#### Example
846
+
847
+
Implement the function `y = x1 * x2 * x3`
848
+
849
+
```yaml
850
+
- device_class: Function
851
+
name: fun_3
852
+
function_type: MULTIPLICATION
853
+
signals:
854
+
- observed_device_name: sig_gen_1
855
+
request_signal_name: output
856
+
- observed_device_name: sig_gen_2
857
+
request_signal_name: output
858
+
- observed_device_name: sig_gen_3
859
+
request_signal_name: output
860
+
```
861
+
862
+
863
+
### Exponential
864
+
Raise a constant to the power of the signal
865
+
866
+
#### Example
867
+
Implement the function `y = e^x`
868
+
869
+
```yaml
870
+
- device_class: Function
871
+
name: fun_4
872
+
function_type: EXPONENTIAL
873
+
- observed_device_name: sig_gen_1
874
+
request_signal_name: output
875
+
```
876
+
877
+
Implement the function `y = 2.0^x`
878
+
```yaml
879
+
- device_class: Function
880
+
name: fun_5
881
+
function_type: EXPONENTIAL
882
+
base: 2.0
883
+
- observed_device_name: sig_gen_1
884
+
request_signal_name: output
885
+
```
886
+
887
+
888
+
### Sigmoid
889
+
Return the sigmoid logistic function
890
+
891
+
#### Example
892
+
Implement the sigmoid logistic function `y = 1.0 / (1.0 + e^-x)`
| `signal_generator_type` | The type of signal to generate {`SINE_WAVE`, `SAW_TOOTH`} |
983
+
| `signal_generator_type` | The type of signal to generate {`SINE_WAVE`, `SAW_TOOTH`, `GAUSSIAN_RANDOM`, `UNIFORM_RANDOM`} |
890
984
| | |
891
-
| for `SINE_WAVE`, | |
892
-
| `angular_frequency` | obvious |
893
-
| `phase` | obvious |
894
-
| `amplitude` | obvious |
895
-
| `offset` | obvious |
985
+
| for `SINE_WAVE`:| |
986
+
| `angular_frequency` | sine wave angular frequency |
987
+
| `phase` | sine wave phase |
988
+
| `amplitude` | sine wave amplitude |
989
+
| `offset` | sine wave offset |
896
990
| | |
897
-
| for `SAW_TOOTH`, | |
991
+
| for `SAW_TOOTH`:| |
898
992
| `max` | max value of the sawtooth wave |
899
993
| `min` | min value of the sawtooth wave |
900
994
| `slope` | The rate of change in EU/sec. May be positive or negative |
995
+
| | |
996
+
| for `GAUSSIAN_RANDOM`: | |
997
+
| `mean` | mean signal value |
998
+
| `sigma` | standard deviation |
999
+
| `seed` | specify random seed as an optional unsigned integer; each signal generator uses its own random seed; if no random seed is provided, defaults to 1 |
1000
+
| | |
1001
+
| for `UNIFORM_RANDOM`: | |
1002
+
| `max` | maximum signal value |
1003
+
| `min` | minimum signal value |
1004
+
| `seed` | specify random seed as an optional unsigned integer; each signal generator uses its own random seed; if no random seed is provided, defaults to 1 |
901
1005
902
1006
The `SINE_WAVE` signal generator output is computed as:
903
1007
@@ -912,7 +1016,7 @@ The `SAW_TOOTH` signal generator output is computed as:
912
1016
* apply slope each process update
913
1017
* when the 'upper' limit is reached, reset the output 'lower' limit
914
1018
915
-
#### Example
1019
+
#### Examples
916
1020
917
1021
``` yaml
918
1022
- device_class: SignalGenerator
@@ -926,13 +1030,30 @@ The `SAW_TOOTH` signal generator output is computed as:
0 commit comments