Model reference adaptive control using code-projected tensor arithmetic.
Patent Information
- Application Number
- JP2024515876
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-09-13
- Filing Date
- 2022-09-13
- Publication Date
- 2025-09-24
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] Aspects of the present disclosure generally relate to a control system, including a control system for a radio frequency (RF) generator. [Background technology]
[0002] Control systems have important applications in many technology areas, including plasma applications, semiconductor processing and other material processing, robotics, vehicle control systems for automobiles, aircraft, and spacecraft, and other electronic, manufacturing, and industrial systems. Semiconductor processing and other advanced material processing rely on increasingly sophisticated plasma processes. Such plasma processes, in turn, require increasingly sophisticated power and control systems to subject the inherently unstable and nonlinear plasma to increasing precision and consistency. Such plasmas are used for processes such as plasma etch processes, plasma-enhanced chemical vapor deposition (CEPVD) processes, plasma-enhanced atomic layer deposition (PEALD) processes, plasma-assisted atomic layer deposition (PA-ALD), RF sputtering deposition, and other plasma applications.
[0003] After substantial technological advances, one typical plasma power and control system may comprise an inductively coupled plasma (ICP) reactor powered by an RF generator connected through an RF impedance matching network, with associated measurement instruments that detect signals and physical conditions from the matching network and the plasma reactor and feed the data to the RF generator. The matching network implements rapid and precise matching of the plasma's rapidly changing, chaotic, nonlinear impedance and protects the RF generator from other deleterious effects of those rapid nonlinear impedance changes. The RF generator amplifies and converts the power from a basic input form to a form optimized for powering the plasma. The RF generator comprises an RF power amplifier, a user interface, and a controller, such as a measurement and control multiprocessor system on chip (M&C MPSoC), which controls the RF generator. Summary of the Invention [Means for solving the problem]
[0004] Aspects of the present disclosure are based on novel insights into the design of next-generation control systems, applications including, for example, RF generators powering plasma processing systems. The novel RF generator control system of the present disclosure may enable novel advances over aspects of the existing state of the art, and thus, with the benefit of hindsight from the insights and aspects of the present disclosure, various aspects of the existing prior art state of the art control systems may now be understood as constraints and limitations. As a specific example, various aspects disclosed herein relate to multiple-input multiple-output (MIMO) model reference adaptive control (MRAC) control systems, devices, and methods incorporating digital twin model references, sign and projection operations, one or more proportional-integral-derivative (PID) control modules and / or other types of control modules, and hysteresis-based sliding mode filters in combination with such other aspects, among various related systems, devices, and methods of the present disclosure. The novel RF generator control system of the present disclosure may enable novel advances in the consistency and precision of control in plasma processing according to various aspects of the present disclosure. Applications of aspects of the present disclosure may include, for example, advanced, rapid, precise and robust control of radio frequency (RF) generators and plasma chambers.
[0005] Various demonstrative aspects are directed to a device comprising a reference model module, an adaptive law module, and an adaptive control module. The reference model module is configured to receive a setpoint input and a reference model input and generate a reference model output based, at least in part, on the setpoint input and the reference model input. The adaptive law module is configured to receive a reference model output from the reference model module, perform a sign projection tensor operation based, at least in part, on the reference model output, and generate a sign projection adaptive law output based, at least in part, on the sign projection tensor operation. The adaptive control module is configured to receive an adaptive law output from the adaptive law module, receive a setpoint input, receive a sensor system output from the sensor system, and generate an adaptive control signal based, at least in part, on the adaptive law output, the setpoint input, and the sensor system output.
[0006] Various illustrative aspects are directed to a method. The method includes receiving, by a control device, a setpoint input and a reference model input, and generating a reference model output based, at least in part, on the setpoint input and the reference model input. The method further includes receiving, by the control device, a reference model output, performing a code projection tensor operation based, at least in part, on the reference model output, and generating a code projection adaptive law output based, at least in part, on the code projection tensor operation. The method further includes receiving, by the control device, an adaptive law output from an adaptive law module, receiving a setpoint input, receiving a sensor system output from a sensor system, and generating an adaptive control signal based, at least in part, on the adaptive law output, the setpoint input, and the sensor system output.
[0007] Various illustrative aspects are directed to a computing system. The computing system comprises one or more processing devices, one or more tangible computer-readable memory devices, and one or more tangible computer-readable data storage devices. The computing system further comprises program instructions stored on the one or more data storage devices for execution by the one or more processing devices using the one or more memory devices to receive, by the control device, a set point input and a reference model input, and generate a reference model output based, at least in part, on the set point input and the reference model input. The computing system further comprises program instructions stored on the one or more data storage devices for execution by the one or more processing devices using the one or more memory devices to receive, by the control device, a reference model output, perform a code projection tensor operation based, at least in part, on the reference model output, and generate a code projection adaptive law output based, at least in part, on the code projection tensor operation. The computing system further comprises program instructions stored on the one or more data storage devices for execution by the one or more processing devices using the one or more memory devices to cause the control device to receive an adaptive law output from the adaptive law module, receive a set point input, receive a sensor system output from the sensor system, and generate an adaptive control signal based, at least in part, on the adaptive law output, the set point input, and the sensor system output.
[0008] Various additional aspects are depicted in and will become more apparent based on the accompanying drawings and described below. [Brief description of the drawings]
[0009] Various features and advantages of the disclosed technology will be apparent from the following description of specific embodiments of the technology, as illustrated in the accompanying drawings. The drawings are not necessarily to scale, with emphasis instead being placed on illustrating the principles of the technological concepts. In the drawings, like reference characters may refer to the same parts throughout the different views. The drawings depict only illustrative embodiments of the disclosure and are not to be considered limiting in scope.
[0010] [Figure 1] FIG. 1 illustrates a controller according to an aspect of the present disclosure.
[0011] [Diagram 2] FIG. 2 illustrates a controller according to an aspect of the present disclosure.
[0012] [Diagram 3] FIG. 3 illustrates a plasma processing environment including a radio frequency (RF) generator incorporating a controller in accordance with an aspect of the present disclosure.
[0013] [Figure 4] FIG. 4 illustrates an exemplary plasma processing environment including a radio frequency (RF) generator incorporating a controller in accordance with an aspect of the present disclosure.
[0014] [Diagram 5] FIG. 5 illustrates an example plasma processing environment including a radio frequency (RF) generator incorporating a controller in accordance with an aspect of the present disclosure.
[0015] [Figure 6] FIG. 6 illustrates a flow chart of an exemplary method for operation of a controller in accordance with another aspect of the present disclosure.
[0016] [Figure 7]FIG. 7 illustrates a block diagram of an example computing system that may embody, control, perform, implement or execute any of the various embodiments of code projection tensor control systems, devices, operations, methods and techniques according to aspects of the present disclosure.
[0017] [Figure 8] FIG. 8 illustrates a conceptual block diagram of a system comprising example physical components that may implement, execute, or embody one or more aspects of various embodiments of a code projection tensor control device or system according to aspects of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0018] Detailed Description Aspects of the present disclosure may provide novel next-generation control systems, including code projection adaptive law control systems, devices, and methods. In various aspects disclosed herein, various examples may include multiple-input multiple-output (MIMO) model reference adaptive control (MRAC) control systems, devices, and methods that incorporate digital twin model references, code and projection operations, one or more proportional-integral-derivative (PID) control modules and / or other types of control modules, and hysteresis-based sliding mode filters in combination with such other aspects, among other related systems, devices, and methods of the present disclosure.
[0019] FIG. 1 illustrates a controller 100 according to an illustrative aspect of the disclosure. The controller 100 may be a code projection adaptive law controller, i.e., a controller that implements a code projection parameter tensor estimator operation in a model reference adaptive control system according to an illustrative aspect as described herein. The controller 100 is configured to receive a setpoint value input 103 and a sensor signal input 112 and output a control signal 114. The setpoint input 103 may comprise, in this example, one or more desired setpoints and digital twin reference model parameters. The controller 100 comprises a reference model module 104, a code projection adaptive law module 106, a control module 108, and a filter 110. The reference model module 104, the code projection adaptive law module 106, and the control module 108 may all be configured to receive the setpoint input 103 in this example.
[0020] Reference model module 104 may comprise any type of reference model or reference shaped waveform in different examples. Thus, while reference model module 104 and other reference models in this disclosure refer to a "reference model," they are not limited by conventional notions of what may be components of a reference model, but may also include any type of reference shaped waveform in various examples. Reference model module 104 may be a digital twin reference model in some examples. Reference model module 104 may incorporate setpoint parameters and digital twin parameters selected from setpoint input 103, as further described below. Setpoint input 103 may be received from a user interface or other user system in different examples. Reference model module 104 may model an external system to be controlled and how such an external system interacts with setpoint parameters selected from setpoint input 103. Reference model module 104 may generate reference model output 122 based on its modeling, in this example, and output reference model output 122 to code projection adaptation law module 106 ("SPAL module 106").
[0021] The code projection adaptation law module 106 may receive the reference model output 122 from the reference model module 104 and the selected setpoint parameters from the setpoint input 103. The code projection adaptation law module 106 may perform a code projection parameter tensor estimator operation on the inputs it receives. That is, the code projection adaptation law module 106 may perform a parameter tensor calculation, which in various embodiments comprises the code projection adaptation law module 106 multiplying a gain tensor with one or more sign terms based, at least in part, on the selected setpoint parameters from the reference model module 104 and the setpoint input 103, and then performing a projection operation on the result. The implementation of the code projection parameter tensor operation by the code projection adaptation law module 106 according to various aspects is further described below. The code projection adaptation law module 106 may also perform other functions, such as comparing the reference model output from the reference model module 104 and the selected setpoint parameters from the setpoint input 103, determining and correcting any errors evident between the two, applying adaptive gain scaling tensor operations and / or other processing operations, in different embodiments, as described further below. The code projection adaptation law module 106 may generate a code projection parameter tensor output 124 as a result of its operations, and may output the code projection parameter tensor output 124 to the control module 108, in this embodiment.
[0022] The control module 108, in this embodiment, may receive selected setpoint parameters from the setpoint input 103, the code projection tensor output 124 from the code projection adaptation law module 106, and a sensor signal input 112 from an external sensor system that detects one or more aspects of the external system to be controlled. The control module 108 may, for example, be a PID control module, a gain parameterization control module, or other types of control modules in different embodiments. The control module 108 may compare the code projection tensor output 124 from the code projection adaptation law module 106, the sensor signal input 112, and the selected setpoint parameters from the setpoint input 103, and may detect any errors in the sensor signal input 112 relative to the code projection tensor output 124 and / or the setpoint parameters from the setpoint input 103. The control module 108 may apply one or more correction operations with respect to any such detected errors, among various operations it may perform. As a final result of such operations, control module 108 may generate a control output 126 and output the control output 126 to filter 110. Control module 108 may be an adaptive control module or any type of control module in different embodiments.
[0023] As a note on terminology, one of ordinary skill in the art will recognize that controller 100 may typically be referred to in systems engineering as a "controller," while in control engineering controller 100 may also sometimes be referred to as a "control system," while control module 108 may sometimes be referred to as a "controller." Although these conventions may be noted and may be used alternatively in accordance with different accepted naming conventions in the relevant art, for purposes of the remainder of this disclosure controller 100 and control module 108 and similar controllers and control modules of this disclosure will be referred to as "controllers" and "control modules," respectively.
[0024] The filter 110 may be a sliding mode filter in some embodiments, and may be a hysteresis-based sliding mode filter in some embodiments. The filter 110 may perform a hysteresis-based sliding mode filter operation on the control output 126 in this embodiment. In other words, the filter 110 may perform a sliding mode filter operation that also considers hysteresis in the change of the control output 126, for example, filtering out any changes in the control output 126 that are particularly small or incremental from one time step to the next, and eliminating any potential chattering in the control output 126. The sliding mode control allows robust and high performance control to be performed on nonlinear systems. However, this may cause chattering around the set point value. The filter 110 may correct this chattering problem while maintaining the desired performance and robustness of the sliding mode output filter by using hysteresis on the sliding mode filter to minimize and eliminate the chattering. Filter 110 may then generate and output a control signal 114 based on the filter operation. Filter 110 may thus be configured to receive an adaptive control signal from control module 108, which may comprise an adaptive control module, and to generate a filtered control signal 114 based, at least in part, on the adaptive control signal.
[0025] The controller 100, in this embodiment, may be configured to output a control signal 114 to an external destination, such as a system to be controlled by the controller 100, as further described below, which may comprise the same system modeled by the reference model module 104 and from which the sensor signal input 112 is received.
[0026] Each of the reference model module 104, the code projection adaptation law module 106, the control module 108, and / or the filter 110 may be implemented, in whole or in part, in various aspects, as functional blocks of electronic hardware, as files or portions of one or more files of software running on a general purpose computer, a cloud computing environment, or other processing hardware, or in any other combination of processing hardware and / or software configured to perform the described functions. In some embodiments, the reference model module 104, the code projection adaptation law module 106, the control module 108, and / or the filter 110 may be implemented on a single measurement and control multiprocessor system-on-chip (M&C MPSoC). In some embodiments, the reference model module 104, the code projection adaptation law module 106, the control module 108, and / or the filter 110 may be implemented on a single M&C MPSoC in combination with one or more GPUs. In some embodiments, the reference model module 104, the code projection adaptation law module 106, the control module 108, and / or the filter 110 may be implemented on another type of single system on a chip (SoC), a field programmable gate array (FPGA), an FPGA combined with a graphics processing unit (GPU), a combination of one or more SoCs, FPGAs, GPUs, and / or one or more central processing units (CPUs), and / or one or more other processing devices, or other combinations of hardware and / or software.
[0027] Controller 100 may be used or incorporated in any of a wide variety of applications, technologies, and industries. For example, controller 100, in different embodiments, may be applied in plasma applications, semiconductor processing and other material processing, robotics, vehicle control systems for automobiles, aircraft, and spacecraft, other electronic, manufacturing, and industrial systems, and other applications and technologies.
[0028] 2 illustrates a controller 200, similar in some respects to controller 100, with some similar modules and components, and showing some additional details according to an illustrative aspect of the disclosure. Controller 200 may be a code projection adaptive law controller. Controller 200 includes a reference model module 204, a code projection adaptive law module 206 ("SPAL module 206"), an adaptive control module 208, and a hysteresis-based sliding mode filter 210 ("HBSM filter 210"). Controller 200 may be configured to receive setpoint input 203, which in this example may include selected setpoint parameters, and digital twin input 205, which may include selected digital twin parameters from a user system (US) 202. The user system 202 may comprise a setpoint control user interface or other user interface, one or more computers, one or more processing devices, computing environments, and / or other systems accessible to a user, which may be considered a user system for performing functions, comprising one or more functions as described herein. The user system 202 may, in some examples, comprise both a setpoint control user interface device and one or more general-purpose computing devices, and / or computing environments for storing, processing, and executing digital twins or other types of model references that replicate the functionality of a target system to be controlled with high precision in software. The controller 200 may also be configured to receive sensor signal inputs 212 from external sources and output control signals 214 to the system to be controlled, which may comprise or be associated with a source or sources of the sensor signal inputs 212. All of the reference model modules 204, in this embodiment, may be configured to receive a setpoint input 203 and a digital twin input 205, while the code projection adaptive law module 206 and the adaptive control module 208 may be configured to receive a setpoint input 203.
[0029] The reference model module 204 may be a digital twin reference model and may incorporate selected setpoint parameters from the setpoint input 203 and digital twin parameters from the digital twin input 205. Similar in some respects to the controller 100, the reference model module 204 may generate a reference model output 222, in this example, and output the reference model output 222 to the code projection adaptation law module 206. The code projection adaptation law module 206 may receive the reference model output 222 and the setpoint input 203 from the reference model module 204, and may generate and output a code projection tensor output 224 to the adaptive control module 208, as further described below. The adaptive control module 208 may receive the setpoint input 203, the code projection tensor output 224 from the code projection adaptation law module 206, and a sensor signal input 212 from an external sensor system, and may generate and output an adaptive control output 226 to the hysteresis-based sliding mode filter 210. By performing its operations and generating its outputs based, in part, on sensor signal inputs 212 from an external sensor system, the adaptive control module 208 may adapt and update its outputs during operation of the external system, in this example, based on the measured performance of the external system. The hysteresis-based sliding mode filter 210 may receive an adaptive control output 226 and generate and output a control signal 214. The reference model module 204, the code projection adaptation law module 206, the adaptive control module 208, and the hysteresis-based sliding mode filter 210 are further described as follows.
[0030] The reference model module 204 may perform modeling of the system to be controlled by the controller 200. The reference model module 204 may incorporate and use a digital twin or other reference model of such a system to be controlled. Further details of the reference model module are described further below with reference to specific example systems to be controlled by the controller of the present disclosure.
[0031] 2, in this embodiment, the code projection adaptation law module 206 includes a summation module 232, an alpha module 234, a gamma adaptive gain scaling module 236, and a code projection tensor module 238, whose exemplary functions are described as follows: The summation module 232 receives a setpoint input 203 from the user system (US) 202 and a reference model module output 222 from the reference model module 204, compares these two inputs, detects any detected error between the two, and outputs as a measured error signal to the alpha module 234. The alpha module 234 may generate a linear saturating code function that may be used to preemptively reduce any chatter that may otherwise occur in downstream code operations in the controller 200. For example, if the error is between {-6000, -3000, -1000, 0, 1000, 1200, 4000, 6000}, the output of the alpha module 234 may be {-3, -2, -1, 0, 1, 2, 3}, whereas the sign operator, based solely on the sign, may have an output of {-1, 0, 1}. Alpha may be considered as a sign gradient. The alpha module 234 receives the measured error signal from the summation module 232 and the reference model module output 222 from the reference model module 204, and generates an output to an adaptive gain scaling module 236. The adaptive gain scaling module 236 performs adaptive gain scaling on its inputs and generates a resultant output to a sign projection tensor module 238. The sign projection tensor module 238 receives this input and performs an online sign tensor parameter projection tensor operation on its inputs and generates the result as the sign projection parameter tensor output 224. The code projection tensor operation performed by the code projection tensor module 238 is shown in Equations 1-3, i.e., [ka] [ka] where Θ k+1 contains the code projection adaptation law MIMO tensor output for time k+1, and Θ k contains the code projection adaptation law MIMO tensor output for time k prior to time k+1, and Θ k-1 contains the code projection adaptation law MIMO tensor output for time k-1 prior to time k, and Γ k contains the adaptive gain scaling learning factor tensor for time k, and e k comprises a MIMO tensor error signal for time k based, at least in part, on a detected error between a reference model output and a setpoint input for time k, and e k-1 includes a MIMO tensor error signal for time k-1 that is based, at least in part, on the detected error between the reference model output and the setpoint input for time k-1, and the projection operator Proj performs a tensor projection operation. By performing operations on the MIMO tensor, the code projection adaptation law module 206 can be much more generalized and more performant than conventional techniques and systems of the prior art.
[0032] That is, at each time index k, the code projection tensor module 238 calculates the error MIMO tensor signal e at time index k minus the MIMO tensor error signal e at the previous time index k−1, which is Δe k may be referred to as the theta MIMO parameter tensor Θ at time index k minus the theta MIMO parameter tensor Θ at the previous time index k−1, which is k The result of this division can be referred to as Δ(e / Θ) k At each time index k, the sign projection tensor module 238 further calculates a negative adaptive gain scaling learning factor tensor gamma, i.e., Γ×Δ(e / Θ) k, the sign of the error signal e at time index k, and then a projection operation (Proj) is performed on that result (such as in Equation 2 and its slightly simplified form in equivalent Equation 3), and the result of this calculation is a new theta sign projection parameter tensor output 224, Θ, for the new time index k+1, i.e., Θ k+1 The code projection tensor module 238 outputs the theta code projection parameter tensor output 224 as an output of the code projection adaptation law module 206 to the adaptation control module 208.
[0033] Thus, the code projection adaptation law module 206 comprises a code projection tensor module 238 configured to perform a code projection tensor operation on an input based at least in part on a reference model output, where the code projection adaptation law output is based at least in part on the code projection tensor operation. Performing the code projection tensor operation may include performing a code projection adaptation law output determination for time k+1 in the form of Equation 2 listed above.
[0034] The tensor projection operator, in some examples, may be implemented as follows: [ka]
[0035] The theta code projection parameter tensor output 224 generated by the code projection adaptation law module 206 may represent a nonlinear, time-varying, multiple-input multiple-output (MIMO) parameter tensor. Some aspects of the example controller 200 may further be understood in contrast to certain prior art systems. For example, while it is common practice in the prior art that simplifications such as linearity, time invariance, and single-input single-output (SISO) modeling are sometimes important or necessary to make a control system tractable or feasible to implement, various aspects of the present disclosure may incorporate the novel insight that the example controller 200 may incorporate a code projection adaptation law module 206 that may generate a nonlinear, time-varying, multiple-input multiple-output (MIMO) code projection parameter tensor, forming not only a tractable system to implement, but also resulting in advantages not surpassed by the prior art, including guaranteed stability and high performance, among other advantages in various embodiments. As another example, while certain prior art systems incorporate components known as integrators, various aspects of the present disclosure may incorporate, among other additional advantages, the novel insight that a code projection adaptation law module 206 such as the exemplary controller 200 may go beyond the functionality of prior art integrators, and that prior art integrators and systems may allow parameters to drift away outside the applicable region of stability, whereas a code projection adaptation law module 206 such as the exemplary controller 200 generating a nonlinear, time-varying, multiple-input multiple-output (MIMO) theta code projection parameter tensor output 224 may provide guaranteed certainty of parameter stability and may provide certainty of the task of combating parameter drift at all times to maintain parameters within the bounds of stability, thus, thereby ensuring stability and high performance of the controller 200, ensuring bounded parameter estimates without attempting to rely on parameter leakage, and dealing with potential parameter drift.
[0036] The code projection adaptation law module 206, in various embodiments, among other advantages, may also operate at very fast rates relative to prior art systems, and may be controlled to repeat and iterate its processing operations as rapidly as possible, thereby approaching or achieving real-time reaction rates for the equipment or facility being controlled. This real-time reaction rate may be in sharp contrast to many typical or common prior art systems, where processing rates may not be capable of real-time performance, and where high processing rates are avoided as undesirable, as will be explained further below, because they are likely to introduce significant or excessively rapid changes in the output control signals, drawbacks that are avoided and resolved by the controller 200 in various embodiments of the present disclosure. The controller 200 of the present disclosure in various embodiments may therefore also avoid averaging over time, a common technique in prior art systems that attempts to compensate for rapid, nonlinear changes in conditions over very short periods of time, but which also typically introduces additional difficulties and failure modes in many prior art systems.
[0037] Thus, instead of relying on parameter leakage to address potential parameter drift and ensure bounded parameter estimates, as in some prior art systems, the code projection adaptation law module 206 may adjust the adaptation rate using code tensor operations with tensor parameter projection at a very high adaptation rate, e.g., at the fastest rate possible or feasible with its applicable processing hardware (e.g., FPGA), which may ensure bounds on uncertainty, which may ensure stability. The code projection adaptation law module 206 may thus generate and output theta code projection parameter tensor output 224 to the adaptive control module 208. The adaptive control module 208 may also receive a setpoint input 203 from the US 202 and a sensor signal input 212 from one or more external sensors configured to detect measurements of an external system to be controlled by the controller 200. In this embodiment, the adaptive control module 208 comprises a proportional integral derivative (PID) module 244 and a multiplication module 248. The adaptive control module 208, in this example, includes a single PID module 244, but in other examples may include any number of PID modules, in various examples with mutual feedback between the multiple PID modules and / or additional architectures and modules associated with the multiple PID modules according to various arrangements.
[0038] Thus, the code projection adaptation law module 206 may be referred to as an adaptation law module by reference to that term as it is understood in the relevant art, however, the code projection adaptation law module 206 also goes beyond the typical functions of an adaptation law module. The code projection adaptation law module 206 may in some respects be conceptualized as a novel form of pre-filter, as opposed to a type of adaptation law module as conventionally understood, i.e., one that pre-filters the applicable signal based on the sign of the magnitude of the data. The code projection adaptation law module 206 also determines gamma in real time, using an optimization procedure to find the best value for gamma, and in some embodiments replaces the division term in Equation 2 with Θ k Depending on the sign of the delta of the parameter tensor, e k By converting to multiplication of the sign of the delta of the parameter tensor, the sign calculation is performed without the need to perform any division calculations, thereby significantly optimizing the computation speed and efficiency. For example, Equation 2 can be converted to the following Equation 6, i.e.: [ka] which the code projection adaptation law module 206 may perform.
[0039] Other embodiments may include other types of control modules that may not include a PID module. Some embodiments may include a gain scheduling control module and / or an H-infinity control module instead of or in addition to one or more PID control modules, and in some embodiments may perform linear gain scheduling based on the H-infinity determination. All such modules may be collectively included within the umbrella term of adaptive control modules for purposes of this disclosure, although some such modules may alternatively be considered gain scheduled control modules. Gain scheduled adaptive control modules included within various embodiments of the present disclosure may, in various embodiments, perform gain scheduling calculations in state space and / or in parallel, thereby facilitating speed and efficiency of computational performance.
[0040] In the example of FIG. 2, the PID module 244 receives the set point input 203 and the sensor signal input 212 and performs a PID operation on the set point input 203 and the sensor signal input 212 to generate a PID output 247. The PID module 244 outputs the PID output 247 to a multiplication module 248. The multiplication module 248 also receives the theta code projection parameter tensor output 224 from the code projection adaptation law module 206. The multiplication module 246 may multiply the theta code projection parameter tensor output 224 with the PID output 247, thereby generating a resultant adaptive control output 226. The adaptive control module 208 may repeatedly recalculate a new product of theta code projection parameter tensor output 224 and the PID output 247 at the speed limit of its processing hardware, over time without having to rely on any averaging, which may provide a further novel advantage over prior art systems. The adaptive control module 208 may therefore generate and output an adaptive control output 226 to a hysteresis-based sliding mode (HBSM) filter 210 in this embodiment.
[0041] The hysteresis-based sliding mode filter 210 receives the adaptive control output 226 and performs hysteresis-based sliding mode filtering of the adaptive control output 226. The hysteresis-based sliding mode filter 210 only allows changes to the control signal 214 if the adaptive control output 226 differs from the previous time-indexed adaptive control output by more than a sliding mode limit, possibly after correcting for hysteresis, and filters out changes to the adaptive control output 226 that are below the hysteresis-based sliding mode limit. The hysteresis-based sliding mode filter 210 may thus be considered a quantization filter that removes chatter and / or removes very small uncertainties and very small changes or noise across the signal, which may typically be of the order of the scale of the system uncertainty. The hysteresis-based sliding mode filter 210 may thus help prevent small, random, noisy oscillations or fluctuations in the control signal 214 as output by the controller 200. The hysteresis-based sliding mode filter 210 may thus help ensure robustness and stability of the generated control signal, including against hardware quantization or discretization effects. By being located as the final component of the controller 200, as opposed to possibly being located earlier in the chain of components, the controller 200 may preserve and calculate based on the maximum possible available information in performing its operations through generating the adaptive control output 226 before subjecting it to the hysteresis-based sliding mode filter 210.
[0042] By its nature, the hysteresis-based sliding mode filter 210 is also inherently capable of very fast processing speeds, thus contributing to an overall very fast processing speed of the controller 200 in this embodiment, among other advantages, over prior art systems. The hysteresis-based sliding mode filter 210 may therefore also help to enable the benefits of the code projection adaptation law module 206, which operates very rapidly and potentially approaches or achieves real-time reactive processing, while the hysteresis-based sliding mode filter 210 may help to ensure that the control signal 214 is not changed too rapidly as a result. In other words, the combination of components within the controller 200 in this embodiment may maintain robust adaptive performance at such high processing speeds while ensuring an optimal combination of real-time reactive processing speeds, thereby delivering the benefits of such high speeds without the potential drawbacks associated with attempts at high reactive processing speeds in prior art systems.
[0043] The controller 200 may therefore output a control signal 214 as generated by the reference model module 204, the code projection adaptation law module 206, the adaptive control module 208, and the hysteresis-based sliding mode filter 210, and ultimately as output by the hysteresis-based sliding mode filter 210. The controller 200 may be configured to be placed in association with any of a wide variety of systems to be controlled and to output the control signal 214 to such systems, to implement very fast, highly accurate, robust adaptive control of such systems. An example of such control of such an external system is shown in FIG.
[0044] 3 illustrates a plasma processing environment 301 including a radio frequency (RF) generator 352 incorporating a controller 300 of the present disclosure, according to an illustrative embodiment. The plasma processing environment 301 is one illustrative application context, among many, into which the controller of the present disclosure may be advantageously incorporated to implement novel forms of robust adaptive control for complex systems. The plasma processing environment 301 includes, in this example, an RF generator 352, a computing environment (CE) 307, a power supply 360, a matching network 370, a plasma chamber 380, and a sensor system 390. The RF generator 352 includes, in this example, an RF power amplifier 356, a controller 300, and a set point control user interface (SCUI) 302. The set point control user interface 302, the computing environment 307, and the sensor system 390 are all configured to generate outputs that are configured to be received as inputs by the controller 300. The controller 300 may be configured to perform, execute, implement, or embody code projection adaptive law control of the plasma processing environment 301 as output, implemented, or expressed in the control signal 314 as described herein.
[0045] The controller 300 may be implemented in some examples to comprise a measurement and control (M&C) multiprocessor system on chip (MPSoC). The controller 300 is configured to control the RF power amplifier 356 via a control signal 314. The control signal 314 may comprise a code projection adaptation law control signal and may incorporate results of code projection adaptation law implementations, techniques, and methods according to embodiments of the present disclosure.
[0046] The RF power amplifier 356 is configured to receive power from the power source 360 and to receive and be controlled by a control signal 314 from the controller 300. The RF power amplifier 356 may be configured and implemented in any of a variety of complex designs and adapted to address the complex set of performance requirements and specifications of various plasma chambers or other systems due to different applications. Further description of exemplary applicable RF power amplifiers may be found in various additional disclosures by the applicant. The RF power amplifier 356 feeds the plasma chamber 380 through the medium of a matching network 370. The plasma chamber 380 may be, in some embodiments, an inductively coupled plasma (ICP) reactor or other type of plasma processing chamber used for semiconductor processing or other advanced material processing.
[0047] The matching network 370 provides a fast and precise impedance matching to the load impedance of the plasma chamber 380 because the impedance of the plasma chamber 380 varies randomly and nonlinearly on very short time scales due to the often chaotic behavior of the plasma being generated and manipulated therein. The matching network 370 thereby protects the RF power amplifier 356 from the rapid and chaotic fluctuations and other detrimental effects of shocks in the load impedance of the plasma chamber 380. The matching network 370 may comprise several electrical circuit elements, such as several switched capacitors, and other elements, such as inductors, which may contribute to configuring the matching network 370 to implement and implement a load impedance matching to the plasma chamber 380, along with its own internal matching network controller for switching the switched capacitors and / or other elements in rapid response time in response to shocks and vibrations in the load impedance of the plasma chamber 380. In another embodiment, the RF generator 352 may comprise the matching network 370 as a component system within the RF generator 352.
[0048] The sensor system 390 may include various sensors, couplers, physical measurement instruments, and associated devices for receiving sensor inputs from the matching network 370 and the plasma chamber 380. The sensor system 390 may thus collect and produce a high bandwidth stream of data from the matching network 370 and the plasma chamber 380. The sensor system 390 generates an output that is configured to be received by the controller 300 as a sensor signal input 312.
[0049] The set point control user interface 302 of the controller 300 may be implemented, in various embodiments, to comprise a user multi-level pulsing set point input interface. The set point control user interface 302 may be an implementation of or may be included within a user system as referenced above. The set point control user interface 302 may be configured to receive user inputs that specify one or more system set points. The set point control user interface 302 may be configured to output one or more set point inputs 303 to the controller 300.
[0050] The computing environment 307 may comprise one or more computing devices in some embodiments. The computing environment 307 may comprise one or more computing devices configured to interface with one or more cloud computing resources in some embodiments. The computing environment 307 may be configured to store, implement, and execute a digital twin or other form of high-precision model of the remainder of the plasma processing environment 301, including each of the components and subcomponents therein, as shown in FIG. 3. The computing environment 307 may comprise one or more general-purpose computing devices and / or other computing environments in some embodiments to store, process, and execute a digital twin or other type of model reference that replicates, with high precision, in software, the functionality of the remainder of the plasma processing environment 301 as a target system to be controlled by the controller 300. The computing environment 307 may comprise cloud resources, which in some embodiments may comprise applications, real and / or virtual servers, Docker containers, serverless functions, and / or other resources hosted on one or more cloud services that may store, process, and execute resources within functional specifications that are scalable, adaptable, and geographically independent, among other advantageous properties. The computing environment 307 may be configured to output one or more digital twin inputs 305 or other model reference inputs to the controller 300. The controller 300 may be configured to implement, execute, and output code projection adaptation law outputs according to various embodiments, such as:
[0051] 4 depicts an exemplary plasma processing environment 401 comprising a radio frequency (RF) generator 452 incorporating a controller 400 of the present disclosure, according to an illustrative embodiment similar in some respects to that of FIG. 3, and similar in some respects to the controller 200 of FIG. 2, implemented as a component included within the RF generator 452 and the plasma processing environment 401, according to an exemplary implementation. The plasma processing environment 401 comprises, in this example, the RF generator 452, a computing environment (CE) 407, a power source 460, a matching network 470, a plasma chamber 480, and a sensor system 490. The RF generator 452 comprises, in this example, an RF power amplifier 456, a controller 400, and a set point control user interface (SCUI) 402. The set point control user interface 402, the computing environment 407, and the sensor system 490 are all configured to generate outputs that are configured to be received as inputs by the controller 400. The controller 400 may be configured to perform, execute, implement, or embody the code projection adaptive law control methods, systems, and techniques as described herein for the plasma processing environment 401 as output, implemented, or expressed in the control signal 414 as described herein. The controller 400 may be a code projection adaptive law controller as described herein, according to an illustrative embodiment. The controller 400, in this embodiment, comprises a reference model module 404, a code projection adaptive law module 406 ("SPAL module 406"), an adaptive control module 408, and a hysteresis-based sliding mode filter 410 ("HBSM filter 410").
[0052] The setpoint control user interface 402 enables a user to select a control setpoint for input to the controller 400. The setpoint control user interface 402 outputs a setpoint input 403 to three separate components of the controller 300: the reference model module 404, the code projection adaptation law module 406, and the adaptive control module 408. The setpoint control user interface 402 may therefore be configured to output setpoint control signals to the reference model module 404, the code projection adaptation law module 406, and the adaptive control module 408. The computing environment 407 is configured to store, implement, and execute a digital twin reference model of the plasma processing environment 401, and outputs digital twin inputs 405 to the reference model module 404 of the controller 400. The computing environment 407 may therefore be configured to output reference model outputs, such as digital twin inputs 405, to the reference model module 404. The sensor system 490 outputs a sensor signal input 412 to the adaptive control module 408 of the controller 400, where the sensor signal input 412 is based, at least in part, on data received from the matching network 470 and / or the plasma chamber 480. The sensor signal input 412 may incorporate high precision data from the matching network 470 and / or the plasma chamber 480 at very high speeds, and thus the controller 400 may receive information about the ongoing performance and behavior within the matching network 470 and / or the plasma chamber 480 at very high speeds, for example, within the order of microseconds or nanoseconds of events occurring within the matching network 470 and / or the plasma chamber 480.
[0053] The reference model module 404 receives a setpoint input 403 and a digital twin input 407 and outputs a reference model input 422 to the code projection adaptation law module 406, which as shown comprises modules 432, 434, 436, 438, similar to similar modules described herein, and generates a code projection tensor output 424. The adaptive control module 408 comprises a PID module 444 and a multiplication module 448. By performing its operations and generating its output based in part on a sensor signal input 212 from an external sensor system, the PID module 444 of the adaptive control module 408 may adapt and update its output during operation of the external system based on the measured performance of the external system, which in this example comprises an RF power amplifier 456, a matching network 470, and a plasma chamber 480. The PID module 444 generates a PID output 447 based on a sensor signal input 412 from the sensor system 490 and a set point input 403 from the set point control user interface 402. The adaptive control module 408 generates an output 426 based on the sign projection tensor input 424 and the PID output 447. The hysteresis-based sliding mode filter 410 receives the output 426 from the adaptive control module 408 and outputs a control signal 414. The controller 400 outputs the control signal 414 from the hysteresis-based sliding mode filter 410 to the RF power amplifier 456 to control the operation of the RF power amplifier 456. The hysteresis-based sliding mode filter 410 may thus be configured to output the filtered output as a control signal to the RF power amplifier 456. The modules, components, operations, and signals included within, performed by, and generated by the controller 400 may further be similar, at least in part, to those described with reference to other embodiments herein.
[0054] The plasma processing environment 401 may thus comprise a plasma processing system comprising an RF power amplifier 456. The RF power amplifier 456 may be configured to receive a control signal 414 from the hysteresis-based sliding mode filter 410, receive power from a power source 460, and output RF power to a load, such as at least one of a matching network 470 and / or a plasma chamber 480. The plasma processing environment 401 may thus comprise a plasma processing system or device or apparatus comprising a matching network 470, a plasma chamber 480, and a sensor system 490, the load comprising at least one of the matching network 470 and the plasma chamber 480. The matching network 470 may be configured to receive RF power from the RF power amplifier 456 and output RF power to the plasma chamber 480. The sensor system 490 may be configured to detect data from the matching network 470 and the plasma chamber 480 and generate a sensor system output to output as a sensor system input 412 to the code projection adaptation law module 406 (throughout this application, any one device, module, or component may generate an output or output a signal that may serve as an input and be input to another device, module, or component, and thus "output," "signal," and "input" may be used synonymously within conditions indicated by the context not otherwise express).
[0055] In the code projection adaptation law module 406, the summation module 432 receives the setpoint input 403 from the user system 202 and the reference model module output 422 from the reference model module 404, and compares these two inputs to detect and output any detected error between the two as a measured error signal to the alpha module 434. The alpha module 434 receives the measured error signal from the summation module 432 and the reference model module output 422 from the reference model module 404, and generates an output to the adaptive gain scaling module 436. The adaptive gain scaling module 436 performs adaptive gain scaling on its input and generates a resulting output to the code projection tensor module 438. The code projection tensor module 438 receives this input and performs an online code tensor parameter projection tensor operation as described herein on its input and generates the result as the code projection parameter tensor output 424, which the code projection tensor module 438 outputs to the adaptation control module 408. The code projection adaptation law module 406 may therefore be configured to receive a set point input 403 and generate a code projection adaptation law output 424 based at least in part on the set point input 403 and at least in part on the reference model input 422.
[0056] 5 depicts a plasma processing environment 501 including a radio frequency (RF) generator 552 incorporating a controller 500 of the present disclosure, the controller 500 including a dual proportional integral derivative (dual PID) adaptive control (DPAC) module 508 including two PID control modules 544, 545 according to another illustrative example. The plasma processing environment 501 further includes a computing environment (CE) 507, a power supply 560, a matching network 570, a plasma chamber 580, and a sensor system 590 according to various embodiments, the RF generator 502 including the controller 500, a set point control user interface (SCUI) 502, and an RF power amplifier 556, the controller 500 including a reference model module 504, a sign projection adaptive law module 506 ("SPAL module 506"), a dual PID adaptive control module 508, and a hysteresis-based sliding mode filter 510 ("HBSM filter 510") "), setpoint control user interface 502 outputs setpoint input 503 to controller 500, computing environment 507 outputs digital twin input 505 to controller 500, controller 500 outputs control signal 514 to RF power amplifier 556, sensor system 590 outputs sensor signal input 512 to controller 500, and code projection adaptation law module 506 comprises modules 532, 534, 536, and 538, all at least in part similar to similar components described elsewhere herein except as at least partially differently described.
[0057] The dual PID adaptive control module 508 may contribute further novel advantages in various embodiments. The dual PID adaptive control module 508 includes a summation module 543, a first PID control module 544, a second PID control module 545, and a maximum module 546. The first and second PID control modules 544, 545 may include bumpless transfer PID control modules, in this embodiment, which may enter into a limit loop. The summation module 543 acts as an initial summation module for both PID control modules 544, 545 and outputs its output to both PID control modules 544, 545. The summation module 543 may receive a set point input 503 from the set point control user interface 502 and a sensor signal input 512 from the sensor system 590. The summation module 543 may detect any error between the set point input 503 and the sensor signal input 512 and generate a measured error signal that may be output to the first and second PID control modules 544 , 545 .
[0058] The first and second PID control modules 544, 545 each output their respective output to a maximum module 546 and to each other as one of two inputs, i.e., the first PID control module 544 outputs its output as one of the inputs to the second control PID module 545, and the second PID control module 545 outputs its output as one of the inputs to the first PID control module 544. The maximum module 546 compares the outputs from the first and second PID control modules 544, 545 and outputs to a module 548 either the output from the first PID control module 544 or the output from the second PID control module 545. In particular, when the power level indicated by the output from the first and second PID control modules 544, 545 is rising from low to high, the maximum module 546 may output the output from the first PID control module 544, and when the power level indicated by the output from the first and second PID control modules 544, 545 is falling from high to low, the maximum module 546 may output the output from the second PID control module 545.
[0059] The maximum module 546 outputs its output to a module 548, which also receives the code projection tensor output 524 from the code projection adaptation law module 506. The module 548 multiplies the code projection tensor output 524 with the maximized dual PID output from the maximum module 546 and outputs the resulting dual PID adaptive control module product output 526 to a hysteresis-based sliding mode filter 510. The dual PID adaptive control module 508 may, in various embodiments, contribute to maximizing the performance of the controller 500 without compromising stability, robustness, or repeatability, among other novel advantages. In different embodiments, the adaptive control module 508 may comprise two, three, four, five, six, or more PID controllers corresponding to adaptive gain scheduling, and the minimum number of PID controllers for multi-PID adaptive gain scheduling may be two (one for rising edge control and one for falling edge control). In some embodiments, the number of PID controllers may correspond to the maximum number of states in the system to be controlled by the controller 500. This may be more optimal and generalized, and may achieve higher performance and minimize required implementation resources compared to various prior art adaptation rate mechanisms. In some embodiments that use PID controllers, the adaptive control module 508 may also include a gain scheduling PID control mechanism that uses a lookup table and varies the parameters of the lookup table accordingly.
[0060] 5, dual PID adaptive control module 508 includes a first PID controller 544 and a second PID controller 545, and further includes a maximum module 546. Maximum module 546 is configured to receive a first PID output from first PID controller 544, receive a second PID output from second PID controller 545, and output a first PID control module output in response to detecting a power level indicated by the outputs from the first and second PID control modules rising from low to high, and output a second PID control module output in response to detecting a power level indicated by the outputs from the first and second PID control modules falling from high to low.
[0061] The control system of the present disclosure, including controllers 100, 200, 300, 400, and 500, among other embodiments, may outperform prior art adaptive control systems in reducing risks associated with hardware time and area limitations, among other advantages. In addition, the control system of the present disclosure may minimize the impact of cable length on the point-by-point and / or instantaneous performance of the system. The adaptive systems, methods, devices, and techniques of the present disclosure may overcome the performance and hardware limitations of prior art systems. The adaptive systems, methods, devices, and techniques of the present disclosure, including RF generators 352, 452, 552, among other embodiments, may enable RF generators, including RF generators 352, 452, 552 of the present disclosure, to track a desired set point input in real time, instead of attempting to achieve regulation through averaging, as in some prior art systems. The controller of the present disclosure may use a highly efficient sliding mode adaptation law implementation, combining a sliding mode filter (e.g., sliding mode filter 210, 410, 510) with a code projection adaptation law module (e.g., code projection adaptation law module 106, 206, 406, 506), which may enable accomplishing the desired performance characteristics with very little or minimal hardware area and very little or minimal processing time (i.e., processing at very high speed), and may help ensure robustness and repeatability even in the face of disturbances on dynamic loads. In addition, the controller of the present disclosure with a code projection adaptation law module (e.g., code projection adaptation law module 106, 206, 406, 506) may successfully compensate for parameter drift and stability issues in different embodiments. In some embodiments, the controller of the present disclosure may store one or more versions of the code projection tensor theta indexed to a corresponding set of load conditions, particularly on a processing chip specialized for very fast performance, such as an FPGA, in some embodiments.Then, if the controller of the present disclosure detects the same load condition at a later time, the controller may, in some embodiments, choose to initialize from the same code projection tensor theta, potentially from a speed-specialized processing chip such as an FPGA, which may enable even faster performance.
[0062] FIG. 6 depicts a flow chart for an exemplary method 600 for operation of a controller in another aspect of the disclosure. The method 600 includes receiving a set point input and a reference model input and generating a reference model output based at least in part on the set point input and the reference model input (610), which may be performed, executed, implemented, or embodied, for example, by a reference model module. The method 600 further includes receiving a reference model output, performing a code projection tensor operation based at least in part on the reference model output, and generating a code projection adaptive law output based at least in part on the code projection tensor operation (620), which may be performed, executed, implemented, or embodied, for example, by an adaptive law module. The method 600 further includes receiving an adaptive law output from the adaptive law module, receiving a set point input, receiving a sensor system output from the sensor system, and generating an adaptive control signal based at least in part on the adaptive law output, the set point input, and the sensor system output (630), which may be performed, executed, implemented, or embodied, for example, by an adaptive control module. In some examples, method 600 may also further include receiving an adaptive control signal and generating a filtered control signal based at least in part on the adaptive control signal (640, depicted in FIG. 6 as optional with a dashed line), which may be performed, executed, implemented, or embodied, for example, by a filter. In some examples, generating a code projection adaptation law output may include performing a code projection tensor operation on an input based at least in part on a reference model output, where the code projection adaptation law output is based at least in part on the code projection tensor operation, where performing the code projection tensor operation is based on an equation [ka] (i.e., Equation 2), where Θ k+1 contains the code projection adaptation law output for time k+1, and Θ k contains the code projection adaptation law output for time k prior to time k+1, and Θ k-1 contains the code projection adaptation law output for time k-1 prior to time k, and Γ k contains the adaptive gain scaling learning factor tensor for time k, and e k comprises an error signal for time k based, at least in part, on a detected error between a reference model output and a setpoint input for time k, and e k-1 includes an error signal for time k-1 that is based, at least in part, on the detected error between the reference model output and the setpoint input for time k-1, and a projection operator Proj performs a tensor projection operation. In various embodiments, each of the steps of method 600 may be performed, executed, implemented, or embodied by a corresponding individual component of any of the embodiments illustrated in FIGS. 1-5 and described above.
[0063] FIG. 7 illustrates a block diagram of an exemplary computing system 1800 that may embody, control, perform, implement, or execute any of the various embodiments of the code projection tensor control system, device, operation, method, technique, and other systems, methods, and apparatuses disclosed herein, in various embodiments of the present disclosure. For example, the computing system 1800 may serve as an embodiment of any of the controllers 100, 200, 300, 400, or 500, as depicted in and described above with reference thereto, respectively. As a further example, the computing system 1800 may perform, execute, or embody, implement, or execute the method 600 as depicted in and described above with reference thereto, or any other method described herein. The computing system 1800 may be a server, such as a web server or an application server. The computing system 1800 may also be any server for providing the power restoration clamp application in various embodiments, including a virtual server that may be launched from or incorporated into any number of computing devices. A computing device may operate as all or part of a real or virtual server, and may be or incorporate a workstation, server, mainframe computer, notebook or laptop computer, desktop computer, tablet, smartphone, or any kind of other programmable data processing device. Other implementations of computing system 1800 may include computers having capabilities or formats other than or beyond those described herein.
[0064] In the illustrative embodiment of Figure 7, computing system 1800 comprises a communication bus 1882 that provides communication between one or more processor units 1884, one or more memory devices 1886, one or more persistent data storage devices 1888, one or more communication units 1890, and one or more input / output (I / O) units 1892. Communication bus 1882 may comprise a dedicated system bus, a general-purpose system bus, multiple buses arranged in a hierarchical configuration, any other type of bus, bus network, switch fabric, or other interconnection technology. Communication bus 1882 supports the transfer of data, commands, and other information between various subsystems of computing system 1800.
[0065] The processor unit 1884 may be a programmable central processing unit (CPU) configured to execute programmed instructions stored in one or more memory devices 1886. In another illustrative example, the processor unit 1884 may be implemented using one or more heterogeneous processor systems in which a main processor resides on a single chip along with secondary processors. In another illustrative example, the processor unit 1884 may be a symmetric multiprocessor system containing multiple processors of the same type. The processor unit 1884 may be a reduced instruction set computing (RISC) microprocessor, a x86 compatible processor, or any other suitable processor. In various embodiments, the processor unit 1884 may comprise, for example, a multi-core processor. The processor unit 1884 may comprise, for example, multiple processing chips on a single die, and / or multiple dies on a single package or substrate. The processor unit 1884 may also comprise, for example, one or more levels of integrated cache memory. In various embodiments, processor unit 1884 may comprise one or more CPUs distributed across one or more locations.
[0066] The data storage 1896 comprises one or more memory devices 1886 and one or more persistent data storage devices 1888 in communication with the processor unit 1884 through a communication bus 1882. The memory devices 1886 may comprise one or more random access semiconductor memory (RAM) devices for storing application data, i.e., computer program data, for processing. Although the memory devices 1886 are depicted as a single monolithic block, in various embodiments the memory devices 1886 may be arranged within a hierarchy of caches and other memory devices, within a single physical location, or distributed across multiple physical systems in various configurations. Although memory device 1886 is depicted as physically separate from processor unit 1884 and other elements of computing system 1800, memory device 1886 may equally refer to any mid-level, or cache memory anywhere throughout computing system 1800, including cache memory proximate to or integrated with processor unit 1884 or individual cores of processor unit 1884.
[0067] The persistent data storage device 1888 may comprise one or more hard disk drives, solid state drives, flash drives, rewritable optical disk drives, magnetic tape drives, or any combination of these or other data storage media. The persistent data storage device 1888 may store computer-executable instructions for an operating system or computer-readable program code, application files comprising program code, data structures, or data files, and any other type of data. These computer-executable instructions may be loaded from the persistent data storage device 1888 into the memory device 1886 and read and executed by the processor unit 1884 or other processor. The data storage device 1896 may also comprise any other hardware elements capable of storing information, such as, for example, but not limited to, data, program code in a functional form, and / or other suitable information, either temporarily and / or permanently.
[0068] Persistent data storage device 1888 and memory device 1886 are examples of physical, tangible, non-transient computer-readable data storage devices. Data storage device 1896 may comprise any of a variety of forms of volatile memory, which may require periodic electrical refresh to maintain data in the memory, but those skilled in the art will recognize that this also constitutes an example of a physical, tangible, non-transient computer-readable data storage device. Executable instructions may be stored on non-transient media, including when program code is loaded, stored, relayed, buffered, or cached on a non-transient physical medium or device, for only a short duration, or only in a volatile memory format.
[0069] The processor unit 1884 may also be preferably programmed to read, load, and execute computer-executable instructions or computer-readable program code for the code projection tensor control system 1822, as described in further detail above. The program code may be stored on the memory device 1886, the persistent data storage device 1888, or elsewhere within the computing system 1800. The program code may also take the form of executable program code 1804 stored on a computer-readable medium 1802 included within a computer program product 1810, as described further below, and may be transferred or communicated from the computer program product 1810 to the computing system 1800 through any of a variety of local or remote means and enabled to be executed by the processor unit 1884.
[0070] The operating system may provide functions such as device interface management, memory management, and multiple task management. The operating system may be a Unix-based operating system, a non-Unix-based operating system, a network operating system, a real-time operating system (RTOS), or any other suitable operating system. The processor unit 1884 may preferably be programmed to read, load, and execute instructions of the operating system.
[0071] The communications unit 1890, in this embodiment, provides for communication with other computing or communication systems or devices. The communications unit 1890 may provide communication through the use of physical and / or wireless communication links. The communications unit 1890 may comprise a network interface card to interface with a local area network (LAN), an Ethernet adapter, a token ring adapter, a modem for connecting to a transmission system such as a telephone line, or any other type of communications interface. The communications unit 1890 may be used to operatively connect many types of peripheral computing devices to the computing system 1800, such as printers, bus adapters, and other computers. The communications unit 1890 may be implemented, for example, as an expansion card or embedded within a motherboard.
[0072] Input / output unit 1892 may support suitable devices for input and output of data using other devices that may be connected to computing system 1800, such as a keyboard, a mouse or other pointer, a touch screen interface, an interface for a printer or any other peripheral device, a removable magnetic or optical disk drive (including CD-ROM, DVD-ROM, or Blu-ray), a universal serial bus (USB) receptacle, or any other type of input and / or output device. Input / output unit 1892 may also, in various embodiments, include any type of interface for video output in any type of video output protocol and any type of monitor or other video display technology. Some of these embodiments may overlap with each other or with the exemplary components of communications unit 1890 or data storage 1896. Input / output unit 1892 may also include appropriate device drivers for any type of external device, or such device drivers may reside elsewhere on computing system 1800, as appropriate.
[0073] The computing system 1800 also includes, in this illustrative embodiment, a display adapter 1894, which provides one or more connections for one or more display devices, such as a display device 1898, which may comprise any of various types of display devices. Some of these embodiments may overlap with the illustrative components of the communication unit 1890 or the input / output unit 1892. The input / output unit 1892 may also include appropriate device drivers for any type of external device, or such device drivers may reside elsewhere on the computing system 1800, as appropriate. The display adapter 1894, in various embodiments, may include one or more video cards, one or more graphics processing units (GPUs), one or more video-enabled connection ports, or any other type of data connector capable of communicating video data. The display device 1898, in various embodiments, may be any type of video display device, such as a monitor, television, or projector.
[0074] The input / output unit 1892 may comprise a drive, socket, or receptacle for receiving a computer program product 1810, which comprises a tangible, non-transitory computer readable medium 1802 having executable program code 1804 stored thereon. For example, the computer program product 1810 may be, as illustrative examples, a CD-ROM, a DVD-ROM, a Blu-ray disc, a magnetic disk, a USB stick, a flash drive, or an external hard disk drive, or any other suitable data storage technology.
[0075] The computer readable medium 1802 may comprise any type of optical, magnetic, or other physical medium that physically encodes the executable program code 1804 as a binary sequence of different physical states within each unit of memory, which, when read by the computing system 1800, induces physical signals that are read by the processor unit 1884 that correspond to physical states of the underlying data storage elements of the computer readable medium 1802 and induces corresponding changes in physical states of the processor unit 1884. The physical program code signals may be modeled or conceptualized as any computer-readable instructions at any of various levels of abstraction, such as a high-level programming language, assembly language, or machine language, but ultimately comprise a series of electrical and / or magnetic interactions that physically induce a change in the physical state of the processor unit 1884, thereby physically reconfiguring the processor unit 1884 in a manner that causes the computing system 1800 to physically assume new capabilities that it did not have until its physical state was changed, by loading the executable instructions contained in the executable program code 1804, and causing the processor unit 1884 to generate or configure to generate physical output corresponding to the computer-executable instructions.
[0076] In some illustrative examples, executable program code 1804 may be downloaded from another device or computer system via a network to data storage device 1896 for use within computing system 1800. Executable program code 1804 comprising computer-executable instructions may be communicated or transferred from computer readable medium 1802 to computing system 1800 through a hardline or wireless communication link to communication unit 1890 and / or through a connection to input / output unit 1892. Computer readable medium 1802 comprising executable program code 1804 may be located at a separate or remote location from computing system 1800, may be located anywhere, including at any remote geographic location anywhere around the world or in orbit, and may relay executable program code 1804 to computing system 1800 via one or more communications links of any type, such as the Internet and / or other packet data networks. Executable program code 1804 may be communicated, for example, via a wireless Internet connection or via wireless LAN, Bluetooth, Wi-Fi, or other network interfaces. TM , or via a shorter range direct wireless connection such as an infrared connection. Any other wireless or remote communication protocol may also be used in other implementations.
[0077] The communications links and / or connections may comprise wired and / or wireless connections in various illustrative examples, and the executable program code 1804 may be transmitted from the source computer readable medium 1802 via a non-tangible medium, such as a communications link or wireless transmission, containing the executable program code 1804. En route from its original source medium to the computing system 1800, the executable program code 1804 may be stored, more or less temporarily or permanently, on any number of intermediate tangible physical computer readable devices and media, such as any number of physical buffers, caches, main memories, or data storage components of a server, gateway, network node, mobility management entity, or other network asset.
[0078] Various example embodiments of the present disclosure may be in the form of a system, method, and / or computer program product. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the embodiments of the present disclosure.
[0079] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, punch cards or mechanically encoded devices such as raised structures in grooves having instructions recorded thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be interpreted as ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.
[0080] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to an individual computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and automatically transfers the computer-readable program instructions for storage in a computer-readable storage medium in the individual computing / processing device.
[0081] Computer readable program instructions for performing operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as C++ or Java, imperative programming languages such as C, specialized languages such as Hardware Description Languages (HDLs), Lisp programming languages such as Common Lisp, Racket, or Clojure, other functional programming languages such as Haskell or Erlang, or multi-paradigm languages such as Python or Rust. The computer readable program instructions may be executed completely on the user's computer, partially on the user's computer, partially on the user's computer as a stand-alone software package, partially on one or more remote computers or servers, or completely on one or more remote computers or servers. In the latter scenario, the remote computer or server may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN) or other connection, or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider (ISP)). In some embodiments, electronic circuitry, including, for example, programmable logic circuitry, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer readable program instructions and personalize the electronic circuitry by utilizing state information of the computer readable program instructions to implement aspects of embodiments of the present disclosure.
[0082] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. Each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0083] These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executing via the processor of the computer or other programmable data processing apparatus create means for implementing the functions / acts defined in the block or blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, programmable data processing apparatus, and / or other device to function in a particular manner, such that a computer-readable storage medium having instructions stored therein comprises an article of manufacture comprising instructions that implement aspects of the functions and / or acts defined in the block or blocks of the flowcharts and / or block diagrams. The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device and cause a series of operable steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions, acts, or steps defined in the block or blocks of the flowcharts and / or block diagrams.
[0084] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, partition, or part of an instruction, which comprises one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur in a different order than that noted in the figures. For example, two blocks shown in succession may in fact be executed substantially in parallel, or the blocks may sometimes be executed in reverse order, depending on the functionality involved. Each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may also be implemented by a special-purpose hardware-based system that performs the specified functions or actions, or performs a combination of special-purpose hardware and computer instructions.
[0085] Those skilled in the art will further appreciate that the various illustrative logic blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure, which may comprise all of such various implementations.
[0086] The various illustrative logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed using a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, designed to perform the functions described herein. A general purpose processor may be a microprocessor, or any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0087] FIG. 8 depicts a conceptual block diagram of a system 1450 comprising example physical components that may implement, perform or embody one or more aspects of various embodiments of a code projection tensor control device or system, as well as other devices, systems, methods, techniques, and apparatuses disclosed herein. As shown, in this embodiment, a display 1412 and a non-volatile memory 1429 are coupled to a bus 1422, which is also coupled to a random access memory ("RAM") 1424, a processing portion 1426 (comprising N processing components), a field programmable gate array (FPGA) 1427, and a transceiver component 1428, comprising N transceivers. Although the components depicted in FIG. 8 represent physical components, FIG. 8 is not intended to be a detailed hardware diagram, and thus many of the components depicted in FIG. 8 may be realized by a common structure or distributed among additional physical components. Additionally, it is envisioned that other existing and yet to be developed physical components and architectures may be utilized to implement the functional components described with reference to FIG. 8.
[0088] The display 1412 generally operates to provide a user interface for a user, and in some implementations, the display 1412 is realized by a touch screen display. For example, the display 1412 can be used to control and interact with the components described herein. In general, the non-volatile memory 1429 may comprise one or more non-transient memory devices, components, or systems that may function to store (e.g., persistently store) data and machine-readable (e.g., processor-executable) code (comprising executable code associated with the enabled methods described herein). In some embodiments, for example, the non-volatile memory 1429 may comprise boot loader code, operating system code, file system code, and / or non-transient processor-executable code to facilitate execution of the methods described herein.
[0089] In many implementations, non-volatile memory 1429 may be implemented as a flash memory (e.g., NAND or ONENAND memory) or other type of memory device, component, or system. While code may be executed from non-volatile memory 1429, executable code in non-volatile memory may typically be loaded into RAM 1424 and executed by one or more of the N processing components in processing portion 1426.
[0090] In operation, the N processing components in communication with the RAM 1424 generally operate to execute instructions stored in the non-volatile memory 1429 to realize the functionality of the code projection tensor control devices, systems, methods, techniques, and apparatus as described herein. For example, non-transient processor-executable instructions for enabling the methods described herein may be persistently stored in the non-volatile memory 1429 and executed by the N processing components in communication with the RAM 1424. The processing portion 1426 may include a video processor, a digital signal processor (DSP), a graphics processing unit (GPU), and other processing components.
[0091] Additionally or alternatively, a field programmable gate array (FPGA) 1427 may be configured to enable or implement one or more aspects of the methodologies described herein. For example, non-transient FPGA configuration instructions may be persistently stored in non-volatile memory 1429 and accessed by FPGA 1427 (e.g., during power-up) to configure FPGA 1427.
[0092] The input components may operate to receive signals (e.g., from a setpoint control user interface, a computing environment, and / or a sensor system associated with a code projection tensor controller, such as controllers 100, 200, 300, 400, and / or 500 as described above), which may represent setpoint control signals, reference models, measurement data from a matching network and / or a plasma chamber, and / or other applicable signals. The output components generally operate to provide one or more analog or digital signals (e.g., to output control signals or to generate and / or output other signals or outputs as described herein) to enable or implement operative aspects of a code projection tensor control device or other systems described herein.
[0093] The depicted transceiver component 1428 comprises N transceiver chains, which may be used to communicate with external devices (e.g., an external controller) over a wireless or wired network. N may be any number from one or more in different embodiments. Each of the N transceiver chains may represent a transceiver associated with a particular communication scheme (e.g., WiFi, Ethernet, Profibus, etc.).
[0094] Method 600 and / or other methods as described herein may include other steps or variations in various other embodiments. Some or all of method 600 and / or any of the other methods as described herein may be performed by or embodied in hardware and / or performed by a controller, CPU, FPGA, system on a chip (SoC), measurement and control multiprocessor system on a chip (MPSoC), which may include both a CPU and FPGA, and / or other elements together in one integrated SoC and / or other processing or computing device that processes executable instructions in controlling other associated hardware, devices, systems, or products in performing, implementing, or embodying various subject matter of the individual method 600 and / or any of the other methods as described herein.
[0095] Devices, systems, methods, apparatus, and techniques for code projection tensor control are thus shown and described herein in various fundamental aspects, and in various selected illustrative applications, architectures, techniques, and methods for code projection tensor model based adaptive control. Those skilled in the art will be sufficiently informed by this disclosure with regard to informed simplification for understanding and practicing a wide set of further applications, architectures, techniques, and methods for code projection tensor model based adaptive control encompassed by this disclosure and by the claims set forth below.
[0096] As used herein, the recitation of "at least one of A, B, and C" is intended to mean "either A, B, C, or any combination of A, B, and C." The previous description of the disclosed examples is provided to enable those skilled in the art to make or use the present disclosure. Various modifications to these examples will be readily apparent to those skilled in the art, and the generic principles defined within this specification may be applied to other examples without departing from the spirit or scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments, examples, and aspects described and shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein and the claims recited below.
[0097] The present disclosure and many of its attendant advantages will be understood from the foregoing description, and various changes may be made in the form, structure, and arrangement of components without departing from the disclosed subject matter or sacrificing all of its significant advantages. The forms, aspects, examples, and embodiments described and illustrated herein are merely illustrative, and the following claims encompass and include a wide range of forms, aspects, examples, and embodiments that encompass any such modifications. While the present disclosure has been described with reference to various examples, it will be understood that these examples are illustrative and that the scope of the disclosure is not limited thereto. Many variations, modifications, and additions are possible within the scope of the embodiments of the present disclosure. More generally, the embodiments according to the present disclosure are described in the context of specific implementations. Functionality may be separated or combined in blocks differently or described using different terminology in various examples of the present disclosure. These and other variations, modifications, additions, and improvements may fall within the scope of the present disclosure as defined in the following claims.
Claims
1. A device, an adaptation law module configured to receive a reference model output, perform a code projection tensor operation based at least in part on the reference model output, and generate a code projection adaptation law output based at least in part on the code projection tensor operation; an adaptive control module configured to receive the code projection adaptive law output from the adaptive law module, receive a set point input, receive a sensor system output from a sensor system, and generate an adaptive control signal based at least in part on the code projection adaptive law output, the set point input, and the sensor system output; A device comprising:
2. The device of claim 1 , wherein the adaptive law module comprises a code projection tensor module configured to perform the code projection tensor operation based at least in part on the reference model output.
3. Performing the sign projection tensor operation is performed by [Equation 1] performing a code projection adaptation law output determination for time k+1 in the form of In the formula, Θ k+1 contains the code projection adaptation law output for time k+1, and Θ k contains the code projection adaptation law output for time k prior to said time k+1, and Θ k-1 contains the code projection adaptation law output for time k−1 prior to said time k, and Γ k contains the adaptive gain scaling learning factor tensor for the time k, and e k comprises an error signal for the time k based at least in part on a detected error between the reference model output and the setpoint input for the time k; and e k―1 3. The device of claim 2, wherein: Λ k-1 comprises an error signal for the time k-1 based at least in part on a detected error between the reference model output and the setpoint input for the time k-1, and wherein the projection operator Proj performs a tensor projection operation.
4. The device of claim 1 , further comprising: a filter configured to receive the adaptive control signal from the adaptive control module and to generate a filtered control signal based at least in part on the adaptive control signal.
5. The device of claim 4 , wherein the filter comprises a hysteresis-based sliding mode filter.
6. The device of claim 4 , wherein the filter is configured to output the filtered control signal to a radio frequency (RF) power amplifier.
7. The device of claim 1 , wherein the adaptive law module is further configured to receive the setpoint input and generate the code projection adaptive law output based at least in part on the setpoint input.
8. The device of claim 1 , wherein the adaptive control module comprises a gain parameterized control module.
9. The device of claim 1 , wherein the adaptive control module comprises one or more proportional-integral-derivative (PID) control modules.
10. 2. The device of claim 1, wherein the adaptive control module comprises a first PID control module and a second PID control module, and further comprises a maximum module configured to receive a first PID output from the first PID controller, receive a second PID output from the second PID controller, output the first PID control module output in response to detecting that a power level indicated by the outputs from the first and second PID control modules is rising from low to high, and output the second PID control module output in response to detecting that the power level indicated by the outputs from the first and second PID control modules is falling from high to low.
11. A reference model module configured to generate a reference model output based at least in part on a setpoint input and a reference model input; a setpoint control user interface configured to output a setpoint control signal to the reference model module; The device of claim 1 further comprising:
12. The device of claim 11 , further comprising a computing environment configured to output a reference model output to the reference model module.
13. A filter configured to output a filtered control signal based at least in part on the adaptive control signal; a radio frequency (RF) power amplifier configured to receive the filtered control signal from the filter, receive power from a power source, and output RF power to a load; The device of claim 1 further comprising:
14. 14. The device of claim 13, further comprising a matching network, a plasma chamber, and the sensor system, wherein the load comprises at least one of the matching network and the plasma chamber, the matching network configured to receive the RF power from the RF power amplifier and output RF power to the plasma chamber, and the sensor system configured to detect data from the matching network and the plasma chamber and generate and output the sensor system output to the adaptive control module.
15. 1. A method comprising: a control device receiving a setpoint input and a reference model input and generating a reference model output based at least in part on the setpoint input and the reference model input; the control device receiving the reference model output, performing a code projection tensor operation based at least in part on the reference model output, and generating a code projection adaptation law output based at least in part on the code projection tensor operation; the control device receiving the code projection adaptive law output from the adaptive law module, receiving the set point input, receiving a sensor system output from a sensor system, and generating an adaptive control signal based at least in part on the code projection adaptive law output, the set point input, and the sensor system output; A method comprising:
16. The method of claim 15 , further comprising receiving the adaptive control signal and generating a filtered control signal based at least in part on the adaptive control signal.
17. Generating the code projection adaptive law output includes performing the code projection tensor operation based at least in part on the reference model output, and performing the code projection tensor operation is performed by computing the equation [Equation 2] performing a code projection adaptation law output determination for time k+1 in the form of In the formula, Θ k+1 contains the code projection adaptation law output for time k+1, and Θ k contains the code projection adaptation law output for time k prior to said time k+1, and Θ k-1 contains the code projection adaptation law output for time k−1 prior to said time k, and Γ k contains the adaptive gain scaling learning factor tensor for the time k, and e k comprises an error signal for the time k based at least in part on a detected error between the reference model output and the setpoint input for the time k; and e k-1 16. The method of claim 15, wherein: Λ k comprises an error signal for time k−1 based at least in part on a detected error between the reference model output and the setpoint input for the time k−1, and wherein the projection operator Proj performs a tensor projection operation.
18. 1. A computing system comprising: one or more processing devices, one or more tangible computer-readable memory devices, and one or more tangible computer-readable data storage devices; program instructions stored on the one or more data storage devices for execution by the one or more processing devices using the one or more memory devices, the program instructions for receiving a reference model output, performing a code projection tensor operation based at least in part on the reference model output, and generating a code projection adaptation law output based at least in part on the code projection tensor operation; program instructions stored on the one or more data storage devices for execution by the one or more processing devices using the one or more memory devices for receiving the code projection adaptive law output from the adaptive law module, receiving the set point input, receiving a sensor system output from a sensor system, and generating an adaptive control signal based at least in part on the code projection adaptive law output, the set point input, and the sensor system output; A computing system comprising:
19. 20. The computing system of claim 18, further comprising program instructions for receiving the adaptive control signal and generating a filtered control signal based at least in part on the adaptive control signal.
20. The program instructions for generating the code projection adaptive law output comprise program instructions for performing the code projection tensor operation based at least in part on the reference model output, and performing the code projection tensor operation comprises: [Equation 3] performing a code projection adaptation law output determination for time k+1 in the form of In the formula, Θ k+1 contains the code projection adaptation law output for time k+1, and Θ k contains the code projection adaptation law output for time k prior to said time k+1, and Θ k-1 contains the code projection adaptation law output for time k−1 prior to said time k, and Γ k contains the adaptive gain scaling learning factor tensor for the time k, and e k comprises an error signal for the time k based at least in part on a detected error between the reference model output and the setpoint input for the time k; and e k-1 19. The computing system of claim 18, wherein: Λ k comprises an error signal for time k-1 based at least in part on a detected error between the reference model output and the setpoint input for the time k-1, and wherein the projection operator Proj performs a tensor projection operation.