# Patent

## Title
Method and system for programming and controlling an electrosurgical generator system

## Abstract

An electrosurgical generator system includes an electrical generator having an RF stage for outputting electrical energy having at least one waveform for performing an electrosurgical procedure. The system further includes at least one control module executable on at least one processor which controls at least one parameter of the outputted electrical energy and a configuration controller operably associated with the electrical generator which generates configuration data to configure the at least one control module to provide at least one modality of control of the outputted electrical energy based on the configuration data.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
The present application is a Divisional Application which claims the benefit of and priority to U.S. patent application Ser. No. 10/835,657, filed Apr. 30, 2004, which claims the benefit of and priority to U.S. Provisional Patent Application Ser. No. 60/466,954 filed on May 1, 2003, the entire contents of each of which are incorporated herein by reference.


BACKGROUND
1. Technical Field
The present disclosure is directed to electrosurgery and, in particular, to a method and system for programming and controlling an electrosurgical generator system.
2. Description of the Related Art
Electrosurgery entails the use of electrosurgical energy to cut or coagulate tissue, or perform some other type of surgical procedure. An electrosurgical generator system is used for generating the electrosurgical energy and delivering the same to an electrode connected to the generator. The electrode is then brought into contact with tissue and depending on the frequency and other parameters of the electrosurgical energy, the tissue is either cut, coagulated, sealed, etc.
In order to achieve desired surgical results when operating the electrosurgical generator system in one of several control modes, e.g., cut, coagulate and blend, the electrosurgical generator system needs to be programmed to generate electrosurgical energy having output parameters with predetermined values. These desired output parameters typically include the frequency, power (amplitude), duty cycle, and waveform-type of the electrosurgical energy, as well as the output current and output voltage of the electrosurgical generator system.
It is evident that by programming the electrosurgical generator system, one can control various parameters, including other factors, such as the maximum allowable temperature of the tissue during electrosurgery, rate of change of impedance, etc., prior to initiating the electrosurgical procedure.
Accordingly, the present disclosure provides a method and system capable of enabling an individual to quickly create new electrosurgical applications without major re-programming of the software system of an electrosurgical generator system.
SUMMARY
A method and system are disclosed capable of enabling an individual to quickly create new electrosurgical applications without major re-programming of the software system of an electrosurgical generator system. In one embodiment, the method and system of the present disclosure enables an individual to efficiently create new application modes by creating configuration or command files for downloading or programming these new modes into the electrosurgical generator system for creating new surgical applications without changing the underlying software system.
A control loop system is chiefly responsible for the operation of the electrosurgical generator system and it is composed of three basic components: an inner loop system which is responsible for changing and sculpting basic RF output; an outer loop system which is responsible for setting the output target of the inner loop based on a variety of algorithms such as the control of temperature; and a configuration control system which is responsible for reprogramming the inner and outer loop systems “on-the-fly” or in virtual real-time for the inner and outer loop systems to change operation.
All user programming is preferably accomplished using at least one input device, such as a keyboard, touch-screen display, etc., while the software programming may be based on a file-based programming language to input programming commands to the electrosurgical generator system. The combination of the two inputted programming commands are stored into command files and define all aspects and parameters of the electrosurgical generator system.
The simple input and storage of the programming commands according to the present disclosure allows for easy creation and modification of new electrosurgical generator modes. For example, a mode can be created by inputting programming commands and storing the same in a command file, subsequent modes can easily be created by modifying associated parameters and storing them as a new command file.
Further features of the above embodiments will become more readily apparent to those skilled in the art from the following detailed description when taken in conjunction with the drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
Various embodiments will be described herein below with reference to the drawings wherein:
FIG. 1 is a block diagram of a control loop system of an electrosurgical generator system in accordance with the present disclosure;
FIGS. 2A-D illustrate charts showing output waveforms indicative of various output parameters of the electrosurgical generator system in accordance with the present disclosure; and
FIG. 3 is a block diagram of a control loop system of an electrosurgical generator in accordance with another embodiment of the invention.



DETAILED DESCRIPTION
Reference should be made to the drawings where like reference numerals refer to similar elements. Referring to FIG. 1, there is shown a block diagram of an embodiment of a control loop system for an electrosurgical generator system in accordance with the present disclosure. The control loop system is designated generally by reference numeral 100 and it is designed to enable a software developer to efficiently program and control the operation of the electrosurgical generator system 200. The electrosurgical generator system 200 is particularly designed for the easy creation of multiple different electrosurgical systems. The method and system of the present disclosure enables an individual to efficiently create new application modes by creating configuration or command files for downloading or programming these new modes into the electrosurgical generator system for creating new surgical applications without changing the underlying software system.
The control loop system 100 is chiefly responsible for the operation of the electrosurgical generator system 200 and it is composed of three basic components: an inner loop system 102 which is responsible for changing and sculpting basic RF output (e.g., current, power, or voltage output, duty cycle, frequency), and inner loop control system dynamics of an RF output stage 106 based on user and/or sensor inputs from various sensors 104 and/or user input devices (not shown); an outer loop system 108 which is responsible for controlling the inner loop setpoint based on a variety of algorithms (e.g., temperature control, impedance control, pulse control, vessel sealing, etc.) based on user and/or sensor inputs from the various sensors 104 and time and/or user input devices (not shown); and a configuration control system 110 which is responsible for changing the programming of the inner and outer loop systems 102, 108 “on-the-fly” or in virtual real-time based on user or sensor inputs received from various sensors 112 and/or user input devices (not shown).
FIGS. 2A-2D illustrate charts showing the RF output indicative of various inner loop output parameters of the electrosurgical generator system 200. FIG. 2A is a chart plotting the output power versus the load impedance where the output power is sculpted, e.g., the output power is not constant over a load impedance range. The electrosurgical generator system 200 is able to control the inner loop system 102 to sculpt the output power based on user and/or sensor inputs received from various sensors 104, 112 and/or user input devices.
With reference to FIGS. 2B-2D, the electrosurgical generator system 200 is also able to maintain the output constant. FIG. 2B shows the output current being maintained at a constant level over a load impedance range. FIG. 2C shows the output power being maintained at a constant level over a load impedance range. FIG. 2D shows the output voltage being maintained at a constant level over a load impedance range.
As shown by FIG. 1, the inner loop system 102 is controlled by an inner loop controller 114, the outer loop system 108 is controlled by an outer loop controller 116, and the configuration control system 110 is controlled by a configuration controller 118. The controllers 114, 116 perform their various functions by the execution of a set of programmable instructions by at least one microprocessor and/or at least one digital signal processor (DSP), e.g., DSPs 120, 122, respectively.
The configuration controller 118 performs its various functions by the execution of a set of programmable instructions executed by at least one microprocessor and/or a DSP, e.g., DSP 124. The controllers 114, 116, 118 are configured for receiving inputted programming commands for operating the electrosurgical generator system 200.
All programming is preferably accomplished using at least one input device, such as a keyboard, touch-screen display, remote computer system, etc., to input the programming commands to the electrosurgical generator system 200. The inputted programming commands are stored into command files within at least one memory module, such as a RAM module, and define all aspects and parameters of the electrosurgical generator system 200.
The simple input or download and storage of the programming commands according to the present disclosure allows for easy creation and modification of new electrosurgical generator modes. For example, one mode can be created by inputting programming commands and storing the same in a command file. A new mode can be created based on the original programming.
A description will now be presented with reference to programming the at least one microprocessor by way of a programming language in a preferred embodiment for controlling and programming the electrosurgical generator system 200 of the present disclosure.
I. Configuration Control System
The set of programmable instructions for operating the electrosurgical generator system 200 in accordance with the present disclosure has been designed to enable two analog inputs to the configuration controller 118 to control the mode (outer and inner loop programming) and the desired output (current (I), power (P), voltage (V), etc. depending on the control mode selected) of the electrosurgical generator system 200.
In an exemplary embodiment of the present disclosure, the method of mode control is accomplished by making a data structure, e.g., Local_Cfg[ ], an array. When a mode switch is desired, a host variable, e.g., Config_Index, is adjusted and then copied to a processing file, e.g., Out_Local_IO.Config_Index, where it switches an active command file, e.g., Local_Cfg[Local_IO.Config_Index].
The method of desired output programming is accomplished by adjusting a host variable, e.g., Out_Local_IO.Desired_Amplitude_Multiplier, where Desired_Amplitude_Multiplier represents a multiplier value for adjusting the output curves of the outer loop system 108 when enabled or is passed directly to the inner loop system 102 as a current/power/voltage level if the outer loop system 108 is disabled.
I.a. Configuration Selection Control
The configuration selection is programmed by filling the variable, e.g., Local_Cfg[ ], with the data from the sets of command files. The configuration index is first specified, then the data is read from the command files, then the next index is specified, etc.
I.a.1. Command File Programming
The programming of the configuration control system 110 is controlled by a Meta command file. This command file loads the Local_Cfg[ ] array with each configuration and specifies how the configuration and Desired_Amplitude_Multiplier is controlled.
To specify which location in the Local_Cfg[ ] array is to be filled, the following command is used:
#CONFIG_INDEX x, where x specifies the location to be filled (0-7).
To specify which configuration is to be loaded in the memory module, the following command is used:
#INCLUDE_FILE xxx, where xxx is a valid path and filename of outer and inner loop command files which define the configuration to be loaded in the memory module.
An example is provided below:















// Load Config Index Location 0



#CONFIG_INDEX 0



// Inner Loop definition



#INCLUDE_FILE



C:\LRT_TRT\Code\Cmd_Files\CP_472k_Inner_Loop.cmd



// Load Outer Loop definition



#INCLUDE_FILE



C:\LRT_TRT\Code\Cmd_Files\Temp_Outer_Loop.cmd



// Load Config Index location 1



#CONFIG_INDEX 1



// Inner Loop definition



#INCLUDE_FILE



C:\LRT_TRT\Code\Cmd_Files\CP_250k_Inner_Loop.cmd



// Load Outer Loop definition



#INCLUDE_FILE



C:\LRT_TRT\Code\Cmd_Files\DZ_Outer_Loop.cmd










I.b. Mode Selection Control

Mode selection can be programmed to be selected by one of three inputs: a user input device (e.g., a keyboard), AD7 or AD8, where AD7 and AD8 are sensor modules. Mode modification can be programmed to be controlled by one of three inputs: a user input device (e.g., a keyboard), AD7 or AD8. The operation of the mode selection and mode modification control is that one control input can be set to select the mode, then another control can make the fine adjustments to that selection. The mode modification may be done in an additive fashion as shown in the example below:

Actual Mode=Mode(AD7)+Modifier(AD8).

I.b.1. Command File Programming

A Mode Selection Algorithm which controls how the active mode switching is set may be selected.
The valid exemplary selection choices are the following:












#MODE_SEL_ALG_IS_KEYBOARD -keyboard sets the active mode.


#MODE_SEL_ALG_IS_AD7


#MODE_SEL_ALG_IS_AD8









A Mode Modification Algorithm which controls how the active mode switching is set by a modifier also may be selected.
The valid exemplary selection choices are the following:












#MODE_MODIFIER_SEL_IS_OFF -No modifier is used on active


mode switching.


#MODE_MODIFIER_SEL_IS_AD7


#MODE_MODIFIER_SEL_IS_AD8









I.c. Amplitude Selection Control

Amplitude multiplication selection can be selected by one of three inputs: a user input device (e.g., a keyboard), AD7 or AD8. Amplitude multiplication modification can be controlled by one of three inputs: keyboard, AD7 or AD8. The operation of the selection and modification control is that one control input can be set to select the amplitude multiplication, then another control can make fine adjustments to that selection. The amplitude multiplication modification may be done in an additive fashion as shown in the example below:

Actual Amp=Amp(AD7)+Modifier(AD8).

It is noted that amplitude multiplication is used both for outer loop programming and if the outer loop system 108 is off, for the desired output of the inner loop system 102. When the outer loop system 108 is on, a normalized curve is designed which specifies the desired output over time, and an amplitude multiplier controls the amplitude of this curve. A time multiplier controls the time scale at which this curve is interpreted.
I.c.1. Command File Programming
The Output Amplitude Multiplier Algorithm controls how an output amplitude multiplier is set.
The valid exemplary selection choices are the following:















#AMP_SEL_ALG_IS_KEYBOARD



#AMP_SEL_ALG_IS_AD7



#AMP_SEL_ALG_IS_AD8










The Output Amplitude Modifier Algorithm controls how an output amplitude modifier is set.
The valid selection exemplary choices are the following:















#AMP_MODIFIER_SEL_IS_OFF



#AMP_MODIFIER_SEL_IS_AD7



#AMP_MODIFIER_SEL_IS_AD8










I.d. RF Activation Control

The control loop system 100 can be programmed to activate RF output based on either AD7 or AD8 inputs. A user input device, such as footswitch of the electrosurgical generator system 200 can also be used to activate RF output. The threshold of activation can be programmed.
I.d.1. Command File Programming
RF Activation Programming selects which source will start the RF activation:












#RF_ACT_IS_FOOTSWITCH -Normal footswitch activation.


#RF_ACT_IS_AD7 -Activated by AD7 voltage above threshold.


#RF_ACT_IS_AD8 -Activated by AD8 voltage above threshold.


#RF_ACT_VOLTAGE_THRESHOLD -Specifies the voltage threshold









It is noted that in a preferred embodiment, footswitch activation of the electrosurgical generator system 200 is always active, even if inputs AD7 or AD8 are selected.
I.e. AD7/AD8 Curves
The programming of sensor input controls is accomplished through the creation of a “map” which specifies the amplitude multiplier and configuration index and maps these values to an input voltage.
I.e.1. Command File Programming
The Mode Control and Amplitude Multiplier Control Maps for each Control Voltage (AD7/AD8) need to be specified.
An exemplary table is shown:












Sensor Voltage
Amplitude Multiplier
Configuration Index







1.0
0.9
1


2.0
1.1
2









Exemplary valid programming commands are:















#AD7_MAP_V_x y



#AD7_MAP_AMP_x y



#AD7_MAP_INDEX_x y



#AD8_MAP_V_x y



#AD8_MAP_AMP_x y



#AD8_MAP_INDEX_x y



where x = 0 − 7



where y is the programmed value










Example for AD8:
















#AD8_MAP_V_0 1.47



#AD8_MAP_AMP_0 0.0



