← Back to Patent Explorer
US6643554B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for adaptive control of marginally stable systems

Assignee: Universal Dynamics Technologies
•
Filing: 2000-12-14
•
Granted: 2003-11-04
•
Expires: 2020-12-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides a method and apparatus for adaptive control which models marginally stable systems by creating a reference or disturbance model to account for the slope of the process variable being constant for different control inputs to the process.

Inventors

  • 👤 William Albert Gordon Gough, Jr.
  • 👤 Sava Kovac
  • 👤 Mihai Huzmezan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 21:57
CPC Classifications
G; G05; G05B; G05B13/00; G05B13/02; G05B13/04; G05B13/048; G05B13/042; G05B21/00; G05B21/02

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 526 words
In a method of controlling a marginally stable industrial process comprising the steps of 1) setting an initial state vector; 2) setting an initial parameter vector; 3) setting an initial prediction parameter gain; 4) set the initial covariance matrix; 5) performing a state update 6) estimating the model error, 7) updating the parameter vector, 8) updating the co-variance matrix, and 9) updating the controller output, the improvement comprising the steps of: a) Reading the process input, process output, process measured disturbance and the set point at the previous sample tine; b) Scaling the process input, process output, process measured disturbance to internal variables corresponding for process input, process output and process measured disturbances, respectively; c) When the controller is just enabled or a reset flag is raised ten Reading the tuning parameters from the configuration file; d) Computing a state space form of the orthonormal Laguerre network A, B, C(k), A_FFX, B_FFX, C_FFX(k), A_STS, B_STS, C_STS(k) where C(k), C_FFX(k), C_STS(k) are calculated from one of the following: loaded from a previously saved model; loaded from an initial model; initialised to [0,0,0, . . . 0] e) Computing control related matrices SB, SA, SS, K, SB_FFX, SA_FFX, SS_FFX, K_FFX, SB_STS, SA_STS SS_STS, K_STS; f) Initializing C_M(k) with C(k), C_M_STS(k) with C_STS(k) and C_M_FFX(k) with C_FFX(k); g) Clearing the state vector L(k), L_FFX(k), L_STS(k) used during control; and h) Updating the models states as follows: L  ( k ) = A * L  ( k - 1 ) + B * CV  ( k - 1 ) L_FFX  ( k ) = A_FFX * L_FFX  ( k - 1 ) + B_FFX * FFX  ( k - 1 ) L_STS  ( k ) = A_STS * L_STS  ( k - 1 ) + B_STS * DV  ( k - 1 ) where A, A_FFX, A_STS represent the state and B, B_FFX, B_STS the input matrices of the corresponding state space representation of the Laguerre networks generated for the same pole but different number of filters, if required; i) Calculating the models output estimation: Y_EST  ( k ) = Y_EST  ( k - 1 ) + C  ( k ) * L  ( k ) Y_EST   _FFX   ( k ) =  Y_EST   _FFX   ( k -  1 ) +  C_FFX   ( k ) *  L_FFX   ( k )   Y_EST  _STS  ( k ) = Y_EST  _STS  ( k - 1 ) + C_STS  ( k ) * L_STS  ( k ) j) Updating the input of the unknown disturbance model: DV ( k )=( Y — EST ( k )+ Y — EST — FFX ( k )+ Y — EST — STS ( k ))− PV ( k ); k) Repeating steps h. to j. a plurality of times for the convergence of the state estimators; l) Iterate the computation of the input to the unknown disturbance model also for convergence purposes; m) Computation of the prediction parameter gain: BETA(k) C(k)*SB(k).
Claim 2
Dependent Claim 526 words
In a method of controlling a marginally stable industrial process comprising the steps of 1) setting an initial state vector; 2) setting an initial parameter vector; 3) setting an initial prediction parameter gain; 4) set the initial covariance matrix; 5) performing a state update 6) estimating the model error, 7) updating the parameter vector, 8) updating the co-variance matrix, and 9) updating the controller output, the improvement comprising the steps of: a) Reading the process input, process output, process measured disturbance and the set point at the previous sample tine; b) Scaling the process input, process output, process measured disturbance to internal variables corresponding for process input, process output and process measured disturbances, respectively; c) When the controller is just enabled or a reset flag is raised ten Reading the tuning parameters from the configuration file; d) Computing a state space form of the orthonormal Laguerre network A, B, C(k), A_FFX, B_FFX, C_FFX(k), A_STS, B_STS, C_STS(k) where C(k), C_FFX(k), C_STS(k) are calculated from one of the following: loaded from a previously saved model; loaded from an initial model; initialised to [0,0,0, . . . 0] e) Computing control related matrices SB, SA, SS, K, SB_FFX, SA_FFX, SS_FFX, K_FFX, SB_STS, SA_STS SS_STS, K_STS; f) Initializing C_M(k) with C(k), C_M_STS(k) with C_STS(k) and C_M_FFX(k) with C_FFX(k); g) Clearing the state vector L(k), L_FFX(k), L_STS(k) used during control; and h) Updating the models states as follows: L  ( k ) = A * L  ( k - 1 ) + B * CV  ( k - 1 ) L_FFX  ( k ) = A_FFX * L_FFX  ( k - 1 ) + B_FFX * FFX  ( k - 1 ) L_STS  ( k ) = A_STS * L_STS  ( k - 1 ) + B_STS * DV  ( k - 1 ) where A, A_FFX, A_STS represent the state and B, B_FFX, B_STS the input matrices of the corresponding state space representation of the Laguerre networks generated for the same pole but different number of filters, if required; i) Calculating the models output estimation: Y_EST  ( k ) = Y_EST  ( k - 1 ) + C  ( k ) * L  ( k ) Y_EST   _FFX   ( k ) =  Y_EST   _FFX   ( k -  1 ) +  C_FFX   ( k ) *  L_FFX   ( k )   Y_EST  _STS  ( k ) = Y_EST  _STS  ( k - 1 ) + C_STS  ( k ) * L_STS  ( k ) j) Updating the input of the unknown disturbance model: DV ( k )=( Y — EST ( k )+ Y — EST — FFX ( k )+ Y — EST — STS ( k ))− PV ( k ); k) Repeating steps h. to j. a plurality of times for the convergence of the state estimators; l) Iterate the computation of the input to the unknown disturbance model also for convergence purposes; m) Computation of the prediction parameter gain: BETA(k) C(k)*SB(k).
Claim 3
Dependent Claim 124 words
The method of claim 1 wherein the model states are updated as follows: L  ( k ) = A * L  ( k - 1 ) + B * CV  ( k - 1 ) L_FFX  ( k ) = A_FFX * L_FFX  ( k - 1 ) + B_FFX * FFX  ( k - 1 ) L_STS  ( k ) = A_STS * L_STS  ( k - 1 ) + B_STS * DV  ( k - 1 ) where A, A_FFX, A_STS represent the state and B, B_FFX, B_STS the input matrices of the corresponding state space representation of the Laguerre networks generated for the same pole but different number of filters if required.
Claim 4
Dependent Claim 684 words
The method of claim 1 comprising the further step of producing an accurate plant model based on Laguerre orthonormal basis functions identification, comprising the steps of: a) Checking for the pair of inputs for the plant model and known disturbance models as well as the output that characterize the plant equilibrium around a given set-point; b) employing a least square algorithm based on past and current data PV(k−15),PV(k−14), . . . ,PV(k) to estimate the slope (SLOPE(k)) of the process variable; c) based on this estimate while SLOPE(k) it is greater then SLOPE_LIMIT then the controller postponing the plant identification until this condition is met; d) CV_SS, FFX_SS being considered as the equilibrium inputs to the plant and known disturbance models, respectively, at the moment when learning was started; e) updating the state estimate for the plant and known disturbance models, respectively, as: L_M  ( k ) = A * L_M  ( k - 1 ) + B * ( CV  ( k - 1 ) - CV_SS ) L_M  _FFX  ( k ) =  A_FFX * L_M  _FFX  ( k - 1 ) +  B_FFX * ( FFX  ( k - 1 ) - FFX_SS ) f) calculating the MODEL_ERROR as follows: PREDICTED_DELTA  _PV  ( k ) = C_M  ( k - 1 ) * L_M  ( k ) + C_M  _FFX  ( k - 1 ) * L_M  _FFX  ( k ) + C_M  _STS  ( k - 1 ) * L_M  _STS  ( k ) ACTUAL_DELTA  _PV  ( k ) = PV  ( k ) - PV  ( k - 1 )  MODEL_ERROR  ( k ) = ACTUAL_DELTA  _PV  ( k ) - PREDICTED_DELTA  _PV  ( k ) g) updating the covariance matrix update P(k) and P_FFX(k) for the plant and known disturbance models, respectively: P  ( k ) =  P  ( k - 1 ) / RLS_LAMBDA - ( RLS_ALPHA * P  ( k - 1 ) *  L_M  ( k ) ) * L_M  ( k ) T * P  ( k - 1 ) ) / ( RLS_LAMBDA *  ( RLS_LAMBDA + L_M  ( k ) T * P  ( k - 1 ) * L_M  ( k ) ) ) +  RLS_BETA * I + RLS_DELTA * P  ( k - 1 ) * P  ( k - 1 ) P_FFX  ( k ) =  P_FFX  ( k - 1 ) / RLS_LAMBDA - ( RLS_ALPHA *  P_FFX  ( k - 1 ) * L_M  _FFX  ( k ) ) * L_M  _FFX  ( k ) T *  P_FFX  ( k - 1 ) ) / ( RLS_LAMBDA * ( RLS_LAMBDA +  L_M  _FFX  ( k ) T * P_FFX  ( k - 1 ) * L_M  _FFX  ( k ) ) +  RLS_BETA * I + RLS_DELTA * P_FFX  ( k - 1 ) *  P_FFX  ( k - 1 ) h) updating the output matrix for each corresponding model: C_M  ( k ) =  C_M  ( k ) + ( R   L   S_ALPHA * P  ( k ) *  L_M  ( k ) / ( RLS_LAMBDA + _M  ( k ) T * P  ( k ) *  L_M  ( k ) ) * MODEL_ERROR C_M  _FFX  ( k ) =  C_M  _FFX  ( k ) + ( RLS_ALPHA * P_FFX  ( k ) *  L_M  _FFX  ( k )  /  ( RLS_LAMBDA +  L_M  _FFX  ( k ) T * P_FFX  ( k ) *  L_M  _FFX  ( k ) ) * MODEL_ERROR .
Claim 5
Dependent Claim 110 words
The method of claim 2 wherein the model output estimations are recalculated as follows: Y_EST  ( k ) = Y_EST  ( k - 1 ) + C  ( k ) * L  ( k ) Y_EST   _FFX   ( k ) =  Y_EST   _FFX   ( k -  1 ) +  C_FFX   ( k ) *  L_FFX   ( k )   Y_EST  _STS  ( k ) = Y_EST  _STS  ( k - 1 ) + C_STS  ( k ) * L_STS  ( k ) .
Claim 6
Dependent Claim 50 words
The method of claim 4 wherein the input of the unknown disturbance model is updated based on the following formula: DV ( k )=( Y — EST ( k )+ Y — EST — FFX ( k )+ Y — EST — STS ( k ))− PV ( k ).
Claim 7
Dependent Claim 7 words
The method of claim 5 wherein BETA(k)=C(k)*SB(k).
Claim 8
Dependent Claim 43 words
The method of claim 6 wherein the set point is filtered into a reference using the following digital filter: Y — R ( k )=(1−0.01* SP — FILTER )* Y — R ( k− 1)+0.01 *SP — FILTER*SET — POINT ( k ).
Claim 9
Dependent Claim 117 words
The method of claim 7 wherein CV(k) is calculated as: CV  ( k ) =  BETA  ( k ) - 1 * ( Y_R  ( k ) - PV  ( k ) - ( C  ( k ) * SA * L  ( k ) ) -  ( C_STS  ( k ) * SS * DV  ( k ) + C_STS  ( k ) * SA_STS *  L_STS  ( k ) ) - ( C_FFX  ( k ) * SS * DV  ( k ) + C_FFX  ( k ) *  SA_FFX * L_FFX  ( k ) ) .
Claim 10
Dependent Claim 91 words
The method of claim 8 wherein the following integrator is used INT_SUM  ( k ) =  INT_SUM  ( k - 1 ) + DIST_FILTER  _PAR *  INT_GAIN * ( Y_R  ( k ) - PV  ( k ) ) DIST_FILTER  _PAR =  ( ( DIST_FILTER  _LENGTH -  SUM_CANCEL  _COUNTER ) /  DIST_FILTER  _LENGTH ) 5  and   CV  ( k ) = CV  ( k ) + INT_SUM  ( k ) .
Claim 11
Dependent Claim 68 words
The method of claim 9 wherein the scaling of controller internal variable CV(k) into controller output CV_PROCESS(k) involves a reverse computation: CV_PROCESS  ( k ) = ( CV  ( k ) / LEARNING_RATE / CV_NORMALIZATION ) * CV_RANGE  _MAX  _RAW - CV_RANGE  _MIN  _RAW ) + CV_RANGE  _MIN  _RAW based on the following scaling factors: LEARNING_RATE CV_NORMALIZATION CV_RANGE_MAX_RAW CV_RANGE_MIN_RAW CV_RANGE_MIN_RAW.
Claim 12
Dependent Claim 107 words
The method of claim 10 wherein said scaling of the process input (CV_PROCESS(k)), process output (PV_PROCESS(k)), process measured disturbance (FFX_PROCESS(k)) to internal variables corresponding for process input (CV(k)), process output (PV(k)) and process measured disturbances (FFX(k)), respectively is done by the following sub-procedure: BWC_INTERNAL_GAIN = 0.06 Read the LEARNING_RATE Read the PLANT_GAIN DECISION_VARIABLE = PLANT_GAIN/BWC_INTERNAL_GAIN If DECISION_VARIABLE > 1 then CV_NORMALIZATION = PLANT_GAIN/ BWC_INTERNAL_GAIN PV_NORMALIZATION = 1 Else PV_NORMALIZATION = PLANT_GAIN/ BWC_INTERNAL_GAIN CV_NORMALIZATION = 1 Read CV_RANGE_MAX_RAW, CV_RANGE_MIN_RAW CV(k) = LEARNING_RATE*CV_NORMALIZATION* (CV_PROCESS(k) − CV_RANGE_MIN_RAW)/ (CV_RANGE_MAX_RAW − CV_RANGE_MIN_RAW) PV(k) = LEARNING_RATE*PV_NORMALIZATION* (PV_PROCESS(k) − PV_RANGE_MIN_RAW)/ (PV_RANGE_MAX_RAW − PV_RANGE_MIN_RAW) FFX(k) = LEARNING_RATE*FFX_NORMALIZATION* (FFX_PROCESS(k) − FFX_RANGE_MIN_RAW)/ (FFX_RANGE_MAX_RAW − FFX_RANGE_MIN_RAW) Procedure return.
Claim 13
Dependent Claim 129 words
The method of claim 11 wherein when the controller is just enabled or reset flag is raised then the following tuning parameters are read from the configuration file: MIN_BETA 0.001 Minimum Beta - Used for model reloading SP_FILTER 100 SP Filtering in (Range 0-100, 100-No filtering) INT_GAIN 0.02 Sum Cancel parameter (default 1.0 for Int.Process) RLS_LAMBDA 0.99 RlsLambda - Recursive Least Square Parameter RLS_ALPHA 0.5 RlsAlpha - Recursive Least Square Parameter RLS_BETA 0.005 RlsBeta - Recursive Least Square Parameter RLS_DELTA 0.005 RlsDelta - Recursive Least Square Parameter PK_DIAG 10 Initial PK covariance matrix, with a diagonal structure INTEG_LEARN_FACTOR 1 Integrating Learning Factor (1-20) SLOPE_LIMIT 0.05 Steady State Slope Limit SUM_CANCEL_COUNTER 30 Number of updates after the set-point change has occurred DIST_FILTER_LENGTH 50 Number of samples used within the filter.

References Cited (Backward Citations)

US5394322A Cited
US6459939B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-11-03 2007-05-05 2007-11-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-11-03 2011-05-05 2011-11-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-11-03 2015-05-05 2015-11-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag