{"id":1958,"date":"2019-02-12T01:48:23","date_gmt":"2019-02-12T01:48:23","guid":{"rendered":"https:\/\/cyflexdoc.wpengine.com\/usage-help-manual\/11-control-systems\/"},"modified":"2026-02-16T12:17:21","modified_gmt":"2026-02-16T17:17:21","slug":"7-control-systems","status":"publish","type":"page","link":"https:\/\/cyflex.com\/index.php\/usage-help-manual\/7-control-systems\/","title":{"rendered":"7: Control Systems"},"content":{"rendered":"<table style=\"width: 100%; height: 1409px;\">\n<tbody>\n<tr style=\"height: 24px;\">\n<th style=\"height: 24px; width: 24.0132%;\"><span style=\"font-weight: 400;\">Command<\/span><\/th>\n<th style=\"height: 24px; width: 75%;\"><span style=\"font-weight: 400;\">Purpose<\/span><\/th>\n<\/tr>\n<tr style=\"height: 63px;\">\n<td style=\"height: 63px; width: 24.0132%;\"><a href=\"abort_autotune\"><span style=\"color: #333333;\">abort_autotune<\/span><\/a><\/td>\n<td style=\"height: 63px; width: 75%;\">Abort the auto-tuning process for a specified PID controller by setting flags or sending events to stop the tuning.<\/td>\n<\/tr>\n<tr style=\"height: 38px;\">\n<td style=\"height: 38px; width: 24.0132%;\"><a href=\"autotune\"><span style=\"color: #333333;\">autotune<\/span><\/a><\/td>\n<td style=\"height: 38px; width: 75%;\">\n<p>Initiate tuning of a specified PID loop using the Ziegler-Nichols method (closed loop version &#8211; with relay caused oscillations). Note that the length of time to auto-tune is dependent on the period of oscillation of the system.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 12px;\">\n<td style=\"height: 21px; width: 24.0132%;\"><a href=\"calc_gains\"><span style=\"color: #333333;\">calc_gains<\/span><\/a><\/td>\n<td style=\"height: 21px; width: 75%;\">Compute recommended proportional, integral, and derivative gains for a control loop based on user-provided inputs.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"chirp\"><span style=\"color: #333333;\">chirp<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Generate a swept-frequency cosine signal for system identification.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 40px; width: 24.0132%;\"><a href=\"cmd_map_gen\"><span style=\"color: #333333;\">cmd_map_gen<\/span><\/a><\/td>\n<td style=\"height: 40px; width: 75%;\">Generate a controller&#8217;s command map and gain scale table based on specifications from a breakpoint table.<\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"height: 48px; width: 24.0132%;\"><a href=\"ctrl_cfg_dsply\"><span style=\"color: #333333;\">ctrl_cfg_dsply<\/span><\/a><\/td>\n<td style=\"height: 48px; width: 75%;\">Display information about control configuration events, including new_state, action, subcode, index, and label, as they occur.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"ctrl_disp\"><span style=\"color: #333333;\">ctrl_disp<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Display control loop information for specified controllers or loops.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"ctrl_params\"><span style=\"color: #333333;\">ctrl_params<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set gains for control loops using parameters specified in a data file.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"ctrl_spec_converter\"><span style=\"color: #333333;\">ctrl_spec_converter<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Use this script to create a new spec file that will work with the eng_ctrl_task in 6.3.x versions of CyFlex.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"disp_dygains\"><span style=\"color: #333333;\">disp_dygains<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Display dyno controller gains based on the current engine control mode.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"dy\"><span style=\"color: #333333;\">dy<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the dyno controller to open loop mode and specify a target value with an optional ramp rate.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"dy_gains\"><span style=\"color: #333333;\">dy_gains<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the proportional, integral, and derivative gains for the dyno control loop based on provided arguments.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"dy_ramp\"><span style=\"color: #333333;\">dy_ramp<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the dyno controller open loop ramping on or off with a specified rate when turning on.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"eng_ctrl_specs\"><span style=\"color: #333333;\">eng_ctrl_specs<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Configure the engine control task specifications.<\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"height: 37px; width: 24.0132%;\"><a href=\"eng_ctrl_task\"><span style=\"color: #333333;\">eng_ctrl_task<\/span><\/a><\/td>\n<td style=\"height: 37px; width: 75%;\">Provide PID control algorithms for engine throttle and dyno(s).<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"https:\/\/cyflex.com\/index.php\/usage-help-manual\/7-control-systems\/eng_specs\/\"><span style=\"color: #333333;\">eng_specs<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Process the Engine Specifications file to initialize Engine Constants, Real and String Variables, and PAM Parameters for system configuration.<\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"height: 26px; width: 24.0132%;\"><a href=\"filter_k\"><span style=\"color: #333333;\">filter_k<\/span><\/a><\/td>\n<td style=\"height: 26px; width: 75%;\">Set or display the filter coefficient for a specified AI or FI channel based on command-line input.<\/td>\n<\/tr>\n<tr style=\"height: 22px;\">\n<td style=\"height: 32px; width: 24.0132%;\"><a href=\"gen_load\"><span style=\"color: #333333;\">gen_load<\/span><\/a><\/td>\n<td style=\"height: 32px; width: 75%;\">Sets DO bits that control relays in a load bank.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"other\"><span style=\"color: #333333;\">other<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the target value for the &#8216;other&#8217; controller and optionally a ramp rate.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"https:\/\/cyflex.com\/index.php\/usage-help-manual\/7-control-systems\/perf_labels\/\"><span style=\"color: #333333;\">perf_labels<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Load engine performance specifications from a file into shared memory for the CyFlex system.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"prbs\"><span style=\"color: #333333;\">prbs<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Generate pseudo random binary sequence for use as an input in system identification.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"prop\"><span style=\"color: #333333;\">prop<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Perform torque control to simulate a propeller.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"pwm_ctrl\"><span style=\"color: #333333;\">pwm_ctrl<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Control an actuator using pulse width modulation based on command inputs and error calculations.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"pwm_specs\"><span style=\"color: #333333;\">pwm_specs<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Configure a PWM control task by reading specifications from a file and sending them via events<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"reset_dyno_int\"><span style=\"color: #333333;\">reset_dyno_int<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set dyno controller integral term to 0.0<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"reset_int_term\"><span style=\"color: #333333;\">reset_int_term<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Zero out the integral term of a PID controller to enable starting from zero initial conditions.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"reset_throt_int\"><span style=\"color: #333333;\">reset_throt_int<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set throttle controller integral term to 0.0<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"set_dndt_k\"><span style=\"color: #333333;\">set_dndt_k<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the value of the dn\/dt filter coefficient for engine acceleration measurement in CyFlex.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"set_eng_mode\"><span style=\"color: #333333;\">set_eng_mode<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set engine control mode<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"https:\/\/cyflex.com\/index.php\/usage-help-manual\/7-control-systems\/set_eng_specs\/\"><span style=\"color: #333333;\">set_eng_specs<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set engine specification variables based on values from a specified customer input file and map.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"https:\/\/cyflex.com\/index.php\/usage-help-manual\/7-control-systems\/set_eng_specs12\/\"><span style=\"color: #333333;\">set_eng_specs12<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Read the TRI input specs file and set CyFlex variables based on the specified configuration and optional cycle.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"set_lwr_bnd\"><span style=\"color: #333333;\">set_lwr_bnd<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the lower bound for a specified controller.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"set_upr_bnd\"><span style=\"color: #333333;\">set_upr_bnd<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the upper bound for a specified engine controller.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"https:\/\/cyflex.com\/index.php\/usage-help-manual\/7-control-systems\/set_user\/\"><span style=\"color: #333333;\">set_user<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the closed-loop target for a user control loop.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"sp\"><span style=\"color: #333333;\">sp<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set speed target values and ramp rates.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"th\"><span style=\"color: #333333;\">th<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">\n<p>Set the throttle controller to open loop mode and specify the throttle target value.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"th_ff\"><span style=\"color: #333333;\">th_ff<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Switch throttle feed forward ON\/OFF<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"th_gains\"><span style=\"color: #333333;\">th_gains<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the proportional, integral, and derivative gains for the throttle controller.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"th_ramp\"><span style=\"color: #333333;\">th_ramp<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set throttle ramp parameters for open loop throttle control.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"to\"><span style=\"color: #333333;\">to<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set torque target values and ramp rates.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"torq_conv\"><span style=\"color: #333333;\">torq_conv<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Perform torque control to simulate the hydraulic load of a torque converter.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"torq_sched\"><span style=\"color: #333333;\">torq_sched<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Perform torque control by applying a torque target based on a specified schedule as a function of speed.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"update_user_specs\"><span style=\"color: #333333;\">update_user_specs<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Update the user control specification file with new gains and\/or feedback variable values for a specified loop based on current system variables. This executable is not intended for end-users.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"user_ctrl_specs\"><span style=\"color: #333333;\">user_ctrl_specs<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Process and configure user control loop specifications from a file, handling keywords to set up control tasks.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"user_ctrl_task\"><span style=\"color: #333333;\">user_ctrl_task<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Provide PID control algorithms for user control loops. Normally spawned by the user_ctrl_specs task.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"u_ctrl\"><span style=\"color: #333333;\">u_ctrl<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Change specification settings for a user control task.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"u_ff\"><span style=\"color: #333333;\">u_ff<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Switch the user loop feed forward on or off for a specified controller.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"u_gains\"><span style=\"color: #333333;\">u_gains<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the proportional, integral, and derivative gains for a specified user control loop.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"u_mode\"><span style=\"color: #333333;\">u_mode<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the operating mode of a user control loop to open or closed loop.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"u_ramp\"><span style=\"color: #333333;\">u_ramp<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Specify the ramp characteristics (on, off, and rate) for user control variables in both open and closed loop modes.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"u_target\"><span style=\"color: #333333;\">u_target<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the target for user control loops in either open or closed loop mode.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"u_toler\"><span style=\"color: #333333;\">u_toler<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Set the tolerance for user control loops.<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 24.0132%;\"><a href=\"v4_ctrl\"><span style=\"color: #333333;\">v4_ctrl<\/span><\/a><\/td>\n<td style=\"height: 24px; width: 75%;\">Control the Froude V4 dyno by monitoring variables and generating commands based on changes in CyFlex.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Command Purpose abort_autotune Abort the auto-tuning process for a specified PID controller by setting flags or sending events to stop the tuning. autotune Initiate tuning of a specified PID loop using the Ziegler-Nichols method (closed loop version &#8211; with relay caused oscillations). Note that the length of time to auto-tune is dependent on the period [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":0,"parent":557,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1958","page","type-page","status-publish","hentry"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/pages\/1958","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/comments?post=1958"}],"version-history":[{"count":0,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/pages\/1958\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/pages\/557"}],"wp:attachment":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/media?parent=1958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}