#AD8_MAP_INDEX_0 0



#AD8_MAP_V_1 1.57



#AD8_MAP_AMP_1 0.0



#AD8_MAP_INDEX_1 0



#AD8_MAP_V_2 1.66



#AD8_MAP_AMP_2 0.0



#AD8_MAP_INDEX_2 0



#AD8_MAP_V_3 1.76



#AD8_MAP_AMP_3 0.0



#AD8_MAP_INDEX_3 0



#AD8_MAP_V_4 1.85



#AD8_MAP_AMP_4 0.0



#AD8_MAP_INDEX_4 0



#AD8_MAP_V_5 1.94



#AD8_MAP_AMP_5 0.0



#AD8_MAP_INDEX_5 0



#AD8_MAP_V_6 2.04



#AD8_MAP_AMP_6 0.0



#AD8_MAP_INDEX_6 0



#AD8_MAP_V_7 6.00



#AD8_MAP_AMP_7 0.0



#AD8_MAP_INDEX_7 0










I.e.2. Related Routines

















894 HOST.CPP
37 |--Process_Sensor_Control









 | |










1313 HOST.CPP
38 | |--Get_AD7_Sensor_Map_Index









 | |










1343 HOST.CPP
39 | |--Get_AD8_Sensor_Map_Index









 | |










1427 HOST.CPP
40 | |--Update_Sensor_Pads









41 | | |..sqrt



 | |









709 HOST_I~1.CPP 42 | |--Send_TCL_Data



926 HOST_I~1.CPP 43 | | |--Delay {11}









44 | | |..SET_DATA_IN



 | |









646 HOST_I~1.CPP 45 | |--Get_Keying_Request









46 | | |..DIG_In_Prt



 | |



47 | |..AI_VRead printf










II. Outer Loop System

The outer loop system 108 is responsible for controlling the setpoint (e.g. DSP_Shared_Data.RF_Desired_Output) for the inner loop system 102. The concept of temperature control will be used to describe how this is accomplished, however other control methods may be used, such as but not limited to rate of change of temperature control, impedance control and rate of change of impedance control. In temperature control mode, the outer loop system 108 is programmed to follow a specific temperature vs. time curve. The outer loop system 108 uses the temperature versus time curve to retrieve its target temperature after lapse of a specified time, e.g., after a procedure has started. If the temperature is low, then the outer loop system 108 raises the inner loop setpoint. If the temperature is high, then the outer loop system 108 lowers the inner loop setpoint. The inner loop system 102 then attempts to deliver RF as specified by the inner loop setpoint, and thus raise or lower the temperature.
The user is given control of the amplitude multiplier and/or the time multiplier which adjust the temperature versus time curves. The curves are specified as normalized values from 0.0 to 1.0. Thus, the temperature curve can be increased by increasing the amplitude multiplier:

Target Temperature=Temperature_Curve(Time)*Amplitude Multiplier;

The time scale in which the curve is executed may also be adjusted by modifying the time multiplier in a similar fashion to the target temperature, thus:

Time=Time Curve*Time Multiplier;

The outer loop system 108 operates in selectable modes for controlling temperature, rate of change of impedance and work (in Joules). The source code enables the addition of other modes, if desired.
The outer loop system 108 can also be turned off. In this case, the amplitude multiplier is passed directly to the inner loop system 102 as the setpoint and the time multiplier is not used.
Sitting on top of all the outer loop modes and algorithms is a pulsing control system. This pulsing control system allows the user to specify pulsing waveform pattern parameters, such as the number of pulses in a burst of pulses, the duty cycle (e.g., ratio of on time to off time), delay time (e.g., time between bursts of pulses), frequency (e.g., 1/time between rising edges of ‘on time’), and on/off amplitude envelope (e.g., amplitude pattern of a burst of pulses) for pulses to be delivered.
II.a. Command File Programming
Outer loop Proportional Integral Derivative (PID) parameters control the dynamic behavior of the outer loop system 108. Preferably, the control system is a PID system.
















#OUTER_LOOP_P
1.0



#OUTER_LOOP_I
0.0001



#OUTER_LOOP_D
0.0










Outer loop control output limit parameters, including minimum and maximum inner loop target values, are used to limit the range that the outer loop system 108 can change the inner loop setpoint. The outer loop control output limit parameters are sent from the outer loop system 108 to the inner loop system 102. The data is either in watts, amps or volts depending on the inner loop programming (e.g., using curves selected from I, P, V curves).
Exemplary limits are:















#OUTER_LOOP_OUTPUT_MAX 150.0



#OUTER_LOOP_OUTPUT_MIN 0.0










An outer loop start point is the starting inner loop target. This gives the outer loop system 108 a point at which to start prior to starting active control.
An exemplary start point is:
#OUTER_LOOP_OUTPUT_START 5.0
Outer loop curve types specify which outer loop algorithm is to be executed. The software system may support numerous different algorithms. A few exemplary valid types are shown below:
Valid types are:















#OUTER_LOOP_ALG_IS_TEMPERATURE



#OUTER_LOOP_ALG_IS_OFF










An outer loop amplitude curve specifies the target amplitude part of the target versus time curve that the outer loop system 108 uses to determine its target.
A corresponding table is provided which specifies the shape of the amplitude curve. The target value=OUTER_LOOP_CURVE_AMP[TIME*TIME_Multiplier]*AMPLITUDE_Multiplier
#OUTER_LOOP_CURVE_AMP—03 0.01
Exemplary Amplitude Curve:















#OUTER_LOOP_CURVE_AMP_00 0.2



#OUTER_LOOP_CURVE_AMP_01 0.4



#OUTER_LOOP_CURVE_AMP_02 0.6



#OUTER_LOOP_CURVE_AMP_03 0.8



#OUTER_LOOP_CURVE_AMP_04 1.0



#OUTER_LOOP_CURVE_AMP_05 1.0



#OUTER_LOOP_CURVE_AMP_06 1.0



#OUTER_LOOP_CURVE_AMP_07 1.0



#OUTER_LOOP_CURVE_AMP_08 1.0



#OUTER_LOOP_CURVE_AMP_09 1.0



#OUTER_LOOP_CURVE_AMP_10 1.0



#OUTER_LOOP_CURVE_AMP_11 1.0



#OUTER_LOOP_CURVE_AMP_12 1.0



#OUTER_LOOP_CURVE_AMP_13 1.0



#OUTER_LOOP_CURVE_AMP_14 1.0



#OUTER_LOOP_CURVE_AMP_15 1.0



#OUTER_LOOP_CURVE_AMP_16 1.0



#OUTER_LOOP_CURVE_AMP_17 1.0



#OUTER_LOOP_CURVE_AMP_18 1.0



#OUTER_LOOP_CURVE_AMP_19 1.0



#OUTER_LOOP_CURVE_AMP_20 1.0



#OUTER_LOOP_CURVE_AMP_21 1.0



#OUTER_LOOP_CURVE_AMP_22 1.0



#OUTER_LOOP_CURVE_AMP_23 1.0



#OUTER_LOOP_CURVE_AMP_24 1.0










Outer loop time curve parameters specify the shape of the time curve, where each location in the OUTER_LOOP_CURVE_AMP[ ] corresponds to the values in the time curve. The time multiplier thus allows the user to expand or contract the time at which the AMP curve generates the targets to the outer loop.
It is noted that the location may be specified with two digits, for example:
#OUTER_LOOP_CURVE_TIME—03 0.01
Exemplary Time Curve:















#OUTER_LOOP_CURVE_TIME_00 0.0



#OUTER_LOOP_CURVE_TIME_01 0.04167



#OUTER_LOOP_CURVE_TIME_02 0.08333



#OUTER_LOOP_CURVE_TIME_03 0.125



#OUTER_LOOP_CURVE_TIME_04 0.1667



#OUTER_LOOP_CURVE_TIME_05 0.2083



#OUTER_LOOP_CURVE_TIME_06 0.25



#OUTER_LOOP_CURVE_TIME_07 0.29167



#OUTER_LOOP_CURVE_TIME_08 0.3333



#OUTER_LOOP_CURVE_TIME_09 0.375



#OUTER_LOOP_CURVE_TIME_10 0.41667



#OUTER_LOOP_CURVE_TIME_11 0.4583



#OUTER_LOOP_CURVE_TIME_12 0.5



#OUTER_LOOP_CURVE_TIME_13 0.54167



#OUTER_LOOP_CURVE_TIME_14 0.5833



#OUTER_LOOP_CURVE_TIME_15 0.625



#OUTER_LOOP_CURVE_TIME_16 0.6667



#OUTER_LOOP_CURVE_TIME_17 0.70833



#OUTER_LOOP_CURVE_TIME_18 0.75



#OUTER_LOOP_CURVE_TIME_19 0.79167



#OUTER_LOOP_CURVE_TIME_20 0.8333



#OUTER_LOOP_CURVE_TIME_21 0.875



#OUTER_LOOP_CURVE_TIME_22 0.9167



#OUTER_LOOP_CURVE_TIME_23 0.9583



#OUTER_LOOP_CURVE_TIME_24 1.0










Outer_Loop_Misc_Parms is an array of parameters which may be passed to the outer loop system 108 to make modifications in the algorithm, providing a method for making subtle adjustments to an algorithm for different tissue types or handsets.
A miscellaneous outer loop algorithm parameter table is for sub-variations within a specific algorithm structured as a two dimensional array, Outer_Loop_Misc_Parm[y][x].
#OUTER_LOOP_MISC_PARMS—00—00 10.0
Pulse modes of the outer loop system 108 are programmed with the following exemplary commands:
Turning ON or OFF the pulse mode is accomplished with the commands:















#PULSE_MODE_ON



#PULSE_MODE_OFF










Specifying the pulse on/off widths in seconds is accomplished with the commands:

















#PULSE_ON_WIDTH
0.100
// 100 ms



#PULSE_OFF_WIDTH
0.200
// 200 ms










