The present disclosure relates generally to controller design. In particular, but not by way of limitation, the present disclosure relates to systems, methods and apparatuses for designing a controller using empirical analysis to develop a static nonlinear portion, a dynamic linear portion, and an uncertainty portion of a system model.
Control systems have important applications in many technology areas, including plasma applications, semiconductor processing and other materials processing, robotics, vehicle control systems for automobiles, aircraft, and spacecraft, and other electronic, manufacturing, and industrial systems. Semiconductor processing and other advanced materials processing rely on increasingly sophisticated plasma processes. Such plasma processes, in turn, require increasingly sophisticated power systems and control systems, to subject inherently unstable and nonlinear plasmas 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 processing applications.
Plasmas are nonlinear loads that tend to see dynamic and unpredictable changes to parameters such as impedance as recipes progress. Traditional feedback systems are inoperable relative to strongly nonlinear and/or chaotic loads. Thus, many previous efforts have focused on controlling power delivery to these nonlinear and sometimes chaotic loads, and on achieving both robust delivery as well as rapid convergence on a desired output parameter. Many of these controllers can achieve these goals, but only with extreme processing resources, that are not always available in practice or in legacy power delivery hardware. Thus, there is a need for robust and rapidly converging control of power systems for plasma processing that reduces processing requirements over known control systems.
The following presents a simplified summary relating to one or more aspects and/or embodiments disclosed herein. As such, the following summary should not be considered an extensive overview relating to all contemplated aspects and/or embodiments, nor should the following summary be regarded to identify key or critical elements relating to all contemplated aspects and/or embodiments or to delineate the scope associated with any particular aspect and/or embodiment. Accordingly, the following summary has the sole purpose to present certain concepts relating to one or more aspects and/or embodiments relating to the mechanisms disclosed herein in a simplified form to precede the detailed description presented below.
In some aspects, the techniques described herein relate to a generator including: a power generation section; a match network coupled to an output of the power generation section; and a distributed controller configured to receive a target waveform and feedback from sensors at or downstream from the power generation section and/or the match network, the distributed controller including: a controller configured to generate a control; and an empirically derived mapping between an output of the controller and a modified control to be provided to the power generation section, the empirically derived mapping being an inverse of a system model including: a static nonlinear model; a dynamic linear model; and a total uncertainty.
In some aspects, the techniques described herein relate to a generator, wherein the controller uses closed loop feedback from the sensors and increases or decreases an output of the power generation section based on the closed loop feedback.
In some aspects, the techniques described herein relate to a generator, wherein the controller forms an open loop system and reduces or cuts off an output of the power generation section if feedback from the sensors meets or exceeds a threshold.
In some aspects, the techniques described herein relate to a generator, wherein the static nonlinear model is derived from large signal steady state analysis.
In some aspects, the techniques described herein relate to a generator, wherein the dynamic linear model is derived from small signal transient analysis.
In some aspects, the techniques described herein relate to a generator, wherein the small signal transient analysis includes: applying perturbations around a series of setpoints; measuring first transient responses to the first perturbations; identifying inflection points in the first transient responses; applying perturbations around the inflection points; measuring second transient responses to the second perturbations; building the dynamic linear model by fitting the second transient responses to transfer functions.
In some aspects, the techniques described herein relate to a generator, wherein the inflection points are identified by (1) comparing a derivative of the control resulting from the perturbations around the series of setpoints with respect to the setpoint to a threshold, when linear interpolation between inflection points is used, or (2) comparing the derivative of the control resulting from the perturbations around the series of setpoints with respect to the setpoint to a function, when nonlinear interpolation between inflection points is used.
In some aspects, the techniques described herein relate to a generator, wherein the total uncertainty includes (1) an input uncertainty developed by applying control signals corresponding to repeated perturbed setpoints, corresponding to the inflection points, to the power generator section and characterizing the input uncertainty from first resulting measurements, and (2) an output uncertainty developed by generating control signals from the controller corresponding to the setpoints, corresponding to the inflection points, and injecting a perturbation atop the control signals and characterizing the output uncertainty from second resulting measurements.
In some aspects, the techniques described herein relate to a generator, wherein the total uncertainty includes (1) an input uncertainty developed by applying control signals corresponding to repeated perturbed setpoints to the power generator section and characterizing the input uncertainty from first resulting measurements, and (2) an output uncertainty developed by generating control signals from the controller corresponding to the setpoints and injecting a perturbation atop the control signals and characterizing the output uncertainty from second resulting measurements.
In some aspects, the techniques described herein relate to a method of creating a distributed controller, the method including: iterating through a series of steady state measurements for setpoints of a power generation section to give a static nonlinear model of the system; iterating through transient analysis of the setpoints, or inflection points identified in the static nonlinear model of the system, to give a dynamic linear model of the system, and for each transient iteration: applying a small signal perturbation to the power generation section around a selected one of the setpoints or inflection points; measuring a resulting transient signal as a function of time; fitting the resulting transient signal to a transfer function; building the dynamic linear model of the system with the transfer function; iterating through a series of uncertainty measurements to give a total uncertainty of the system, wherein combining the static nonlinear model of the system, the dynamic linear model of the system, and the total uncertainty to form a system model underlying operation of the distributed controller.
In some aspects, the techniques described herein relate to a method, further including taking an inverse of the system model to obtain a set of linear controllers around the inflection points, and storing coefficients of the linear controllers as a mapping that the distributed controller is configured to call on during operation.
In some aspects, the techniques described herein relate to a method, wherein when operation of the distributed controller calls for a mapping between the stored coefficients or inflection points, interpolation is used to expand the mapping.
In some aspects, the techniques described herein relate to a method, further including building the dynamic linear model of the system via interpolation.
In some aspects, the techniques described herein relate to a method, further including inflection point optimization including compression of the dynamic linear model.
In some aspects, the techniques described herein relate to a method of creating a distributed controller, the method including: iterating through steady state measurements of a power generation section based on a series of setpoints to give a static nonlinear model of the system; using the setpoints to identify inflection points of a derivative of the control with respect to a corresponding setpoint; iterating through transient measurements of the power generation section based on a series of perturbations applied at the inflection points to give a dynamic linear model of the system; iterating through uncertainty measurements for each of the inflection points to give a total uncertainty formed from an input uncertainty and an output uncertainty calculating the total uncertainty from input and output uncertainties for the inflection points, wherein the distributed controller includes coefficients of linear controllers around the inflection points, where the linear controllers are found as an inverse of a system model including the static nonlinear model of the system, the dynamic linear model of the system, and the total uncertainty.
In some aspects, the techniques described herein relate to a method, wherein iterating through the uncertainty measurements includes for each one of the inflection points: perturbing one of the setpoints corresponding to one of the inflection points and applying a corresponding first control signal n times to the power generation section; measuring a parameter of an output of the power generation section as a function of time for each of the n corresponding first control signals to give n first measurements; characterizing the input uncertainty for the one of the setpoints corresponding to one of the inflection points as a variance in the n measurements of the parameter of the output of the power generation section; applying a second control signal for one of the setpoints corresponding to the one of the inflection points and performing n identical perturbations of the second control signal; measuring a parameter of an output of the power generation section as a function of time for each of the n perturbed second control signals to give n second measurements; and characterizing the output uncertainty for the one of the setpoints corresponding to one of the inflection points as a variance in the n second measurements.
In some aspects, the techniques described herein relate to a method, wherein calculating the total uncertainty includes: where a and b are weights applied to the input and output uncertainty, respectively.
In some aspects, the techniques described herein relate to a method, wherein the calculating the total uncertainty includes: where a and b are weights applied to the input and output uncertainty, respectively.
In some aspects, the techniques described herein relate to a generator including: a power generation section configured to apply an output signal to a load responsive to a setpoint; one or more sensors coupled to, or coupled to an output of, the power generation section; and a distributed controller including one or more processing portions, one or more memories, and one or more modules stored on the one or more memories and executable on the one or more processing portions to: convert the setpoint to a control signal via a controller, such that the output signal is stable; and convert the control signal to a modified control signal via an empirically derived mapping between the control signal and a modified control signal and provide the modified control signal to the power generation section, such that the output signal rapidly converges to the setpoint.
In some aspects, the techniques described herein relate to a generator, wherein the empirically derived mapping is an inverse of a system model including: a static nonlinear model; a dynamic linear model; and a total uncertainty.
In some aspects, the techniques described herein relate to a generator, wherein the static nonlinear model is derived from iteratively applying different setpoints to the power generation section, waiting for the output signal to reach a steady state, and then measuring a parameter of the output signal, thereby forming a mapping between setpoints and the output signal in steady state.
In some aspects, the techniques described herein relate to a generator, wherein the dynamic linear model is derived from: iteratively applying a small signal perturbation around the different setpoints to the power generation section; measuring first transient responses; identifying inflection points in the first transient responses; removing from memory portions of the first transient responses that are not adjacent to an inflection point; iteratively applying the small signal perturbation around the inflection points; measuring second transient responses; fitting the second transient responses to transfer functions to build the dynamic linear model.
Various objects and advantages and a more complete understanding of the present disclosure are apparent and more readily appreciated by referring to the following detailed description and to the appended claims when taken in conjunction with the accompanying drawings:
To overcome the challenges of controlling power delivery to plasma loads, the present disclosure describes systems, methods, and apparatus for a distributed controller. The distributed controller can include a traditional closed loop feedback controller, or an open loop feedback controller, either providing a control signal to an empirically derived mapping that converts the control signal to a modified control signal. The modified control signal, rather than the control signal, is provided to one or more actuators of a power generation system, that may include, for instance, a power amplifier or variable capacitors of a match network between the power amplifier and the plasma load. The empirically derived mapping is largely pre-calculated before a plasma processing recipe is run, and thus modified control signals can be identified based on a setpoint and feedback from the power generation section, in near real-time and using much lower processing resources than existing control systems.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
Preliminary note: the flowcharts and block diagrams in the following 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, some blocks in these flowcharts or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
It will be understood that, although the terms first, second, third etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the present disclosure.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items, and may be abbreviated as “/”.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Overview of the Plasma Processing System
The plasma processing system 100 includes a power generation system 102 that can provide a multi-level pulsed waveform, or any arbitrary waveform, to a nonlinear plasma load 104 based on a user-defined power output or target waveform 106 (in other words, setpoints). The power generation system (or “generator” for short) 102 can include a user interface 108, an optional master control unit (MCU) 110, a control section (e.g., an FPGA) 112, and power generation and sensors 114 (or a “power generation section”). A match network 116 can be arranged within the generator 102 (as shown) or outside the generator 102. A distributed controller can be implemented as part of the control section 112 and can include a controller and an empirically derived mapping.
A user desired power output, or target waveform, is provided to a user interface 108, which is optionally adjusted by a microcontroller unit (MCU) 110 to help with average power tracking, and passed to a control section 112 as a setpoint stream. The MCU 110 can be used for relatively slow, high-level processing and complex algorithms, while the control section 112 can be implemented in an FPGA or other high-speed electronics and handles simple control algorithms. Thus, where the MCU 110 is implemented, a two-loop control approach can be used with a fast inner loop implementing simple control algorithms, and more complex processes running on the slower outer loop. In some embodiments, the optimized controllers disclosed herein can alleviate the need for the MCU 110, in which case the target waveform can be provided directly to the control section 112.
The control section 112 can use real-time measurements to perform real-time setpoint tracking, thereby constituting the fast inner loop of the feedback control system. The control section 112 can also perform averaging of the feedback and provide the averaged measurements back to the MCU 110. The MCU 110 may use a proportional-integral-derivative controller. The MCU 110 can use the averaged feedback to modify the user-defined setpoint values, passing these modified values to the control section 112. The MCU 110 can be continuously updated with the goal of matching the average power delivered to the target waveform. The MCU 110 can be tailored to make the average power track a second order critically damped system. In other embodiments, the MCU 110 is not implemented.
The control section 112 can use a multilevel pulsing algorithm for rail and drive/phase voltage. The goal of the algorithm is to minimize fluctuations in rail voltage, while keeping the value as low as possible, subject to keeping the drive/phase voltage close to its desired reference (or threshold) value. To implement this multilevel pulsing algorithm, the control section 112 can include controllers for rail voltage and drive/phase voltage. The distributed controller 150 can reside within this control section 112, receive feedback from sensors in the power generation and sensors 114 and can help provide real-time control of the rail voltage and drive/phase voltage. These voltages are provided by a DC section and a power amplifier in the power generation and sensors 114. The DC section provides a rail voltage to the power amplifier, which provides granular adjustments to power output to track the target waveform (e.g., a pulsed multi-level waveform). A match network 116 can be arranged between the power generation and sensors 114 and a nonlinear and possibly chaotic plasma load 104 to enhance the efficiency of power delivery to the nonlinear plasma load 104. Although the match network 116 is shown within the power generation system 102, in other embodiments, it can be arranged between the power generation system 102 and the nonlinear plasma load 104. The distributed controller can be found via method 600 or 800 as discussed below.
The UI 208 provides a phase/drive threshold or reference voltage, Vø_ref, selected by the user as well as a target multi-level pulsed waveform to the control section 210. A “target waveform” will be used interchangeably with target multi-level pulsed waveform. The control section 210 includes controllers 214 and 216 as well as the RF driver 215 and a DC/rail driver 217. The distributed controller 226 provides feedback control from sensors 224 as either a standalone controller or as a filter to another controller such as 228. The feedback takes measurements from the match network 222 output (or the chamber or nonlinear plasma load 204 or chamber input) through the distributed controller 226. The RF driver 215 provides a phase/drive control signal, Vø to a power amplifier 218 of the power generation and sensors 212, while the DC/rail driver 217 provides a rail voltage control signal, VCC, to the DC section 220. The DC section 220 provides the rail voltage, Vrail, to the power amplifier 218 that then uses the rail voltage, Vrail, to track the target waveform and provide an output to the match network 222.
For the purposes of this disclosure, a nonlinear plasma load can be weakly nonlinear, strongly nonlinear, chaotic, or strongly nonlinear and chaotic. Traditional feedback systems are inoperable relative to strongly nonlinear and/or chaotic loads.
The system model 356 include a static nonlinear model, G0(z)nonlinear, a dynamic linear model, G0(z)linear, and a total uncertainty, Δ. The total uncertainty can be made up of an input uncertainty, Δin, and an output uncertainty, Δout. The static nonlinear model, G0(z)nonlinear, can be derived from large signal steady state analysis of the controller 352 or boundary controller 355, and the power generation section 314, in a pre-runtime development phase. The static nonlinear model, G0(z)nonlinear, is a linear transfer function describing output(z)/input(z). Nonlinearity is achieved by having different G0(z)nonlinear for different setpoint values. The dynamic linear model, G0(z)linear, can be derived from small signal transient analysis of the controller 352 or boundary controller 355, and the power generation section 314, in a pre-runtime development phase. By small signal it is meant that perturbations are less than 5% of the setpoint value being perturbed. The input uncertainty, Δin, and an output uncertainty, Δout, can be derived from small signal steady state analysis of the controller 352 or boundary controller 355, and the power generation section 314, in a pre-runtime development phase.
The small signal transient analysis can include applying perturbations around a series of setpoints; measuring first transient responses to the first perturbations; identifying inflection points in the first transient responses; applying perturbations around the inflection points; measuring second transient responses to the second perturbations; building the dynamic linear model by fitting the second transient responses to transfer functions (see Blocks 916-932 in
The controller 352 can use closed loop feedback from the sensors 314 and increase or decrease an output of the power generation section 314 based on the closed loop feedback. Alternatively, where a boundary controller 355 is used (see
In use, the user interface 308 provides a target waveform or setpoints to the controller 352, which provides a control to the empirically derived mapping 354. The empirically derived mapping 354 passes the target waveform or setpoints through the coefficients of the linear controllers 358 to determine a modified control. If the target waveform or setpoints hit aspects of the system model 356 that are not adjacent to or covered by the coefficients of the linear controllers 358, then the interpolation function 360 can be used to determine a mapping for these points between the linear controllers 358. Thus, the operating regime is covered by the mapping comprising the linear controllers 358 and the interpolation function 360. The resulting modified control is provided to the power generation section 314 and used to control one or more actuators for driving a plasma load.
In an embodiment, the distributed controller 350 can include one or more processing portions, one or more memories, and one or more modules stored on the one or more memories and executable on the one or more processing portions to convert the target waveform or setpoint from the UI 308 to a control signal via a controller 352, such that the output signal from the power generation section 314 is stable. They can also be executable to convert the control signal from controller 352 to a modified control signal via an empirically derived mapping 354 between the control signal and a modified control signal and provide the modified control signal to the power generation section 314, such that the output signal from the power generation section 314 also rapidly converges to the target waveform or setpoint.
Development of the system model 356 is detailed in
More specifically, the inflection points can be identified by finding a derivative of the control (e.g., output from 352 in
Iterating through the uncertainty measurements (Block 808), can include, for each inflection point: perturbing one of the setpoints corresponding to one of the inflection points and applying a corresponding first control signal n times to the power generation section; measuring a parameter of an output of the power generation section as a function of time for each of the n corresponding first control signals to give n first measurements; characterizing the input uncertainty Δin(z) for the one of the setpoints corresponding to one of the inflection points as a variance in the n measurements of the parameter of the output of the power generation section; applying a second control signal for one of the setpoints corresponding to the one of the inflection points and performing n identical perturbations of the second control signal; measuring a parameter of an output of the power generation section as a function of time for each of the n perturbed second control signals to give n second measurements; and characterizing the output uncertainty Δout(z) for the one of the setpoints corresponding to one of the inflection points as a variance in the n second measurements.
Further, calculating the total uncertainty (Block 810), can include either of the following equations, where a and b are complementary weights that add to 1 and that the designer can apply to the input and output, uncertainty, respectively:
Said another way, the total uncertainty is formed from (1) an input uncertainty developed by applying control signals corresponding to repeated perturbed setpoints to the power generator section and characterizing the input uncertainty from first resulting measurements, and (2) an output uncertainty developed by generating control signals from the controller corresponding to the setpoints and injecting a perturbation atop the control signals and characterizing the output uncertainty from second resulting measurements.
The optional closed loop identification means that the generator section output is generated by a controller that was designed ahead of time to ensure stability. The empirically derived mapping makes sure that the distributed controller can achieve optimal performance. So, the distributed controller is split into two parts, one to ensure stability and another to maximize performance.
In
More specifically, a first setpoint can be selected from the static nonlinear model developed in Blocks 902-914 (Block 916) and the setpoint can be perturbed and a measure of the transient response is performed (Block 918). These small signal perturbations can be iterated for all setpoints in the static nonlinear model (Decision 920=No), and then the method can identify inflections points in the transient measurements (Block 922). In particular, inflection points are identified by comparing a derivative of the control resulting form the perturbations around the series of setpoints with respect to the setpoint, to a threshold (when linear interpolation between inflection points is used). When nonlinear interpolation between inflection points is used, the comparing can be with respect to a function.
The dynamic nonlinear model may have too much data for the memory available, or it may take too long to process the data. Thus, optionally, the data set can be reduced by clearing or removing transient responses from memory except that data that is around or adjacent to inflection points (Block 924).
With inflection points identified, the method can then iterate through each inflection point, starting with a first inflection point (926) and perturb an input around a currently selected inflection point and measure a transient response (Block 928). The resulting data can be fit to a transfer function to build the dynamic linear model (Block 930). This small signal analysis can be repeated until a transfer function has been fitted to all of the inflection points (Decision 932=No).
Interpolation (Block 934) can be used to fill in gaps in the dynamic linear model.
Optionally, the dynamic linear model can be further optimized for storage and processing, by a compression (Block 936).
The method can also determine a total uncertainty via first determining an input and an output uncertainty. The method can apply a perturbation at the setpoints used to develop the static nonlinear model and measure a parameter of the generator or match output as a function of time (Block 938). This can be repeated multiple times using the same perturbation for each setpoint—in other words, trying to see how much the output varies given the same input perturbation. These measurements are taken as transients, and thus there is no need to wait for steady state. The method then characterizes the input uncertainty for each setpoint (Block 940) by looking at a variance of the transient signals across the multiple instances of perturbation for a given setpoint and repeating this analysis for all setpoints. This provides an input uncertainty mapping for each setpoint. Alternatively, Blocks 938 and 940 may be performed for inflection points, not all setpoints, in order to reduce processing and memory resources.
The output uncertainty can also be determined, and this can be done before, in parallel with, or after the input uncertainty is found. First, a control signal is applied at a setpoint until steady state is achieved. The perturbation from 938 is then injected at the output of the controller (atop the steady state control signal for the selected setpoint) and a measure of a parameter of the generator outputs is taken (Block 942). This is repeated for multiple instances of the injected perturbation, and for each setpoint. The output uncertainty is characterized in the same way as the input uncertainty, by looking at a variance of the transient signals across the multiple instances of injected perturbations for a given setpoint and repeating this analysis for all setpoints (Block 944). This provides an output uncertainty mapping for each setpoint.
The total uncertainty can be found (Block 946) as the sum or combination of the input and output uncertainties according to either of Equations 1 or 2.
The injected perturbation for the output uncertainty can be more easily understood via the following:
In other words
Said another way, the total control for output perturbation (or injected perturbation) is:
U
total
=u+u
pert
where u is the control based on an open loop, and upert is:
Where IFFT is the inverse Fast Fourier Transform. These equations are valid since G0(z)nonlinear+G0(z)linear is stable and minimum-phase (i.e., stable zero dynamics) by definition through the design procedure.
Once the system or final model is determined (Block 948), the designer can take this model and carry out a controller design on the system model to approximate an inverse of the model in a stable and minimum-phase manner. This gives a set of simple linear controllers around each inflection point. The coefficient values of these linear controllers can be stored in the empirically derived mapping and used to determine a modified control whenever the control is at or adjacent to an inflection point. When the control signal falls in between these inflection points the interpolation function can be used to find the modified control signal. This interpolation may be tensorial interpolation since there may be several control values.
The methods described in connection with the embodiments disclosed herein may be embodied directly in hardware, in processor-executable code encoded in a non-transitory tangible processor readable storage medium, or in a combination of the two. Referring to
This display portion 1212 generally operates to provide a user interface for a user, and in several implementations, the display is realized by a touchscreen display. In general, the nonvolatile memory 1220 is non-transitory memory that functions to store (e.g., persistently store) data and processor-executable code (including executable code that is associated with effectuating the methods described herein). In some embodiments for example, the nonvolatile memory 1220 includes bootloader code, operating system code, file system code, and non-transitory processor-executable code to facilitate the execution of a method described with reference to
In many implementations, the nonvolatile memory 1220 is realized by flash memory (e.g., NAND or ONENAND memory), but it is contemplated that other memory types may be utilized as well. Although it may be possible to execute the code from the nonvolatile memory 1220, the executable code in the nonvolatile memory is typically loaded into RAM 1224 and executed by one or more of the N processing components in the processing portion 1226.
The N processing components in connection with RAM 1224 generally operate to execute the instructions stored in nonvolatile memory 1220 to enable operation of a distributed controller. For example, non-transitory, processor-executable code to effectuate the methods described with reference to
In addition, or in the alternative, the processing portion 1226 may be configured to effectuate one or more aspects of the methodologies described herein (e.g., the method described with reference to
The input component 1230 operates to receive signals (e.g., the target waveform or power setpoint) that are indicative of one or more aspects of the desired output of the generator 102. The signals received at the input component may include, for example, a target waveform or setpoint(s). The output component 1232 generally operates to provide one or more analog or digital signals to effectuate an operational aspect of the distributed controller or control section 112.
The depicted transceiver component 1228 includes N transceiver chains, which may be used for communicating with external devices via wireless or wireline networks. Each of the N transceiver chains may represent a transceiver associated with a particular communication scheme (e.g., WiFi, Ethernet, Profibus, etc.).
Some portions are presented in terms of algorithms or symbolic representations of operations on data bits or binary digital signals stored within a computing system memory, such as a computer memory. These algorithmic descriptions or representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. An algorithm is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, operations or processing involves physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these and similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” and “identifying” or the like refer to actions or processes of a computing device, such as one or more computers or a similar electronic computing device or devices, that manipulate or transform data represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the computing platform.
The terms and expressions employed herein are used as terms and expressions of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding any equivalents of the features shown and described or portions thereof. Each of the various elements disclosed herein may be achieved in a variety of manners. This disclosure should be understood to encompass each such variation, be it a variation of an embodiment of any apparatus embodiment, a method or process embodiment, or even merely a variation of any element of these. Particularly, it should be understood that the words for each element may be expressed by equivalent apparatus terms or method terms-even if only the function or result is the same. Such equivalent, broader, or even more generic terms should be considered to be encompassed in the description of each element or action. Such terms can be substituted where desired to make explicit the implicitly broad coverage to which this invention is entitled.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
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 embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.