Virtual
- class empyric.collection.virtual.Clock(*args, **kwargs)
Virtual clock for time keeping; works like a standard stopwatch
- name = 'Clock'
- supported_adapters = ((<class 'empyric.adapters.Adapter'>, {}),)
- knobs = ('state',)
- meters = ('time',)
- class empyric.collection.virtual.Echo(address=None, adapter=None, presets=None, postsets=None, **kwargs)
Virtual instrument with a single knob “input” and single meter “output”, useful for testing.
The “output” meter simply returns the value of the “input” knob.
- name = 'Echo'
- supported_adapters = ((<class 'empyric.adapters.Adapter'>, {}),)
- knobs = ('input',)
- presets = {'input': 0}
- meters = ('output',)
- class empyric.collection.virtual.HenonMapper(address=None, adapter=None, presets=None, postsets=None, **kwargs)
Virtual instrument based on the behavior of a 2D Henon Map:
x_{n+1} = 1 - a * x_n^2 + y_n
y_{n+1} = b * x_n
It has two virtual knobs (a,b) and two virtual meters (x,y)
- name = 'HenonMapper'
- supported_adapters = ((<class 'empyric.adapters.Adapter'>, {}),)
- knobs = ('a', 'b')
- presets = {'a': 1.4, 'b': 0.3}
- meters = ('x', 'y')
- class empyric.collection.virtual.PIDController(*args, **kwargs)
Virtual PID controller
- name = 'PIDController'
- supported_adapters = ((<class 'empyric.adapters.Adapter'>, {}),)
- knobs = ('setpoint', 'proportional gain', 'derivative time', 'integral time', 'input')
- presets = {'derivative time': 12, 'integral time': 180, 'proportional gain': 1}
- meters = ('output',)
- class empyric.collection.virtual.RandomWalk(address=None, adapter=None, presets=None, postsets=None, **kwargs)
Virtual random walk process for testing controllers
Dynamics of the process value is determined by the mean, step and affinity knobs. The mean is the mean value of the process in steady state, the step is the size of the step that the process can take in either direction upon each measurement of the process value, and the affinity is the tendancy of the process value to return to its mean value at each step.
- name = 'RandomWalk'
- supported_adapters = ((<class 'empyric.adapters.Adapter'>, {}),)
- knobs = ('mean', 'step', 'affinity')
- meters = ('value',)
- class empyric.collection.virtual.SimpleProcess(*args, **kwargs)
Virtual process that mimics the behavior of a heating process
- name = 'SimpleProcess'
- supported_adapters = ((<class 'empyric.adapters.Adapter'>, {}),)
- knobs = ('setpoint', 'noise level', 'response time')
- presets = {'noise level': 0.1, 'response time': 10.0, 'setpoint': 0.0}
- meters = ('value',)
- class empyric.collection.virtual.ModbusClient(address=None, adapter=None, presets=None, postsets=None, **kwargs)
Counterpart to the ModbusServer routine. Communicates with a ModbusServer instance in other experiments to control variables.
- name = 'ModbusClient'
- supported_adapters = ((<class 'empyric.adapters.Modbus'>, {}),)