The number of pulses to be delivered is specified by the command:
#NUM_PULSES 5 // 5 pulses
The output level (in units of the inner loop desired output) is specified by the command:
#PULSE_OFF_LEVEL 7 // 7 watts if constant power
III. Inner Loop System
The inner loop system 102 is responsible for the low level control of the RF delivery. The inner loop system 102 has programming controls for the control variable selection (e.g., current, power or voltage control), control curve definition (e.g., power curve shape), waveform definition, RF Frequency selection, calibration, sensor variable gain dynamics (e.g., automatic gain control dynamics for the V, I sensors 104) and control dynamics (e.g., PID variables for the control system).
The inner loop system 102 can be programmed for two basic modes of operation, open loop and closed loop. In open loop mode, the RF output is set to the fixed value of the high voltage power supply, and is not adjusted by software. The calibration of output RF power is controlled by Econ_Gain and Offset parameters, and the power curve is defined by the RF stage characteristics. In closed loop mode, the software reads the sensor board values of V, VI phase shift and I, and calculates Vrms, Irms, Pavg (which may be determined in accordance with the VI phase shift, Zrms, crest factor, cable impedances, Vpeak, and/or Ipeak and controls the RF output to match the desired control curve.
III.a. Command File Programming
Inner loop commands are typically specified in an ‘Inner Loop’ command file so that the commands are separate from the ‘Outer Loop’ and ‘Meta’ commands files. This configuration allows easier sharing of command file programming.
III.a.1. RF Frequency Selection
The system may have various RF frequency selections available such as: 250, 500, 750, 1000, 1250, 1500, 1750, 2000 Khz.
Exemplary command file programming commands for frequency selection are as follows:















#SET_FREQ_SEL_250KHZ



#SET_FREQ_SEL_500KHZ



#SET_FREQ_SEL_750KHZ



#SET_FREQ_SEL_1000KHZ



#SET_FREQ_SEL_1250KHZ



#SET_FREQ_SEL_1500KHZ



#SET_FREQ_SEL_1750KHZ



#SET_FREQ_SEL_2000KHZ










III.a.2. PID Parameters

The inner loop control dynamics are controlled by two sets of parameters, the PID parameters and the I, P, V gain adjusts. The PID parameters are adjusted to give the appropriate dynamic response assuming a system gain of 1. The I, P and/or V gain adjusts are used to modify the PID parameters based on the actual gains of the system in the respective control area (e.g., current, power and voltage) which changes based on load impedance, frequency, and waveform duty cycle.
Exemplary PID parameter commands are:















#CNTL_SYS_P 0.8269



#CNTL_SYS_I 0.7133



#CNTL_SYS_D 0.0264










Control system target gain compensation controls the change in loop gain based on which target the control system is aiming at (e.g., current, power, voltage). The PID_GAIN_ADJ is multiplied by the PID values to change the loop gain, e.g., P=CNTL_SYS_P*I_PID_GAIN_ADJ.
Exemplary Gain Adjust parameter commands are:















#I_PID_GAIN_ADJ 0.3



#P_PID_GAIN_ADJ 0.008



#V_PID_GAIN_ADJ 0.005










III.a.3. Crest Factor

Crest factor is defined as: Crest Factor=Pk/Rms. Crest factor specifies the ratio of the signal PK to RMS value, thus giving an indication of maximum amplitude to be expected from the waveform.
Since the system reads the actual V, I waveforms, the software needs to know how to set the scaling for sensors on a sensor board for the specified waveform. Crest factor allows the software to calculate the maximum expected amplitude of the waveform, so that it can calculate the PID settings for the sensor board.
The crest factor should be measured at about 10 ohms, which is typically the highest (e.g., corresponds to the least ringing).
An exemplary crest factor setting command is:
#CREST_FACTOR 2
III.a.4. Control Mode/Curve Definitions
A control mode definition specifies which basic mode the control system operates in, open or closed loop.
Exemplary control mode definition commands are:















#CONTROL_MODE_IS_OPEN_LOOP



#CONTROL_MODE_IS_CLOSED_LOOP










A control curve definition specifies how the impedance curve maps are interpreted.
Exemplary control curve definition commands are:















#CONTROL_CURVE_IS_CURRENT



#CONTROL_CURVE_IS_POWER



#CONTROL_CURVE_IS_VOLTAGE










III.a.5. Control System Maximums

Control system maximum parameters control the maximum outputs allowed for the generator in the given mode. This protects the generator, as the control system does not allow the current, power, and/or voltage to go beyond these limits no matter what other settings are programmed to be set to. Current is in RMS Amps, power in watts, and voltage is in RMS volts.
Exemplary maximum parameter control commands are:















#MAX_CURRENT 4.0



#MAX_POWER  150



#MAX_VOLTAGE 500










III.a.6. Control Curve Definition

An RF output control curve can be programmed to one of at least three modes of operation: constant current, constant power and constant voltage.
The modes of operation specify the target that the control system tries to control. All of these modes use two maps (e.g., the curve map and the impedance map) and the Zlow and Zhigh parameters to define the operation. Viewed together these two maps define the basic shape of the control curve at the specified impedance points. Preferably, the curve map is normalized from 0 to 1.0 and the impedance map is in ohms.
Exemplary maps can be viewed as below:














Impedance Map Value
Curve Map Value



















0
0.5



100
0.75



200
1.0



300
1.0



500
0.5










A curve defined by the exemplary map value is shown in FIG. 2A. Exemplary charts of each mode are shown in FIGS. 2B-2D and explained below.
III.a.6.i. Constant Current Curves
The constant current mode attempts to provide constant current from 0 to Z High ohms. After Z High ohms, it switches to providing constant voltage (see FIG. 2B).
III.a.6.ii. Constant Power Curves
The constant power mode attempts to provide constant power from Z Low to Z High ohms. Below Z Low, it switches to providing constant current mode, and above Z High, it switches to providing constant voltage (see FIG. 2C).
III.a.6.iii. Constant Voltage Curves
The constant voltage mode attempts to provide constant voltage from Z Low and above. Below Z Low, it switches to providing constant current (see FIG. 2D).
III.a.7. Sensor Automatic Gain Control Dynamics
To accurately read the voltage and current sensors 104, an automatic gain control system is provided to the electrosurgical generator system 200 for providing a high speed A/D converter with a properly amplified signal. The dynamics of this gain control are programmed as a PID controller. The commands for programming the PID controller are as follows:

















#V_SENSOR_VGAIN_P
0.002
//Voltage Var Gain P



#V_SENSOR_VGAIN_I
0.004
//Voltage Var Gain I



#V_SENSOR_VGAIN_D
0.0
//Voltage Var Gain D



#I_SENSOR_VGAIN_P
0.002
//Current Var Gain P



#I_SENSOR_VGAIN_I
0.004
//Current Var Gain I



#I_SENSOR_VGAIN_D
0.0
//Current Var Gain D










III.a.8. Waveform Definition

The RF waveform is defined by a pulse generator which activates the main RF stage (e.g., FETs). The programming of the pulse generator allows specification of at least the pulse width, the number of pulses and an off time. This allows a wide variety of waveform patterns to be programmed for the electrosurgical generator system 200.
III.a.9. Outer Loop
One embodiment of the present disclosure includes splitting the outer loop system into two sub-sections: an outer loop target generator which handles the time-based changes to the setpoint of the outer loop (e.g., temperature versus time curves) and an inner loop target generator which selects which target (e.g., voltage, current, power) the inner loop is controlling.
III.a.10 Downloading Configuration Files
It is contemplated that the system of the present disclosure can be configured such that the system allows the downloading of the configuration files into the electrosurgical generator by the user. The new configuration files could be purchased or given to the user for upgrading the electrosurgical system.
FIG. 3 shows another embodiment of the electrosurgical generator system, designated generally by the number 300. An inner loop controller 314 includes at least the functionality of the inner loop controller 114 shown in FIG. 1. An outer loop controller 316 together with a high level RF algorithm (HLA) module 330 include at least the functionality of the outer loop controller 116 shown in FIG. 1. A control system for an electrosurgical generator having an inner and outer loop controller is described in U.S. patent application Ser. No. 10/427,832, filed on May 1, 2003, the contents of which are incorporated herein by reference in their entirety. A configuration controller 318 includes at least the functionality of the configuration controller 118 shown in FIG. 1. A sensor module 304 includes at least the sensors 104 shown in FIG. 1 and a configuration sensor module 312 includes at least the sensors 112 shown in FIG. 1. An RF stage 306 corresponds to the RF stage 106 shown in FIG. 1. A waveform pattern controller 332 provides at least functionality described above with respect to waveform generation.
Configuration data 340, 342, 344, 346, 348 350 is generated by the configuration controller 318. The inner loop controller 314 includes an inner loop target generator (ILTG) 360 and an inner loop control module (ILCM) 362. The outer loop controller 316 includes an outer loop target generator (OLTG) 364 and an outer loop control module (OLCM) 366. The ILTG configuration data 340 is provided to the ILTG 360. The ILCM configuration data 342 is provided to the OLCM 366. The OLTG configuration data 344 is provided to the OLTG 364, the OLCM configuration data 346 is provided to the OLCM 366. The waveform controller configuration data 348 is provided to the waveform controller 332. The HLA module configuration data 350 is provided to the HLA module 330.
The elements ILTG 360, ILCM 362, OLTG 364, OLCM 366, the configuration controller 318, the configuration sensor module 312, the HLA module 330, the waveform controller 332 or the sensor module 304, or a combination thereof, may be disabled and/or bypassed, or a connection between two or more elements may be disabled so that the electrosurgical generator control system 300 may operate without the disabled element. The disabled elements pass the input directly to the output of the module, thus allowing the enabled elements to operate with no change from the disabled units. The inner loop controller 314 processes sensor data received from the sensor module 304 in accordance with configuration data received from the configuration controller 318, updated configuration data received from the HLA module 330, and the inner loop multiplier control signal received from the outer loop controller 316, and generates a supply setpoint control signal which is provided to the RF stage 306, where an amplitude of an aspect of the RF energy output by the RF stage 306 is controlled in accordance with the supply setpoint. In the example provided in FIG. 3, the supply setpoint is an HV supply setpoint which controls amplitude of the voltage output by the RF stage 306.
The ILTG 360 receives configuration data including at least one algorithm selected from algorithms including a sculpted curve (including sculpted current, sculpted voltage and sculpted power) and RF limit algorithms, pulse parameters (pulse enable (for enabling or disabling pulsing function), pulse on (length of “high” pulse), pulse off (length of “low” pulse), pulse min (amplitude of “low” pulse), an inner loop gain curve, maximum RF limits, a control curve and Zlow, Zhigh, Zcntl values (where Zcntl indicates when to switch the control variable, e.g., from current to voltage, or vice versa); sensor data from the sensor module 304; and the inner loop multiplier from the outer loop controller 316. The ILTG 360 generates a target signal to the ILCM 362 based on the inner loop control curve provided via the configuration data from the configuration controller 318 and updatable by the configuration update data from the HLA module 330; the inner loop multiplier from the outer loop controller 316; and impedance and actual RF current and voltage from the sensor module 304. The target signal preferably represents voltage, but it can also represent the HV supply setpoint in the case when the ILCM is bypassed and/or disabled.
The ILTG 360 further includes modules for performing the following functions: performing a sculpted curve algorithm including, for example, but not limited to converting a sculpted current or power control curve into a voltage control curve; limiting the control curve to the maximum values (e.g., for current, voltage and power) allowed for the hardware; calculating and generating the inner loop target based on the sensor data, the control curve and the inner loop multiplier; controlling the inner loop control module gains based on impedance sensor data and the gain curve which specifies changes in gain due to changes in impedance for generating the gain multiplier; pulsing the inner loop target; and selecting a mode based on the sensed load impedance and the impedance breakpoints Zlow Zhigh and Zcntl, and generating a control mode signal in accordance with the selected mode.
Mode selection determines which sensor data is to be used by the ILCM 362 and which variable is to be controlled, e.g., sensor data that corresponds to current, voltage or power for controlling current, voltage or power, respectively. Preferably, current control is to be used for impedances less than Zlow, power or voltage control is used for impedance values between Zlow and Zhigh, and voltage control is used for the remaining impedance values. To avoid inaccuracy and prevent unnecessary control mode switching when the impedance is near a breakpoint, hysteresis is used when the impedance is close to a breakpoint.
The RF limit algorithm causes the ILTG 360 and the ILCM 362 to operate in an open loop mode in which there is minimal software control of the HV supply setpoint output in response to sensor data. The open loop mode is generally used for calibration and service functions, but is not limited thereto. Preferably, in the open loop mode the amplitude activation setting determines the percentage of full scale output that the RF stage 306 will deliver. The RF limit algorithm protects the RF stage 306 from user actions, such as setting the activation amplitude setting to a level that could cause the HV supply setpoint to be set to a level that could damage the RF stage 306. The HV supply setpoint is kept within predetermined limits, where the limits are determined by the control curve.
The inner loop control curve is interpreted to represent the maximum allowed HV supply setpoint at the specified impedance (Z). As long as the maximum HV supply setpoint allowed is not exceeded, as defined by the inner loop control curve, control of the HV supply setpoint is based on the inner loop multiplier. If the control curve is exceeded, then the output HV supply setpoint is held at the maximum allowed HV supply setpoint for providing protection to the electrosurgical unit receiving the energy generated by the RF stage 306. The HV supply setpoint is set to equal the inner loop multiplier after the HV supply setpoint is less than the maximum RF limit value, with some possible hysteresis.
The max RF limits parameter provides another layer of control layered on top of the control curve for use with any algorithm by providing maximum limits for current, voltage and/or power levels of the HV supply setpoint. The control layer which uses the max RF limits parameter further provides protection to the RF stage unit 306 and the electrosurgical unit (ESU) receiving the energy generated by the RF stage 306, including protection from changes to the software. Furthermore, the control system may use the minimum of the limits described by the control curve and the max RF limit for limiting the HV supply setpoint.
The pulsing function may run in parallel with other ILTG 360 algorithms. The duration of the “high” and “low” pulses, the time between leading edges, the level for the “low” pulse, etc., are specified by the pulse parameters. The level for the “high” pulse is defined by the control curve, the impedance data from the sensor data and the inner loop multiplier for closed loop control, or by the inner loop multiplier for open loop control, such as when the RF limit algorithm is performed. The pulsing of the inner loop target may contribute to providing sharp edged pulses of the HV supply setpoint, if desired.
The inner loop control curve received via the configuration data specifies the inner loop desired output values versus sensed impedance values obtained from sensor data. The desired output values of the received inner loop control curve represent current, voltage or power, as determined by the algorithm received via the configuration data (e.g., the sculpted current, voltage or power algorithm, respectively). The received inner loop control curve may be converted into a voltage, current or power curve, in accordance with the mode selected, in which the desired output values represent voltage, current or power, respectively. The control curve (or converted control curve) may be structured, for example, as a multi-dimensional array. One column of the array specifies impedance values, and another column specifies desired output values, where the desired output values represent current, power or voltage in accordance with the control mode. Preferably the desired output values are normalized between 0 and 1.0. A desired output value which is output as the inner loop target is generated by obtaining a normalized desired output value via linear interpolation based on the actual impedance, and multiplying the normalized desired output value by the inner loop multiplier.
Control of the inner loop control module gains (herein referred to as inner loop gain control) includes generating the gain multiplier in response to a constant control voltage as impedance changes. System gain (e.g., RF voltage/HV supply set-point, where the RF voltage is measured RF voltage output by the RF stage 306) varies with patient load impedance. The inner loop gain control objective is to stabilize the system gain to keep it close to constant as the load impedance changes. The inner loop gain curve is theoretically a set of points of a gain multiplier plotted versus impedance derived from the design of the hardware, which is designed to adjust the gains due to the response of the electrosurgical generator system 300.
The gain curve preferably holds a normalized voltage response versus impedance. By using a normalized voltage response, the voltage is converted into the variable that we are controlling (current, power, or voltage). The gain multiplier is computed by taking the inverse of the voltage response that corresponds to the sensed impedance. The gain multiplier is used to adjust the inner loop PID values of the ILCM 362 so that the control system gain is close to constant. Accordingly, the PID values should be calculated assuming a system gain of 1.0, as the PID values are adjusted as described above.
To compute the gain multiplier, for voltage control, the interpolated value of the gain curve is inverted. For power control, the gain multiplier is Z/V2 (where V is the interpolated value from the gain curve). For current control, the gain multiplier is Z/V. Accordingly, the ILSM 362 can use a single set of PID gain values for the inner loop voltage, current or power control, and the gain multiplier is used to modify the PID gains during the procedure in virtual real-time.
The ILCM 362 receives configuration data including control parameters, such as PID parameters; sensor data from the sensor module 304 and the inner loop target, the gain multiplier and the control mode (Irms, Vrms, Pavg or Bypass) from the ILTG 360. The ILCM 362 adjusts the HV supply setpoint in accordance with the received data so that the inner loop target is reached.
The ILCM 362 preferably uses a control algorithm, such as a PID algorithm, which is able to switch between control modes such as current control, voltage control, power control and a bypass mode (e.g., minimal control, where received data is provided as the output) without large disturbances when switching control modes. When the ILTG 360 is performing the RF limit algorithm, the ILCM 362 is preferably in bypass mode. When switching between control modes, the PID loop algorithm (if active) pre-loads the integral term for minimum disturbance.
With respect to the outer loop controller 316, the OLTG 364 receives configuration data including the outer loop target curve, the target slew rate, the time multiplier and an algorithm selectable from algorithms including time control or bypass algorithms; the amplitude multiplier from the HLA module 330; and time signals. Other than when performing the bypass algorithm, the OLTG 364 generates a time varying outer loop target in accordance with the received data which is provided to the OLCM 366, where the outer loop target may represent a property such as, but not limited to, temperature, current, power, voltage or impedance. Preferably, the outer loop target is generated by a linear interpolation of the adjusted outer loop target curve, where the target curve provided via the OLTG configuration data is adjusted in accordance with the amplitude multiplier, the time multiplier and/or time.
The outer loop target slew rate parameter allows the system to have a programmable slew rate of the outer loop target, so that regardless of how quickly the amplitude multiplier changes, the outer loop target will not change faster than the programmed slew rate. The outer loop target slew rate control function is typically used in systems in which the user may have direct control of a parameter, such as the activation amplitude setting, and it is desired to limit the rate at which the activation amplitude setting can be changed.
The OLCM 366 receives configuration data including control parameters, such as PID parameters, inner loop multiplier maximum and minimum limit values, pulse parameters, at least one algorithm selectable from algorithms such as temperature, temperature limit, impedance (Z), or bypass algorithms, algorithm parameters, such as temperature limits and an outer loop gain curve; sensor data from the sensor module 304 and the outer loop target from the OLTG 364. Preferably, the OLCM 366 uses a control algorithm, such as a PID algorithm which operates in accordance with the PID parameters. The OLCM 366 adjusts the inner loop multiplier in accordance with the received data in order to reach the outer loop target.
The OLCM 366 is capable of pulsing the inner loop multiplier. When the pulse is “on”, the output value is the computed inner loop multiplier. When the pulse is “off”, the output is set to a predetermined value.
The OLCM 366 controls outer loop gain. The outer loop gain curve describes a plot of gain multiplier versus impedance derived from the inner loop control curve, and thus the programming of the inner loop by way of the configuration parameters. The outer loop gain curve may be structured, for example, as a two-dimensional array. When outer loop gain control is enabled, the outer loop gain is multiplied by the gain multiplier that corresponds to the received impedance sensor data. The outer loop gain control stabilizes the system gain to maintain system gain that is close to constant. From the perspective of the outer loop controller 316, the system gain varies with patient load impedance due to the inner loop control curve programming. Conceptually, the outer loop gain is multiplied by the inverse of the normalized inner loop control curve, thus keeping the system gain close to constant. The outer loop gain curve specifies the inverse of the normalized inner loop control curve, where the outer loop gain curve may be further adjusted for keeping the system stable.
The HLA module 330 receives configuration data including at least one procedural algorithm selectable from algorithms for controlling the electrosurgical generator system 300 during specific types of procedures, or procedures performed under specific conditions, such as on specific organs. The procedural algorithms include algorithms, such as, vessel sealing (e.g., LigaSureTM (standard and precise)), rate of change of impedance (dZ/dt), lung, bowel, ablation, etc., and bypass algorithms, and a combination thereof; algorithm specific data for adjusting at least one specified procedural algorithm; sensor data from the sensor module 304; time signals; user entered settings; and the activation amplitude setting from the configuration controller 318.
Preferably, the HLA module 330 uses a state based control algorithm. The HLA module 330 performs top level RF delivery algorithms which are primarily state based. The HLA module 330 has the capability of changing the configuration data of the lower level modules, including the ILTG 360, the ILCM 362, the OLTG 364 and the OLCM 366 and the waveform controller (332). The HLA module 330 sets up the lower level modules in accordance with the received data by adjusting the corresponding configuration data as determined necessary. Furthermore, during a procedure the HLA module 330 reprograms the lower level modules in accordance with the received data by adjusting the corresponding configuration data in accordance with the algorithm selected, and in response to measured properties as indicated by the received sensor data, where the reprogramming may be performed in virtual real-time.
The user entered settings may be used in conjunction with any of the algorithms selected. Furthermore, the user entered settings may control the activation amplitude setting for one or more electrical or physical properties (e.g., power, current, voltage or temperature) without directly identifying the particular property and target setting. For example, the user may select from a variety of generic settings, where each generic setting includes a predetermined setting for one or more properties.
The waveform controller 332 receives configuration data including “on” time, dead time, number of pulses per burst of pulses, and delay time between bursts of pulses. It is contemplated that the waveform controller 332 may be programmed by the HLA module 332 if determined necessary, and/or by the configuration file via download from the configuration controller 318. The waveform controller 332 controls the hardware which generates a wave pattern (such as a square wave pattern) which drives FETs in the RF stage. Parameters of the waveform pattern that may be controlled by the waveform controller 332 include at least, “on” time (pulse width of a single pulse), dead time (delay to next pulse), number of pulses per group of pulses, and delay time between groups of pulses.
The waveform generator 332 may receive an amplitude envelope parameter with the configuration parameters, and may further include circuitry, such as analog and/or logic circuitry for adjusting amplitude of pulses within a burst of pulses. The amplitude envelope parameter may describe the amplitude setting for individual pulses of groups (or bursts) of pulses. The amplitude adjustments may be performed at a rate that is faster than the rate at which the software, such as the inner loop controller 314, is capable of providing control, so that the amplitude adjustments may be provided for individual pulses of groups of pulses. The waveform generator may receive a control signal, such as a control signal from the ILCM 362, indicative of the HV supply setpoint, for synchronizing the amplitude adjustments with the HV supply setpoint or with the signals output by the RF stage 106.
Preferably, the configuration controller 318 is a system which selects the required configuration files based on user input and download them to the rest of the system. It is contemplated that the configuration controller 318 may be removable and replaceable. The configuration controller receives configuration sensor data from the configuration sensor module 312 and/or user input devices (not shown) for direct user input. The configuration controller 318 generates the configuration data and the activation amplitude setting in accordance with the received data. The configuration controller 318 selects the algorithm to be used by the ILTG 360, OLTG 364, OLCM 366 and the HLA 330. The configuration data is provided to the appropriate modules as described above, and the activation amplitude setting is provided to the HLA module 330.
The configuration controller may configure itself (or alternatively be configured by another processor) in accordance with conditions, such as the ESU and/or the user interface to the electrosurgical generator system being used.
The configuration sensor module 312 includes sensors for sensing user actions, (including user actions not intentionally related to providing input to the configuration controller 318), environmental conditions, patient conditions or other properties or conditions. The configuration sensor module 312 further includes analog and or digital circuitry and software modules for processing signals generated by the sensors such as for preparing the signals for input to the configuration controller 318, and for controlling the sensors.
The sensors of the configuration sensor module 312 may include, for example, a sensor for sensing adjustment of a slider mechanism on the ESU for selecting a parameter on the ESU, an optical sensor for sensing a property of the patient's tissue, a proximity sensor for sensing thickness of the patient's tissue, a motion sensor for sensing motion of the ESU or the patient, a sensor for sensing moisture levels of tissue, etc. A portion of the sensors may be provided within the sterile field of the electrosurgical procedure. The configuration sensor module 312 may further include one or more commercially available user input devices.
The sensor module 304 includes sensors for sensing electrical properties of energy as output by the electrosurgical device, and/or electrical and/or physical properties proximate the surgical site or the ESU. Furthermore, the sensor module includes analog and or digital circuitry and software modules for processing signals generated by the sensors such as for preparing the signals for input to the control system of the electrosurgical generator system 300, and for calculating values derived from the sensed properties. It is contemplated that sensors and circuitry may be shared by the sensor module 304 and the configuration controller 318. Furthermore, the sensor module 304 may further include at least one control system for controlling the sensors, amplification of sensed signals, sampling rates of the sensors, etc. The sensor module 304 may further include one or more commercially available user input devices.
In a preferred embodiment, a user may enter user input to the configuration controller for selecting (directly or indirectly) configuration parameters, the activation amplitude setting and the amplitude multiplier. As described above, the user input to the configuration controller may not be intentionally entered for selecting configuration parameters.
It is contemplated that another configuration parameter, an expected crest factor parameter, may be provided to at least one of the modules of the control system of the electrosurgical generator 300 for providing further control. Furthermore, the sensor module 304 may include sensors for sensing the crest factor. The control system may further include a safety monitor module which compares the expected crest factor parameter with the sensed crest factor, and sends control signals to other modules of the control system for making adjustments in accordance with the results of the comparison. The sensor module 304 may configure the sensors for setting up the dynamic range of the sensors in accordance with the expected crest factor parameter.
It is further contemplated that the control system includes an activation sequencer which controls startup and ending of RF delivery. The activation sequencer may receive configuration data from the configuration controller 318 and or updated configuration data from the HLA module 330 for performing startup and/or shutdown procedures in accordance with the configuration data and/or updated configuration data.
The software modules of the electrosurgical generator control system 300, including the inner loop controller 314, outer loop controller 316, the configuration controller 318, the HLA module 330, the waveform controller 332 and control modules associated with the sensor module 304 and/or the configuration sensor module 312 are respectively executable on at least one processor, such as a microprocessor and/or a DSP. Resources for processing, storage, etc., or a combination thereof may be shared by any combination of the aforementioned software modules. The software instructions of the respective software modules may be stored on computer readable medium, such as CD-ROMs or magnetic disks, and/or may be transmitted and/or received via propagated signals.
In operation, the control system may be initialized during the power up and/or the activation process. The electrosurgical generator system 300 recognizes (via sensing or “plug and play” notification) the type of ESU and/or electrosurgical generator user interface to be used. Sensors of the sensor module 304 and/or the configuration sensor module 312 sense initialization properties associated with the environment, ESU or patient. Information is entered via a user interface, such as patient and/or procedure related information (procedure to be performed, tissue to be operated upon, patient identification, age, weight, expected fat content). The information or additional information may be retrieved from a database accessible by the control system of the electrosurgical generator system 300.
The appropriate configuration files are selected or generated by the configuration controller 318. It is contemplated that at least a portion of the configuration files are stored by the configuration controller 318 and/or associated memory. Accordingly, selected configuration files not stored by the configuration controller 318 may be downloaded to the configuration controller 318 through various methods. Upon activation of the electrosurgical generator system 300 the configuration controller 318 downloads the configuration files into the respective modules of the control system.
The control system for the electrosurgical generator system 300 provides a high degree of flexibility for performing a wide variety of different types of control for controlling the output of electrosurgical energy for use in a wide variety of types of procedures which may be performed under a wide variety of circumstances. Furthermore, the control system provides a wide variety of different types of control during a procedure, where the control and selection of the type of control is provided on the fly, or in virtual real time in response to properties associated with sensed properties and/or user input or actions. The type of control provided may be selected in response to a variety of factors, such as sensed or input tissue response, type of electrosurgical instrument being used, patient profile, the type of procedure being performed, environmental conditions, the type of tissue being treated and the condition of the tissue being treated.
Although this disclosure has been described with respect to preferred embodiments, it will be readily apparent to those having ordinary skill in the art to which it appertains that changes and modifications may be made thereto without departing from the spirit or scope of the claims appended hereto.

## Claims

1. An electrosurgical generator system, comprising:
an electrical generator having an RF stage for outputting electrical energy having at least one waveform for performing an electrosurgical procedure; at least one control module executable on at least one processor which controls at least one parameter of the outputted electrical energy, the at least one control module including an inner loop controller and an outer loop controller, the inner loop controller configured to compute a gain multiplier that is computed by taking an inverse of a voltage response corresponding to a sensed load impedance, the outer loop controller configured to control outer loop gain by multiplying the outer loop gain by the gain multiplier computed by the inner loop controller to stabilize overall gain of the electrosurgical generator despite variations in the sensed impedance; and
a configuration controller operably associated with the electrical generator which generates configuration data to configure the at least one control module to provide at least one modality of control of the outputted electrical energy based on the configuration data.

2. The electrosurgical generator system as in claim 1, wherein the electrosurgical generator system further comprises a sensor module operably associated with the generator, the sensor module having at least one sensor for sensing at least one of electrical and physical properties related to the outputted electrosurgical energy and generating sensor data relating thereto.

3. The electrosurgical generator system as in claim 2, wherein the at least one sensor is selected from the group consisting of current, phase shift, voltage, power, impedance, and temperature sensors.

4. The electrosurgical generator system as in claim 2, wherein the:
outer loop controller generates a control signal in accordance with at least a first subset of the sensor data; and
the inner loop controller generates a setpoint control signal, the setpoint control signal being provided to the RF stage for controlling at least an amplitude of the outputted electrical energy by the RF stage, wherein the setpoint control signal is generated based on at least the control signal generated by the outer loop controller and a second subset of the sensor data.

5. The electrosurgical generator system as in claim 1, wherein the electrosurgical generator system further comprises a configuration sensor module operably associated with the generator having at least one sensor for sensing at least one property relating to at least one of a user action relating directly to operation of an electrosurgical instrument, and at least one of a physical or electrical property sensed in a field of the procedure, wherein the configuration sensor module generates at least one signal corresponding thereto.

6. The electrosurgical generator system as in claim 2, wherein the electrosurgical generator system further comprises a high level RF algorithm module programmed therein which generates updated configuration data for the at least one control modules in response to sensor data and a time signal indicative of the amount of time lapsed during a procedure, the algorithm further providing updated configuration data to the at least one control modules for reconfiguring the respective control modules.

7. The electrosurgical generator system as in claim 4, wherein the configuration data is provided to the inner loop controller, wherein the configuration data includes at least one of an algorithm selected from at least a sculpted current algorithm, a sculpted voltage algorithm and a sculpted power algorithm, pulse parameters for controlling a waveform pattern of the setpoint control signal, a gain curve providing predetermined gain multiplier values plotted versus predetermined impedance values, maximum limitation values for the setpoint control signal, a control curve providing target values plotted versus impedance values, predetermined impedance breakpoint values, and control algorithm parameters; and wherein the configuration data is provided to the outer loop controller, wherein the configuration data includes at least one of a target curve providing target values plotted versus time values, a target slew rate for limiting the slew rate of the outer loop controller, a time multiplier for adjusting the target curve with respect to the time values, control algorithm parameters, threshold range values for the control signal generated by the outer loop controller, pulse parameters for pulsing the control signal, an outer loop algorithm selected from at least one of a temperature algorithm, a temperature limit algorithm, and an impedance algorithm, outer loop algorithm parameters, and a gain curve providing predetermined gain multiplier values plotted versus predetermined impedance values.

8. The electrosurgical generator system as in claim 6, wherein the updated configuration data generated by the high level RF algorithm module includes at least one of an algorithm selection and algorithm specific data for adjusting at least one procedural algorithm.

9. The electrosurgical generator system as in claim 4, wherein the outer loop controller includes an outer loop target generator for generating an outer loop target value based on at least one of a time signal indicative of a time lapse during the procedure and an outer loop target curve providing target values versus time values provided via the configuration data and an outer loop control module performing a control algorithm for generating the control signal based on at least the outer loop target value and the first subset of sensor data; and wherein the inner loop controller includes an inner loop target generator for generating at least one of an inner loop target value based on at least one of the second subset of sensor data and an inner loop target curve providing target values versus impedance values provided via the configuration data and an inner loop control module performing a control algorithm for generating the setpoint control signal based on at least the inner loop target value and the second subset of sensor data.

10. The electrosurgical generator system as in claim 1, further comprising a waveform controller operably associated with the generator for receiving configuration data from the configuration controller and controlling a waveform pattern of the electrosurgical energy generated by the RF stage.

11. The electrosurgical generator system as in claim 9, wherein each of the outer loop target generator, the outer loop control module, the inner loop target generator and the inner loop control module may be one of disabled or bypassed so that the electrosurgical generator may operate without the disabled or bypassed element.