sddsfeedforward
performs feedforward on process variables.
Feedforward essentially means that one or more process variables are
set according to a predetermined function of other process variables.
In sddsfeedforward
, the user supplies a series of tables that
are used to interpolate values of a single actuator as a function of a
single readback. Any number of tables may be given, so that any
number of actuators may be driven by any number of readbacks. Each
actuator is, however, driven by only one readback. One readback may
drive any number of readbacks.
sddsfeedforward ID1GapCompensation.sdds -interval=10,swhere the file ID1GapCompensation.sdds contains the following data:
ReadbackName = ID1:Gap ActuatorName = S1B:H1:CurrentAO ReadbackValue ActuatorValue ------------------------------ 150.000 0.000 100.000 0.000 50.000 1.000 40.000 10.000 30.000 20.000 20.000 35.000 15.000 74.000 11.000 99.000At each iteration step, ID1:Gap is read and
sddsfeedforward
intepolates a new value for
S1B:H1:CurrentAO
based on this table, which it writes to the PV.
sddsfeedforward <inputfile> [-interval=<real-value>] [-steps=<integer=value>] [-verbose] [-dryRun] [-averageOf=<number>[,interval=<seconds>]] [-testValues=<SDDSfile>] [-ezcaTiming=<timeout>,<retries>] [-runControlPV=string=<string>[,pingTimeout=<value>]] [-runControlDescription=<string>] [-CASecurityTest]
The input file is an SDDS file with the following elements:
To make sddsfeedforward
more robust, one can implement tests on any process variable,
not necessarily those involved in the feedforward itself. If any of the tests fail, then the
feedforward is suspended until the test suceeds. The test consist of checking whether a process
variable is within a specified range or not. The testValues
file has three required columns and
one optional one: