NOTE: This topic is now outdated! RMCTools now has an easy-to-use, built-in feature for valve linearization via curves. See Valve Linearization in the RMCTools help for details.
------OLD INFORMATION---------------------------------------------------------
The RMC’s provide easy linearization of valves with a single knee. If you need to linearize valves with a different flow characteristic, such as curvilinear valves, here is a method. It requires two software axes for each real axis, so make sure your RMC has enough available software axes. This method is rather complicated but works very well. It is not possible to do autotuning after this type of linearization, but you can make moves with just some proportional gain, then use the tuning wizard with the existing plots you obtained from those moves.
Here are the steps:
-
For each axis of position control, you will need to actually create two axes: one outer-loop axis, and one control-output only axis. Assign these axes to the physical position feedback input and control output that you will be using.
-
Import the attached user program. In the project tree, right-click User Programs and choose Import.
-
Import the attached user function. In the project tree, right-click User Functions and choose Import.
-
For the attached .txt file, rename the extension to .rmccrvs. In the project tree, right-click Curves and choose Import and import this file.
-
Either decide to use one of the curves, or copy and edit one of the imported curves to match the flow versus command signal diagram of your valve. The diagram is available from the valve datasheet.
-
Edit the user program to make sure that in the CRV_INTERP_X function, the _Axis[n] tag uses the correct Outer Loop axis number for n.
-
Edit the user program to make sure that in the CRV_INTERP_X function, the first parameter is the correct curve number (as shown in the Curve Tool).
-
Edit the user program to make sure that the Direct Output command is sent to the correct Control-Output only axis.
-
The user program needs to always run on a task. Decide which task you will have it run on, then in the User Program Properties, on the Halts page, set that task to never stop.
-
In the User Program Properties, on the Run/Program page, set the RMC to start in RUN mode.
-
In the Program Triggers, create a _FirstScan condition that will start the user program on the task you decided on.
-
In the Axis Parameters, on the All tab, in the Halts section, make sure to set both the axes in the same non-zero halt group.
When you enter Run mode, the valve linearization should be working. You will send motion commands only to the outer loop axis. Start with an Open Loop or Direct Output command to make sure the axis is moving. Once you are ready to tune the axis, in the Tuning Tools, send Move Absolute commands and increase the Proportional Gain until the axis is following somewhat, then use the Tuning Wizard with existing plot.
Attached is also a user program that demonstrates all these items.
ValveCurves.txt (3.91 KB)
ValveLinearizationExample.rmcproj (32.7 KB)
Crv_Interp_X.rmcflib (7.78 KB)
AlwaysRunsCurviLinear.rmcprog (870 Bytes)