Skip to content
Snippets Groups Projects

Disable OVC during ramping and apply initial scale/angle.

Open Klaus Zenker requested to merge disable_ovc_during_ramping into master
2 unresolved threads
Files
2
+ 13
0
@@ -162,6 +162,10 @@ class Automation : public ctk::ModuleGroup {
this, "minScale", "", "Minimum allowed scaling in the output vector correction", {"CS"}};
} ovc{this, "OVC", "Initial output vector correction"};
ctk::ScalarPollInput<double> initialScale{
this, "initialScale", "", "This scale is applied when starting the ramping procedure", {"DAQ"}};
ctk::ScalarPollInput<double> initialAngle{
this, "initialAngle", "", "This angel is applied when starting the ramping procedure", {"DAQ"}};
} rampup{this, "Rampup", "Rampup automation parameters"};
struct : ctk::VariableGroup {
using ctk::VariableGroup::VariableGroup;
@@ -201,6 +205,8 @@ class Automation : public ctk::ModuleGroup {
using ctk::VariableGroup::VariableGroup;
CascadedRotation<ctk::ScalarOutput> cascadeInput{
this, "CascadeInputAutomation", "The resulting scaling and angle correction"};
ctk::ScalarPushInputWB<double> scale{this, "Manual/scale", "", "Scaling factor"};
ctk::ScalarPushInputWB<double> angle{this, "Manual/angle", "deg", "Rotation angle", {"DAQ"}};
} calibration{this, "Calibration", "Output vector rotation", {"DAQ"}};
struct Proportional : ctk::VariableGroup {
using ctk::VariableGroup::VariableGroup;
@@ -253,6 +259,13 @@ class Automation : public ctk::ModuleGroup {
} feedBack{this, "FeedBack", ""};
} _interlockDetection{this, "InterlockDetection", "Connects to interlock detection"};
struct OutputVectorCorrection : ctk::VariableGroup {
using ctk::VariableGroup::VariableGroup;
ctk::ScalarPushInputWB<ctk::Boolean> enable{this, "enable", "", "Enable the OVC"};
    • On the other hand: I do not like the trick in this particular use case. You are disabling the OVC while the automation is ramping, but the user can re-enable it while it's still ramping. This is not good design. The appropriate solution for this is to create an input and a separate output and route the input through to the output during normal/manual operation but keep full control as long as we need it (i.e. during ramping). We have done it that way also e.g. for the FF and FB enable flags.

Please register or sign in to reply
ctk::ScalarPushInputWB<int32_t> store{
this, "ClosedLoop/Forward/ReferencePoint/store", "", "Write any value to store a reference point"};
} _ovc{this, "OutputVectorCorrection", ""};
// VM offset as computed by the optimisation algorithm
double _vmcalibDacOffsetI{0}, _vmcalibDacOffsetQ{0};
Loading