Patent Publication Number: US-9849239-B2

Title: Generation and application of an insulin limit for a closed-loop operating mode of an insulin infusion system

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation-in-part of U.S. patent application Ser. No. 13/870,902, filed on Apr. 25, 2013 (titled “Insulin On Board Compensation For A Closed-Loop Insulin Infusion System”), which claims the benefit of: U.S. provisional patent application No. 61/694,950, filed Aug. 30, 2012 (titled “Closed Loop System”); U.S. provisional patent application No. 61/694,961, filed Aug. 30, 2012 (titled “Closed Loop Mobile System”); and U.S. provisional patent application No. 61/812,874, filed Apr. 17, 2013 (titled “Closed Loop System”). This application is also a continuation-in-part of U.S. patent application Ser. No. 13/870,907, filed on Apr. 25, 2013 (titled “Sensor Model Supervisor For A Closed-Loop Insulin Infusion System”), which claims the benefit of: U.S. provisional patent application No. 61/694,950, filed Aug. 30, 2012 (titled “Closed Loop System”); U.S. provisional patent application No. 61/694,961, filed Aug. 30, 2012 (titled “Closed Loop Mobile System”); and U.S. provisional patent application No. 61/812,874, filed Apr. 17, 2013 (titled “Closed Loop System”). This application is also a continuation-in-part of U.S. patent application Ser. No. 13/870,910, filed on Apr. 25, 2013 (titled “Safeguarding Measures For A Closed-Loop Insulin Infusion System”), which claims the benefit of: U.S. provisional patent application No. 61/694,950, filed Aug. 30, 2012 (titled “Closed Loop System”); U.S. provisional patent application No. 61/694,961, filed Aug. 30, 2012 (titled “Closed Loop Mobile System”); and U.S. provisional patent application No. 61/812,874, filed Apr. 17, 2013 (titled “Closed Loop System”). This application also claims the benefit of: U.S. provisional patent application No. 61/694,950, filed Aug. 30, 2012 (titled “Closed Loop System”); U.S. provisional patent application No. 61/694,961, filed Aug. 30, 2012 (titled “Closed Loop Mobile System”); and U.S. provisional patent application No. 61/812,874, filed Apr. 17, 2013 (titled “Closed Loop System”). 
    
    
     TECHNICAL FIELD 
     Embodiments of the subject matter described herein relate generally to drug delivery systems and more specifically to systems for controlling the infusion rate of insulin based on state variable feedback. 
     BACKGROUND 
     The pancreas of a normal healthy person produces and releases insulin into the blood stream in response to elevated blood plasma glucose levels. Beta cells (β-cells), which reside in the pancreas, produce and secrete the insulin into the blood stream, as it is needed. If β-cells become incapacitated or die, a condition known as Type I diabetes mellitus (or in some cases if β-cells produce insufficient quantities of insulin, Type II diabetes), then insulin must be provided to the body from another source. 
     Traditionally, since insulin cannot be taken orally, insulin has been injected with a syringe. More recently, use of infusion pump therapy has been increasing, especially for delivering insulin for diabetics. For example, external infusion pumps are worn on a belt, in a pocket, or the like, and deliver insulin into the body via an infusion tube with a percutaneous needle or a cannula placed in the subcutaneous tissue. As of 1995, less than 5% of Type I diabetics in the United States were using infusion pump therapy. Presently, over 7% of the more than 900,000 Type I diabetics in the United States are using infusion pump therapy, and the percentage of Type I diabetics that use an infusion pump is growing at an absolute rate of over 2% each year. Moreover, the number of Type I diabetics is growing at 3% or more per year. In addition, growing numbers of insulin-using Type II diabetics are also using infusion pumps. Physicians have recognized that continuous infusion provides greater control of a diabetic&#39;s condition, and are also increasingly prescribing it for patients. Although offering control, pump therapy can suffer from several complications that make use of traditional external infusion pumps less desirable for the user. 
     In insulin pumps, it is common to use fast acting insulin as opposed to the slower acting insulin that is used for injections, because pumps allow changing of insulin profiles. As insulin companies develop faster acting insulin, the faster acting insulin is often adopted quickly. However, current pumps are still limited by the speed of the insulin they are using. 
     BRIEF SUMMARY 
     A processor-implemented method is presented here. The method can be used to control an insulin infusion device for a user. Certain embodiments of the method involve the operation of a processor architecture having at least one processor device to obtain a current insulin on board (IOB) value that represents an estimate of active insulin in the body of the user. The method continues by calculating, by the processor architecture, an IOB rate based at least in part on the obtained current IOB value. The method continues by determining, by the processor architecture, an adjusted insulin infusion rate based at least in part on the calculated IOB rate and an uncompensated insulin infusion rate. The processor architecture selects a final insulin infusion rate for the insulin infusion device, wherein either the determined adjusted insulin infusion rate, the uncompensated insulin infusion rate, or a current basal rate is selected as the final insulin infusion rate. 
     Also presented here is a processor-implemented method of controlling an insulin infusion device for a user. Certain embodiments of the method begin by generating a current IOB value that represents an estimate of active insulin in the body of the user. The method continues by calculating an IOB rate based at least in part on the generated current IOB value, obtaining an uncompensated insulin infusion rate, and determining an adjusted insulin infusion rate in accordance with the expression AdjustedRate(n)=max(0; PIDRate(n)−IOBRate(n)). The method continues by selecting a final insulin infusion rate in accordance with the expression 
               FinalRate   ⁡     (   n   )       =     {               max   ⁡     (     Basal   ;     AdjustedRate   ⁡     (   n   )         )       ,           PIDRate   &gt;   Basal                 PIDRate   ⁡     (   n   )       ,           PIDRate   ≤   Basal           .             
In this expression: AdjustedRate(n) is the determined adjusted insulin infusion rate; PIDRate(n) is the obtained uncompensated insulin infusion rate; IOBRate(n) is the calculated IOB rate; FinalRate(n) is the selected final insulin infusion rate; and Basal is a current basal rate maintained by the insulin infusion device for the user.
 
     Also presented here is a tangible and non-transitory electronic storage medium having processor-executable instructions that, when executed by a processor architecture comprising at least one processor device, perform a method of controlling an insulin infusion device for a user. In certain embodiments, the method begins by estimating a current IOB value that indicates an amount of active insulin in the body of the user. The method continues by calculating an IOB rate based at least in part on the estimated current IOB value, determining an adjusted insulin infusion rate based at least in part on the calculated IOB rate and an uncompensated insulin infusion rate, and selecting a final insulin infusion rate for the insulin infusion device, wherein either the determined adjusted insulin infusion rate, the uncompensated insulin infusion rate, or a current basal rate is selected as the final insulin infusion rate. The method then provides the selected final insulin infusion rate to regulate delivery of insulin by the insulin infusion device. 
     An electronic device is also presented here. Certain embodiments of the electronic device include a processor architecture and at least one memory element associated with the processor architecture. The at least one memory element stores processor-executable instructions that, when executed by the processor architecture, perform a method of controlling an insulin infusion device for a user. The method involves: computing a current IOB value that indicates an amount of active insulin in the body of the user; calculating an IOB rate based at least in part on the computed IOB value; determining an adjusted insulin infusion rate based at least in part on the calculated IOB rate and an uncompensated insulin infusion rate; and selecting a final insulin infusion rate for the insulin infusion device. The selecting step selects either the determined adjusted insulin infusion rate, the uncompensated insulin infusion rate, or a current basal rate as the final insulin infusion rate. 
     An electronic controller for an insulin infusion device is also presented here. The electronic controller includes a processor architecture comprising at least one processor device, and at least one memory element associated with the processor architecture. The at least one memory element stores processor-executable instructions that, when executed by the processor architecture, provide an IOB compensation module that estimates a current IOB value that indicates an amount of active insulin in the body of the user, calculates an IOB rate based at least in part on the estimated current IOB value, and determines an adjusted insulin infusion rate based at least in part on the calculated IOB rate and an uncompensated insulin infusion rate. The IOB compensation module selects a final insulin infusion rate for the insulin infusion device, wherein the final insulin infusion rate is selected as either the determined adjusted insulin infusion rate, the uncompensated insulin infusion rate, or a current basal rate. The IOB compensation module then provides the selected final insulin infusion rate to regulate delivery of insulin by the insulin infusion device. 
     An exemplary embodiment of an electronic device is also provided here. The electronic device includes a processor architecture having at least one processor device, and at least one memory element associated with the processor architecture. The at least one memory element stores processor-executable instructions that, when executed by the processor architecture, perform a method of controlling an insulin infusion device for a user. The method operates the insulin infusion device in a closed-loop mode to deliver insulin to the body of the user, obtains current insulin-delivered data that indicates an amount of insulin delivered by the insulin infusion device during a most recent sampling period, obtains current sensor data that indicates a current sensor glucose value for the user corresponding to the most recent sampling period, and processes historical insulin-delivered data and historical sensor data, for a plurality of historical sampling periods prior to the most recent sampling period, to obtain predicted sensor glucose values for a historical time period. The method continues by calculating a difference between the current sensor glucose value and a predicted current sensor glucose value for the most recent sampling period, wherein the predicted sensor glucose values for the historical time period include the predicted current sensor glucose value. The method continues by generating an alert when the difference exceeds a threshold error amount. 
     The following detailed description also relates to a tangible and non-transitory electronic storage medium having processor executable instructions that, when executed by a processor architecture comprising at least one processor device, perform a method of controlling an insulin infusion device for a user. The method involves operation of the insulin infusion device in a closed-loop mode to deliver insulin to the body of the user. The method continues by identifying, from historical sensor glucose values for the user, a baseline historical sensor glucose value obtained during a begin-training sampling period. The method calculates a plurality of candidate solutions to a sensor glucose prediction model, wherein each of the plurality of candidate solutions is calculated as a function of a bounded initial condition and historical insulin delivered data for the user, and wherein the bounded initial condition is influenced by the baseline sensor glucose value. The method continues by selecting a best-matched solution from the calculated plurality of candidate solutions, based on a comparison of predicted sensor glucose values from the calculated plurality of candidate solutions to a first portion of the historical sensor glucose values. The predicted sensor glucose values from the best-matched solution are compared to a second portion of the historical sensor glucose values, wherein the first portion of the historical sensor glucose values corresponds to a distant history period, the second portion of the historical sensor glucose values corresponds to a recent history period, and the distant history period occurred before the recent history period that data samples. The method continues by generating an alert, in response to the comparing, when the second portion of the historical sensor glucose values deviates from the best-matched solution by at least a threshold error amount. 
     Also presented here is an embodiment of an electronic controller for an insulin infusion device. The electronic controller includes a processor architecture comprising at least one processor device, and at least one memory element associated with the processor architecture. The at least one memory element stores processor-executable instructions that, when executed by the processor architecture, provide a model supervisor module to obtain, during closed-loop operation of the insulin infusion device, insulin-delivered data that indicates an amount of insulin delivered by the insulin infusion device during a most recent sampling period, and current sensor data that indicates a current sensor glucose value for the user corresponding to the most recent sampling period. The model supervisor module defines a model training period and a model prediction period for a historical period of time, and finds a best-matched solution to a sensor glucose prediction model, relative to historical sensor glucose values obtained during the model training period, wherein the best-matched solution is a function of a baseline sensor glucose value obtained during the model training period, and is a function of historical insulin-delivered data for the user obtained during the historical period of time. The model supervisor module compares at least one predicted sensor glucose value from the best-matched solution to at least one historical sensor glucose value corresponding only to the model prediction period, and generates an alert, in response to the comparing, when the at least one historical sensor glucose value deviates from the at least one predicted sensor glucose value by at least a threshold error amount. 
     Also included below is a detailed description of a processor-implemented method of controlling an insulin infusion device for a user. The method may begin by operating the insulin infusion device in a closed-loop mode to deliver insulin to the body of the user. The method continues by obtaining current insulin-delivered data that indicates an amount of insulin delivered by the insulin infusion device during a most recent sampling period, obtaining current sensor data that indicates a current sensor glucose value for the user corresponding to the most recent sampling period, and processing historical insulin-delivered data and historical sensor data, for a plurality of historical sampling periods prior to the most recent sampling period, to obtain predicted sensor glucose values for a historical time period. The method then calculates a difference between the current sensor glucose value and a predicted current sensor glucose value for the most recent sampling period, wherein the predicted sensor glucose values for the historical time period include the predicted current sensor glucose value. An alert is generated when the difference exceeds a threshold error amount. 
     Also included below is a detailed description of a processor-implemented method of controlling an insulin infusion device for a user. The method may begin by operating the insulin infusion device in a closed-loop mode to deliver insulin to the body of the user. The method continues by identifying, from historical sensor glucose values for the user, a baseline historical sensor glucose value obtained during a begin-training sampling period. Next, a plurality of candidate solutions to a sensor glucose prediction model is calculated, wherein each of the plurality of candidate solutions is calculated as a function of a bounded initial condition and historical insulin delivered data for the user, and wherein the bounded initial condition is influenced by the baseline sensor glucose value. The method continues by selecting a best-matched solution from the calculated plurality of candidate solutions, based on a comparison of predicted sensor glucose values from the calculated plurality of candidate solutions to a first portion of the historical sensor glucose values. At least one predicted sensor glucose value from the best-matched solution is compared to a second portion of the historical sensor glucose values, wherein the first portion of the historical sensor glucose values corresponds to a distant history period, the second portion of the historical sensor glucose values corresponds to a recent history period, and the distant history period occurred before the recent history period that data samples. An alert is generated, in response to the comparing, when the second portion of the historical sensor glucose values deviates from the best-matched solution by at least a threshold error amount. 
     Another embodiment of a processor-implemented method of controlling an insulin infusion device for a user is also presented below. The method involves operating the insulin infusion device in a closed-loop mode to deliver insulin to the body of the user, defining a model training period and a model prediction period for a historical period of time, and finding a best-matched solution to a sensor glucose prediction model, relative to historical sensor glucose values obtained during the model training period, wherein the best-matched solution is a function of a baseline sensor glucose value obtained during the model training period, and is a function of historical insulin-delivered data for the user obtained during the historical period of time. The method continues by comparing at least one predicted sensor glucose value from the best-matched solution to at least one historical sensor glucose value corresponding only to the model prediction period. An alert is generated, in response to the comparing, when the at least one historical sensor glucose value deviates from the at least one predicted sensor glucose value by at least a threshold error amount. 
     Additional processor-implemented methods of controlling an insulin infusion device are also presented below. For example, one method involves operating a processor architecture having at least one processor device to obtain sensor calibration data for a continuous glucose sensor that generates a sensor variable indicative of blood glucose of the user. This method continues by identifying a most recent calibration factor from the sensor calibration data, the most recent calibration factor representing a first conversion value applicable to convert a first value of the sensor variable to a first blood glucose value. This method also identifies a prior calibration factor from the sensor calibration data, the prior calibration factor representing a second conversion value applicable to convert a second value of the sensor variable to a second blood glucose value, and the prior calibration factor corresponding to an earlier time relative to the most recent calibration factor. The method regulates entry into a closed-loop operating mode of the insulin infusion device, based on the most recent calibration factor and the prior calibration factor. 
     Also provided is a tangible and non-transitory electronic storage medium having processor-executable instructions that, when executed by a processor architecture, perform an exemplary embodiment of a method of controlling an insulin infusion device for a user, the method including: obtaining sensor calibration data for a continuous glucose sensor that generates a sensor variable indicative of blood glucose of the user; identifying a most recent calibration factor from the sensor calibration data, the most recent calibration factor representing a first conversion value applicable to convert a first value of the sensor variable to a first blood glucose value; identifying a prior calibration factor from the sensor calibration data, the prior calibration factor representing a second conversion value applicable to convert a second value of the sensor variable to a second blood glucose value, and the prior calibration factor corresponding to an earlier time relative to the most recent calibration factor; and regulating entry into a closed-loop operating mode of the insulin infusion device, based on the most recent calibration factor and the prior calibration factor. 
     An embodiment of an electronic device is also presented here. The electronic device includes: a processor architecture having at least one processor device; and at least one memory element associated with the processor architecture. The memory element stores processor-executable instructions that, when executed by the processor architecture, perform a method of controlling an insulin infusion device for a user. The method involves: obtaining sensor calibration data for a continuous glucose sensor that generates a sensor variable indicative of blood glucose of the user; identifying a most recent calibration factor from the sensor calibration data, the most recent calibration factor representing a first conversion value applicable to convert a first value of the sensor variable to a first blood glucose value; identifying a prior calibration factor from the sensor calibration data, the prior calibration factor representing a second conversion value applicable to convert a second value of the sensor variable to a second blood glucose value, and the prior calibration factor corresponding to an earlier time relative to the most recent calibration factor; and regulating entry into a closed-loop operating mode of the insulin infusion device, based on the most recent calibration factor and the prior calibration factor. 
     Also provided is an embodiment of an electronic controller for an insulin infusion device. The electronic controller includes: a processor architecture having at least one processor device; and at least one memory element associated with the processor architecture, the at least one memory element storing processor-executable instructions that, when executed by the processor architecture, provide a closed-loop initiation module. The initiation module is configured to: obtain a most recent calibration factor for a continuous glucose sensor that generates a sensor variable indicative of blood glucose of a user, the most recent calibration factor representing a first conversion value applicable to convert a first value of the sensor variable to a first blood glucose value; obtain a prior calibration factor for the continuous glucose sensor, the prior calibration factor representing a second conversion value applicable to convert a second value of the sensor variable to a second blood glucose value; obtain calibration timestamp data for the most recent calibration factor and the prior calibration factor; and regulate entry into a closed-loop operating mode of the insulin infusion device, based on the most recent calibration factor, the prior calibration factor, and the calibration timestamp data. 
     Another embodiment of a processor-implemented method of controlling an insulin infusion device for a user is also provided. This method involves: operating a processor architecture to initiate a closed-loop operating mode of the insulin infusion device; in response to initiating the closed-loop operating mode, obtaining a most recent sensor glucose value for the user; and calculating a difference between the most recent sensor glucose value and a target glucose setpoint value. When the calculated difference is less than or equal to a minimum threshold value, the method adjusts a closed-loop insulin infusion rate over time, based on a fixed final target glucose value that is derived from the target glucose setpoint value. In contrast, when the calculated difference is greater than the minimum threshold value, the method adjusts the closed-loop insulin infusion rate over time, based on a dynamic final target glucose value that decreases over time toward the target glucose setpoint value. 
     Also presented here is a tangible and non-transitory electronic storage medium having processor-executable instructions that, when executed by a processor architecture, perform a method of controlling an insulin infusion device for a user. The method involves: initiating a closed-loop operating mode of the insulin infusion device; in response to initiating the closed-loop operating mode, obtaining a most recent sensor glucose value for the user; and calculating a difference between the most recent sensor glucose value and a target glucose setpoint value. When the calculated difference is less than or equal to a minimum threshold value, a closed-loop insulin infusion rate is adjusted over time, based on a fixed final target glucose value that is derived from the target glucose setpoint value. When the calculated difference is greater than the minimum threshold value, the closed-loop insulin infusion rate is adjusted over time, based on a dynamic final target glucose value that decreases over time toward the target glucose setpoint value. 
     Another exemplary embodiment of an electronic device is also presented here. The electronic device includes a processor architecture and at least one memory element associated with the processor architecture. The at least one memory element stores processor-executable instructions that, when executed by the processor architecture, perform a method of controlling an insulin infusion device for a user. The method initiates a closed-loop operating mode of the insulin infusion device and, in response to initiating the closed-loop operating mode, obtains a most recent sensor glucose value for the user. The method continues by calculating a difference between the most recent sensor glucose value and a target glucose setpoint value. When the calculated difference is less than or equal to a minimum threshold value, the method adjusts a closed-loop insulin infusion rate over time, based on a fixed final target glucose value that is derived from the target glucose setpoint value. When the calculated difference is greater than the minimum threshold value, the method adjusts the closed-loop insulin infusion rate over time, based on a dynamic final target glucose value that decreases over time toward the target glucose setpoint value. 
     Another exemplary embodiment of an electronic controller for an insulin infusion device is also provided here. The electronic controller includes: a processor architecture; and at least one memory element associated with the processor architecture, the at least one memory element storing processor-executable instructions that, when executed by the processor architecture, provide a closed-loop start-up module. The start-up module is configured to: initiate a closed-loop operating mode of the insulin infusion device; in response to initiating the closed-loop operating mode, obtain a most recent sensor glucose value for the user; and calculate a difference between the most recent sensor glucose value and a target glucose setpoint value. When the calculated difference is less than or equal to a minimum threshold value, the start-up module adjusts a closed-loop insulin infusion rate over time, based on a fixed final target glucose value that is derived from the target glucose setpoint value. When the calculated difference is greater than the minimum threshold value, the start-up module adjusts the closed-loop insulin infusion rate over time, based on a dynamic final target glucose value that decreases over time toward the target glucose setpoint value. 
     Yet another processor-implemented method of controlling an insulin infusion device for a user is presented here. The method calculates a maximum insulin infusion rate for the user based on a fasting blood glucose value associated with the user, a total daily insulin value associated with the user, and fasting insulin delivery data that is indicative of insulin delivered to the user during a fasting period. The maximum insulin infusion rate is applicable during a period of closed-loop operation of the insulin infusion device. The method continues by obtaining a first closed-loop insulin infusion rate for the user, wherein the first closed-loop insulin infusion rate is obtained for a current sampling point during the period of closed-loop operation. The method provides a second closed-loop insulin infusion rate for the user when the obtained first closed-loop insulin infusion rate is greater than the calculated maximum insulin infusion rate, wherein the second closed-loop insulin infusion rate is less than the first closed-loop insulin infusion rate. 
     Also provided is a tangible and non-transitory electronic storage medium having processor-executable instructions that, when executed by a processor architecture, perform a method of controlling an insulin infusion device for a user. The method involves: calculating a maximum insulin infusion rate for the user based on a fasting blood glucose value associated with the user, a total daily insulin value associated with the user, and fasting insulin delivery data that is indicative of insulin delivered to the user during a fasting period, wherein the maximum insulin infusion rate is applicable during a period of closed-loop operation of the insulin infusion device. The method obtains a first closed-loop insulin infusion rate for the user, wherein the first closed-loop insulin infusion rate is obtained for a current sampling point during the period of closed-loop operation. The method continues by providing a second closed-loop insulin infusion rate for the user when the obtained first closed-loop insulin infusion rate is greater than the calculated maximum insulin infusion rate, wherein the second closed-loop insulin infusion rate is less than the first closed-loop insulin infusion rate. 
     An additional embodiment of an electronic device is also presented here. The electronic device includes: a processor architecture having at least one processor device; and at least one memory element associated with the processor architecture, the at least one memory element storing processor-executable instructions that, when executed by the processor architecture, perform a method of controlling an insulin infusion device for a user. The method involves: calculating a maximum insulin infusion rate for the user based on a fasting blood glucose value associated with the user, a total daily insulin value associated with the user, and fasting insulin delivery data that is indicative of insulin delivered to the user during a fasting period, wherein the maximum insulin infusion rate is applicable during a period of closed-loop operation of the insulin infusion device; obtaining a first closed-loop insulin infusion rate for the user, wherein the first closed-loop insulin infusion rate is obtained for a current sampling point during the period of closed-loop operation; and providing a second closed-loop insulin infusion rate for the user when the obtained first closed-loop insulin infusion rate is greater than the calculated maximum insulin infusion rate, wherein the second closed-loop insulin infusion rate is less than the first closed-loop insulin infusion rate. 
     Another embodiment of an electronic controller for an insulin infusion device is also provided. The electronic controller includes: a processor architecture having at least one processor device; and at least one memory element associated with the processor architecture, the at least one memory element storing processor-executable instructions that, when executed by the processor architecture, provide a closed-loop insulin limit module. The closed-loop insulin limit module is configured to: obtain a fasting blood glucose value associated with the user, the fasting blood glucose value corresponding to a fasting period for the user; obtain a total daily insulin value associated with the user; obtain fasting insulin delivery data that is indicative of insulin delivered to the user during the fasting period; and calculate a maximum insulin infusion rate for the user based on the obtained fasting blood glucose value, the obtained total daily insulin value, and the obtained fasting insulin delivery data, wherein the maximum insulin infusion rate is applicable during a period of closed-loop operation of the insulin infusion device. 
     This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A more complete understanding of the subject matter may be derived by referring to the detailed description and claims when considered in conjunction with the following figures, wherein like reference numbers refer to similar elements throughout the figures. 
         FIG. 1  is a block diagram of a closed loop glucose control system in accordance with an embodiment of the present invention. 
         FIG. 2  is a front view of closed loop hardware located on a body in accordance with an embodiment of the present invention. 
         FIG. 3A  is a perspective view of a glucose sensor system for use in an embodiment of the present invention. 
         FIG. 3B  is a side cross-sectional view of the glucose sensor system of  FIG. 3A . 
         FIG. 3C  is a perspective view of a sensor set of the glucose sensor system of  FIG. 3A  for use in an embodiment of the present invention. 
         FIG. 3D  is a side cross-sectional view of the sensor set of  FIG. 3C . 
         FIG. 4  is a cross sectional view of a sensing end of the sensor of  FIG. 3D . 
         FIG. 5  is a top view of an infusion device with a reservoir door in the open position, for use in an embodiment of the present invention. 
         FIG. 6  is a side view of an infusion set with the insertion needle pulled out, for use in an embodiment of the present invention. 
         FIG. 7  is a circuit diagram of a sensor and its power supply in accordance with an embodiment of the present invention. 
         FIG. 8A  is a diagram of a single device and its components in accordance with an embodiment of the present invention. 
         FIG. 8B  is a diagram of two devices and their components in accordance with an embodiment of the present invention. 
         FIG. 8C  is another diagram of two devices and their components in accordance with an embodiment of the present invention. 
         FIG. 8D  is a diagram of three devices and their components in accordance with an embodiment of the present invention. 
         FIG. 9  is a table listing the devices of  FIGS. 8A-D  and their components. 
         FIG. 10  is a block diagram of the glucose sensor system of  FIG. 3A . 
         FIG. 11A  is a detailed block diagram of an A/D converter for the glucose sensor system of  FIG. 10  in accordance with an embodiment of the present invention. 
         FIG. 11B  is a detailed block diagram of the A/D converter for the glucose sensor system of  FIG. 10  with a pulse duration output selection option in accordance with an embodiment of the present invention. 
         FIG. 12  is a circuit diagram of an I-F A/D converter of  FIG. 10  accompanied by charts of node signals in accordance with an embodiment of the present invention. 
         FIG. 13  is another circuit diagram of an I-F A/D converter of  FIG. 10  accompanied by charts of node signals in accordance with an embodiment of the present invention. 
         FIG. 14  is still another circuit diagram of an I-F A/D converter of  FIG. 10  accompanied by charts of node signals in accordance with an embodiment of the present invention. 
         FIG. 15  is a circuit diagram of an I-V A/D converter of  FIG. 10  in accordance with an embodiment of the present invention. 
         FIG. 16  is a block diagram of the glucose sensor system of  FIG. 10  with a pre-filter and a filter in accordance with an embodiment of the present invention. 
         FIG. 17  is a chart of an example of a pre-filter of  FIG. 16  and its effects on digital sensor values Dsig in accordance with an embodiment of the present invention. 
         FIG. 18  is frequency response chart for a filter of  FIG. 16  in accordance with an embodiment of the present invention. 
         FIG. 19A  is a plot of a filtered and an unfiltered sensor signal over time in accordance with an embodiment of the present invention. 
         FIG. 19B  is close up of a section of the plot of  FIG. 19A  in accordance with an embodiment of the present invention. 
         FIG. 20  is a cross-sectional view of a sensor set and an infusion set attached to the body in accordance with an embodiment of the present invention. 
         FIG. 21  is a frequency response chart of a time delay correcting Weiner filter in accordance with an embodiment of the present invention. 
         FIG. 22  is a plot of a digital sensor values Dsig before and after time delay correction compared to actual glucose measurements over time in accordance with an embodiment of the present invention. 
         FIG. 23A  is a diagram of a glucose clamp (glucose level with respect to time). 
         FIG. 23B  is a plot of insulin concentration in a normal glucose tolerant (NGT) individual in response to various magnitudes of glucose clamps of  FIG. 23A . 
         FIG. 24A  is a diagram of a glucose clamp. 
         FIG. 24B  is a diagram of a proportional insulin response to the glucose clamp of  FIG. 24A  in accordance with an embodiment of the present invention. 
         FIG. 24C  is a diagram of an integral insulin response to the glucose clamp of  FIG. 24A  in accordance with an embodiment of the present invention. 
         FIG. 24D  is a diagram of a derivative insulin response to the glucose clamp of  FIG. 24A  in accordance with an embodiment of the present invention. 
         FIG. 24E  is a diagram of a combined proportional, integral, and derivative insulin response to the glucose clamp of  FIG. 24A  in accordance with an embodiment of the present invention. 
         FIG. 25A  is a plot of insulin responses to a glucose clamp for exercise trained and normal individuals. 
         FIG. 25B  is a bar chart of glucose uptake rates for exercise trained and normal individuals. 
         FIG. 26  is a block diagram of a closed loop system to control blood glucose levels through insulin infusion based on glucose level feedback in accordance with an embodiment of the present invention. 
         FIG. 27  is a detailed block diagram of the portion of the control loop of  FIG. 26  that is in the body in accordance with an embodiment of the present invention. 
         FIGS. 28A and 28B  are plots of measured insulin responses of two different normal glucose tolerant (NGT) individuals to a glucose clamp for use with an embodiment of the present invention. 
         FIG. 29A  is a plot of two different glucose sensor outputs compared to glucose meter readings during a glucose clamp in accordance with an embodiment of the present invention. 
         FIG. 29B  is a plot of actual insulin concentration in blood compared to a controller commanded insulin concentration in response to the glucose clamp of  FIG. 29A  in accordance with an embodiment of the present invention. 
         FIG. 30  is a top view of an end of a multi-sensor for measuring both glucose concentration and pH in accordance with an embodiment of the present invention. 
         FIG. 31A  is a representative drawing of blood glucose compared to sensor measured blood glucose over time in accordance with an embodiment of the present invention. 
         FIG. 31B  is a representative drawing of sensor sensitivity over the same period of time as  FIG. 31A  in accordance with an embodiment of the present invention. 
         FIG. 31C  is a representative drawing of sensor resistance over the same period of time as  FIG. 31A  in accordance with an embodiment of the present invention. 
         FIG. 32  is a block diagram using the derivative of sensor resistance to determine when to recalibrate or replace the sensor in accordance with an embodiment of the present invention. 
         FIG. 33A  is a plot of an analog sensor signal Isig over time in accordance with an embodiment of the present invention. 
         FIG. 33B  is a plot of sensor resistance over the same period of time as  FIG. 32A  in accordance with an embodiment of the present invention. 
         FIG. 33C  is a plot of the derivative of the sensor resistance of  FIG. 32B  in accordance with an embodiment of the present invention. 
         FIG. 34A  is a bottom view of a telemetered characteristic monitor in accordance with an embodiment of the present invention. 
         FIG. 34B  is a bottom view of a different telemetered characteristic monitor in accordance with an embodiment of the present invention. 
         FIG. 35A  is a drawing of a blood plasma insulin response to a glucose clamp in a normal glucose tolerant (NGT) individual in accordance with an embodiment of the present invention. 
         FIG. 35B  is a drawing of the blood plasma insulin response of  FIG. 35A  when delayed due to insulin being delivered to the subcutaneous tissue instead of directly into the blood stream in accordance with an embodiment of the present invention. 
         FIG. 36A  is a drawing of blood plasma insulin concentration over time after an insulin bolus is delivered directly into the blood stream in accordance with an embodiment of the present invention. 
         FIG. 36B  is a drawing of a blood plasma insulin concentration over time after an insulin bolus is delivered into the subcutaneous tissue in accordance with an embodiment of the present invention. 
         FIG. 37  is a block diagram of the closed loop system of  FIG. 26  with the addition of a post-controller compensator and a derivative filter in accordance with an embodiment of the present invention. 
         FIG. 38A  is a plot of sensor signal measurements and Via measurements with respect to time in accordance with an embodiment of the present invention. 
         FIG. 38B  is a plot of a measured counter electrode voltage Vcnt with respect to time in accordance with an embodiment of the present invention. 
         FIG. 38C  is a plot of calculated sensor sensitivity with respect to time in accordance with an embodiment of the present invention. 
         FIG. 38D  is a plot of a calculation of sensor resistance Rs 1  with respect to time in accordance with an embodiment of the present invention. 
         FIG. 38E  is a plot of another calculation of sensor resistance Rs 2  with respect to time in accordance with an embodiment of the present invention. 
         FIG. 38F  is a plot of the derivative of sensor resistance Rs 1  of  FIG. 38D  with respect to time in accordance with an embodiment of the present invention. 
         FIG. 38G  is a plot of the derivative of the sensor resistance Rs 2  of  FIG. 38E  with respect to time in accordance with an embodiment of the present invention. 
         FIG. 38H  is a plot of when sensors were replaced with respect to time in accordance with an embodiment of the present invention. 
         FIGS. 39A and 39B  are a block diagrams of a closed loop glucose control system in accordance with embodiments of the present invention. 
         FIG. 40  is a block diagram of auto blood withdrawal and return in accordance with an embodiment of the present invention. 
         FIG. 41A  is a plot actual blood glucose concentration in accordance with an embodiment of the present invention. 
         FIG. 41B  is a plot of actual insulin concentration in blood compared to a controller commanded insulin concentration in response to the blood glucose in  FIG. 41A  in accordance with an embodiment of the present invention. 
         FIG. 42  illustrates a control feedback block diagram of state variable feedback and in accordance with an embodiment of the present invention. 
         FIG. 43  is a plot of basal insulin delivery rate over time using different control gains in accordance with embodiments of the present invention. 
         FIG. 44  is a plot of subcutaneous insulin over time using different control gains in accordance with embodiments of the present invention. 
         FIG. 45  is a plot of plasma insulin over time using different control gains in accordance with embodiments of the present invention. 
         FIG. 46  is a plot of insulin effect over time using different control gains in accordance with embodiments of the present invention. 
         FIG. 47  is a plot of simulated glucose concentration over time using a PID controller with state variable feedback and a PID controller without state variable feedback in accordance with embodiments of the present invention. 
         FIG. 48  is a plot of simulated insulin delivery over time using a PID controller with state variable feedback and a PID controller without state variable feedback in accordance with embodiments of the present invention. 
         FIG. 49  is a block diagram that illustrates processing modules and algorithms of an exemplary embodiment of a closed-loop system controller. 
         FIG. 50  is a flow chart that illustrates an exemplary embodiment of a control process for an insulin infusion device. 
         FIG. 50A  is a flow chart that illustrates an exemplary embodiment of a closed-loop initiation process for an insulin infusion device. 
         FIG. 50B  is an exemplary timeline diagram that illustrates the temporal relationships for sensor calibration factors processed by a closed-loop initiation module. 
         FIG. 50C  is another exemplary timeline diagram that illustrates the temporal relationships for sensor calibration factors processed by a closed-loop initiation module. 
         FIG. 50D  is a flow chart that illustrates another exemplary embodiment of a closed-loop initiation process for an insulin infusion device. 
         FIG. 50E  is a flow chart that illustrates an exemplary embodiment of a closed-loop insulin control process for an insulin infusion device. 
         FIG. 50F  is a flow chart that illustrates an exemplary embodiment of a dynamic closed-loop start-up process for an insulin infusion device. 
         FIG. 51  is a graph of integral clip value versus sensor glucose levels. 
         FIG. 51A  is a block diagram that schematically illustrates an exemplary embodiment of an insulin limit module. 
         FIG. 51B  is a flow chart that illustrates an exemplary embodiment of a closed-loop insulin limit process. 
         FIG. 52  is a block diagram that schematically illustrates an exemplary embodiment of an insulin on board (IOB) compensation module. 
         FIG. 53  is a flow chart that illustrates an exemplary embodiment of an IOB compensation process. 
         FIG. 54  is a diagram that depicts certain time events associated with the operation of a model supervisor module. 
         FIG. 55  is a flow chart that illustrates an exemplary embodiment of a sensor model supervision process. 
         FIG. 56  is a flow chart that illustrates an exemplary embodiment of a sensor model training process, which may be performed in conjunction with the sensor model supervision process depicted in  FIG. 55 . 
         FIG. 57  is a diagram that illustrates two exemplary fault conditions that can be detected by the model supervisor module. 
     
    
    
     DETAILED DESCRIPTION 
     The following detailed description is merely illustrative in nature and is not intended to limit the embodiments of the subject matter or the application and uses of such embodiments. As used herein, the word “exemplary” means “serving as an example, instance, or illustration.” Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary or the following detailed description. 
     Techniques and technologies may be described herein in terms of functional and/or logical block components, and with reference to symbolic representations of operations, processing tasks, and functions that may be performed by various computing components or devices. Such operations, tasks, and functions are sometimes referred to as being computer-executed, computerized, software-implemented, or computer-implemented. It should be appreciated that the various block components shown in the figures may be realized by any number of hardware, software, and/or firmware components configured to perform the specified functions. For example, an embodiment of a system or a component may employ various integrated circuit components, e.g., memory elements, digital signal processing elements, logic elements, look-up tables, or the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. 
     When implemented in software or firmware, various elements of the systems described herein are essentially the code segments or instructions that perform the various tasks. The program or code segments can be stored in any tangible and non-transitory processor-readable medium. The “processor-readable medium” or “machine-readable medium” may include any medium that can store or transfer information. Examples of the processor-readable medium include an electronic circuit, a semiconductor memory device, a ROM, a flash memory, an erasable ROM (EROM), a floppy diskette, a CD-ROM, an optical disk, a hard disk, or the like. 
     The various tasks performed in connection with a process described herein may be performed by software, hardware, firmware, or any combination thereof. It should be appreciated that a described process may include any number of additional or alternative tasks, the tasks shown in a particular figure need not be performed in the illustrated order, and a described process may be incorporated into a more comprehensive procedure or process having additional functionality not described in detail herein. Moreover, one or more of the tasks shown in the figures could be omitted from an embodiment of a described process as long as the intended overall functionality remains intact. 
     As shown in the drawings for purposes of illustration, the invention is embodied in a closed loop infusion system for regulating the rate of fluid infusion into a body of a user based on feedback from an analyte concentration measurement taken from the body. In particular embodiments, the invention is embodied in a control system for regulating the rate of insulin infusion into the body of a user based on a glucose concentration measurement taken from the body. In preferred embodiments, the system is designed to model a pancreatic beta cell (β-cell). In other words, the system controls an infusion device to release insulin into a body of a user in a similar concentration profile as would be created by fully functioning human β-cells when responding to changes in blood glucose concentrations in the body. 
     Thus, the system simulates the body&#39;s natural insulin response to blood glucose levels and not only makes efficient use of insulin, but also accounts for other bodily functions as well since insulin has both metabolic and mitogenic effects. However, the algorithms must model the β-cells closely, since algorithms that are designed to minimize glucose excursions in the body, without regard for how much insulin is delivered, may cause excessive weight gain, hypertension, and atherosclerosis. In preferred embodiments of the present invention, the system is intended to emulate the in vivo insulin secretion pattern and to adjust this pattern consistent with the in vivo β-cell adaptation experienced by normal healthy individuals. The in vivo β-cell response in subjects with normal glucose tolerance (NGT), with widely varying insulin sensitivity (S I ), is the optimal insulin response for the maintenance of glucose homeostasis. 
     Preferred embodiments include a glucose sensor system  10 , a controller  12  and an insulin delivery system  14 , as shown in  FIG. 1 . The glucose sensor system  10  generates a sensor signal  16  representative of blood glucose levels  18  in the body  20 , and provides the sensor signal  16  to the controller  12 . The controller  12  receives the sensor signal  16  and generates commands  22  that are communicated to the insulin delivery system  14 . The insulin delivery system  14  receives the commands  22  and infuses insulin  24  into the body  20  in response to the commands  22 . 
     Generally, the glucose sensor system  10  includes a glucose sensor, sensor electrical components to provide power to the sensor and generate the sensor signal  16 , a sensor communication system to carry the sensor signal  16  to the controller  12 , and a sensor system housing for the electrical components and the sensor communication system. 
     Typically, the controller  12  includes controller electrical components and software to generate commands for the insulin delivery system  14  based on the sensor signal  16 , and a controller communication system to receive the sensor signal  16  and carry commands to the insulin delivery system  14 . 
     Generally, the insulin delivery system  14  includes an infusion device and an infusion tube to infuse insulin  24  into the body  20 . In particular embodiments, the infusion device includes infusion electrical components to activate an infusion motor according to the commands  22 , an infusion communication system to receive the commands  22  from the controller  12 , and an infusion device housing to hold the infusion device. 
     In preferred embodiments, the controller  12  is housed in the infusion device housing and the infusion communication system is an electrical trace or a wire that carries the commands  22  from the controller  12  to the infusion device. In alternative embodiments, the controller  12  is housed in the sensor system housing and the sensor communication system is an electrical trace or a wire that carries the sensor signal  16  from the sensor electrical components to the controller electrical components. In other alternative embodiments, the controller  12  has its own housing or is included in a supplemental device. In another alternative embodiment, the controller is located with the infusion device and the sensor system all within one housing. In further alternative embodiments, the sensor, controller, and/or infusion communication systems may utilize a cable, a wire, fiber optic lines, RF, IR, or ultrasonic transmitters and receivers, or the like instead of the electrical traces. 
     System Overview 
     Preferred embodiments of the invention include a sensor  26 , a sensor set  28 , a telemetered characteristic monitor  30 , a sensor cable  32 , an infusion device  34 , an infusion tube  36 , and an infusion set  38 , all worn on the body  20  of a user, as shown in  FIG. 2 . The telemetered characteristic monitor  30  includes a monitor housing  31  that supports a printed circuit board  33 , batteries  35 , antenna (not shown), and a sensor cable connector (not shown), as seen in  FIGS. 3A and 3B . A sensing end  40  of the sensor  26  has exposed electrodes  42  and is inserted through skin  46  into a subcutaneous tissue  44  of a user&#39;s body  20 , as shown in  FIGS. 3D and 4 . The electrodes  42  are in contact with interstitial fluid (ISF) that is present throughout the subcutaneous tissue  44 . The sensor  26  is held in place by the sensor set  28 , which is adhesively secured to the user&#39;s skin  46 , as shown in  FIGS. 3C and 3D . The sensor set  28  provides for a connector end  27  of the sensor  26  to connect to a first end  29  of the sensor cable  32 . A second end  37  of the sensor cable  32  connects to the monitor housing  31 . The batteries  35  included in the monitor housing  31  provide power for the sensor  26  and electrical components  39  on the printed circuit board  33 . The electrical components  39  sample the sensor signal  16  and store digital sensor values (Dsig) in a memory and then periodically transmit the digital sensor values Dsig from the memory to the controller  12 , which is included in the infusion device. 
     The controller  12  processes the digital sensor values Dsig and generates commands  22  for the infusion device  34 . Preferably, the infusion device  34  responds to the commands  22  and actuates a plunger  48  that forces insulin  24  out of a reservoir  50  located inside the infusion device  34 , as shown in  FIG. 5 . In particular embodiments, a connector tip  54  of the reservoir  50  extends through the infusion device housing  52  and a first end  51  of the infusion tube  36  is attached to the connector tip  54 . A second end  53  of the infusion tube  36  connects to the infusion set  38 . Insulin  24  is forced through the infusion tube  36  into the infusion set  38  and into the body  20 . The infusion set  38  is adhesively attached to the user&#39;s skin  46 , as shown in  FIG. 6 . As part of the infusion set  38 , a cannula  56  extends through the skin  46  and terminates in the subcutaneous tissue  44  completing fluid communication between the reservoir  50  and the subcutaneous tissue  44  of the user&#39;s body  20 . 
     In alternative embodiments, the closed-loop system can be a part of a hospital-based glucose management system. Given that insulin therapy during intensive care has been shown to dramatically improve wound healing, reduce blood stream infections, renal failure, and polyneuropathy mortality, irrespective of whether subjects previously had diabetes (See Van den Berghe G. et al., NEJM 345: 1359-67, 2001, which is incorporated by reference herein), the present invention can be used in this hospital setting to control the blood glucose level of a patient in intensive care. In these alternative embodiments, since an intravenous (IV) hookup is typically implanted into a patient&#39;s arm while the patient is in an intensive care setting (e.g., ICU), a closed loop glucose control can be established which piggy-backs off the existing IV connection. Thus, in a hospital based system, IV catheters which are directly connected to a patient vascular system for purposes of quickly delivering IV fluids, can also be used to facilitate blood sampling and direct infusion of substances (e.g., insulin, anticoagulants) into the intra-vascular space. Moreover, glucose sensors may be inserted through the IV line to give real-time glucose levels from the blood stream. Therefore, depending on the type of hospital based system, the alternative embodiments would not necessarily need the described system components such as the sensor  26 , the sensor set  28 , the telemetered characteristic monitor  30 , the sensor cable  32 , the infusion tube  36 , and the infusion set  38  as described in the preferred embodiments. Instead, standard blood glucose meters or vascular glucose sensors as described in provisional application entitled “Multi-lumen Catheter,” filed Sep. 27, 2002, Ser. No. 60/414,248, which is incorporated herein in its entirety by reference, can be used to provide the blood glucose values to the infusion pump control and the existing IV connection can be used to administer the insulin to the patient. 
     It is important to appreciate that numerous combinations of devices in the hospital-based system can be used with the closed loop controller of the present invention. For example, as described in  FIG. 39B  compared to the preferred system in  FIG. 39A , an auto blood glucose/intravenous insulin infusion system can automatically withdraw and analyze blood for glucose concentration at fixed intervals (preferably 5-20 minutes), extrapolate the blood glucose values at a more frequent interval (preferably 1 minute), and use the extrapolated signal for calculating an IV-insulin infusion according to the controller described below. The modified auto blood glucose/intravenous insulin infusion system would eliminate the need for subcutaneous sensor compensation and subcutaneous insulin compensation (as described with regards to the lead-lag compensator below). The automatic withdrawal of blood, and subsequent glucose determination can be accomplished with existing technology (e.g. VIA or Biostator like blood glucose analyzer) or by the system described in  FIG. 40 . The system in  FIG. 40  uses a peristaltic pump  420  to withdraw blood across an amperometric sensor  410  (the same technology as used in sensor  26 ) and then return the blood with added flush (0.5 to 1.0 ml) from the reservoir  400 . The flush can consist of any makeup of saline, heparin, glucose solution and/or the like. If the blood samples are obtained at intervals longer than 1 minute but less than 20 minutes, the blood glucose determinations can be extrapolated on a minute-to-minute basis with extrapolation based on the present (n) and previous values (n−1) to work with the logic of the controller as described in detail below. For blood samples obtained at intervals greater than 20 minutes, a zero-order-hold would be used for the extrapolation. Based on these blood glucose values, the infusion device can administer insulin based on the closed loop controller described in greater detail below. 
     In other modifications to the system, a manual blood glucose/intravenous insulin infusion system can be used where frequent manual entry of blood glucose values from a standard blood glucose meter (e.g., YSI, Beckman, etc.) and extrapolate the values at more frequent intervals (preferably 1 min) to create a surrogate signal for calculating IV-insulin infusion. Alternatively, a sensor blood glucose/intravenous insulin infusion system can use a continuous glucose sensor (e.g., vascular, subcutaneous, etc.) for frequent blood glucose determination. Moreover, the insulin infusion can be administered subcutaneously rather than intravenously in any one of the previous examples according to the controller described below. 
     In still further alternative embodiments, the system components may be combined in a smaller or greater number of devices and/or the functions of each device may be allocated differently to suit the needs of the user. 
     Controller 
     Once the hardware for a closed loop system is configured, such as in the preferred embodiments described above, the effects of the hardware on a human body are determined by the controller. In preferred embodiments, the controller  12  is designed to model a pancreatic beta cell (β-cell). In other words, the controller  12  commands the infusion device  34  to release insulin  24  into the body  20  at a rate that causes the insulin concentration in the blood to follow a similar concentration profile as would be caused by fully functioning human β-cells responding to blood glucose concentrations in the body  20 . In further embodiments, a “semi-closed-loop” system may be used, in which the user is prompted to confirm insulin delivery before any insulin is actually delivered. 
     A controller that simulates the body&#39;s natural insulin response to blood glucose levels not only makes efficient use of insulin but also accounts for other bodily functions as well since insulin has both metabolic and mitogenic effects. Controller algorithms that are designed to minimize glucose excursions in the body without regard for how much insulin is delivered may cause excessive weight gain, hypertension, and atherosclerosis. In preferred embodiments, of the present invention, the controller  12  is intended to emulate the in vivo insulin secretion pattern and to adjust this pattern to be consistent with in vivo β-cell adaptation. The in vivo β-cell response in subjects with normal glucose tolerance (NGT), with widely varying insulin sensitivity (S I ), is the optimal insulin response for the maintenance of glucose homeostasis. 
     The β-Cell and PID Control 
     Generally, the in vivo β-cell response to changes in glucose is characterized by “first” and “second” phase insulin responses. This biphasic insulin response is clearly seen during hyperglycemic clamps applied to NGT subjects, as shown in  FIG. 23B . During a hyperglycemic clamp the glucose level is rapidly increased from a basal level G B  to a new higher level G C  and then held constant at the higher-level G C  as shown in  FIG. 23A . The magnitude of the increase in glucose (ΔG) affects the insulin response. Four insulin response curves are shown for four different glucose clamp levels in  FIG. 23B . 
     The biphasic insulin response of a β-cell can be modeled using components of a proportional, plus integral, plus derivative (PID) controller. A PID controller is selected since PID algorithms are stable for a wide variety of non-medical dynamic systems, and PID algorithms have been found to be stable over widely varying disturbances and changes in system dynamics. 
     The insulin response of β-cells during a hyperglycemic clamp is diagrammed in  FIGS. 24A-E  using the components of a PID controller to model the β-cell. A proportional component U P  and a derivative component U D  of the PID controller may be combined to represent a first phase insulin response  440 , which lasts several minutes. An integral component U I  of the PID controller represents a second phase insulin response  442 , which is a steady increase in insulin release under hyperglycemic clamp conditions. The magnitude of each component&#39;s contribution to the insulin response is described by the following equations: 
     Proportional Component Response: U P =K P (G−G B ) 
     Integral Component Response: U I =K I ∫ t     0     t (G−G B )dt+I B , and 
     Derivative Component Response: 
     
       
         
           
             
               
                 U 
                 D 
               
               = 
               
                 
                   K 
                   D 
                 
                 ⁢ 
                 
                   
                     d 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     G 
                   
                   
                     d 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     t 
                   
                 
               
             
             , 
           
         
       
     
     Where 
     U P  is the proportional component of the command sent to the insulin delivery system, 
     U I  is the integral component of the command sent to the insulin delivery system, 
     U D  is the derivative component of the command sent to the insulin delivery system, 
     K P  is a proportional gain coefficient, 
     K I  is an integral gain coefficient, 
     K D  is a derivative gain coefficient, 
     G is a present blood glucose level, 
     G B  is a desired basal glucose level, 
     t is the time that has passed since the last sensor calibration, 
     t 0  is the time of the last sensor calibration, and 
     I B  is a basal insulin concentration at t 0 , or can also be described as U I (t 0 ). 
     The combination of the PID components that model the two phases of insulin response by a β-cell is shown in  FIG. 24E  as it responds to the hyperglycemic clamp of  FIG. 24A .  FIG. 24E  shows that the magnitude of the first phase response  440  is driven by the derivative and proportional gains, K D  and K P . And the magnitude of the second phase response  442  is driven by the integral gain K I . 
     The components of the PID controller can also be expressed in its discrete form: 
     Proportional Component Response: P con   n =K P (SG f   n −G sp ) 
     Integral Component Response: I con   n =I con   n−1 +K I (SG f   n −G sp ); I con   0 =I b    
     Derivative Component Response: D con   n =K D dGdt f   n    
     Where K P , K I , and K D  are the proportional, integral, and derivative gain coefficients, SG f  and dGdt f  are the filtered sensor glucose and derivative respectively, and the superscript n refers to discrete time. 
     An acute insulin response is essential for preventing wide postprandial glycemic excursions. Generally, an early insulin response to a sudden increase in glucose level results in less total insulin being needed to bring the glucose level back to a desired basal glucose level. This is because the infusion of insulin increases the percentage of glucose that is taken up by the body. Infusing a large amount of insulin to increase the percentage of glucose uptake while the glucose concentration is high results in an efficient use of insulin. Conversely, infusing a large amount of insulin while the glucose concentration is low results in using a large amount of insulin to remove a relatively small amount of glucose. In other words, a larger percentage of a big number is more than a larger percentage of a small number. The infusion of less total insulin helps to avoid development of insulin resistance in the user. As well, first-phase insulin is thought to result in an early suppression of hepatic glucose output. 
     Insulin sensitivity is not fixed and can change dramatically in a body depending on the amount of exercise by the body. In one study, for example, insulin responses in highly exercise-trained individuals (individuals who trained more than 5 days a week) were compared to the insulin responses in subjects with normal glucose tolerance (NGT) during a hyperglycemic clamp. The insulin response in exercise-trained individuals  444  was about one-half of the insulin response of the NGT subjects  446 , as shown in  FIG. 25A . But the glucose uptake rate for each of the individuals (exercise-trained  448  or normal  450 ) was virtually identical, as shown in  FIG. 25B . Thus, it can be speculated that the exercise-trained individuals have twice the insulin sensitivity and half of the insulin response leading to the same glucose uptake as the NGT individuals. Not only is the first phase insulin response  440  reduced due to the effects of exercise, but the second phase insulin response  442  has also been shown to adjust to insulin sensitivity, as can be seen in  FIG. 25A . 
     In preferred embodiments, a closed loop control system may be used for delivering insulin to a body to compensate for β-cells that perform inadequately. There is a desired basal blood glucose level G B  for each body. The difference between the desired basal blood glucose level G B  and an estimate of the present blood glucose level G is the glucose level error G E  that must be corrected. The glucose level error G E  is provided as an input to the controller  12 , as shown in  FIG. 26 . 
     If the glucose level error G E  is positive (meaning that the present estimate of the blood glucose level G is higher than the desired basal blood glucose level G B ) then the controller  12  generates an insulin delivery command  22  to drive the infusion device  34  to provide insulin  24  to the body  20 . In terms of the control loop, glucose is considered to be positive, and therefore insulin is negative. The sensor  26  senses the ISF glucose level and generates a sensor signal  16 . The sensor signal  16  is filtered and calibrated to create an estimate of the present blood glucose level  452 . In particular embodiments, the estimate of the present blood glucose level G is adjusted with correction algorithms  454  before it is compared to the desired basal blood glucose level G B  to calculate a new glucose level error G E  to start the loop again. 
     If the glucose level error G E  is negative (meaning that the present estimate of the blood glucose level is lower than the desired basal blood glucose level G B ) then the controller  12  reduces or stops the insulin delivery depending on whether the integral component response of the glucose error G E  is still positive. 
     If the glucose level error G E  is zero, (meaning that the present estimate of the blood glucose level is equal to the desired basal blood glucose level G B ) then the controller  12  may or may not issue commands to infuse insulin depending on the derivative component (whether the glucose level is raising or falling) and the integral component (how long and by how much glucose level has been above or below the basal blood glucose level G B ). In “semi-closed loop” embodiments, the user is prompted before the controller  12  issues the commands to infuse insulin. The prompts may be displayed to the user on a display, sounded to the user, or otherwise provide an indication to the user that the system is ready to deliver insulin, for example a vibration or other tactile indication. In addition, the amount of insulin to be delivered may be displayed, with or without other information, such as the total amount infused for the day or the potential effect on the user&#39;s blood glucose level by the insulin delivery. In response, the user may indicate that the insulin should or should not be delivered, for example by selecting a button, key, or other input. In further embodiments, there must be at least two keystrokes so that insulin is not delivered by accident. 
     To more clearly understand the effects that the body has on the control loop, a more detailed description of the physiological effects that insulin has on the glucose concentration in the interstitial fluid (ISF) is needed. In preferred embodiments, the infusion device  34  delivers insulin through the cannula  56  of the infusion set  38  into the ISF of the subcutaneous tissue  44  of the body  20 . And the insulin  24  diffuses from the local ISF surrounding the cannula into the blood plasma and then spreads throughout the body  20  in the main circulatory system, as described in the block diagram of  FIG. 27 . The insulin then diffuses from the blood plasma into the interstitial fluid ISF substantially throughout the entire body. The insulin  24  binds with and activates membrane receptor proteins on cells of body tissues. This facilitates glucose permeation into the activated cells. In this way, the tissues of the body  20  take up the glucose from the ISF. As the ISF glucose level decreases, glucose diffuses from the blood plasma into the ISF to maintain glucose concentration equilibrium. Finally, the glucose in the ISF permeates the sensor membrane and affects the sensor signal  16 . 
     In addition, insulin has direct and indirect effects on liver glucose production. Increased insulin concentration decreases liver glucose production. Therefore, acute and immediate insulin response not only helps the body to efficiently take up glucose but also substantially stops the liver from adding to the glucose in the blood stream. In alternative embodiments, insulin is delivered more directly into the blood stream instead of into the interstitial fluid, such as delivery into veins, arteries, the peritoneal cavity, or the like. And therefore, any time delay associated with moving the insulin from the interstitial fluid into the blood plasma is diminished. In other alternative embodiments, the glucose sensor is in contact with blood or body fluids other than interstitial fluid, or the glucose sensor is outside of the body and measures glucose through a non-invasive means. The embodiments that use alternative glucose sensors may have shorter or longer delays between the blood glucose level and the measured blood glucose level. 
     Selecting Controller Gains 
     In preferred embodiments, the controller gains K P , K I , and K D , are selected so that the commands from the controller  12  cause the infusion device  34  to release insulin  24  into the body  20  at a rate, that causes the insulin concentration in the blood to follow a similar concentration profile, as would be caused by fully functioning human β-cells responding to blood glucose concentrations in the body. In preferred embodiments, the gains may be selected by observing the insulin response of several normal glucose tolerant (NGT) individuals, with healthy normally functioning β-cells. The first step in determining a set of controller gains is to take periodic measurements of blood glucose and blood insulin concentrations from the group of NGT individuals. Second, each individual in the group is subjected to a hyperglycemic clamp, while continuing to periodically measure and record the blood glucose and blood insulin concentrations. Third, a least squares curve fit is applied to the recorded blood insulin concentrations measured over time for each individual. The result is a set of curves representing the insulin responses to the hyperglycemic clamp for each individual of the group. Fourth, the curves are used to calculate the controller gains K P , K I , and K D , for each individual. And finally, the proportional gains from each of the individuals are averaged together to obtain an average proportional gain, K P , to be used in a controller  12 . Similarly, the integral gains, K I , and the derivative gains, K D , are averaged to obtain an average integral gain, K I , and an average derivative gain, K D , for the controller  12 . Alternatively, other statistical values may be used instead of averages such as, maximums, minimums, the high or low one, two or three sigma standard deviation values, or the like. The gains calculated for various individuals in a group may be filtered to remove anomalous data points before statistically calculating the gains to be used in a controller. 
     In an example, a least squares curve-fitting method is used to generate representative insulin response curves from two fasted individuals in a group, as shown in  FIGS. 28A  and B. Then the controller gains were calculated from the insulin response curves of the two representative individuals and are shown in Table 1. When calculating the controller gains, the insulin clearance rate (k), was assumed to be 10 (ml of insulin)/min/(kg. of body weight). The insulin clearance rate k is the rate that insulin is taken out of the blood stream in a body. Finally, the average value for each type of gain is calculated using the measurements from the group, as shown in Table 1. 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 PID Controller Gains Calculated From The Insulin 
               
               
                 Response Curves Of Two NGT Individuals 
               
            
           
           
               
               
               
               
            
               
                   
                 Proportional Gain, 
                 Integral Gain, 
                 Derivative Gain, 
               
               
                 Individuals 
                 K P   
                 K I   
                 K D   
               
               
                   
               
               
                 a 
                 0.000406 
                 0.005650 
                 0.052672 
               
               
                 b 
                 0.000723 
                 0.003397 
                 0.040403 
               
               
                 Average 
                 0.000564 
                 0.004523 
                 0.046537 
               
               
                   
               
            
           
         
       
     
     The controller gains may be expressed in various units and/or may be modified by conversion factors depending on preferences for British or S. I. Units, floating-point or integer software implementation, the software memory available, or the like. The set of units for the controller gains in Table 1 is: 
     K P : (mU of insulin)/min/(Kg of body weight) per (mg of glucose)/(dl of plasma); 
     K I : (mU of insulin)/min/(Kg of body weight) per (mg of glucose)/(dl of plasma) min.; and 
     K D : (mU of insulin)/min/(Kg of body weight) per (mg of glucose)/(dl of plasma)/min. 
     In alternative embodiments, other curve fitting methods are used to generate the insulin response curves from the measurements of blood insulin concentrations. 
     An estimate of an insulin clearance rate (k), the individual&#39;s body weight (W), and the insulin sensitivity S I  are needed to calculate the controller gains from the insulin response curves for each NGT individual. The insulin clearance rate (k) is generally proportional to body weight and is well documented in literature. The individual&#39;s insulin sensitivity S I  may be measured using an intravenous glucose tolerance test, a hyperinsulinemic clamp, or in the case of a diabetic, comparing the individual&#39;s daily insulin requirement to their daily carbohydrate intake. 
     In particular embodiments, two parameters, the insulin sensitivity S I  and the insulin clearance rate k, are measured for each individual. In other embodiments, the insulin clearance rate k is estimated from literature given the individual&#39;s body weight. In other particular embodiments, longer or shorter insulin clearance times are used. In still other embodiments, all of the parameters are estimated. In additional embodiments, one or more parameters are measured, while at least one parameter is estimated from literature. 
     In other alternative embodiments, the controller gains are calculated using a group of individuals with similar body types. For example, the insulin response to a hyperglycemic clamp may be measured for several tall, thin, NGT, males in order to calculate the controller insulin response gains for each individual in the group. Then the gains are statistically combined to generate a set of representative controller gains for tall, thin, NGT, males. The same could be done for other groups such as, but not limited to, short, heavy, NGT, females; medium height, medium weight, highly exercised trained, females; average height and weight 10 year olds; or the like. Then the controller gains are selected for each individual user based on the group that best represents them. In further alternative embodiments, controller gains are uniquely selected for each individual user. In particular embodiments, the controller gains for a user are selected based on measurements of insulin sensitivity, insulin clearing time, insulin appearance time, insulin concentration, body weight, body fat percentage, body metabolism, or other body characteristics such as pregnancy, age, heart conditions, or the like. 
     In other alternative embodiments, the controller gains are estimated as a function of a user&#39;s body weight W and insulin sensitivity S I . A series of observations are used to justify this method. The first observation is that the controller gains are proportional to each other. In other words, small changes in glucose concentration cause a small derivative response U D , a small proportional response U P  and a small integral response U I . And larger changes in glucose concentration cause a proportionally larger derivative response U D , a proportionally larger proportional U P  response and a proportionally larger integral response U I , as shown in  FIG. 23B . Changes in the glucose concentration proportionally affect all three components of the controller response U PID . The second observation is that the first phase insulin response (φ 1 ) is proportional to the derivative gain K D . And the third observation is that two constants may be readily obtained from information in published literature or may be measured from a cross-section of the general population. The two constants are the insulin clearance rate (k) for a human given a body weight and the disposition index (DI) for a human given a change in glucose concentration. 
     While there are multiple sources for the information needed to calculate the insulin clearance rate k, one source is the article “Insulin clearance during hypoglycemia in patients with insulin-dependent diabetes mellitus”, written by Kollind M et al., published in Horm Metab Res, 1991 July; 23(7):333-5. The insulin clearance rate k is obtained from the insulin infused divided by the steady state plasma insulin concentration. An insulin clearance constant A k , which is independent of an individual&#39;s body weight, may be obtained by dividing the insulin clearance rate k (measured from a particular individual) by the individual&#39;s body weight. The insulin clearance constant A k  is generally the same for all humans, except under extenuating circumstances such as after an individual has contracted HIV, other metabolic affecting diseases, or the like. 
     The disposition index (DI) for a human given a change in glucose concentration is available from information presented in the article “Quantification of the relationship between insulin sensitivity and beta-cell function in human subjects. Evidence for a hyperbolic function”, written by Khan S E et al., published in Diabetes, 1993 November; 42(11):1663-72. 
     Both the disposition index DI and the insulin clearance rate k may be measured directly from tests. The disposition index DI may be calculated given the first phase insulin response measured form a glucose clamp test and the individual&#39;s insulin sensitivity measured from an insulin sensitivity test. The insulin clearance rate k may be measured from an insulin clearance test. The glucose clamp test and the insulin clearance test are described in the above-mentioned articles and are well known in the art. The insulin sensitivity S I  may be measured using an intravenous glucose tolerance test or a hyperinsulinemic clamp test. 
     Given these observations, then the following parameters may be measured from an NGT individual&#39;s insulin response to a glucose clamp: a desired first phase insulin response φ 1 , the ratio of K D  to K P , and the ratio of K D  to K I . Then the derivative gain K D  may be calculated from the first phase insulin response φ 1  using the constants k and DI. And finally K P  and K I  may be calculated using the ratios of K D  to K P  and K D  to K I . 
     The first phase insulin response φ 1  may be observed in a NGT individual as the area under the insulin response curve during approximately the first 10 minutes of a glucose clamp. The increase in the glucose concentration during the glucose clamp is ΔG=(G−GB), where G is equal to Gc, the glucose concentration during the clamp, and G B  is the basal glucose concentration before the clamp. 
     The importance of the first phase insulin response φ 1  has been emphasized by studies indicating that, in subjects with normal glucose tolerance (NGT), the product of first phase insulin response φ 1  and insulin sensitivity (S I ) is a constant known as the disposition index, DI=φ1S I . Therefore, 
     
       
         
           
             
               ϕ 
               ⁢ 
               
                   
               
               ⁢ 
               1 
             
             = 
             
               
                 
                   D 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   I 
                 
                 
                   S 
                   I 
                 
               
               . 
             
           
         
       
     
     For a different ΔG there is a different φ 1  and therefore a different DI. But, the ratio DI/ΔG is substantially constant even for different individuals with different insulin sensitivities. 
     The insulin sensitivity S I  is defined as the percentage of the glucose concentration that the body tissues will take up for a given amount of insulin. The β-cell naturally adapts to changes in insulin sensitivity by adjusting the amount of insulin it secretes during the first phase insulin response φ 1 . This suggests that the body naturally seeks an optimal level of glucose tolerance. A controller that mimics this characteristic of the β-cell more accurately simulates the body&#39;s natural insulin response. 
     The instantaneous insulin response (RI) may be calculated given the insulin clearance rate (k) and the first phase insulin response φ 1 , RI=kφ 1 . 
     The insulin clearance rate k is proportional to body weight (W), therefore substituting a proportional constant A k  and the user&#39;s body weight W for k and replacing φ 1  with the ratio of DI over S I  yields the following equation: 
     
       
         
           
             
               R 
               I 
             
             = 
             
               
                 A 
                 k 
               
               ⁢ 
               W 
               ⁢ 
               
                 
                   DI 
                   
                     S 
                     I 
                   
                 
                 . 
               
             
           
         
       
     
     The instantaneous insulin response R I  may also be expressed as the product of the derivative gain K D  and the change in glucose concentration ΔG, R I =K D ΔG. 
     Setting the two equations for R I  equal to each other and solving for K D  yields, 
     
       
         
           
             
               K 
               D 
             
             = 
             
               
                 W 
                 
                   S 
                   I 
                 
               
               ⁢ 
               
                 
                   
                     
                       A 
                       k 
                     
                     ⁢ 
                     D 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     I 
                   
                   
                     Δ 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     G 
                   
                 
                 . 
               
             
           
         
       
     
     As mentioned above, DI/ΔG and A k  are constants available or calculated from data in published literature. Combining the constants into a single constant, Q, 
               Q   =         A   k     ⁢   D   ⁢           ⁢   I       Δ   ⁢           ⁢   G         ,         
yields an equation for the derivative gain K D  that is a function of the user&#39;s body weight W and the user&#39;s insulin sensitivity S I ,
 
     
       
         
           
             
               K 
               D 
             
             = 
             
               
                 W 
                 
                   S 
                   I 
                 
               
               ⁢ 
               
                 Q 
                 . 
               
             
           
         
       
     
     Once the derivative gain K D  is calculated, the proportional and integral gains are calculated using ratios. The ratio of K D /K P  can be set to the dominant time constant for insulin action, ranging from 10-60 minutes, but more typically 20-40 minutes and preferably 30 minutes. For example, calculating K P  given K D  using a time constant of 30 minutes, yields the following relationship: 
                 K   D       K   P       =       30   ⇒     K   P       =         K   D     30     .             
In a similar fashion, the ratio of K D /K I  can be set to the average ratio measured from a population of NGT individuals. And K I  can be calculated from K D .
 
     In particular embodiments, the user enters their body weight W and insulin sensitivity S I  into the device that contains the controller. Then the controller gains are automatically calculated and used by the controller. In alternative embodiments, an individual enters the user&#39;s body weight W and insulin sensitivity S I  into a device and the device provides the information to the controller to calculate the gains. 
     A study was conducted to confirm that the insulin response for an individual could be reproduced using the glucose sensor as an input. In the study, glucose and insulin measurements were taken while a hyperglycemic clamp was applied to a NGT individual. The glucose level measurements, shown in  FIG. 29A , were used as the inputs to a mathematical model created to simulate a PID insulin response controller. The insulin dosing commanded by the controller in response to the glucose clamp very closely approximates the actual insulin appearance in the NGT individual, as shown in  FIG. 29B . The insulin concentration measured from periodic blood samples  456  taken from the individual during the test are represented by dots in  FIG. 29B . The output from the mathematical model simulating the insulin response commanded by the controller is shown as a solid line  458  in  FIG. 29B . 
     Three different devices were used to measure the individual&#39;s blood glucose during the study. Blood glucose meter readings  460  from periodic blood samples taken from the individual are represented by the dots in  FIG. 29A . Two MiniMed sensors (such as those described in the section entitled “sensor”, below) were placed in the individual&#39;s subcutaneous tissue, and the sensor readings  462 ,  464  are shown as lines in  FIG. 29A . The sensor readings  462 ,  464  are slightly delayed compared to the meter readings  460 . The delay is most likely due to the delay between blood glucose and interstitial fluid (ISF) glucose and can be substantially corrected through the use of a filter if needed. In this study, the delay was not corrected by a filter and did not significantly affect the controller&#39;s ability to command an insulin response that matches the natural response of the NGT individual. This study indicates that the PID insulin response controller model is a good minimal model of insulin secretion that captures the biphasic response of healthy β-cells. Correction of the delay is only expected to increase the accuracy of the model. 
     Fuzzy Logic to Select Between Multiple Sets of Controller Gains 
     In preferred embodiments, one set of controller gains is used for a particular individual. In alternative embodiments, more than one set of controller gains is used, and fuzzy logic is used to select between sets of controller gains and to determine when to change from one set of controller gains to another. In particular alternative embodiments, the controller gains are different if the glucose level is above or below the desired glucose basal level. In other alternative embodiments, the controller gains are different if the glucose level is increasing or decreasing. A justification for different sets of gains comes from physiological studies that indicate that β-cells turn off faster than they turn on. In still other alternative embodiments, the controller gains are different depending on whether the glucose level is above or below the desired glucose basal level and whether the glucose level is increasing or decreasing, which results in four sets of controller gains. In additional alternative embodiments, the controller gains change depending on the magnitude of the hypoglycemic excursion. In other words, the controller gains for small changes in glucose are different than those for large changes in glucose. 
     Self-Tuning Controller Gains 
     Further embodiments may include a controller that self-tunes one or more the gains, K P , K I , K D  to accommodate changes in insulin sensitivity. In particular embodiments, previous measurements of glucose levels are compared to the desired basal glucose level G B . For example, the desired basal glucose level G B  is subtracted from the previous glucose level measurements. Then any negative values, within a predefined time window, are summed (in essence integrating the glucose level measurements that were below the basal glucose level G B ). If the resulting sum is greater than a pre-selected hypoglycemic integral threshold, then the controller gains are increased by a factor (1+α). Conversely, if the integral of the glucose level measurements that were measured above the basal glucose level G B  within the predefined time window is greater than a pre-selected hyperglycemic integral threshold, then the controller gains are decreased by a factor (1−α). 
     In particular embodiments, the predefined time window over which the glucose concentration integrals are evaluated is generally 24 hours, and the controller gains are adjusted if needed at the end of each predefined time window. In alternative embodiments, the integrals of the glucose level measurements are continuously calculated over a moving window of time, and if either integral exceeds a threshold, the gains are immediately adjusted. In particular embodiments, the moving time window is one hour, and the time window may be restarted whenever the gains are adjusted. In other alternative embodiments, the time window is longer or shorter depending on the sensor accuracy, the rate at which an individual&#39;s insulin sensitivity changes, the computational capabilities of the hardware, or the like. 
     In particular embodiments, the adjustment amount (α) is 0.01. In alternative embodiments, the adjustment amount α is greater or smaller depending on the sensor accuracy, the rate at which an individual&#39;s insulin sensitivity changes, the rate at which the sensor sensitivity S I  changes, or the like. In still other alternative embodiments, the adjustment amount α is made larger or smaller depending on the amount that the integral of the measured glucose levels exceeds a threshold. In this way, the gains are adjusted by greater amounts if the measured glucose level G is significantly deviating from the desired blood glucose level G B  and less if the measured glucose level G is closer to the desired blood glucose level G B . In additional alternative embodiments, the controller employs a Kalman filter. 
     State Variable Feedback 
     While the primary signal determining the β-cell&#39;s insulin response is glucose, there also exists a putative effect of insulin per se to inhibit insulin secretion. This effect may be directly related to the concentration of insulin in plasma (IP(t)), or mediated through some signal proportional to insulin effect (IEFF(t)). The β-cell can likely directly sense these signals (i.e., directly sense insulin concentration and secondary signals proportional to insulin effect such as free fatty acid). Feedback from these intermediary signals is analogous to what is known as state variable feedback; that is feedback, whereby the variable being controlled (glucose in this case) is used together with feedback of each intermediary signal that affects the variable (insulin concentration in plasma and interstitial fluid). With this type of feedback, undesirable slow kinetic process can be made to appear much faster than they are. For example, if β-cell insulin secretion were inhibited by a signal proportional to insulin concentration in the interstitial fluid where it acts, the delay between plasma and interstitial insulin could be made to appear to be shorter. For the artificial closed-loop algorithm, or for “semi-closed-loop” algorithms, this beneficial effect can be achieved by using “state observers” (mathematical equations that predict the insulin concentration in various parts of the body knowing the history of past insulin delivery). In “semi-closed loop” algorithms, the algorithms are the same as for closed loop algorithms but there is a user confirmation step before any insulin is actually administered. By using state variable feedback, it is possible to make the insulin in an insulin pump act faster than the insulin actually is. 
     To estimate subcutaneous insulin concentration, plasma insulin concentration, and insulin effect, the following equations may be used: 
     
       
         
           
             
               
                 d 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   I 
                   SC 
                 
               
               
                 d 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 t 
               
             
             = 
             
               
                 α 
                 1 
               
               ⁡ 
               
                 ( 
                 
                   
                     I 
                     D 
                   
                   - 
                   
                     I 
                     SC 
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               
                 d 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   I 
                   P 
                 
               
               
                 d 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 t 
               
             
             = 
             
               
                 α 
                 2 
               
               ⁡ 
               
                 ( 
                 
                   
                     I 
                     SC 
                   
                   - 
                   
                     I 
                     P 
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               
                 d 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   I 
                   EF 
                 
               
               
                 d 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 t 
               
             
             = 
             
               
                 α 
                 3 
               
               ⁡ 
               
                 ( 
                 
                   
                     I 
                     P 
                   
                   - 
                   
                     I 
                     EF 
                   
                 
                 ) 
               
             
           
         
       
     
     Wherein I SC  is the estimate of normalized insulin concentration in the subcutaneous space, I P  is the estimate of normalized insulin concentration in the plasma, I EF  is the estimate of insulin effect on glucose, α 1  is the rate constant between insulin delivery and the subcutaneous insulin compartment, α 2  is the rate constant between subcutaneous insulin and plasma compartments, α 3  is the rate constant between the plasma compartment and the insulin effect. I D  is the delivered insulin, which can be a function of the three state variables (I SC , I P , and I EF ). 
     In particular embodiments, an open loop fixed base rate plus user requested bolus would result in the bolus being increased a certain amount and the basal rate subsequently decreased the same amount in accordance to the following formula:
 
 I   D ′=(1+γ 1 +γ 2 +γ 3 )/I D −γ 1   I   SC −γ 2   I   P −γ 3   I   EF  
 
     Wherein I D  is the user requested basal (U/h) plus bolus (U) profile and I D ′ is the state feedback adjusted profiles. Note that for a given kinetic excursion the total amount of insulin requested (area under curve of I D ) and delivered (area under curve of I D ′) is identical. Here, γ 1 , γ 2 , and γ 3  are state-feedback gains (scalars). Careful choice of these gains the pump to correct its delivery rate to compensate for delays associated with the dispersion of insulin from the bolus injection into the subcutaneous layer of the patient, to the plasma, and to its actual insulin effect/action on the body. Thus, by estimating how much insulin from a bolus is in the subcutaneous layer, the plasma, or is actually acting on the patient&#39;s glucose level (state variables I SC , I P  and I EF ), it is possible to optimize delivery of insulin over time to the patient. Using state feedback the bolus is increased by an amount (1+γ 1 +γ 2 +γ 3 ) that is gradually taken away from future insulin delivery (−γ 1 I SC −γ 2 I P −γ 3 I EF ). As a result, the apparent insulin pharmokinetic curve appears faster. This is akin to developing a faster acting insulin, but it is achieved algorithmically by rearranging the distribution of the insulin delivery per unit bolus by delivering more upfront and removing the extra amount at a later time. The three gains can be chosen to move the time delays (1/α 1 , 1/α 2 , and 1/α 3 ) to any arbitrary locations. In control theory, this is known as pole placement. 
     State feedback can be used in open loop and closed loop insulin delivery algorithms and with “semi-closed-loop” delivery algorithms. State feedback can be used in conjunction with a Proportional-Integral-Derivative (PID) or any other type of closed loop controller. γ 1  is the feedback gain multiplied to I SG , γ 2  is the feedback gain multiplied to I P , and γ 3  is the feedback gain multiplied to I EF . 
     The physical state space form directly taken from the equations above is: 
     
       
         
           
             { 
             
               
                 
                   
                     
                       
                         [ 
                         
                           
                             
                               
                                 
                                   I 
                                   . 
                                 
                                 SC 
                               
                             
                           
                           
                             
                               
                                 
                                   I 
                                   . 
                                 
                                 P 
                               
                             
                           
                           
                             
                               
                                 
                                   I 
                                   . 
                                 
                                 EF 
                               
                             
                           
                         
                         ] 
                       
                       = 
                       
                         
                           
                             [ 
                             
                               
                                 
                                   
                                     - 
                                     
                                       α 
                                       1 
                                     
                                   
                                 
                                 
                                   0 
                                 
                                 
                                   0 
                                 
                               
                               
                                 
                                   
                                     α 
                                     2 
                                   
                                 
                                 
                                   
                                     - 
                                     
                                       α 
                                       2 
                                     
                                   
                                 
                                 
                                   0 
                                 
                               
                               
                                 
                                   0 
                                 
                                 
                                   
                                     α 
                                     3 
                                   
                                 
                                 
                                   
                                     - 
                                     
                                       α 
                                       3 
                                     
                                   
                                 
                               
                             
                             ] 
                           
                           · 
                           
                             [ 
                             
                               
                                 
                                   
                                     I 
                                     SC 
                                   
                                 
                               
                               
                                 
                                   
                                     I 
                                     P 
                                   
                                 
                               
                               
                                 
                                   
                                     I 
                                     EF 
                                   
                                 
                               
                             
                             ] 
                           
                         
                         + 
                         
                           
                             [ 
                             
                               
                                 
                                   
                                     α 
                                     1 
                                   
                                 
                               
                               
                                 
                                   0 
                                 
                               
                               
                                 
                                   0 
                                 
                               
                             
                             ] 
                           
                           · 
                           
                             I 
                             D 
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         I 
                         D 
                       
                       = 
                       
                         [ 
                         
                           
                             
                               0 
                             
                             
                               0 
                             
                             
                               
                                 
                                   
                                     0 
                                     ] 
                                   
                                   · 
                                   
                                     [ 
                                     
                                       
                                         
                                           
                                             I 
                                             SC 
                                           
                                         
                                       
                                       
                                         
                                           
                                             I 
                                             P 
                                           
                                         
                                       
                                       
                                         
                                           
                                             I 
                                             EF 
                                           
                                         
                                       
                                     
                                     ] 
                                   
                                 
                                 + 
                                 
                                   
                                     [ 
                                     
                                       
                                         
                                           1 
                                         
                                       
                                       
                                         
                                           0 
                                         
                                       
                                       
                                         
                                           0 
                                         
                                       
                                     
                                     ] 
                                   
                                   · 
                                   
                                     I 
                                     D 
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               ⁢ 
               or 
               ⁢ 
               
                   
               
               ⁢ 
               
                 { 
                 
                   
                     
                       
                         
                           x 
                           . 
                         
                         = 
                         
                           Ax 
                           + 
                           Bu 
                         
                       
                     
                   
                   
                     
                       
                         y 
                         = 
                         
                           Cx 
                           + 
                           du 
                         
                       
                     
                   
                 
               
             
           
         
       
     
     The finite difference form is calculated as follows (wherein e X  indicates an exponential function):
 
Define:  k   1   =e   −α     1     T   ,k   2   =e   −α     2     T   ,k   3   =e   −α     1     T  
 
 I   SC =(1 −k   1 )( I   D ( i− 1))+ k   1   I   SC ( i− 1)  (eq 1b)
 
 I   P ( i )=(1 −k   2 )( I   SC ( i ))+ k   2   I   P ( i− 1)  (eq 2b)
 
 I   EF ( i )=(1 −k   3 )( I   P ( i ))+ k   3   I   EF ( i− 1)  (eq 3b)
 
     The Laplace Form is as follows, wherein s represents the Stäckel determinant used in Laplace equations: 
     
       
         
           
             
               
                 
                   
                     
                       I 
                       SC 
                     
                     
                       I 
                       D 
                     
                   
                   = 
                   
                     
                       α 
                       1 
                     
                     
                       s 
                       + 
                       
                         α 
                         1 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                     ⁢ 
                     c 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       I 
                       P 
                     
                     
                       I 
                       SC 
                     
                   
                   = 
                   
                     
                       α 
                       2 
                     
                     
                       s 
                       + 
                       
                         α 
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                     ⁢ 
                     c 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       I 
                       EFF 
                     
                     
                       I 
                       P 
                     
                   
                   = 
                   
                     
                       α 
                       3 
                     
                     
                       s 
                       + 
                       
                         α 
                         3 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     3 
                     ⁢ 
                     c 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       I 
                       P 
                     
                     
                       I 
                       D 
                     
                   
                   = 
                   
                     
                       
                         α 
                         1 
                       
                       ⁢ 
                       
                         α 
                         2 
                       
                     
                     
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             1 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             2 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     4 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       I 
                       EFF 
                     
                     
                       I 
                       D 
                     
                   
                   = 
                   
                     
                       
                         α 
                         1 
                       
                       ⁢ 
                       
                         α 
                         2 
                       
                       ⁢ 
                       
                         α 
                         3 
                       
                     
                     
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             1 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             2 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             3 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     5 
                   
                   ) 
                 
               
             
           
         
       
     
     To obtain the transfer function of insulin delivery with state feedback, the control equation is as follows, wherein E represents the error between the actual glucose concentration and the desired glucose concentration (G−G D ):
 
 I   D   =PID·E−γ   1   I   SC −γ 2   I   P −γ 3   I   EFF   (eq 6)
 
Substituting equations (eq 1c), (eq 4) and (eq 5) into (eq 6) and rearranging, the following transfer functions are obtained, wherein GM is a gain multiplier:
 
     
       
         
           
             
               
                 
                   
                     
                       I 
                       D 
                     
                     E 
                   
                   = 
                   
                     
                       
                         ( 
                         GM 
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         PID 
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             1 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             2 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             3 
                           
                         
                         ) 
                       
                     
                     
                       
                         
                           
                             
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     1 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     2 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   1 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       2 
                                     
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                           
                         
                       
                       
                         
                           
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   2 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       3 
                                     
                                   
                                   ) 
                                 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 α 
                                 3 
                               
                               ⁢ 
                               
                                 γ 
                                 3 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     7 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       I 
                       SC 
                     
                     E 
                   
                   = 
                   
                     
                       
                         ( 
                         GM 
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         PID 
                         ) 
                       
                       ⁢ 
                       
                         
                           α 
                           1 
                         
                         ⁡ 
                         
                           ( 
                           
                             s 
                             + 
                             
                               α 
                               2 
                             
                           
                           ) 
                         
                       
                       ⁢ 
                       
                         ( 
                         
                           s 
                           + 
                           
                             α 
                             3 
                           
                         
                         ) 
                       
                     
                     
                       
                         
                           
                             
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     1 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     2 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   1 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       2 
                                     
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                           
                         
                       
                       
                         
                           
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   2 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       3 
                                     
                                   
                                   ) 
                                 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 α 
                                 3 
                               
                               ⁢ 
                               
                                 γ 
                                 3 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     8 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       I 
                       P 
                     
                     E 
                   
                   = 
                   
                     
                       
                         ( 
                         GM 
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         PID 
                         ) 
                       
                       ⁢ 
                       
                         α 
                         1 
                       
                       ⁢ 
                       
                         
                           α 
                           2 
                         
                         ⁡ 
                         
                           ( 
                           
                             s 
                             + 
                             
                               α 
                               3 
                             
                           
                           ) 
                         
                       
                     
                     
                       
                         
                           
                             
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     1 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     2 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   1 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       2 
                                     
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                           
                         
                       
                       
                         
                           
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   2 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       3 
                                     
                                   
                                   ) 
                                 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 α 
                                 3 
                               
                               ⁢ 
                               
                                 γ 
                                 3 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     9 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       I 
                       EFF 
                     
                     E 
                   
                   = 
                   
                     
                       
                         ( 
                         GM 
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         PID 
                         ) 
                       
                       ⁢ 
                       
                         α 
                         1 
                       
                       ⁢ 
                       
                         α 
                         2 
                       
                       ⁢ 
                       
                         α 
                         3 
                       
                     
                     
                       
                         
                           
                             
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     1 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     2 
                                   
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   1 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       2 
                                     
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   s 
                                   + 
                                   
                                     α 
                                     3 
                                   
                                 
                                 ) 
                               
                             
                             + 
                           
                         
                       
                       
                         
                           
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 
                                   γ 
                                   2 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     s 
                                     + 
                                     
                                       α 
                                       3 
                                     
                                   
                                   ) 
                                 
                               
                             
                             + 
                             
                               
                                 α 
                                 1 
                               
                               ⁢ 
                               
                                 α 
                                 2 
                               
                               ⁢ 
                               
                                 α 
                                 3 
                               
                               ⁢ 
                               
                                 γ 
                                 3 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     10 
                   
                   ) 
                 
               
             
           
         
       
     
     The computation of the gain multiplier is also obtained in the state variable feedback method. When state variable feedback is used, the gain multiplier (GM) is a scalar that forces a step response to reach the same steady value whether state feedback is used or not. In other words, GM ensures that the total amount given per unit of bolus will be the same in both cases. In the case of state feedback, more insulin is given up front, but this extra insulin is taken away later. To calculate GM in particular embodiments, the “final value theorem” from control systems is used. The final value theorem states that to evaluate the steady state of any transfer function T(s) given any input X(s), the steady state output response to the input is given by:
 
γ SS ( t →∞)= lim   s→0 ( sT ( s ) X ( s ))
 
     The Laplace form of a step input is given by 
               X   ⁡     (   s   )       =     1   s           
and the steady state solution of the final value theorem simplifies to:
 
γ SS ( t →∞)= lim   s→0 ( T ( s )).
 
In the case when there is no state feedback, (γ 1 , γ 2  and γ 3 =0), the steady state solution may be obtained from equation (eq 7) to be as follows:
 
 I   D ( t →∞)=1  (eq 11)
 
With state feedback without the gain correction factor, the steady state solution is:
 
                       I   D     ⁡     (     t   -&gt;   ∞     )       =     1     1   +     γ   1     +     γ   2     +     γ   3                 (     eq   ⁢           ⁢   12     )               
GM is then evaluated as the ratio of equation (eq 12) to equation (eq 11) to obtain the following: GM=1+γ 1 +γ 2 +γ 3 .
 
     Using state variable feedback, a closed loop control equation and state feedback gain are determined for pole placement. Specifically, the gains are calculated for the insulin delivery equation shown above. In particular embodiments, they are determined as follows: First, with state feedback, the denominator of equations (eq 7), (eq 8), (eq 9), and (eq 10) is:
 
 D=s   3 +(α 1 +α 2 +α 3 +γ 1 α 1 ) s   2 +(α 1 α 2 +(α 1 +α 2 )α 3 +γ 2 α 1 α 2 +(α 2 +α 3 )γ 1 α 1 ) s +(α 1 α 2 α 3 +γ 3 α 1 α 2 α 3 +γ 2 α 1 α 2 α 3 +γ 1 α 1 α 2 α 3 )  (eq 14)
 
     To get the poles of the system in the equations (eq 7), (eq 8), (eq 9), or (eq 10), D may be set equal to zero yield the characteristic equation:
 
 s   3 +(α 1 +α 2 +α 3 +γ 1 α 1 ) s   2 +(α 1 α 2 +(α 1 +α 2 )α 3 +γ 2 α 1 α 2 +(α 2 +α 3 )γ 1 α 1 ) s +(α 1 α 2 α 3 +γ 3 α 1 α 2 α 3 +γ 2 α 1 α 2 α 3 +γ 1 α 1 α 2 α 3 )=0  (eq 16)
 
If the desired system poles or roots of (eq 16) are defined by eigenvalues λ 1 , λ 2  and λ 3 , then the characteristic equation can be written as:
 
( s−λ   1 )( s−λ   2 )( s−λ   3 )=0
 
Expanding and collecting like powers of s, (eq 16) can be written as:
 
 s   3 −(λ 1 +λ 2 +λ 3 ) s   2 +(λ 1 λ 2 +λ 1 λ 3 +λ 2 λ 3 ) s−λ   1 λ 2 λ 3 =0  (eq 17)
 
     Setting the coefficients of like powers of s equal to each other we have the system of equations:
 
α 1 +α 2 +α 3 +γ 1 α 1 =−(λ 1 +λ 2 +λ 3 )  (eq 18)
 
α 1 α 2 +α 1 α 3 +α 2 α 3 +γ 2 α 1 α 2 +γ 1 α 1 (α 2 +α 3 )=λ 1 λ 2 +λ 1 λ 3 +λ 2 λ 3   (eq 19)
 
α 1 α 2 α 3 +γ 3 α 1 α 2 α 3 +γ 2 α 1 α 2 α 3 +γ 1 α 1 α 2 α 3 =λ 1 λ 2 λ 3   (eq 20)
 
     This results in three equations and three unknowns, γ 1 , γ 2  and γ 3 . Therefore, the unknown gains can be solved for in terms of the desired poles λ 1 , λ 2 , λ 3 , and system time constants, α 1 , α 2  and α 3 . These formulas enable us to control the desired pharmacokinetics of insulin as it appears in the different compartments: 
     
       
         
           
             
                 
             
             ⁢ 
             
               
                 γ 
                 1 
               
               = 
               
                 
                   - 
                   
                     ( 
                     
                       
                         λ 
                         1 
                       
                       + 
                       
                         λ 
                         2 
                       
                       + 
                       
                         λ 
                         3 
                       
                       + 
                       
                         α 
                         1 
                       
                       + 
                       
                         α 
                         2 
                       
                       + 
                       
                         α 
                         3 
                       
                     
                     ) 
                   
                 
                 
                   α 
                   1 
                 
               
             
           
         
       
       
         
           
             
                 
             
             ⁢ 
             
               
                 γ 
                 2 
               
               = 
               
                 
                   
                     
                       
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             λ 
                             2 
                           
                         
                         + 
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             λ 
                             3 
                           
                         
                         + 
                         
                           
                             λ 
                             2 
                           
                           ⁢ 
                           
                             λ 
                             3 
                           
                         
                         - 
                         
                           
                             α 
                             1 
                           
                           ⁢ 
                           
                             α 
                             2 
                           
                         
                         - 
                         
                           
                             α 
                             1 
                           
                           ⁢ 
                           
                             α 
                             3 
                           
                         
                         - 
                         
                           
                             α 
                             2 
                           
                           ⁢ 
                           
                             α 
                             3 
                           
                         
                         + 
                       
                     
                   
                   
                     
                       
                         
                           ( 
                           
                             
                               λ 
                               1 
                             
                             + 
                             
                               λ 
                               2 
                             
                             + 
                             
                               λ 
                               3 
                             
                             + 
                             
                               α 
                               1 
                             
                             + 
                             
                               α 
                               2 
                             
                             + 
                             
                               α 
                               3 
                             
                           
                           ) 
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               α 
                               2 
                             
                             + 
                             
                               α 
                               3 
                             
                           
                           ) 
                         
                       
                     
                   
                 
                 
                   
                     α 
                     1 
                   
                   ⁢ 
                   
                     α 
                     2 
                   
                 
               
             
           
         
       
       
         
           
             
               γ 
               3 
             
             = 
             
               
                 
                   
                     - 
                     
                       λ 
                       1 
                     
                   
                   ⁢ 
                   
                     λ 
                     2 
                   
                   ⁢ 
                   
                     λ 
                     3 
                   
                 
                 
                   
                     α 
                     1 
                   
                   ⁢ 
                   
                     α 
                     2 
                   
                   ⁢ 
                   
                     α 
                     3 
                   
                 
               
               - 
               
                 
                   
                     
                       
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             λ 
                             2 
                           
                         
                         + 
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             λ 
                             3 
                           
                         
                         + 
                         
                           
                             λ 
                             2 
                           
                           ⁢ 
                           
                             λ 
                             3 
                           
                         
                         - 
                         
                           
                             α 
                             1 
                           
                           ⁢ 
                           
                             α 
                             2 
                           
                         
                         - 
                         
                           
                             α 
                             1 
                           
                           ⁢ 
                           
                             α 
                             3 
                           
                         
                         - 
                         
                           
                             α 
                             2 
                           
                           ⁢ 
                           
                             α 
                             3 
                           
                         
                         + 
                       
                     
                   
                   
                     
                       
                         
                           ( 
                           
                             
                               λ 
                               1 
                             
                             + 
                             
                               λ 
                               2 
                             
                             + 
                             
                               λ 
                               3 
                             
                             + 
                             
                               α 
                               1 
                             
                             + 
                             
                               α 
                               2 
                             
                             + 
                             
                               α 
                               3 
                             
                           
                           ) 
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               α 
                               2 
                             
                             + 
                             
                               α 
                               3 
                             
                           
                           ) 
                         
                       
                     
                   
                 
                 
                   
                     α 
                     1 
                   
                   ⁢ 
                   
                     α 
                     2 
                   
                 
               
               + 
               
                 
                   ( 
                   
                     
                       λ 
                       1 
                     
                     + 
                     
                       λ 
                       2 
                     
                     + 
                     
                       λ 
                       3 
                     
                     + 
                     
                       α 
                       1 
                     
                     + 
                     
                       α 
                       2 
                     
                     + 
                     
                       α 
                       3 
                     
                   
                   ) 
                 
                 
                   α 
                   1 
                 
               
               - 
               1 
             
           
         
       
     
     Thus, through the above calculations, the gains can be calculated and used in the control equation for insulin delivery of:
 
 I   D   =PID·E−γ   1   I   SC −γ 2   I   P −γ 3   I   EF  
 
     PID is the output of a PID controller of any other closed loop (or “semi-closed-loop”) controller. The gains are generally calculated just once, but could be calculated more often if desired. The control equation may be calculated on a repeated basis, after predetermined periods of time or continuously. For example, and without limitation, it may be calculated every five, ten, thirty or sixty minutes. Just the state variable portion (γ 1 I SC −γ 2 I P −γ 3 I EF ) may be updated or the entire equation may be updated. By updating the control equation, it is possible to continually improve the delivery of insulin to the patient. 
     A control feedback block diagram of an embodiment of a pump using state variable feedback is shown in  FIG. 42 . As shown, the desired glucose G D    600  of the patient is entered into the PID Controller  610 . The output of the PID controller is an insulin delivery value I D    601 . The block then calculates how much insulin should actually be delivered to the patient as a bolus in addition to the insulin delivery value and how much should be taken away from the basal rate, as discussed above. At each discrete time interval, Ti, (T 1   620 , T 2   630 , and T 3   640 ), the amount of insulin that has entered into the subcutaneous layer from the pump is calculated to provide I SC    602 . That value will be multiplied (or otherwise factored by) γ 1    605  and subtracted from the output of the PID controller to provide an improved desired insulin value based on the subcutaneous insulin concentration (with the other calculations following). At each discrete time interval Ti, the amount of insulin that has entered into the plasma from the subcutaneous compartment is calculated to provide I P    603 . That value will be multiplied (or otherwise factored by) γ 2    606  and subtracted from the output of the PID controller to determine an improved desired insulin value based on the plasma insulin concentration. At each discrete time interval Ti, the amount of insulin actually going into action or the effective insulin compartment from the insulin in the plasma is calculated to provide I EF    604 . That value will be multiplied (or otherwise factored by) γ 3    607  and subtracted from the output of the PID controller to determine an improved desired insulin value based on the effective insulin. The insulin actually delivered to the subject  650  will then change the blood glucose G of the user  608 , which will then be measured by the sensor  660  and compared to the desired glucose  600 . 
       FIGS. 43-46  show graphs with the effect of state feedback.  FIG. 43  shows the effect on the basal insulin delivery rate achieved using the algorithm described above. A bolus is given at time zero. Line  700  shows the insulin delivery when no state feedback is used. This line would be the same as a regular delivery of an insulin bolus and is indicated as 0.0000, because it does not change the amount of basal rate being delivered. The other three lines illustrate the change in insulin delivery rate over time when all of the state feedback is placed in one of the gains γ 1 , γ 2 , or γ 3 . As can be seen, if all the state feedback is placed in the gain γ 1  (for the subcutaneous layer), the basal insulin delivery rate  701  (in relation to the standard basal rate) starts out low and gradually moves to a limit of zero, or the rate without state feedback, as steady state is reached. If all of the state feedback is placed in the gain γ 2  (for the plasma layer), the basal insulin delivery rate  702  starts at zero, dips lower, and then gradually returns up to a limit of zero as steady state is reached. If all of the state feedback is placed in the gain γ 3  (for the insulin action/effect), the basal insulin delivery rate  703  starts at zero, dips lower, but more slowly than for the all γ 2  delivery rate, and then gradually returns up to a limit of zero as steady state is reached. In all cases, the total delivery of insulin is the same. 
       FIG. 44  shows the effect of state feedback per unit bolus on the subcutaneous insulin. In other words, a bolus of insulin is given to a patient at time zero and the figure shows the rate in which the amount of insulin in the subcutaneous layer, from that bolus, decreases to zero. Line  705  shows the amount of insulin in the subcutaneous layer over time with no state feedback. Line  706  shows the amount of insulin in the subcutaneous layer over time when all of the state feedback is placed in gain γ 1 . Line  707  shows the amount of insulin in the subcutaneous layer over time when all of the state feedback is placed in gain γ 2 . Line  708  shows the amount of insulin in the subcutaneous layer over time when all of the state feedback is placed in gain γ 3 . 
       FIG. 45  shows the effect of state feedback per unit bolus on the plasma insulin. In other words, a bolus of insulin is given to a patient at time zero and the figure shows the rate in which the amount of insulin in the plasma layer, from that bolus, increases from zero (there is a slight delay from injecting insulin to when the insulin moves into the plasma from the subcutaneous layer), reaches its peak and then returns to zero. Line  710  shows the amount of insulin in the plasma over time with no state feedback. Line  711  shows the amount of insulin in the plasma over time when all of the state feedback is placed in gain γ 1 . Line  712  shows the amount of insulin in the plasma over time when all of the state feedback is placed in gain γ 2 . Line  713  shows the amount of insulin in the plasma over time when all of the state feedback is placed in gain γ 3 . 
       FIG. 46  shows the effect of state feedback per unit bolus on the insulin effect. In other words, a bolus of insulin is given to a patient at time zero and the figure shows the rate in which the amount of insulin from that bolus creates the insulin effect on the body, starting at zero (there is a delay from the injection of insulin into the subcutaneous layer and through the plasma to the insulin effect), rising to its maximum point, and decreasing to zero. Line  715  shows the insulin effect over time with no state feedback. Line  716  shows the insulin effect over time when all of the state feedback is placed in gain γ 1 . Line  717  shows the insulin effect over time when all of the state feedback is placed in gain γ 2 . Line  718  shows the insulin effect over time when all of the state feedback is placed in gain γ 3 . 
       FIGS. 47 and 48  compare insulin state variable feedback used in conjunction with a PID closed loop controller as opposed to use of a PID closed loop controller alone (with no insulin state variable feedback).  FIG. 47  shows the simulated glucose concentration of a patient over time. Meals are given at 8, 13, 18, 22, and 32 hours. The glucose concentration using the PID with insulin state feedback is shown as line  800 . The glucose concentration using the PID without insulin state feedback is shown as line  801 . With glucose concentrations, it is always preferable to keep a patient&#39;s concentrations from being too high or too low, so the more that the closed loop program can avoid high and low values, the better. As can be seen in  FIG. 47 , as time goes on, the glucose concentration using the PID with insulin state feedback improves over time (versus the glucose concentration using the PID without insulin state feedback) in that it varies less as time goes on, keeping the patient with a more steady glucose level that will greatly reduce hyper- and hypoglycemic events.  FIG. 48  shows average simulated insulin delivery profiles from the same system as  FIG. 47 . Line  810  represents the insulin delivery using the PID with insulin state feedback. Line  811  represents the insulin delivery using the PID without insulin state feedback. As can be seen, the insulin delivery using the PID with insulin state feedback contains more spikes and dips, resulting from the state feedback. 
     Modifying the PID Controller to Incorporate an Integrator Leak 
     In preferred embodiments, the PID control response was described with constant gain components, K P , K I , K D . Although the preferred control response guarantees zero steady-state error (i.e., steady state glucose minus a desired basal glucose (G B )=0), inherently, the integral component U I /=K I ∫ t     0     t (G−G B )dt+U I (t 0 ) destabilizes feedback control because there is no temporal wind down of the insulin response while the integral component models the increase in the insulin response. Without any correction, the integral component has a tendency to over-estimate the increase in the insulin response. Since a small difference between steady-state glucose and G B  is typically acceptable in insulin response control, an alternative modeling of the integral component can incorporate an integrator leak to reduce the magnitude of the destabilizing effect. Specifically, changes in U I (t) can be described by a term proportional to the error in glucose and a term that leaks in proportion to the magnitude of U I . This can be expressed in the formula: 
                     d   ⁢           ⁢     U   I         d   ⁢           ⁢   t       ⁢       K   I     ⁡     (     G   -     G   B       )         -       K   LEAK     ⁢     U   I         ;         
with initial condition U I (t 0 ).
 
     The parameter K LEAK  is the reciprocal time constant of the rate of leaking (τ LEAK  in min=1/K LEAK ), where τ LEAK  is a tuning parameter that can be set based on empirical data, and be tied with the other gain components K P , K I , K D . However, the current realization of the artificial β-cell has τ LEAK  as a user input. U I  can also be expressed in discrete form by standard methods. 
     Post-Controller (Lead/Lag) Compensator 
     In preferred embodiments, commands are issued from the controller without regard to where in the body the insulin delivery system will infuse the insulin. In essence, the assumption is that the insulin is either delivered directly into the blood stream for immediate use by the body, or that any time delays caused by delivering the insulin somewhere in the body other than the blood stream can be compensated for by adjusting K P , K I , and K D . In this case, the commands generally model a β-cell insulin secretion profile, an example of which is shown in  FIG. 35A . And since the β-cells secrete insulin directly into the blood stream, the β-cell insulin secretion profile is the intended blood plasma insulin concentration profile. However, an insulin delivery delay may distort the intended blood plasma insulin concentration profile, as shown in  FIG. 35B . The insulin delivery delay is the amount of time between the instant that the command is given to the insulin delivery system to infuse insulin and the time that insulin reaches the blood plasma. An insulin delivery delay may be caused by a diffusion delay, represented by a circle with an arrow  528  in  FIG. 20 , which is the time required for insulin that has been infused into a tissue to diffuse into the blood stream. Other contributors to insulin delivery delay may include, time for the delivery system to deliver the insulin to the body after receiving a command to infuse insulin, time for the insulin to spread throughout the circulatory system once it has entered the blood stream, and/or by other mechanical or physiological causes. In addition, the body clears insulin even while an insulin dose is being delivered from the insulin delivery system into the body. Since insulin is continuously cleared from the blood plasma by the body, an insulin dose that is delivered to the blood plasma too slowly or is delayed is at least partially, if not significantly, cleared before the entire insulin dose fully reaches the blood plasma. And therefore, the insulin concentration profile in the blood plasma never achieves the same peak (nor follows the same profile) it would have achieved if there were no delay. Given an insulin dose delivered all at once into the blood plasma at time zero, the insulin concentration in the blood plasma is raised virtually instantaneously (not shown) and then would decrease exponentially over time as the body clears (uses or filters out) the insulin, as shown in  FIG. 36A  per equation: 
                 C   P     =         I   0       V   p       ⁢     e       -     P   1       ⁢   t           ,         
where:
         C P  is the concentration of insulin in the blood plasma,   I 0  is a mass of the insulin dose delivered directly to the blood plasma at time zero,   V P  is a volume of the blood plasma in the body,   P 1  is a reciprocal time constant for insulin clearance, and   t is the time that has passed since the delivery of the insulin dose directly into the blood plasma.       

     The time constant for insulin clearance P 1  may be calculated using the following equation: 
                 P   1     =     -     k     V   p           ,         
where:
         k is the volume insulin clearance rate, and   V P  is a volume of the blood plasma in the body.       

     Or the time constant for insulin clearance P 1  may be obtained by providing insulin to an individual that does not generate his own insulin, and then periodically testing blood samples from the individual for insulin concentration. Then, using an exponential curve fitting routine, generate a mathematical expression for a best-fit curve for the insulin concentration measurements, and observe the time constant in the mathematical expression. 
     Given the same insulin dose (delivered at time zero all at once) into the subcutaneous tissue, instead of directly into the blood plasma, the concentration of insulin in the blood plasma would begin to rise slowly as insulin diffuses from the interstitial fluid ISF into the blood plasma, as shown in  FIG. 36B . At the same time that insulin is entering the blood plasma, the body is clearing insulin from the blood. While the rate at which insulin is entering the blood plasma exceeds the insulin clearance rate, the insulin concentration in the blood plasma continues to increase. When the insulin clearance rate exceeds the rate at which insulin is entering the blood plasma from the interstitial fluid ISF, the insulin concentration in the blood plasma begins to decrease. So, the result of delivering insulin into the interstitial fluid ISF instead of directly into the blood stream is that the insulin concentration in the blood plasma is spread over time rather than increased virtually instantaneously to a peak followed by a decay. 
     A bi-exponential equation may be used to model the insulin concentration in blood plasma given an insulin dose delivered to the subcutaneous tissue: 
                 C   P     =           I   0     ⁢   D         V   p     ⁢       V   ISF     ⁡     (       P   3     -     P   2       )           ⁢     (       e       -     P   2       ⁢   t       -     e       -     P   3       ⁢   t         )         ,         
where:
         C P  is the concentration of insulin in the blood plasma,   I 0  is the mass of the insulin dose delivered to the subcutaneous tissue at time zero,   D is a diffusion coefficient (the rate at which insulin diffuses from the interstitial fluid ISF into the blood glucose)   V P  is a volume of the blood plasma in the body,   V ISF  is a volume of interstitial fluid ISF that the insulin is delivered to,   P 2  is a time constant,   P 3  is a time constant greater than or equal to P 2 , and   t is time since the delivery of the insulin dose into the interstitial fluid ISF.       

     The time constants may be calculated using the quadratic formula: 
     
       
         
           
             
               P 
               2 
             
             , 
             
               
                 P 
                 3 
               
               = 
               
                 - 
                 
                   
                     
                       a 
                       1 
                     
                     ± 
                     
                       
                         
                           a 
                           1 
                           2 
                         
                         - 
                         
                           4 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             a 
                             0 
                           
                         
                       
                     
                   
                   2 
                 
               
             
             , 
             
               where 
               ⁢ 
               
                 : 
               
             
           
         
       
       
         
           
             
               
                 a 
                 1 
               
               = 
               
                 
                   
                     D 
                     + 
                     K 
                   
                   
                     V 
                     p 
                   
                 
                 + 
                 
                   D 
                   
                     V 
                     ISF 
                   
                 
               
             
             , 
             and 
           
         
       
       
         
           
             
               a 
               0 
             
             = 
             
               
                 
                   ( 
                   
                     
                       D 
                       + 
                       K 
                     
                     
                       V 
                       P 
                     
                   
                   ) 
                 
                 ⁢ 
                 
                   ( 
                   
                     D 
                     
                       V 
                       ISF 
                     
                   
                   ) 
                 
               
               - 
               
                 
                   
                     D 
                     2 
                   
                   
                     
                       V 
                       ISF 
                     
                     ⁢ 
                     
                       V 
                       P 
                     
                   
                 
                 . 
               
             
           
         
       
     
     In alternative embodiments, a post-controller lead-lag compensator  522  is used to modify the commands (U PID ) to compensate for the insulin delivery delay and/or the insulin clearance rate k, as shown in  FIG. 37 . The post-controller lead-lag compensator  522  is of the form 
                 U   COMP       U   PID       =       s   +   α       s   +   γ             
where 1/α and 1/γ are the lead and lag constants respectively, s is the Laplace variable, and U COMP  is the compensated commands calculated by the lead-lag compensator  522 .
 
     The PID controller generates commands (U PID ) for a desired insulin delivery rate into the blood plasma. The commands U PID  are calculated and issued periodically depending on the update rate for the control loop, which is selected based on a maximum anticipated rate of change of the blood glucose level, an insulin delivery system minimum insulin dosage, insulin sensitivity, a maximum and a minimum acceptable glucose concentration, or the like. The commands U PID  are used as inputs to the post-controller lead-lag compensator  522 . 
     In particular embodiments, the compensated commands (U COMP ) issued from the post-controller lead-lag compensator  522  uses more than one value from the controller. In particular embodiments, post-controller lead-lag compensator  522  uses the present command (U PID   n ) and the previous command (U PID   n−1 ) to calculate a compensated command U COMP  per a compensation equation:
 
 U   COMP   n =(1−γ) U   COMP   n−1   U   PID   n +(1−α) U   PID   n−1 , where:
         U PID   n  is the present command,   U PID   n−1  is the previous command,   U COMP   n−1  is the previous compensated control output,   α is the reciprocal lead time constant in min −1 , and   γ is the reciprocal lag time constant in min −1 .       

     This is a first forward difference equation. However, other forms can be used alternatively (e.g., first backward or bilinear), but all result in a compensated control output (U COMP ) that is comprised of a weighted history of both past PID outputs (U PID )), and past compensated outputs (U COMP ). 
     An alternative method of modifying the commands (U PID ) to compensate for the insulin delivery delay and/or the insulin clearance can be performed based on a weighted history of past insulin delivery. By giving the most recent delivery history more weight, the weighted history of the previous insulin delivered can then be subtracted from the present PID control output to yield a compensated control output. Expressed in Laplace domain this results in: 
                 U   COMP     =       PID   ⁢           ⁢   E     -       λ     s   +   α       ⁢     U   COMP           ,         
where E is the Laplace transformed error signal (G−G B ), λ determines how much the PID output is reduce in proportion to the weighted history of past control outputs, and α is the reciprocal time constant determining how long a history is weighted (the preferred value of α would be equal to the reciprocal dominant time constant or subcutaneous insulin appearance, P 2 ). Solving the compensated signals as a function of the error results in:
 
                   U   ⁡     (   s   )         E   ⁡     (   s   )         =       PID   ⁢           ⁢       s   +     α   w         s   +     (     α   +   λ     )           =     PID   ⁢           ⁢       s   +     α   w         s   +   γ             ,         
which is identical to the previously described lead-lag compensation.
 
     In other alternative embodiments, additional previous command values may be used. In still other alternative embodiments, the compensation equation compensates for both time constants P 2  and P 3 . 
     In still more alternative embodiments, the controller gains are modified to include the effects of the post-controller lead/lag compensator so that the post-controller lead/lag compensator is not needed to modify the commands to account for the insulin delivery delay. 
     In particular embodiments, the insulin delivery system provides finite insulin doses into the body in response to commands from the controller. The smallest amount of insulin that the insulin delivery system can deliver is the minimum finite insulin dose. The controller may generate commands for a dose of insulin to be delivered that is not a whole number multiple of the minimum finite insulin dose. Therefore, either too much or too little insulin is delivered by the insulin delivery system in response to the commands. In particular alternative embodiments, the post-controller lead-lag compensator truncates the command to the nearest whole number multiple of the minimum finite insulin dose and adds the remaining commanded volume of insulin to the next command. In other alternative embodiments, a compensator rounds the command to the nearest whole number multiple of the minimum finite insulin dose. In still other alternative embodiments, other methods are used to compensate for the difference between the commands and the nearest whole number multiple of the minimum finite insulin dose. In other embodiments, no compensation is needed. 
     Eliminating the Lead-Lag Compensator with Feedback of Predicted Plasma Insulin 
     Yet in another alternative embodiment, the PID control commands may be modified to emulate the effect of plasma insulin on a β-cell to determine optimal insulin administration by feeding back a predicted plasma insulin based on the subcutaneous insulin infusion. The net effect of such feedback is to replace an undesired dynamic with a more desirable one and achieve a plasma insulin profile that a β-cell would achieve. This can be seen as follows (using Laplace transformed variables). Assume the relation between glucose above basal (G−G B ) and insulin delivery (ID) is described by a linear transfer function ID(s)=C(s)(G(s)−G B ), where C(s) may be, but is not necessarily, described by the PID controller transfer function. If the β-cell is using peripheral insulin (I P (s)) levels to suppress insulin secretion the predicted rate of insulin delivery would be modified as: ID(s)=C(s)(G(s)−G B )−kI p (s). 
     For portal insulin delivery the relation between ID(s) and plasma insulin I P (s) is known to be approximated by a single time delay: 
                 I   p     ⁡     (   s   )       =         k   1       s   +   α       ⁢       ID   ⁡     (   s   )       .             
Substituting I P (s) value into the previous formula and making k large results in:
 
                   ID   ⁡     (   s   )       =           C   ⁡     (   s   )       ⁢     (       G   ⁡     (   s   )       -     G   B       )         1   +       k   ⁢           ⁢     k   1         s   +   α           ≈       C   ⁡     (   s   )       ⁢       s   +   α       k   ⁢           ⁢     k   1         ⁢     (       G   ⁡     (   s   )       -     G   B       )           ;     1   ⪡       k   ⁢           ⁢     k   1         s   +   α           ,         
which would completely cancel the undesirable time constant 1/α. In practice a lower value of k would be used resulting in:
 
               ID   ⁡     (   s   )       =           C   ⁡     (   s   )       ⁢     (       G   ⁡     (   s   )       -     G   B       )       -         k   ⁢           ⁢     k   1         s   +   α       ⁢     ID   ⁡     (   s   )           =       C   ⁡     (   s   )       ⁢       s   +   α       s   +   γ       ⁢       (       G   ⁡     (   s   )       -     G   B       )     .               
where γ=α+kk 1  (i.e., something greater than α). Thus, the effect for the β-cell, of adding a plasma insulin feedback is to replace the portal insulin delivery time constant (α) with a faster time constant (γ=α+kk 1 ; γ&gt;α). In block diagram form:
 
               G   -     G   B       →               C   ⁡     (   s   )       ·       s   +   α       s   +   γ               ⁢     →   ID     ⁢               k   1       s   +   α             ⁢     →     I   p                 
which is equivalent to:
 
     
       
         
           
             
               G 
               - 
               
                 G 
                 B 
               
             
             → 
             
               
                 
                   
                     
                       
                         C 
                         ⁡ 
                         
                           ( 
                           s 
                           ) 
                         
                       
                       · 
                       
                         1 
                         
                           s 
                           + 
                           γ 
                         
                       
                     
                   
                 
               
               ⁢ 
               
                 → 
                 
                   I 
                   p 
                 
               
             
           
         
       
     
     To apply this mechanism to subcutaneous insulin delivery all that is needed is the transfer function between sc insulin delivery and plasma insulin. This transfer function is well approximated by a bi-exponential time course (bolus response) or: 
                   I   p     ⁡     (   s   )           ID   SC     ⁡     (   s   )         =       k   2         (     s   +     α   1       )     ⁢     (     s   +     α   2       )                     thus   ,     
     ⁢             ID   ⁡     (   s   )       =       ⁢         C   ⁡     (   s   )       ⁢     (       G   ⁡     (   s   )       -     G   B       )       -         kk   2         (     s   +     α   1       )     ⁢     (     s   +     α   2       )         ⁢     ID   ⁡     (   s   )                       =       ⁢       C   ⁡     (   s   )       ⁢     1     1   +       kk   2         (     s   +   α     )     ⁢     (     s   +     α   2       )             ⁢     (       G   ⁡     (   s   )       -     G   B       )                     
in the limiting case as kk 2 /(s+α 1 )(s+α 2 )&gt;&gt;1 this is approximately equal to
 
               ID   ⁡     (   s   )       =       C   ⁡     (   s   )       ⁢         (     s   +     α   1       )     ⁢     (     s   +     α   2       )         kk   2       ⁢     (       G   ⁡     (   s   )       -     G   B       )             
where again, the undesirable time constants associated with subcutaneous insulin delivery have been eliminated. In practice they would just be replaced with more desirable rate constants (i.e., faster time constants).
 
     Correction of Hypoglycemic Excursion Around ˜200 Minutes (Wind-Down) 
     Previous modeling of β-cells using a PID controller gave excellent predictability of the “first” and “second” phase insulin responses during prolonged periods of increased glucose appearance. However, if the periods of increased glucose appearance is followed by a rapid decrease in glucose appearance, the PID controller would not be able to correctly predict the wind down of the insulin response to lower glucose levels.  FIG. 41B  illustrates the insulin response to the blood glucose level of  FIG. 41A  based on the clinical data (shown as data points), the PID modeling (shown as a solid line), and correction of the PID for the hypoglycemic excursion (shown as a dashed line). 
     In preferred embodiments, the hypoglycemic excursion is corrected by modifying the PID controller to a PD control with Adaptive Proportional Gain (or Bilinear PID controller), which is modified form of the original PID equations. As described previously, the discrete PID algorithm is as follows: 
     Proportional Component Response:
 
 P   con   n   =K   P ( SG   f   n   −G   sp ),
 
     Integral Component Response:
 
 I   con   n   =I   con   n−1   +K   I ( SG   f   n   −G   sp ); I   con   0   =I   b , and
 
     Derivative Component Response:
 
 D   con   n   =K   D   dGdt   f   n ,
 
where K P , K I , and K D  are the proportional, integral, and derivative gain coefficients, SG f  and dGdt f  are the filtered sensor glucose and derivative respectively, and the superscript n refers to discrete time.
 
     In the Bilinear PID controller, the proportional gain K P  is based on the integrated error term. The magnitude of each component&#39;s contribution to the insulin response is described by the following equations:
 
 P   con   n   =K   P   n ( SG   f   n   −INT )
 
 D   con   n   =K   D   dGdt   f   n  
 
 K   P   n   =K   P   n−1   +K   I ( SG   f   n   −G   sp ), where  K   P   0   =K   P0  
 
Where the proportional gain now integrates at rate K I  (initial value K P0 ) and the proportional component is related to an intercept value (INT) where (INT&lt;G sp ). The modified formulation can be seen to fit the hypoglycemic glucose excursion without systematic error as the adaptive PD line shown as a dashed line in  FIG. 39 .
 
     In additional embodiments, the Bilinear PID controller can also incorporate an integrator leak by modifying the formula to multiply the previous K P  with a value such as α as follows:
 
 K   P   n   =αK   P   n−1   +K   I ( SG   f   n   −G   sp ), where α≈0.99
 
     An alternative method of correcting the hypoglycemic glucose excursion can be performed by integrator clip into the PID control. PID controllers generally have integrator-reset rules that prevent excessive “winding” and such a rule can be used to correct the hypoglycemic glucose excursion. For example, the integrator can be clipped as follows:
 
If ( SG≦ 60 mg/dl AND  I   con   n−1   &gt;K   P ( SP− 60)) then  I   con   n−1   =K   P ( SP− 60)
 
This equation resets the integrator such that if the sensor glucose falls below 60 mg/dl the insulin delivery is zero for all stable or falling sensor glucose signals. The clipping limit represents an absolute threshold, similar to the human counter regulatory response.
 
     However, other approaches that may emulate the β-cell more accurately include the use of piecewise continuous functions. For example, the following function allows for progressive clipping to be tuned: 
               γ   ⁡     (   SG   )       =       γ   0     +       (     1   -     γ   0       )     [       T     1   -   SG           T   1     -   60       ]                   if   ⁢           ⁢     (     SG   ≤       T   1     ⁢           ⁢   mg   ⁢     /     ⁢   dl   ⁢           ⁢   AND   ⁢           ⁢     I   con     n   -   1         &gt;     γ   ⁢           ⁢       K   p     ⁡     (     SP   -   60     )           )     ⁢           ⁢   then                 I   con     n   -   1       =     γ   ⁢           ⁢       K   P     ⁡     (     SP   -   60     )               
This equation introduces two additional tuning parameters (γ 0  and T 1 ) and starts to check the integrator output at a higher threshold. For example, if γ 0 =5 and T 1 =100 mg/dl, the integrator output would be clipped to 4 K P 60 if glucose fell to 90 mg/dl, 3 K P 60 if glucose fell to 80 mg/dl and so forth until glucose reached 60 where it would be clipped at K P 60. Other functions than that proposed in the above equation (e.g. functions based on the rate of fall of glucose, or percent decrease in I con ) may alternatively be used.
 
     System Configurations 
     The following sections provide exemplary, but not limiting, illustrations of components that can be utilized with the controller described above. Various changes in components, layout of various components, combinations of elements, or the like may be made without departing from the scope of the embodiments of the invention. 
     Before it is provided as an input to the controller  12 , the sensor signal  16  is generally subjected to signal conditioning such as pre-filtering, filtering, calibrating, or the like. Components such as a pre-filter, one or more filters, a calibrator and the controller  12  may be split up or physically located together, and may be included with a telemetered characteristic monitor transmitter  30 , the infusion device  34 , or a supplemental device. In preferred embodiments, the pre-filter, filters and the calibrator are included as part of the telemetered characteristic monitor transmitter  30 , and the controller  12  is included with the infusion device  34 , as shown in  FIG. 8B . In alternative embodiments, the pre-filter is included with the telemetered characteristic monitor transmitter  30  and the filter and calibrator are included with the controller  12  in the infusion device, as shown in  FIG. 8C . In other alternative embodiments, the pre-filter may be included with the telemetered characteristic monitor transmitter  30 , while the filter and calibrator are included in the supplemental device  41 , and the controller is included in the infusion device, as shown in  FIG. 8D . To illustrate the various embodiments in another way,  FIG. 9  shows a table of the groupings of components (pre-filter, filters, calibrator, and controller) in various devices (telemetered characteristic monitor transmitter, supplemental device, and infusion device) from  FIGS. 8A-D . In other alternative embodiments, a supplemental device contains some of (or all of) the components. 
     In preferred embodiments, the sensor system generates a message that includes information based on the sensor signal such as digital sensor values, pre-filtered digital sensor values, filtered digital sensor values, calibrated digital sensor values, commands, or the like. The message may include other types of information as well such as a serial number, an ID code, a check value, values for other sensed parameters, diagnostic signals, other signals, or the like. In particular embodiments, the digital sensor values Dsig may be filtered in the telemetered characteristic monitor transmitter  30 , and then the filtered digital sensor values may be included in the message sent to the infusion device  34  where the filtered digital sensor values are calibrated and used in the controller. In other embodiments, the digital sensor values Dsig may be filtered and calibrated before being sent to the controller  12  in the infusion device  34 . Alternatively, the digital sensor values Dsig may be filtered, and calibrated and used in the controller to generate commands  22  that are then sent from the telemetered characteristic monitor transmitter  30  to the infusion device  34 . 
     In further embodiments, additional optional components, such as a post-calibration filter, a display, a recorder, and a blood glucose meter may be included in the devices with any of the other components or they may stand-alone. Generally, if a blood glucose meter is built into one of the devices, it will be co-located in the device that contains the calibrator. In alternative embodiments, one or more of the components are not used. 
     In preferred embodiments, RF telemetry is used to communicate between devices, such as the telemetered characteristic monitor transmitter  30  and the infusion device  34 , which contain groups of components. In alternative embodiments, other communication mediums may be employed between devices such as wires, cables, IR signals, laser signals, fiber optics, ultrasonic signals, or the like. 
     Filtering 
     In preferred embodiments, the digital sensor values Dsig and/or the derivative of the digital sensor values are processed, filtered, modified, analyzed, smoothed, combined, averaged, clipped, scaled, calibrated, or the like, to minimize the effects of anomalous data points before they are provided as an input to the controller. In particular embodiments, the digital sensor values Dsig are passed through a pre-filter  400  and then a filter  402  before they are passed to the transmitter  70 , as shown in  FIG. 16 . The filters are used to detect and minimize the effects of anomalous digital sensor values Dsig. Some causes of anomalous digital sensor values Dsig may include temporary signal transients caused by sensor separation from the subcutaneous tissue, sensor noise, power supply noise, temporary disconnects or shorts, and the like. In particular embodiments, each individual digital sensor value Dsig is compared to maximum and minimum value-thresholds. In other particular embodiments, the differences between consecutive pairs of digital sensor values Dsig are compared with rate-of-change-thresholds for increasing or decreasing values. 
     Pre-Filter 
     In particular embodiments, the pre-filter  400  uses fuzzy logic to determine if individual digital sensor values Dsig need to be adjusted. The pre-filter  400  uses a subset of a group of digital sensor values Dsig to calculate a parameter and then uses the parameter to determine if individual digital sensor values Dsig need to be adjusted in comparison to the group as a whole. For example, the average of a subset of a group of digital sensor values Dsig may be calculated, and then noise thresholds may be placed above and below the average. Then individual digital sensor values Dsig within the group are compared to noise thresholds and eliminated or modified if they are outside of the noise thresholds. 
     A more detailed example is provided below to more clearly illustrate, but not limit, an embodiment of a pre-filter. A group of eight digital sensor values Dsig are shown in  FIG. 17  including a most recently sampled value, labeled L, sampled from the analog sensor signal Isig at time i, and the seven previous values K, H, G, F, E, D, and C sampled at times (i−1) through (i−7). An average value is calculated using the four temporally middle values in the group, H, G, F, and E sampled at times (i−2) through (i−5). The calculated average value is represented as a dashed/dotted average line  404 . A high noise threshold  406  is established at 100% above the average line  404 . In other words, the magnitude of the high noise threshold  406  is two times the magnitude of the average line  404 . A negative noise threshold  408  is established at 50% below the average line  404 . In other words, the magnitude of the negative noise threshold  408  is one half of the magnitude of the average line  404 . The individual magnitudes of each of the eight values, L, K, H, G, F, E, D, and C are compared to the high and negative noise thresholds  406  and  408 . If a value is above the high noise threshold  406  or below the negative noise threshold  408  then the value is considered anomalous and the anomalous value is replaced with the magnitude of the average line  404 . In the example shown in  FIG. 17 , the value K is above the high noise threshold  406  so it is replaced with the average value M. Also, the value D is below the negative noise threshold  408  so it is replaced with the average value N. In this way noisy signal spikes are reduced. Therefore, in the example, values L, K, H, G, F, E, D, and C are inputs to the pre-filter  400  and values L, M, H, G, F, E, N, and C are outputs from the pre-filter  400 . In alternative embodiments, other noise threshold levels (or percentages) may be used. In other alternative embodiments, values outside of the thresholds may be replaced with values other than the average value, such as the previous value, the value of the closest threshold, a value calculated by extrapolating a trend line through previous data, a value that is calculated by interpolation between other values that are inside the thresholds, or the like. 
     In preferred embodiments, when any of a group&#39;s values are outside of the noise thresholds  406  or  408  then a warning flag is set. If one to three values are outside of the noise thresholds  406  or  408 , a “noise” flag is set. If more than three values are outside of the noise thresholds  406  or  408 , a “discard” flag is set which indicates that the whole group of values should be ignored and not used. In alternative embodiments, more or less values need be outside of the thresholds  406  or  408  to trigger the “noise” flag or the “discard” flag. 
     In preferred embodiments, each digital sensor value Dsig is checked for saturation and disconnection. To continue with the example of  FIG. 17 , each individual value is compared to a saturation threshold  410 . If a value is equal to or above the saturation threshold  410  then a “saturation” flag is set. In particular embodiments, when the “saturation” flag is set, a warning is provided to the user that the sensor  26  may need calibration or replacement. In further particular embodiments, if an individual digital sensor value Dsig is at or above the saturation threshold  410 , the individual digital sensor value Dsig may be ignored, changed to a value equal to the average line  404 , or the entire group of values associated with the individual digital sensor value Dsig may be ignored. In preferred embodiments, the saturation threshold  410  is set at about 16% below the maximum value of the range of digital sensor values that may be generated. In preferred embodiments, the maximum digital sensor value represents a glucose concentration greater than 150 mg/dl. In alternative embodiments, the maximum digital sensor value may represent larger or smaller a glucose concentrations depending on the range of expected glucose concentrations to be measured, the sensor accuracy, the sensor system resolution needed for closed loop control, or the like. The full range of values is the difference between the maximum and the minimum digital sensor value that may be generated. Higher or lower saturation threshold levels may be used depending on an expected signal range of the sensor, sensor noise, sensor gains, or the like. 
     Similarly, in preferred embodiments, if a digital signal value Dsig is below a disconnect threshold  412 , then a “disconnect” flag is set indicating to a user that the sensor is not properly connected to the power supply and that the power supply or sensor may need replacement or recalibration. In further particular embodiments, if a digital sensor value Dsig is below the disconnect threshold  412 , the individual value may be ignored, changed to a value equal to the average line  404 , or the entire group of values associated with the individual digital sensor value Dsig may be ignored. In preferred embodiments, the disconnect threshold  410  is set at about 20% of the full range of values. Higher or lower disconnect threshold levels may be used depending on an expected signal range of the sensor, sensor system noise, sensor gains, or the like. 
     In alternative embodiments, other methods are used to pre-filter the digital sensor values Dsig such as rate-of-change thresholds, rate-of-change squared thresholds, noise thresholds about a least squares fit line rather than about the average of a subset of a group&#39;s values, higher or lower noise threshold lines, or the like. 
     Noise Filter 
     After the digital sensor values Dsig are evaluated, and if necessary, modified by the pre-filter  400 , the digital sensor values Dsig are passed to the filter  402 . The filter  402  may be used to reduce noise in particular frequency bands. Generally the body&#39;s blood glucose level  18  changes relatively slowly compared to a rate at which digital sensor values Dsig are collected. Therefore, high frequency signal components are typically noise, and a low pass filter may be used to improve the signal to noise ratio. 
     In preferred embodiments, the filter  402  is a finite impulse response (FIR) filter used to reduce noise. In particular embodiments, the FIR filter is a 7th order filter tuned with a pass band for frequencies from zero to 3 cycles per hour (c/hr) and a stop band for frequencies greater than about 6 c/hr, as shown in an example frequency response curve  414  in  FIG. 18 . However, typically FIR filters tuned with a pass band for frequencies from zero up to between about 2 c/hr and 5 c/hr and a stop band beginning at 1.2 to three times the selected pass band frequency will sufficiently reduce noise while passing the sensor signal. In particular embodiments, FIR filters tuned with a pass band for frequencies from zero up to between about 2 c/hr and 10 c/hr and a stop band beginning at 1.2 to three times the selected pass band frequency will sufficiently reduce noise. In the 7th order filter, unique weighting factors are applied to each of eight digital sensor values Dsig. The digital sensor values Dsig include the most recently sampled value and the seven previous values. The effects of a low pass filter on a digital sensor values collected at one minute intervals is shown in  FIGS. 19A  and B. An unfiltered sensor signal curve  416  of digital sensor values is contrasted with a curve of the same signal after the effects of a 7th order FIR filter  418 . The filtered signal curve  418  is delayed and the peaks are smoother compared to the unfiltered sensor signal curve  416 . In other particular embodiments, higher or lower order filters may be used. In still other particular embodiments, filter weighting coefficients may be applied to digital sensor values Dsig collected at time intervals shorter or longer than one minute depending on the desired sensor sample rate based on the body&#39;s physiology, the computational capabilities of the telemetered characteristic monitor transmitter  30 , the sensor&#39;s response time, or the like. In alternative embodiments, filters with other frequency responses may be used to eliminate other noise frequencies depending on the type of sensor, noise from the power supply or other electronics, the sensor&#39;s interaction with the body, the effects of body motion on the sensor signal, or the like. In still other alternative embodiments, the filter is an infinite impulse response (IIR) filter. 
     In alternative embodiments, other methods are used to pre-filter the digital sensor values Dsig such as rate-of-change thresholds, rate-of-change squared thresholds, noise thresholds about a least squares fit line rather than about the average of a subset of a group&#39;s values, higher or lower noise threshold lines, or the like. 
     Delay Compensation Filter 
     Aside from noise reduction, a filter may be used to compensate for time delays. Ideally, a sensor would provide a real time, noise-free measurement of a parameter that a control system is intended to control, such as a blood glucose measurement. However, realistically there are physiological, chemical, electrical, and algorithmic sources of time delays that cause the sensor measurement to lag behind the present value of blood glucose. 
     A physiological delay  422  is due to the time required for glucose to move between blood plasma  420  and interstitial fluid (ISF). The delay is represented by the circled double headed arrow  422  in  FIG. 20 . Generally, as discussed above, the sensor  26  is inserted into the subcutaneous tissue  44  of the body  20  and the electrodes  42  near the tip of the sensor  40  are in contact with interstitial fluid (ISF). But the desired parameter to be measured is the concentration of blood glucose. Glucose is carried throughout the body in blood plasma  420 . Through the process of diffusion, glucose moves from the blood plasma  420  into the ISF of the subcutaneous tissue  44  and vice versa. As the blood glucose level  18  changes so does the glucose level in the ISF. But the glucose level in the ISF lags behind the blood glucose level  18  due to the time required for the body to achieve glucose concentration equilibrium between the blood plasma  420  and the ISF. Studies show the glucose lag times between blood plasma  420  and ISF vary between 0 to 30 minutes. Some parameters that may affect the glucose lag time between blood plasma  420  and ISF are the individual&#39;s metabolism, the current blood glucose level, whether the glucose level is rising, or falling, or the like. 
     A chemical reaction delay  424  is introduced by the sensor response time, represented by the circle  424  surrounding the tip of the sensor  26  in  FIG. 20 . The sensor electrodes  42  are coated with protective membranes that keep the electrodes  42  wetted with ISF, attenuate the glucose concentration, and reduce glucose concentration fluctuations on the electrode surface. As glucose levels change, the protective membranes slow the rate of glucose exchange between the ISF and the electrode surface. In addition, there is a chemical reaction delay simply due to the reaction time for glucose to react with glucose oxidase GOX to generate hydrogen peroxide, and the reaction time for a secondary reaction, the reduction of hydrogen peroxide to water, oxygen and free electrons. 
     There is also a processing delay as the analog sensor signal Isig is converted to digital sensor values Dsig. In preferred embodiments, the analog sensor signal Isig is integrated over one-minute intervals and then converted to a number of counts. In essence an A/D conversion time results in an average delay of 30 seconds. In particular embodiments, the one-minute values are averaged into 5-minute values before they are sent to the controller. The resulting average delay is two and one half minutes. In alternative embodiments, longer or shorter integration times are used resulting in longer or shorter delay times. In other embodiments the analog sensor signal current Isig is continuously converted to an analog voltage Vsig and a A/D converter samples the voltage Vsig every 10 seconds. Then six 10-second values are pre-filtered and averaged to create a one-minute value. Finally, five 1-minute values are filtered and then averaged creating a five-minute value resulting in an average delay of two and one half minutes. Other embodiments use other electrical components or other sampling rates and result in other delay periods. 
     Filters also introduce a delay due to the time required to acquire a sufficient number of digital sensor values Dsig to operate the filter. Higher order filters, by definition, require more digital sensor values Dsig. Aside from the most recent digital sensor value Dsig, FIR filters use a number of previous values equal to the order of the filter. For example, a 7th order filter uses 8 digital sensor values Dsig. There is a time interval between each digital sensor value Dsig. To continue with the example, if the time interval between digital sensor values Dsig is one minute, then the oldest digital sensor value Dsig used in a 7th order FIR filter would be seven minutes old. Therefore, the average time delay for all of the values used in the filter is three and a half minutes. However, if the weighting factors associated with each of the values are not equal then the time delay may be longer or shorter than three and one half minutes depending on the effects of the coefficients. 
     Preferred embodiments of the invention include a FIR filter that compensates for both the various time delays, of up to about 30 minutes as discussed above, and high frequency noise, greater than about 10 c/hr also discussed above. Particular embodiments employ a 7th order Weiner type FIR filter. The coefficients for the filter are selected to correct for time lags while simultaneously reducing high frequency noise. An example of a frequency response curve  426  is shown in  FIG. 21 . The example frequency response curve  416  is generated for a Weiner filter with a pass band for frequencies from zero up to about 8 c/hr and a stop band for frequencies greater than about 15 c/hr for a sensor with a sensitivity of about 20 μA/100 mg/dl. A study conducted with sensors in dogs demonstrates that a FIR filter may be used to compensate for time delays. During the study a filter was used to compensate for a time delay of about 12 minutes. The results, presented in  FIG. 22 , show dots  428  representing actual blood plasma glucose levels measured with a blood glucose meter, a broken line  430  representing sensor measurements without delay compensation, and a solid line  432  representing sensor measurements with delay compensation. The sensor in the test was abnormally low in sensitivity. Studies with average sensitivity sensors in humans are indicating a time delay of about 3 to 10 minutes is more normal. Other filter coefficients and other orders of filters may be used to compensate for the time delay and/or noise. 
     In alternative embodiments, other types of filters may be used as long as they remove a sufficient portion of the noise from the sensor signal. In other alternative embodiments, no time compensation is used if the rate of change in the blood glucose level is slow compared to the time delay. For example, a five-minute delay between blood plasma glucose and a sensor measurement does not have to be corrected for a closed loop glucose control system to function. 
     Derivative Filter 
     Further embodiments may include a filter to remove noise from the derivative of the sensor signal before the controller uses it. A derivative is taken from the digital sensor values Dsig, which results in digital derivative sensor values (dDsig/dt). The digital derivative sensor values dDsig/dt are passed through a FIR filter. In particular embodiments, the derivative filter is at least a 7th order FIR filter tuned to remove high frequency noise. In alternative embodiments, higher or lower order filters may be used and the filters may be tuned to remove various frequencies of noise. In other alternative embodiments, a derivative is taken from the glucose level error G E  values and then passed through a derivative filter  526 , as shown in  FIG. 37 . In further alternative embodiments, a derivative is taken of an analog sensor signal Isig and a hardware filter is used to remove noise. 
     Calibration 
     In preferred embodiments, after filtering, the digital sensor values Dsig are calibrated with respect to one or more glucose reference values. The glucose reference values are entered into the calibrator and compared to the digital sensor values Dsig. The calibrator applies a calibration algorithm to convert the digital sensor values Dsig, which are typically in counts into blood glucose values. In particular embodiments, the calibration method is of the type described in U.S. patent application Ser. No. 09/511,580, filed on Feb. 23, 2000, entitled “GLUCOSE MONITOR CALIBRATION METHODS”, which is incorporated by reference herein. In particular embodiments, the calibrator is included as part of the infusion device  34  and the glucose reference values are entered by the user into the infusion device  34 . In other embodiments, the glucose reference values are entered into the telemetered characteristic monitor transmitter  30  and the calibrator calibrates the digital sensor values Dsig and transmits calibrated digital sensor values to the infusion device  34 . In further embodiments, the glucose reference values are entered into a supplemental device where the calibration is executed. In alternative embodiments, a blood glucose meter is in communication with the infusion device  34 , telemetered characteristic monitor transmitter  30  or supplemental device so that glucose reference values may be transmitted directly into the device that the blood glucose meter is in communication with. In additional alternative embodiments, the blood glucose meter is part of the infusion device  34 , telemetered characteristic monitor transmitter  30  or supplemental device such as that shown in U.S. patent application Ser. No. 09/334,996, filed on Jun. 17, 1999, entitled “CHARACTERISTIC MONITOR WITH A CHARACTERISTIC METER AND METHOD OF USING THE SAME”, which is incorporated by reference herein. 
     In preferred embodiments, to obtain blood glucose reference values, one or more blood samples are extracted from the body  20 , and a common, over-the-counter, blood glucose meter is used to measure the blood plasma glucose concentration of the samples. Then a digital sensor value Dsig is compared to the blood glucose measurement from the meter and a mathematical correction is applied to convert the digital sensor values Dsig to blood glucose values. In alternative embodiments, a solution of a known glucose concentration is introduced into the subcutaneous tissue surrounding the sensor  26  by using methods and apparatus such as described in U.S. patent application Ser. No. 09/395,530, filed on Sep. 14, 1999, entitled “METHOD AND KIT FOR SUPPLYING A FLUID TO A SUBCUTANEOUS PLACEMENT SITE”, which is incorporated by reference herein, or by using injection, infusion, jet pressure, introduction through a lumen, or the like. A digital sensor value Dsig is collected while the sensor  26  is bathed in the solution of known glucose concentration. A mathematical formula such as a factor, an offset, an equation, or the like, is derived to convert the digital sensor value Dsig to the known glucose concentration. The mathematical formula is then applied to subsequent digital sensors values Dsig to obtain blood glucose values. In alternative embodiments, the digital sensor values Dsig are calibrated before filtering. In additional alternative embodiments, the digital sensor values Dsig are calibrated after pre-filtering and before filtering. In other alternative embodiments, the sensors are calibrated before they are used in the body or do not require calibration at all. 
     Sensor Signal Processing Systems 
     Before filtering and calibrating, generally the sensor signal is processed to convert the sensor signal from a raw form into a form acceptable for use in the filters and/or calibrator. In preferred embodiments, as shown in  FIG. 10 , an analog sensor signal Isig is digitally quantified through an A/D converter  68  resulting in digital sensor values Dsig that are transmitted by a transmitter  70  from the telemetered characteristic monitor transmitter  30  to another device. In particular embodiments, the analog sensor signal Isig is an analog current value that is converted to a digital sensor value Dsig in the form of a digital frequency measurement, as shown in  FIG. 11 ( a ) . The general circuit includes an integrator  72 , a comparator  74 , a counter  76 , a buffer  78 , a clock  80  and the transmitter  70 . The integrator  72  generates a substantially ramped voltage signal (A), and the instantaneous slope of the ramped voltage signal is proportional to the magnitude of the instantaneous analog sensor signal Isig. The comparator  74  converts the ramped voltage signal (A) from the integrator  72  into square wave pulses (B). Each pulse from the comparator  74  increments the counter  76  and also resets the integrator  72 . The clock  80  periodically triggers the buffer  78  to store the present value from the counter  76  and then resets the counter  76 . The values stored in the buffer  78  are the digital sensor values Dsig. The clock  80  may also periodically signal the transmitter  70  to send a value from the buffer  78 . In preferred embodiments, the clock period is one minute. However, in alternative embodiments, the clock period may be adjusted based on how often measurements are needed, sensor signal noise, sensor sensitivity, required measurement resolution, the type of signal to be transmitted, or the like. In alternative embodiments, a buffer is not used. 
     A/D Converters 
     Various A/D converter designs may be used in embodiments of the present invention. The following examples are illustrative, and not limiting, since other A/D converters may be used. 
     I to F (Current to Frequency (Counts)), Single Capacitor, Quick Discharge 
     In preferred embodiments, the integrator  72  consists of a first Op-Amp  92  and a capacitor  82 , shown in  FIG. 12 . The integrator  72  sums the analog sensor signal Isig current by charging the capacitor  82  until the capacitor voltage (A′) achieves a high reference voltage (VrefH). The capacitor voltage (A′) is measured at the output of the first Op-Amp  92 . A second Op-Amp  94  is used as a comparator. When the capacitor voltage (A′) reaches VrefH, the comparator output (B′) changes from low to high. The high comparator output (B′) closes a reset switch  84  that discharges the capacitor  82  through a voltage source (V+). The high comparator output (B′) also triggers a reference voltage switch  88  to close, while substantially simultaneously an inverter  86  inverts the comparator output (B′). And the inverter output (C′) triggers a reference voltage switch  90  to open. The result is that the reference voltage of the comparator is changed from VrefH to the low reference voltage (VrefL). 
     When the capacitor voltage (A′) is discharged to VrefL, the comparator output (B′) returns to low, thus forming a pulse. The low comparator output (B′) opens the reset switch  84  allowing the capacitor  82  to begin charging again. 
     Virtually simultaneously, the low comparator output (B′) also triggers the reference voltage switch  88  to open and the inverter output (C′) triggers reference voltage switch  90  to close resulting in changing the comparator reference voltage from VrefL back to VrefH. 
     I to F, Single Reversible Capacitor 
     In alternative embodiments, two or more integrator switches are used to control the polarity of one or more capacitors. A particular embodiment is shown in  FIG. 13 . Generally, only one of the two integrator-switches  110  and  112  is closed and the other integrator switch is open. When the first integrator switch  110  is closed, the second integrator switch  112  is open and an integrator Op-Amp  114  sums the analog sensor signal Isig current by charging a capacitor  116  until the capacitor voltage (A″) achieves a high reference voltage (VrefH). The comparator  120  compares the integrator output (A″) to the reference voltage VrefH. And when the capacitor voltage (A″) reaches VrefH, the comparator output (B″) shifts from low to high, initiating a pulse. 
     The high comparator output (B″) pulse causes the capacitor polarity to reverse using the following method. The high comparator output (B″) triggers the second integrator switch  112  to close while virtually simultaneously the inverter  118  inverts the comparator output (B″). And the low inverter output (C″) pulse triggers the first integrator switch  110  to open. Once the capacitor&#39;s polarity is reversed, the capacitor  116  discharges at a rate proportional to the analog sensor signal Isig. The high comparator output (B″) pulse also triggers the reference voltage of the comparator to change form VrefH the low reference voltage (VrefL). When the capacitor voltage (A″) is discharged to VrefL, the comparator output (B″) returns to low. The low comparator output (B″) opens the second integrator switch  112  and virtually simultaneously the high inverter output (C″) closes the first integrator switch  110  allowing the capacitor  116  to begin charging again. The low comparator output (B″) also triggers the comparator reference voltage to change from VrefL back to VrefH. 
     An advantage of this embodiment is that sensor signal errors, which may be created due to capacitor discharge time, are reduced since the magnitude of the analog sensor signal Isig drives both the charging and the discharging rates of the capacitor  116 . 
     I to F, Dual Capacitor 
     In further alternative embodiments, more than one capacitor is used such that as one capacitor is charging, at a rate proportional to the magnitude of the analog sensor signal Isig, another capacitor is discharging. An example of this embodiment is shown in  FIG. 14 . A series of three switches are used for each capacitor. A first group of switches  210  is controlled by a latch voltage C′″, and a second group of switches  212  are controlled by voltage D′″, which is the inverse of C′″. Substantially, only one group of switches is closed at a time. When the first group of switches  210  is closed, the voltage across a first capacitor  216  increases at a rate proportional to the analog sensor signal Isig until the integrator voltage (A′″) at the output of Op-Amp  214  achieves a reference voltage (Vref). At the same time one of the switches shorts the circuit across a second capacitor  222  causing it to discharge. A comparator  220  compares the integrator output (A′″) to the reference voltage Vref. And when the integrator output (A′″) reaches Vref, the comparator output (B′″) generates a pulse. The comparator output pulse increments a counter  76 , and triggers the latch output voltage C′″ from a latch  221  to toggle from a low voltage to a high voltage. The change in the latch voltage C′″ causes the second group of switches  212  to close and the first group of switches  210  to open. One of the switches from the second group of switches  212  shorts the circuit across the first capacitor  216  causing it to discharge. At the same time the voltage across the second capacitor  222  increases at a rate proportional to the analog sensor signal Isig until the integrator voltage (A′″) at the output of Op-Amp  214  achieves a reference voltage (Vref). Again, the comparator  220  compares the integrator output (A′″) to the reference voltage Vref. And when the integrator output (A′″) reaches Vref, the comparator output (B′″) generates a pulse. The comparator output pulse increments the counter  76 , and triggers the latch output voltage C′″ to toggle from a high voltage to a low voltage, which causes the switches to return to their initial position with the first group of switches  210  closed and the second group of switches  212  to open. 
     In summary, as the blood glucose level  18  increases, the analog sensor signal Isig increases, which causes the voltage coming out of the integrator  72  to ramp up faster to the high reference voltage VrefH, which causes the comparator  74  to generate pulses more often, which adds counts to the counter  76  faster. Therefore, higher blood glucose levels generate more counts per minute. 
     The charge storage capacity for the capacitors used in the integrator  72 , and the reference voltages VrefH, and VrefL are selected such that the count resolution for counts collected in a one-minute period at a glucose level of 200 mg/dl represents a blood glucose measurement error of less than 1 mg/dl. In particular embodiments, VrefH is 1.1 volts and VrefL is 0.1 volts. Higher or lower reference voltages may be selected based on the magnitude of the analog sensor signal Isig, the capacity of the capacitors, and the desired measurement resolution. The source voltage V+ is set to a voltage sufficiently high to discharge one or more capacitors quickly enough that the discharge times do not significantly reduce the number of counts per minute at a blood glucose level of 200 mg/dl. 
     Pulse Duration Output Feature 
     In preferred embodiments, the transmitter  70  transmits the digital sensor values Dsig from the buffer  78  whenever triggered by the clock  80 . However, in particular embodiments, the user or another individual may use a selector  96  to choose other outputs to be transmitted from the transmitter  70 , as shown in  FIG. 11B . In preferred embodiments, the selector  96  is in the form of a menu displayed on a screen that is accessed by the user or another individual by using buttons on the surface of the telemetered characteristic monitor transmitter  30 . In other embodiments, a dial selector, dedicated buttons, a touch screen, a signal transmitted to the telemetered characteristic monitor transmitter  30 , or the like, may be used. Signals that may be selected to be transmitted, other than the digital sensor values Dsig, include, but are not limited to, a single pulse duration, digital sensor values before pre-filtering, digital sensor values after pre-filtering but before filtering, digital sensor values after filtering, or the like. 
     In particular embodiments, a pulse duration counter  98  counts clock pulses from a pulse duration clock  100  until the pulse duration counter  98  is reset by a rising or falling edge of a pulse from the comparator  74 , as shown in  FIG. 11B . The accumulated count at the time that the pulse duration counter  98  is reset represents the pulse duration for a portion of a single pulse from the comparator  74 . The accumulated count from the pulse duration counter  98  is stored in the single pulse buffer  102  when triggered by the reset signal. When an individual selects the single pulse output, the transmitter  70  transmits the values from the single pulse buffer  102 . The pulse duration clock  100  period must be sufficiently shorter than the period between individual pulse edges from the comparator  74  given a high analog sensor signal Isig to have sufficient resolution to quantify different pulse durations from the comparator  74 . 
     I to V (Current to Voltage), Voltage A/D 
     Alternative methods may be used to convert the analog sensor signal Isig from an analog current signal to a digital voltage signal. The analog sensor signal Isig is converted to an analog voltage Vsig using an Op Amp  302  and a resistor  304 , as shown in  FIG. 15 . And then periodically a clock  308  triggers an A/D converter  306  to take a sample value from the analog voltage Vsig and convert it to a digital signal representing the magnitude of the voltage. The output values of the A/D converter  306  are digital sensor values Dsig. The digital sensor values Dsig are sent to a buffer  310  and then to the transmitter  70 . In particular embodiments, the resistor  304  may be adjusted to scale the Vsig to use a significant portion of the range of the voltage A/D converter  306  depending on the sensor sensitivity, the maximum glucose concentration to be measured, the desired resolution from the voltage A/D converter  306 , or the like. 
     In alternative embodiments, a buffer  310  is not needed and the digital sensor values Dsig are sent from the A/D converter directly to the transmitter  70 . In other alternative embodiments, the digital sensor values Dsig are processed, filtered, modified, analyzed, smoothed, combined, averaged, clipped, scaled, calibrated, or the like, before being sent to the transmitter  70 . In preferred embodiments, the clock  308  triggers a measurement every 10 seconds. In alternative embodiments, the clock  308  runs faster or slower triggering measurements more or less frequently depending on how quickly the blood glucose level can change, the sensor sensitivity, how often new measurements are needed to control the delivery system  14 , or the like. 
     Finally, in other alternative embodiments, other sensor signals from other types of sensors, as discussed in the section “Sensor and Sensor Set” below, are converted to digital sensor values Dsig if necessary before transmitting the digital sensor values Dsig to another device. 
     Additional Controller Inputs 
     Generally, the proportional plus, integral plus, derivative (PID) insulin response controller uses only glucose (digital sensor values Dsig) as an input. Conversely, in a normally glucose tolerant human body, healthy β-cells benefit from additional inputs such as neural stimulation, gut hormone stimulation, changes in free fatty acid (FFA) and protein stimulation etc. Thus in other alternative embodiments, the PID controller, as discussed above, can be augmented with one or more additional inputs. In particular alternative embodiments, the user may manually input supplemental information such as a start of a meal, an anticipated carbohydrate content of the meal, a start of a sleep cycle, an anticipated sleep duration, a start of an exercise period, an anticipated exercise duration, an exercise intensity estimation, or the like. Then, a model predictive control feature assists the controller to use the supplemental information to anticipate changes in glucose concentration and modify the output commands accordingly. For example, in a NGT individual, neural stimulation triggers the β-cells to begin to secrete insulin into the blood stream before a meal begins, which is well before the blood glucose concentration begins to rise. So, in alternative embodiments, the user can tell the controller that a meal is beginning and the controller will begin to secrete insulin in anticipation of the meal. 
     In other alternative embodiments, the user or another individual may manually override the control system or select a different controller algorithm. For instance, in particular alternative embodiments, an individual may select to normalize to a basal glucose level immediately, and instead of using the β-cell emulating PID controller another controller would take over such as a PID controller with different gains, a PD controller for rapid glucose adjustment, or the like. Additional alternative embodiments allow an individual to turn off the integral component of the PID controller once the glucose level is normalized and no meals are anticipated. In other particular alternative embodiments, the user may select to turn off the controller entirely, therefore disengaging the closed loop system. Once the closed loop system is not controlling insulin dosing, the user may program the infusion device with a basal rate, variable basal rates, boluses, or the like, or the user may manually enter each individual dosage when it is needed. 
     In still other alternative embodiments, more than one body characteristic is measured, and the measurements are provided as inputs to a controller. Measured body characteristics that may be used by the controller include, but are not limited to, the blood glucose level, blood and/or ISF pH, body temperature, the concentration of amino acids in blood (including arginine and/or lysine, and the like), the concentration of gastrointestinal hormones in blood or ISF (including gastrin, secretin, cholecystokinin, and/or gastro inhibitory peptide, and the like), the concentration of other hormones in blood or ISF (including glucagons, growth hormone, cortisol, progesterone and/or estrogen, and the like), blood pressure, body motion, respiratory rate, heart rate, and other parameters. 
     In NGT individuals, the glucose-induced secretion of insulin by healthy β-cells may be as much as doubled in the presence of excess amino acids. Yet, the presence of excess amino acids alone, without elevated blood glucose, only mildly increases insulin secretions according to the Textbook of Medical Physiology, Eighth Edition, written by Arthur C. Guyton, published by W. B. Saunders Company, 1991, Ch. 78, pg. 861, section “Other Factors That Stimulate Insulin Secretion”. In particular alternative embodiments, amino acid concentrations are estimated or measured, and the controller&#39;s insulin response increases when amino acid concentrations are sufficiently high. 
     In NGT individuals, the presence of sufficient quantities of gastrointestinal hormones in the blood causes an anticipatory increase in blood insulin, which suggests that β-cells release insulin before increases in blood glucose due to an individual&#39;s anticipation of a meal. In particular alternative embodiments, the concentration of gastrointestinal hormones is measured or estimated, and when concentrations are high enough to indicate that a meal is anticipated, the controller commands are adjusted to cause insulin introduction into the body even before the blood glucose level changes. In other alternative embodiments, the controller uses measurements or estimates of other hormones to modify the rate of insulin secretion. 
     In NGT individuals, the body&#39;s cells take up glucose during periods of heavy exercise with significantly lower levels of insulin. In alternative embodiments, physiologic parameters such as body motion, blood pressure, pulse rate, respiratory rate, or the like, are used to detect periods of heavy exercise by the body and therefore provide inputs to the controller that decreases (or eliminates) the amount of insulin infused into the body to compensate for glucose concentrations. 
     Sensor Compensation and End-of-Life Detection 
     In particular embodiments, the sensor sensitivity  510  may degrade over time, as shown in  FIG. 31B . As the sensor sensitivity  510  changes the sensor signal accuracy degrades. If the sensor sensitivity  510  changes significantly then the sensor must be recalibrated or replaced. A diagnostic signal may be used to evaluate whether sensor signal accuracy has changed and/or may be used to adjust the signal or to indicate when to recalibrate or replace the sensor. As the sensor sensitivity  510  decreases, the measured glucose level  512  using the sensor signal underestimates the actual blood glucose level  514 , and the measurement error  516  between the measured glucose level  512  and the actual blood glucose level  514  becomes greater over time, as shown in  FIG. 31A . The sensor sensitivity  510  decreases due to increases in sensor resistance Rs, as shown in  FIG. 31C . The sensor resistance Rs is the resistance provided by the body between the working electrode WRK and the counter electrode CNT, shown as the sum or R 1  and R 2  in the circuit diagram of  FIG. 7 . The sensor resistance Rs can be obtained indirectly by measuring the analog sensor signal Isig and the counter electrode voltage Vcnt and then calculating the resistance, Rs=Vcnt/Isig. 
     As the sensor resistance Rs increases, the analog sensor signal Isig response to a given glucose concentration decreases. In preferred embodiments, the decrease in the analog sensor signal Isig may be compensated for by identifying the amount that the sensor resistance Rs has changed since the last calibration and then using the change in resistance in a correction algorithm  454  to adjust the analog sensor signal value. A compensation value calculated by the correction algorithm  454  is used to increase the sensor analog signal value. The compensation value increases over time as the sensor resistance Rs increases. The correction algorithm  454  includes at least one value that varies with changes in sensor resistance Rs. In particular embodiments, a low pass filter is applied to the sensor resistance Rs measurement to decrease high frequency noise before evaluating how much the sensor resistance Rs has changed since the last calibration. 
     In alternative embodiments, the sensor resistance Rs may be calculated using different equations. For instance, a sensor resistance Rs 2  may be calculated as:
 
 Rs   2 =( V   0   −Vcnt/Isig )
 
     In particular embodiments, V 0  is the same voltage as Vset. An advantage of this approach is that it accounts for the voltage level Vset, which can vary from sensor to sensor and/or monitor to monitor, and/or as the analog sensor signal changes. This removes the noise and/or offset associated with variations in Vset, and can provide a more accurate indication of sensor resistance. In other particular embodiments, V 0  is set at −0.535 volts, which is a commonly used voltage for Vset. In further embodiments, V 0  is calculated from paired measurements of Vcnt and Isig. Using least squares or another curve fitting method, a mathematical equation representing the curve (typically a straight line equation) is derived from the relationship between Vcnt and Isig. Then, V 0  is obtained by extrapolating the curve to find the value for Vcnt when Isig is zero. 
       FIGS. 38A-H  show a comparison between calculating the sensor resistance with V 0  and without V 0 . The plot of the derivative of Rs 2  shown in  FIG. 38G  is cleaner and indicates the sensor failure more clearly than the plot of the derivative of Rs shown in  FIG. 38F . Hence sensor resistance Rs 2  may be used instead of, or in conjunction with, sensor resistance Rs described above. 
     In preferred embodiments, the sensor is recalibrated or replaced when the change in the sensor resistance Rs since the last calibration exceeds a threshold, or the rate of change of the sensor resistance dRs/dt exceeds another threshold. In particular embodiments, the rate of change of the sensor resistance dRs/dt may be compared to two thresholds as shown in  FIG. 32 . If dRs/dt exceeds a “replacement” threshold then a warning is provided to the user to replace the sensor. If dRs/dt exceeds a “recalibrate” threshold then a warning is provided to the user to recalibrate the sensor. 
     In an example shown in  FIGS. 33A-C , the analog sensor signal Isig decreases dramatically at approximately 0.3 days, as seen in  FIG. 33A . Given only the analog sensor signal Isig, the user would believe that the decrease in the analog sensor signal Isig is due to a decrease in blood glucose. But in reality the drop in the analog sensor signal Isig is due to a sudden change in sensor sensitivity. The sensor resistance Rs, shown in  FIG. 33A  increases as the analog sensor signal Isig drops at about 0.3 days. The derivative of the sensor resistance dRs/dt, shown in  FIG. 33C , clearly shows a spike  522  at about 0.3 days when the analog sensor signal Isig dropped. The spike  522  in the change in sensor resistance dRs/dt indicates a sensor anomaly rather than a realistic drop in blood glucose. If a threshold were placed at +/−4 on the dRs/dt, the user would have received a warning to replace the sensor at about 0.3 days. As seen in  FIG. 33A , the sensor was not replaced until about 1.4 days. The analog sensor signal Isig was under estimating the true glucose level from about 0.3 days until the sensor was replaced at about 1.4 days. 
     In particular embodiments, the amount of time dt over which the derivative of the sensor resistance Rs is taken is the entire time since the last calibration. In other embodiments, the amount of time dt over which the derivative is taken is fixed, for example over the last hour, 90 minutes, 2 hours, or the like. 
     In alternative embodiments, the sensor is recalibrated or replaced when the integral of the sensor resistance Rs over a predetermined time window (∫ Rs d/dt) exceeds a predetermined resistance integral threshold. An advantage to this approach is that it tends to filter out potential noise that could be encountered from a signal that includes occasional spikes, sudden variations in voltage levels, or the like. Preferably, the integral of the sensor resistance Rs is calculated over a time window (such as 15 minutes, or the like) based on Rs measurements obtained at set rates (such as 1 minute, 5 minutes, or the like) during the time window. In alternative embodiments, the time windows may be longer or shorter and different sampling rates may be used, with the selection being dependent on noise, response of the system, sampling rate used in the controller, or the like. In further embodiments, the time windows and sampling rates may change over time, such as when approaching the end of the expected sensor life, or as the equations indicate that the sensor is degrading, or the like. 
     Like above, multiple thresholds may be used. For instance, if ∫Rs d/dt exceeds a “replacement” threshold then a warning is provided to the user to replace the sensor. And if ∫Rs d/dt exceeds a “recalibrate” threshold then a warning is provided to the user to recalibrate the sensor. In further alternative embodiments, the counter electrode voltage Vcnt is used to evaluate other characteristics such as, sensor accuracy, sensor bio-fouling, sensor function, sensor voltage operating range, sensor attachment, or the like. 
     pH Controller Input 
     In alternative embodiments, the controller uses measurements of both the interstitial fluid (ISF) glucose level and a local pH in the ISF surrounding the sensor to generate commands for the infusion device. In particular alternative embodiments, a single multi-sensor  508  located in the subcutaneous tissue is used to measure both the glucose level and the pH. The tip of the multi-sensor  508  that is placed into the subcutaneous tissue with three electrodes is shown in  FIG. 30 . The working electrode  502  is plated with platinum black and coated with glucose oxidase (GOX). The reference electrode  506  is coated with silver-silver chloride. And the counter electrode  504  is coated with iridium oxide (Ir Ox). The analog sensor signal Isig is generated at the working electrode  502  due to the reaction between glucose oxidase GOX and the ISF glucose as described with the preferred sensor embodiment. In this alternative embodiment however, as glucose in the ISF reacts with the glucose oxidase GOX on the working electrode and gluconic acid is generated, the local pH in the ISF surrounding the sensor decreases, which changes the potential of the iridium oxide on the counter electrode  504 , with respect to the reference electrode REF. So, as the pH decreases, the voltage at the counter electrode  504  increases. Therefore, as the glucose concentration increases, the local pH decreases, which causes the counter electrode voltage to increase. So, the glucose concentration may be estimated based on the counter electrode voltage. The counter electrode voltage estimate of glucose concentration can be compared to the estimate of glucose level from the analog sensor signal Isig. The two estimates of the glucose level may be combined by a weighted average or one estimate may simply be used as a check to verify that the other sensing method is functioning properly. For example, if the difference between the two estimates is 10% for a period of time and then suddenly the difference increased to 50%, a warning would be issued indicating to the user that the sensor may need to be replaced or recalibrated. 
     In additional alternative embodiments, the pH level near the sensor may be used to detect infection. By tracking trends in the pH over time, a dramatic change in pH may be used to identify that an infection has developed in proximity to the sensor. A warning is used to notify the user to replace the sensor. 
     The pH sensor may be used in other embodiments. When insulin is not available to assist the body to use glucose, the body shifts to consuming fat for energy. As the body shifts from using glucose to using almost exclusively fat for energy, concentrations of keto acids (acetoacetic acid and β-hydroxybutyric acid) increase from about 1 mEq/liter to as high as 10 mEq/liter. In particular alternative embodiments, the pH level is measured to detect increases in keto acids in the body. In embodiments of the present invention, a warning is provided to the user when the ISF pH level is too low. 
     A side effect of the increased of keto acid concentrations is that sodium is drawn from the body&#39;s extra cellular fluid to combine with the acids so that the body can excrete the acids. This leads to increased quantities of hydrogen ions, which greatly increases the acidosis. Severe cases lead to rapid deep breathing, acidotic coma and even death. In other alternative embodiments, an ion-selective electrode (ISE) is used to detect changes in sodium concentration. A special membrane is used to coat the ISE so that it only senses changes in sodium concentration. In particular alternative embodiments, the ISE is a fourth electrode added to the glucose sensor. In another alternative embodiment, a three-electrode system is used with a silver-silver chloride reference electrode REF, an Ir Ox counter electrode CNT, and a sodium ion-selective (Na ISE) working electrode WRK. 
     While pH measurements, end-of-life measurements, hormone measurements, or the like, add inputs to the controller that can significantly affect the accuracy of insulin delivery, the basic input to the controller is generally a glucose measurement. The glucose measurement is provided by the sensor system. And once the controller uses the glucose measurement to generate commands, the delivery system executes the commands. The following is a detailed description of several apparatus embodiments for the sensor system and the delivery system. 
     Sensor System 
     The sensor system provides the glucose measurements used by the controller. The sensor system includes a sensor, a sensor set to hold the sensor if needed, a telemetered characteristic monitor transmitter, and a cable if needed to carry power and/or the sensor signal between the sensor and the telemetered characteristic monitor transmitter. 
     Sensor and Sensor Set 
     In preferred embodiments, the glucose sensor system  10  includes a thin film electrochemical sensor such as the type disclosed in U.S. Pat. No. 5,391,250, entitled “METHOD OF FABRICATING THIN FILM SENSORS”; U.S. patent application Ser. No. 09/502,204, filed on Feb. 10, 2000, entitled “IMPROVED ANALYTE SENSOR AND METHOD OF MAKING THE SAME”; or other typical thin film sensors such as described in commonly assigned U.S. Pat. Nos. 5,390,671; 5,482,473; and 5,586,553 which are incorporated by reference herein. See also U.S. Pat. No. 5,299,571. 
     The glucose sensor system  10  also includes a sensor set  28  to support the sensor  26  such as described in U.S. Pat. No. 5,586,553, entitled “TRANSCUTANEOUS SENSOR INSERTION SET” (published as PCT Application WO 96/25088); and U.S. Pat. No. 5,954,643, entitled “INSERTION SET FOR A TRANSCUTANEOUS SENSOR” (published as PCT Application WO 98/56293); and U.S. Pat. No. 5,951,521, entitled “A SUBCUTANEOUS IMPLANTABLE SENSOR SET HAVING. THE CAPABILITY TO REMOVE OR DELIVER FLUIDS TO AN INSERTION SITE”, which are incorporated by reference herein. 
     In preferred embodiments, the sensor  26  is inserted through the user&#39;s skin  46  using an insertion needle  58 , which is removed and disposed of once the sensor is positioned in the subcutaneous tissue  44 . The insertion needle  58  has a sharpened tip  59  and an open slot  60  to hold the sensor during insertion into the skin  46 , as shown in  FIGS. 3C  and D and  FIG. 4 . Further description of the needle  58  and the sensor set  28  are found in U.S. Pat. No. 5,586,553, entitled “TRANSCUTANEOUS SENSOR INSERTION SET” (published as PCT Application WO 96/25088); and U.S. Pat. No. 5,954,643, entitled “INSERTION SET FOR A TRANSCUTANEOUS SENSOR” (published as PCT Application WO 98/5629), which are incorporated by reference herein. 
     In preferred embodiments, the sensor  26  has three electrodes  42  that are exposed to the interstitial fluid (ISF) in the subcutaneous tissue  44  as shown in  FIGS. 3D and 4 . A working electrode WRK, a reference electrode REF and a counter electrode CNT are used to form a circuit, as shown in  FIG. 7 . When an appropriate voltage is supplied across the working electrode WRK and the reference electrode REF, the ISF provides impedance (R 1  and R 2 ) between the electrodes  42 . And an analog current signal Isig flows from the working electrode WRK through the body (R 1  and R 2 , which sum to Rs) and to the counter electrode CNT. Preferably, the working electrode WRK is plated with platinum black and coated with glucose oxidase (GOX), the reference electrode REF is coated with silver-silver chloride, and the counter electrode is plated with platinum black. The voltage at the working electrode WRK is generally held to ground, and the voltage at the reference electrode REF is substantially held at a set voltage Vset. Vset is between 300 and 700 mV, and preferably to about 535 mV. 
     The most prominent reaction stimulated by the voltage difference between the electrodes is the reduction of glucose as it first reacts with GOX to generate gluconic acid and hydrogen peroxide (H 2 O 2 ). Then the H 2 O 2  is reduced to water (H 2 O) and (O − ) at the surface of the working electrode WRK. The O −  draws a positive charge from the sensor electrical components, thus repelling an electron and causing an electrical current flow. This results in the analog current signal Isig being proportional to the concentration of glucose in the ISF that is in contact with the sensor electrodes  42 . The analog current signal Isig flows from the working electrode WRK, to the counter electrode CNT, typically through a filter and back to the low rail of an op-amp  66 . An input to the op-amp  66  is the set voltage Vset. The output of the op-amp  66  adjusts the counter voltage Vcnt at the counter electrode CNT as Isig changes with glucose concentration. The voltage at the working electrode WRK is generally held to ground, the voltage at the reference electrode REF is generally equal to Vset, and the voltage Vcnt at the counter electrode CNT varies as needed. 
     In alternative embodiments, more than one sensor is used to measure blood glucose. In particular embodiments, redundant sensors are used. The user is notified when a sensor fails by the telemetered characteristic monitor transmitter electronics. An indicator may also inform the user of which sensors are still functioning and/or the number of sensors still functioning. In other particular embodiments, sensor signals are combined through averaging or other means. If the difference between the sensor signals exceeds a threshold then the user is warned to recalibrate or replace at least one sensor. In other alternative embodiments, more than one glucose sensor is used, and the glucose sensors are not of the same design. For example, an internal glucose sensor and an external glucose sensor may be used to measure blood glucose at the same time. 
     In alternative embodiments, other continuous blood glucose sensors and sensor sets may be used. In particular alternative embodiments, the sensor system is a micro needle analyte sampling device such as described in U.S. patent application Ser. No. 09/460,121, filed on Dec. 13, 1999, entitled “INSERTION SET WITH MICROPIERCING MEMBERS AND METHODS OF USING THE SAME”, incorporated by reference herein, or an internal glucose sensor as described in U.S. Pat. Nos. 5,497,772; 5,660,163; 5,791,344; and 5,569,186, and/or a glucose sensor that uses florescence such as described in U.S. Pat. No. 6,011,984 all of which are incorporated by reference herein. In other alternative embodiments, the sensor system uses other sensing technologies such as described in Patent Cooperation Treaty publication No. WO 99/29230, light beams, conductivity, jet sampling, micro dialysis, micro-poration, ultra sonic sampling, reverse iontophoresis, or the like. In still other alternative embodiments, only the working electrode WRK is located in the subcutaneous tissue and in contact with the ISF, and the counter CNT and reference REF electrodes are located external to the body and in contact with the skin. In particular embodiments, the counter electrode CNT and the reference electrode REF are located on the surface of a monitor housing  518  and are held to the skin as part of the telemetered characteristic monitor, as shown in  FIG. 34A . In other particular embodiments, the counter electrode CNT and the reference electrode REF are held to the skin using other devices such as running a wire to the electrodes and taping the electrodes to the skin, incorporating the electrodes on the underside of a watch touching the skin, or the like. In more alternative embodiments, more than one working electrode WRK is placed into the subcutaneous tissue for redundancy. In additional alternative embodiments, a counter electrode is not used, a reference electrode REF is located outside of the body in contact with the skin, and one or more working electrodes WRK are located in the ISF. An example of this embodiment implemented by locating the reference electrode REF on a monitor housing  520  is shown in  FIG. 34B . In other embodiments, ISF is harvested from the body of an individual and flowed over an external sensor that is not implanted in the body. 
     Sensor Cable 
     In preferred embodiments, the sensor cable  32  is of the type described in U.S. patent application Ser. No. 60/121,656, filed on Feb. 25, 1999, entitled “TEST PLUG AND CABLE FOR A GLUCOSE MONITOR”, which is incorporated by reference herein. In other embodiments, other cables may be used such as shielded, low noise cables for carrying nA currents, fiber optic cables, or the like. In alternative embodiments, a short cable may be used or the sensor may be directly connected to a device without the need of a cable. 
     Telemetered Characteristic Monitor Transmitter 
     In preferred embodiments, the telemetered characteristic monitor transmitter  30  is of the type described in U.S. patent application Ser. No. 09/465,715, filed on Dec. 17, 1999, entitled “TELEMETERED CHARACTERISTIC MONITOR SYSTEM AND METHOD OF USING THE SAME” (published as PCT Application WO 00/19887 and entitled, “TELEMETERED CHARACTERISTIC MONITOR SYSTEM”), which is incorporated by reference herein, and is connected to the sensor set  28  as shown in  FIGS. 3A  and B. 
     In alternative embodiments, the sensor cable  32  is connected directly to the infusion device housing, as shown in  FIG. 8A , which eliminates the need for a telemetered characteristic monitor transmitter  30 . The infusion device contains a power supply and electrical components to operate the sensor  26  and store sensor signal values. 
     In other alternative embodiments, the telemetered characteristic monitor transmitter includes a receiver to receive updates or requests for additional sensor data or to receive a confirmation (a hand-shake signal) indicating that information has been received correctly. Specifically, if the telemetered characteristic monitor transmitter does not receive a confirmation signal from the infusion device, then it re-sends the information. In particular alternative embodiments, the infusion device anticipates receiving blood glucose values or other information on a periodic basis. If the expected information is not supplied when required, the infusion device sends a “wake-up” signal to the telemetered characteristic monitor transmitter to cause it to re-send the information. 
     Insulin Delivery System 
     Infusion device 
     Once a sensor signal  16  is received and processed through the controller  12 , commands  22  are generated to operate the infusion device  34 . In preferred embodiments, semi-automated medication infusion devices of the external type are used, as generally described in U.S. Pat. Nos. 4,562,751; 4,678,408; 4,685,903; and U.S. patent application Ser. No. 09/334,858, filed on Jun. 17, 1999, entitled “EXTERNAL INFUSION DEVICE WITH REMOTE PROGRAMMING, BOLUS ESTIMATOR AND/OR VIBRATION CAPABILITIES” (published as PCT application WO 00/10628), which are herein incorporated by reference. In alternative embodiments, automated implantable medication infusion devices, as generally described in U.S. Pat. Nos. 4,373,527 and 4,573,994, are used, which are incorporated by reference herein. 
     Insulin 
     In preferred embodiments, the infusion device reservoir  50  contains HUMALOG® lispro insulin to be infused into the body  20 . Alternatively, other forms of insulin may be used such as HUMALIN®, human insulin, bovine insulin, porcine insulin, analogs, or other insulins such as insulin types described in U.S. Pat. No. 5,807,315, entitled “METHOD AND COMPOSITIONS FOR THE DELIVERY OF MONOMERIC PROTEINS”, and U.S. Patent Application Ser. No. 60/177,897, filed on Jan. 24, 2000, entitled “MIXED BUFFER SYSTEM FOR STABILIZING POLYPEPTIDE FORMULATIONS”, which are incorporated by reference herein, or the like. In further alternative embodiments, other components are added to the insulin such as polypeptides described in U.S. patent application Ser. No. 09/334,676, filed on Jun. 25, 1999, entitled “MULTIPLE AGENT DIABETES THERAPY”, small molecule insulin mimetic materials such as described in U.S. patent application Ser. No. 09/566,877, filed on May 8, 2000, entitled “DEVICE AND METHOD FOR INFUSION OF SMALL MOLECULE INSULIN MIMETIC MATERIALS”, both of which are incorporated by reference herein, or the like. 
     Infusion Tube 
     In preferred embodiments, an infusion tube  36  is used to carry the insulin  24  from the infusion device  34  to the infusion set  38 . In alternative embodiments, the infusion tube carries the insulin  24  from infusion device  34  directly into the body  20 . In further alternative embodiments, no infusion tube is needed, for example if the infusion device is attached directly to the skin and the insulin  24  flows from the infusion device, through a cannula or needle directly into the body. In other alternative embodiments, the infusion device is internal to the body and an infusion tube may or may not be used to carry insulin away from the infusion device location. 
     Infusion Set 
     In preferred embodiments, the infusion set  38  is of the type described in U.S. Pat. No. 4,755,173, entitled “SOFT CANNULA SUBCUTANEOUS INJECTION SET”, which is incorporated by reference herein. In alternative embodiments, other infusion sets, such described in U.S. Pat. Nos. 4,373,527 and 4,573,994, are used, which are incorporated by reference herein. In alternative embodiments, other infusion sets, such as the Rapid set from Disetronic, the Silhouette from MiniMed, or the like, may be used. In further alternative embodiments, no infusion set is required, for example if the infusion device is an internal infusion device or if the infusion device is attached directly to the skin. 
     Configurations with Supplemental Devices 
     In further alternative embodiments, the pre-filter, filters, calibrator and/or controller  12  are located in a supplemental device that is in communication with both the telemetered characteristic monitor transmitter  30  and the infusion device  34 . Examples of supplemental devices include, a hand held personal digital assistant such as described in U.S. patent application Ser. No. 09/487,423, filed on Jan. 20, 2000, entitled “HANDHELD PERSONAL DATA ASSISTANT (PDA) WITH A MEDICAL DEVICE AND METHOD OF USING THE SAME”, which is incorporated by reference herein, a computer, a module that may be attached to the telemetered characteristic monitor transmitter  30 , a module that may be attached to the infusion device  34 , a RF programmer such as described in U.S. patent application Ser. No. 09/334,858, filed on Jun. 17, 1999, entitled EXTERNAL INFUSION DEVICE WITH REMOTE PROGRAMMING, BOLUS ESTIMATOR AND/OR VIBRATION CAPABILITIES (published as PCT application WO 00/10628), which is incorporated by reference herein, or the like. In particular embodiments, the supplemental device includes a post-calibration filter, a display, a recorder, and/or a blood glucose meter. In further alternative embodiments, the supplemental device includes a method for a user to add or modify information to be communicated to the infusion device  34  and/or the telemetered characteristic monitor transmitter  30  such as buttons, a keyboard, a touch screen, and the like. 
     In particular alternative embodiments, the supplemental device is a computer in combination with an analyte monitor and a RF programmer. The analyte monitor receives RF signals from the telemetered characteristic monitor transmitter  30 , stores the signals and down loads them to a computer when needed. The RF programmer sends control signals to the infusion device  34  to reprogram the rate of insulin infusion. Both the analyte monitor and the RF programmer are placed into separate communication stations. The communication stations include IR transmitters and IR receivers to communicate with the analyte monitor and the RF programmer. The sensor signal values are transmitted via the telemetered characteristic monitor transmitter  30  to the analyte monitor located in one of the communication stations. Then the sensor signal values are communicated through the IR receiver in a first communication station and to the computer. The computer processes the sensor signal values through one or more filters, calibrators, and controllers to generate commands  22 . The commands are sent to a second communication station and sent to an RF programmer by the IR transmitter in the communication station. Finally the RF programmer transmits the commands  22  to the infusion device  34 . The communication station, analyte monitor and infusion device  34  may be of the type described in U.S. patent application Ser. No. 09/409,014, filed on Sep. 29, 1999 entitled COMMUNICATION STATION FOR INTERFACING WITH AN INFUSION PUMP, ANALYTE MONITOR, ANALYTE METER OR THE LIKE (published as a PCT application WO 00/18449), which is incorporated by reference herein. Alternatively, the RF programmer may be omitted and the infusion device may be placed in a communication station, or the infusion device may receive the commands without the use of an RF programmer and/or a communication station. 
     Overnight Closed-Loop System 
     A closed-loop insulin delivery system of the type described herein may utilize a variety of control algorithms to regulate the delivery of insulin to the body of the patient in a safe and predictable manner. Overnight operation of a closed-loop insulin infusion system should be carefully controlled in an automated way that need not depend on patient, user, or caregiver interaction. In this regard, a number of safeguards can be implemented with the system. These safeguards are intended to provide actionable sensor glucose readings, assess the accuracy of sensor readings, and constrain insulin delivery based upon possible sensor over-read conditions. These safeguards will alert the user and allow the patient to take appropriate actions. Therefore, these safeguards will mitigate the potential risks of overnight closed-loop control. 
     The control algorithm utilized by the system may be considered to be one type of safeguard in that it emulates the effect of insulin inhibiting insulin secretion. The system may also implement sensor performance safeguards. For example, a closed-loop initiation algorithm determines if the system can enter the closed-loop mode by calculating a recent calibration factor. The initiation algorithm checks the time between recent and prior calibration factors and determines the relative sensor error between the readings. As another example of a sensor safeguard, the system may employ a model supervisor during the closed-loop mode. The model supervisor checks that the sensor glucose readings are adequate for use during overnight closed-loop mode by comparing model-predicted sensor glucose values in real-time against actual sensor glucose values. If the model-predicted glucose values and the actual values differ significantly, the system triggers a fail-safe alert indicating a faulty sensor. This fail-safe alert can be generated in response to a number of sensor issues, such as sensor drift, sensor dislodgement, sensor compression artifact, etc. 
     The system may also implement a target glucose level safeguard. In this regard, a start-up algorithm can be deployed to provide a smooth transition between the open-loop mode and the closed-loop mode by gradually adjusting the target glucose level while in the closed-loop mode. The adjusted target glucose is used by the closed-loop control algorithm until the adjusted target glucose converges to a particular setpoint. At that time, the setpoint can be used for future dosing calculations during the closed-loop mode. 
     The system may also utilize at least one insulin limit as an insulin delivery and sensor performance safeguard. In this context, the insulin limit constrains the maximum amount of insulin delivered to the patient at any time in order to avoid over-delivery of insulin by the closed-loop control system due to potential sensor faults. In practice, the insulin limit is a value that is specific to each patient and is calculated based on the patient&#39;s delivered insulin during a fasting period, fasting blood glucose, and insulin sensitivity. 
     The system may also employ one or more insulin delivery safeguards. For example, an insulin delivery timeout continuously monitors (during closed-loop operation) if the patient is receiving insulin at the insulin limit for a prolonged period of time and, if so, triggers a fail-safe alert. This safeguard also monitors if the system is not delivering insulin for a prolonged period of time and, if so, triggers a fail-safe alert. A correction bolus is another insulin delivery safeguard. The system calculates an insulin bolus dosage for mitigating hyperglycemia at the commencement of closed-loop mode if the patient is above a designated blood glucose threshold. The determination can be achieved by acquiring a blood glucose meter reading at the initiation of closed-loop mode. The correction bolus is calculated based on the patient&#39;s insulin sensitivity, the amount of insulin on board, and a glucose target. Insulin on board (IOB) compensation is yet another insulin delivery safeguard. IOB compensation estimates the amount of insulin on board based on manual boluses administered, such that the system can effectively account for the IOB. In this regard, the manual boluses may be subtracted from the insulin dose that is calculated by the PID-IFB control algorithm. 
     The system may also implement one or more communication safeguards. For example, a “missed sensor transmission” feature continuously monitors data being received by the controller. For missed data packets totaling less than 15 minutes of operating time, the system remains in closed-loop mode. During this time, however, the system continues to calculate the insulin dose using the closed loop control algorithm based on the last valid sensor glucose value. For missed data packets totaling 15-60 minutes, the safeguard will switch to a pre-programmed safe basal rate, defined as half the patient&#39;s night time basal rate. If the controller starts receiving data packets during the safe basal rate timeframe, the system will again switch to the closed-loop mode. For missed data packets totaling more than 60 minutes, the system will switch to the open-loop mode where it will deliver a pre-programmed basal rate (which may be set by a caregiver). 
     The exemplary closed-loop control algorithms, methodologies, and techniques described in more detail below may be based around a PID control algorithm of the type presented in the preceding sections of this disclosure. In certain embodiments, the closed-loop control algorithms utilize a PID insulin feedback (PID-IFB) control algorithm. More specifically, the PID-IFB control algorithm cooperates with other algorithms, processes, and controls that represent additional safeguards that may apply during overnight use (and/or during other periods of use). These additional safeguards may include, without limitation: the use of an “Insulin Limits” parameter; a closed-loop initiation circuit that is based on glucose sensor calibration; an insulin on board (IOB) compensation algorithm; monitoring missed transmissions; and monitoring sensor glucose against predicted sensor glucose. 
     In practice, optimal or desired settings for the Insulin Limits parameter should be determined In this regard, the Insulin Limits parameter serves as an input to the controller logic for each patient, and it imposes an upper limit to the insulin delivery rate as an additional safety feature to avoid over-delivery of insulin by the controller due to potential sensor error. In certain embodiments, the Insulin Limits parameter is calculated from an amount of insulin delivered to the patient during a designated fasting period, a fasting blood glucose value of the patient, and the patient&#39;s insulin sensitivity. 
     Referring again to  FIG. 1 , a closed-loop system generally includes a glucose sensor system  10 , a controller  12 , and an insulin delivery system  14 . Although  FIG. 1  depicts these primary elements as separate blocks, embodiments of the system may combine two or more of the illustrated blocks into a single physical component. For example, an investigational test configuration of the closed-loop system may include a traditional patient-worn infusion pump (corresponding to the insulin delivery system  14 ), a conventional continuous glucose sensor/transmitter assembly (corresponding to the glucose sensor system  10 ), and a mobile computing device with a suitably written software application installed thereon (corresponding to the controller  12 ). The mobile computing device may be, for example: a smartphone; a tablet computer; a netbook computer; a digital media player; a handheld video game device; or the like. It should be appreciated that the desired closed-loop control functionality can be carried out by way of one or more computer-executable programs or applications designed to run on the mobile computing device. An investigational test configuration may also include a translator device that serves as a data communication interface between the mobile computing device (which may utilize standard wireless data communication technologies such as the Wi-Fi or BLUETOOTH data communication protocol) and the glucose sensor system  10  (which may use a proprietary data communication protocol that is usually incompatible with the mobile computing device). 
     In other embodiments, the functionality of the glucose sensor system  10  could be integrated into the insulin delivery system  14 , perhaps as an interchangeable disposable module that attaches to the housing of the insulin delivery system  14 . In yet other embodiments, the functionality of the controller  12  could be incorporated into the insulin delivery system  14  such that a separate and distinct controller device need not be carried by the patient. Indeed, the control software utilized by the controller  12  can be ported for installation in an insulin infusion pump, a pump monitor device, or the like to implement the functionality of the controller  12  in those devices if so desired. In further embodiments, a single hardware device platform could be suitably designed to accommodate the functionality of the insulin delivery system  14 , the glucose sensor system  10 , and the controller  12 . These and other possible implementations are contemplated by this disclosure, and the particular manner in which the closed-loop system is configured and deployed is not intended to limit or otherwise restrict the scope or application of the closed-loop control techniques described herein. 
     Although not shown in  FIG. 1 , the closed-loop system may include or cooperate with a conventional blood glucose meter (e.g., a finger stick device) that provides measured BG values to the controller  12  and/or to the insulin delivery system  14 , such that the glucose sensor system  10  can be calibrated. In certain embodiments, the measured BG values are sent to the insulin delivery system  14 , which in turn sends the BG value, sensor calibration factor, and calibration time to the controller  12 . The controller  12  can process and analyze the received information to determine whether or not the system can enter the closed-loop operating mode. In this regard, the controller  12  may check to ensure that the calibration of the glucose sensor system  10  is within an acceptable range before allowing the system to enter the closed-loop mode. 
     After entering the closed-loop mode, the insulin delivery system  14  sends sensor glucose (SG) values, sensor Isig values, calibration factors, “insulin delivered” values, and other data as needed to the controller  12  in accordance with a predetermined schedule, e.g., at five minute intervals. The controller  12  determines the desired insulin dose based on the closed-loop algorithm to maintain the patient at a target glucose setpoint, and communicates suitable control data and instructions to the insulin delivery system  14 . The insulin delivery system  14  responds to deliver the insulin dose specified by the controller  12  to the user. 
       FIG. 49  is a block diagram that illustrates processing modules and algorithms of an exemplary embodiment of a closed-loop system controller  900 , and  FIG. 50  is a flow chart that illustrates an exemplary embodiment of a control process  1000  that may be performed at least in part by the controller  900  to control the insulin delivery system  14 . The controller  12  shown in  FIG. 1  may be configured in accordance with that shown in  FIG. 49 .  FIG. 49  schematically depicts certain inputs and outputs of the controller  900 , where the parallelograms represent the inputs, the ovals represent the outputs, and the rectangles represent the various functional modules of the controller  900 . In the context of this description, a “functional module” may be any process, technique, method, algorithm, computer-executable program logic, or the like. In this regard, the controller  900  could be realized as any electronic device having a processor architecture with at least one processor device, and at least one memory element that is cooperatively associated with the processor architecture. The processor architecture is suitably configured to execute processor-executable instructions stored in the at least one memory element such that the controller  900  can perform the various control operations and methods described in detail herein. Although  FIG. 49  conveniently depicts a number of separate functional modules, it should be appreciated that the overall functionality and configuration of the controller  900  may be alternatively arranged, and that the functions, operations, and tasks described herein may be performed by one or more of the modules as needed. 
     The host electronic device that implements the controller  900  may be realized as a monitor device for an insulin infusion device, where the monitor device and the insulin infusion device are two physically distinct hardware devices. In another embodiment of the system, the host electronic device that implements the controller  900  may be realized as a portable wireless device, where the portable wireless device and the insulin infusion device are two physically distinct hardware devices. The portable wireless device in this context may be, without limitation: a mobile telephone device; a tablet computer device; a laptop computer device; a portable video game device; a digital media player device; a portable medical device; or the like. In yet other system embodiments, the host electronic device and the insulin infusion device are physically and functionally integrated into a single hardware device. In such embodiments, the insulin infusion device will include the functionality of the controller  900  as presented here. 
     Certain embodiments of the controller  900  include a plurality of cooperating functional modules that are designed and configured to determine the insulin dose to be delivered to keep the patient at the target glucose setpoint during an overnight closed-loop operating mode. In this regard, the illustrated embodiment of the controller  900  may include the following functional modules, without limitation: a closed-loop initiation module  902 ; a start-up module  904 ; a proportional integral derivative insulin feedback (PID-IFB) control module  906 ; an insulin limit module  908 ; an insulin on board (IOB) compensation module  910 ; an insulin delivery timeout module  912 ; a model supervisor module  914 ; and a missed transmission module  916 . 
     Referring to  FIG. 50 , the control process  1000  may begin at any time when it is desired to enter the closed-loop operating mode. Accordingly, the control process  1000  may begin in response to a user-initiated command, automatically in response to the detection of operating conditions that are usually indicative of closed-loop operation (e.g., sleeping), or the like. Certain embodiments of the control process  1000  may begin with one or more system checks (task  1002 ) to confirm whether or not the system is allowed to enter the closed-loop operating mode. This particular example employs a sensor calibration check before allowing the system to proceed to the closed-loop mode. Referring to  FIG. 49 , the closed-loop initiation module  902  may be involved during task  1002 . 
     In some embodiments, the closed-loop initiation module  902  may consider certain sensor performance criteria that prevents closed-loop initiation. Such criteria may include, without limitation: (1) during start-up when the calibration is not stable; (2) when the sensor sensitivity changes significantly; (3) when sensors may be calibrated with a potentially invalid meter reading thereby changing the sensor sensitivity significantly; (4) any other situation that could cause a mismatch between the sensor and meter for a number of most recent calibrations spaced over a designated period of time (e.g., the two most recent calibrations). 
     The illustrated embodiment of the closed-loop initiation module  902  receives at least the following items as inputs: a meter (measured) BG value  920 ; at least one sensor calibration factor  922  (i.e., calibration measurements, calibration data, etc.); the sensor Isig value  924 ; and timestamp data  926  that indicates the calibration time associated with the BG value  920  and the sensor calibration factor  922 . Some or all of this input data may be provided directly or indirectly by the insulin delivery system  14  (see  FIG. 1 ), a translator device, a monitor device, or any device in the closed-loop system. This description assumes that a new sensor calibration factor  922  and new timestamp data  926  is generated for each measured BG value  920 , wherein the sensor calibration factor  922  is associated with the calibration of the glucose sensor system  10  (see  FIG. 1 ) that is being used to monitor the patient. In particular, the sensor calibration factor may be based on the meter BG value  920  and the corresponding sensor Isig value  924 . 
     The closed-loop initiation module  902  analyzes the input data (both current values and historical values) to determine whether or not the system is allowed to enter into the closed-loop mode. For example, the closed-loop initiation module  902  may: check the period between two consecutive calibration timestamp values; compare recent and prior calibration factor values; and the like. The “outputs” of the closed-loop initiation module  902  correspond to two operating modes of the system. More specifically, the closed-loop initiation module  902  controls whether the system remains operating in the open-loop mode  928  or whether the system starts the closed-loop mode  930 . 
     Referring to  FIG. 50 , if the closed-loop mode is not permitted (the “No” branch of query task  1004 ), then the control process  1000  operates the system such that it remains in the open-loop mode (task  1006 ). On the other hand, if the closed-loop mode is permitted (the “Yes” branch of query task  1004 ), then the control process  1000  can initiate and start the closed-loop mode in an appropriate manner (task  1008 ). Referring again to  FIG. 49 , a correction bolus  932  can be calculated and delivered (if needed) to mitigate hyperglycemia at the commencement of the closed-loop mode. This correction bolus  932  serves as an additional safeguard to achieve a target blood glucose level if a measured meter reading is greater than a threshold value. If the control process  1000  determines that a correction bolus is required, then an appropriate insulin dose instruction is generated for execution by the insulin delivery system at the outset of the closed-loop mode. 
     Referring to  FIG. 49 , the start-up module  904  may be called in response to a determination that the system can proceed to the closed-loop operating mode. Once the system is in the closed-loop mode, the controller retrieves historical data that can be processed and used as described in more detail below. In certain embodiments, for example, the controller obtains data for the last 24 hours (from the insulin delivery system, from a monitor, or the like). Thereafter, the controller retrieves data packets once every sampling period to obtain, without limitation: sensor glucose (SG) values; sensor Isig values; sensor calibration factors; information related to the amount of insulin delivered; information related to manual boluses delivered; and sensor calibration factors. As explained in more detail below, the received information can be used in the various safeguards, and to determine the final insulin dose. 
     The start-up module  904  receives sensor glucose (SG) values  940  as an input, and the functionality of the start-up module  904  may be initiated in response to the start of the closed-loop mode  930  (this trigger mechanism is represented by the dashed arrow  942  in  FIG. 49 ). The SG values  940  may be provided directly by the glucose sensor system  10  or indirectly via the insulin delivery system  14 , a translator device, or any device in the closed-loop system (see  FIG. 1 ). This description assumes that SG values  940  are received by the start-up module  904  in an ongoing manner as they become available. The start-up module  904  may also utilize a target glucose setpoint value  944 , which may be internally maintained, generated, and/or provided by the controller  900 . For the implementation presented here, the target glucose setpoint value  944  represents a fixed (constant) value that the user can specify ( FIG. 49  depicts the target glucose setpoint value  944  in dashed lines to indicate that the value is a user-specified parameter rather than a functional module or data received by the system). 
     In certain embodiments, the start-up module  904  calculates a final target glucose value  946 , which serves as an input to the PID-IFB control module  906 . The final target glucose value  946  enables the system to make a smoother transition between open-loop and closed-loop modes (by gradually adjusting the final target glucose value  946 ). The start-up module  904  may utilize the target glucose setpoint value  944  to calculate the final target glucose value  946 . In this regard, the start-up module  904  elevates the final target glucose value  946  to the same level as the sensor glucose value at the start of the closed-loop mode, provided the sensor glucose is above a certain threshold. As time progresses, the final target glucose value  946  gradually decreases back to the target glucose setpoint value  944  (usually in approximately two hours). Referring to  FIG. 50 , the control process  1000  calculates the final target glucose value (task  1010 ) and continues by calculating an uncompensated insulin infusion rate, PIDRate(n), based at least in part on the final target glucose value (task  1012 ). For this example, the start-up module  904  may be involved during task  1010 , and the PID-IFB control module  906  may be involved during task  1012 . 
     As an additional safeguard, the insulin limit module  908  cooperates with the PID-IFB control module  906  to provide an upper insulin limit that is calculated based on the patient&#39;s insulin intake during a designated fasting period, the patient&#39;s fasting blood glucose, and the patient&#39;s insulin sensitivity. This insulin limit imposes an upper limit to the insulin delivery rate to avoid over-delivery of insulin by the system due to potential sensor error. 
     The PID-IFB control module  906  may be configured to carry out the control processes described in more detail above with reference to  FIGS. 1-48 . In some embodiments, the PID-IFB control module  906  receives at least the following items as inputs: the SG value  940  (which may be used to calculate a rate of change value that indicates the rate of change of the SG value); the current sensor Isig value  950 ; the current sensor calibration factor  952 ; and an amount of insulin delivered  954 . As shown in  FIG. 49 , the PID-IFB control module  906  may also receive an insulin limit  959  (e.g., a maximum insulin infusion rate) for the user, as calculated by the insulin limit module  908 . The inputs to the PID-IFB control module  906  may be provided directly or indirectly by the insulin delivery system  14 , the glucose sensor system  10 , a translator device, a monitor device, and/or any device in the closed-loop system (see  FIG. 1 ). The PID-IFB control module  906  is suitably configured to calculate the insulin infusion rate based on the current and past SG values  940 , the SG rate of change, the sensor Isig value  950 , the sensor calibration factor  952 , the final target glucose value  946 , and the insulin delivered  954  in order to achieve euglycemia. These (and possibly other) values may be received by the PID-IFB control module  906  in an ongoing manner as they become available, e.g., in five minute intervals or in accordance with any desired schedule. 
     The insulin delivered  954  is a parameter or value that indicates the amount of insulin that has been delivered to the patient by the insulin delivery system. Thus, the insulin delivered  954  may indicate recent boluses (typically by Units) delivered over a period of time. In certain implementations, the insulin delivered  954  corresponds to the amount of insulin delivered in the last sampling time, which may be, without limitation: one minute; five minutes; thirty seconds; or any designated sampling time. The insulin delivered  954  may also indicate the amount of insulin delivered by the delivery system as basal or boluses in any defined period of time in the past (e.g., the last N hours) or the amount of insulin delivered by the system in the last sampling cycle. In practice, the PID-IFB control module  906  (and the IOB compensation module  910 ) may be “initialized” to collect and save historical values for the insulin delivered  954  as needed. Thereafter, the insulin delivered  954  can simply indicate an amount of insulin administered by the system during the last sampling time period if by a bolus or basal channels. 
     As mentioned above, the PID-IFB control module  906  may utilize the upper insulin limit  959 , which is a patient-specific parameter. In certain embodiments, the upper insulin limit  959  may be entered by the user, a caregiver, or the like. Alternatively, the insulin limit module  908  may be responsible for calculating or otherwise managing the upper insulin limit  959  if so desired. The upper insulin limit  959  imposes an upper limit to the insulin delivery rate as an additional safety feature to avoid over-delivery of insulin by the controller  900  due to potential sensor error. Thus, if the PID-IFB control module  906  recommends a dose higher than the insulin limit  959 , the insulin limit  959  will be utilized to constrain the insulin delivered to the insulin limit value. In addition, implementation of the insulin limit  959  will “freeze” the integral component of the PID to its previous value to prevent integral windup, which can cause continuous integrating of the glucose error until it reaches maximum values. In certain embodiments, the upper insulin limit  959  has a default value set at five times the patient&#39;s basal rate. Hence, if the maximum value is reached, the PID-IFB control algorithm will be fairly aggressive in calculating an insulin dose. Accordingly, to minimize integral windup, the insulin limit  959  is fed back to the PID-IFB control module  906  (as depicted in  FIG. 49 ) for use in the next insulin dose calculation. 
     The PID-IFB control module  906  operates as described previously to calculate a current insulin dose  958  as an output value (the current insulin dose  958  is also referred to herein as the uncompensated insulin infusion rate, PIDRate(n)). In practice, the current insulin dose  958  is typically expressed as an infusion rate (Units/Hour). In the context of this description, the current insulin dose  958  may represent a closed-loop infusion rate that has already been subjected to limiting by the insulin limit module  908 , and which may be subjected to further adjustment or compensation by the IOB compensation module  910 . Thus, the output of the insulin limit module  908  (the upper insulin limit  959 ) represents a potentially limited insulin dose to be provided by the PID-IFB control module  906 —if no limit is imposed, then the insulin limit  959  has no effect on the output of the PID-IFB control module  906 ; otherwise, the current insulin dose  958  will be the same as the upper insulin limit  959 . Referring again to  FIG. 50 , the control process  1000  may compensate for the insulin “on board” the patient by calculating an adjusted insulin infusion rate, AdjustedRate(n), based at least in part on the uncompensated insulin infusion rate (task  1014 ). For this example, the IOB compensation module  910  may be involved during task  1014 . 
     The IOB compensation module  910  receives at least the following items as inputs: the current insulin dose  958 ; and information regarding manual boluses delivered  960 . The manual boluses delivered  960  may be provided directly or indirectly by the insulin delivery system  14 , a translator device, a monitor device, and/or any device in the closed-loop system (see  FIG. 1 ). This description assumes that the manual boluses delivered  960  is received by the IOB compensation module  910  in an ongoing manner as it becomes available, e.g., in five minute intervals or in accordance with any desired schedule. The IOB compensation module  910  is suitably configured to estimate insulin on board based on manual boluses delivered, before or during closed-loop operation, in order to compensate the final infusion rate to help avoid over-delivery of insulin by the controller  900 . Accordingly, the output of the IOB compensation module  910  may be a final insulin dose  962  expressed as a final infusion rate (Units/Hour). The final insulin dose  962  is also referred to herein as the adjusted insulin infusion rate, AdjustedRate(n). 
     Referring to  FIG. 50 , the control process  1000  uses the adjusted insulin infusion rate, AdjustedRate(n), to control the insulin infusion device, which in turn regulates the delivery of insulin to the body of the user (task  1016 ). In certain embodiments, the adjusted insulin infusion rate is communicated to the insulin infusion device in an appropriate manner (such as wireless data communication). The control process  1000  may continue as described above in an iterative and ongoing manner to monitor the condition of the user and deliver insulin as needed without user involvement. That said, if the control process  1000  determines that the closed-loop operating mode should be terminated (the “Yes” branch of query task  1018 ), then the control process  1000  causes the system to switch back to the open-loop mode (task  1020 ). The closed-loop mode may be ended in response to a user-initiated command, automatically in response to the detection of operating conditions that are usually indicative of open-loop operation, or the like. 
     If query task  1018  determines that the closed-loop mode should continue (the “No” branch of query task  1018 ), then the control process  1000  may check whether it is time to perform another iteration of the control routine. In other words, the control process  1000  may check for the next sampling time (query task  1022 ). If it is time for the next iteration, then the control process  1000  may return to task  1010  and repeat the computations with the next set of data values. For example, the next iteration of the control routine may obtain and process the current values of some or all of the following parameters, without limitation: the SG value  940 ; the SG rate of change; the sensor Isig value  924 ; the amount of insulin delivered  954 ; and the manual boluses delivered  960 . This allows the control process  1000  to adjust the final insulin infusion rate in an ongoing manner in accordance with a predetermined schedule, a designated sampling rate, or the like. 
     The insulin delivery timeout module  912  monitors if the patient is receiving continuous delivery of insulin at the maximum insulin limit or the minimum allowable infusion of zero Units/Hour for a time specified by the controller. Accordingly, the insulin delivery timeout module  912  may receive the insulin delivered  954  as an input. If the specified time is exceeded, the system will trigger a fail-safe alert  966 . Otherwise, the system remains in the closed-loop operating mode  968 . 
     Referring back to  FIG. 49 , the model supervisor module  914  receives at least the following as inputs: the insulin delivered  954 ; sensor Isig values  950 ; and one or more sensor calibration factors  952 . The inputs to the model supervisor module  914  may be provided directly or indirectly by the insulin delivery system  14 , the glucose sensor system  10 , a translator device, a monitor device, and/or any device in the closed-loop system (see  FIG. 1 ). The model supervisor module  914  is suitably designed and configured to estimate the user&#39;s glucose concentration in real time (or substantially real time) based on the insulin delivered  954 , the sensor Isig values  950 , and the sensor calibration factors  952 . The sensor calibration factors  952  used by the model supervisor module  914  are equal to the sensor calibration factors  922  used by the closed-loop initiation module  902 . That said, the closed-loop initiation module  902  utilizes the sensor calibration factors  922  at one particular time, whereas the model supervisor module  914  considers the sensor calibration factors  952  in an ongoing and continuous manner during operation in the closed-loop mode. Should the model-predicted glucose and the sensor glucose values differ significantly, the system will exit closed loop mode. Accordingly, the model supervisor module  914  regulates whether the system remains in the closed-loop mode  974  or switches to the open-loop mode  976 . 
     The missed transmission module  916  is suitably configured to monitor the following, without limitation: the sensor Isig values  950 ; the SG values  940 ; and the sensor calibration factors  952 . More particularly, the missed transmission module  916  continuously monitors to check whether the system is receiving data packets that convey the necessary information and input values. For missed data packets totaling less than a lower threshold of time (e.g., 15 minutes), the system remains in the closed-loop mode, as indicated by block  980  in  FIG. 49 . During this time, the system will continue to calculate the insulin dose using the closed-loop control methodology based on the last valid sensor glucose value. For missed data packets totaling a time longer than the lower threshold and shorter than an upper threshold of time (e.g., 60 minutes), the missed transmission module  916  will switch the system to a pre-programmed safe basal rate, as indicated by block  982  in  FIG. 49 . In certain embodiments, this safe basal rate is defined as half the patient&#39;s overnight basal rate, and this parameter may be programmed by a caregiver or physician. If the missed transmission module  916  starts receiving data packets while the safe basal rate is being administered, the system will switch back to the closed-loop mode. For missed data packets totaling more than the upper threshold of time, the system will switch to the open-loop mode, as indicated by block  984  in  FIG. 49 . At this point, the system will be controlled to deliver a pre-programmed open-loop overnight basal rate. 
     To summarize, the controller  900  determines whether to enter into the closed-loop mode in response to at least the recent meter BG values  920 , the sensor calibration factors  922 , and the calibration timestamp data  926 . The controller  900  utilizes the closed-loop initiation module  902  to check if the sensor calibration time between the last two calibration values is within an acceptable range, and whether any change between the two calibration values (recent and prior value) is acceptable. If so, the controller  900  will switch the system into the closed-loop mode. Once the system is in the closed-loop mode, the controller  900  will periodically receive data packets (e.g., every five minutes) that include the current SG value  940 , the current sensor Isig values  950 , the insulin delivered  954 , the sensor calibration factors  952 , and manual boluses delivered  960 . In certain embodiments, each of the data packets received by the controller  900  includes data collected during the previous 24-hour period. 
     The start-up module  904  utilizes the SG values  940  and the target glucose setpoint value  944  to calculate the final target glucose value  946 . In some embodiments, the target glucose setpoint value  944  is set to 120 mg/dL, although other settings could be used if so desired (a typical range of settings may be, for example 70-300 mg/dL). This results in a smoother transition between open-loop and closed-loop modes by gradually adjusting the final target glucose value  946 . The final target glucose value  946  is sent to the PID-IFB control module  906  for use as one input that influences the calculation of the final insulin dose  962 . 
     The PID-IFB control module  906  utilizes the final target glucose value  946 , the current and past SG values  940 , the SG rate of change values, and the insulin delivered  954  to determine the insulin infusion rate (the current insulin dose  958 ) in order to achieve euglycemia. As an additional safeguard, the upper insulin limit  959  (calculated based on the patient&#39;s insulin intake during a fasting period, fasting blood glucose, and insulin sensitivity) from the insulin limit module  908  is input into the controller  900  for each patient to impose an upper limit to the insulin delivery rate to avoid over-delivery of insulin by the controller  900 . The PID-IFB control module  906  considers the upper insulin limit  959  before sending the current insulin dose  958  to the IOB compensation module  910 , which estimates insulin on board from manual boluses, before or during closed-loop operation, in order to calculate the final insulin dose  962 . The final insulin dose  962  may be communicated from the controller  900  directly or indirectly to the insulin delivery system  14  such that the final insulin dose  962  can be delivered to the patient during closed-loop operation. 
     Additional safeguards could be implemented to monitor the system during closed-loop operation, such that the system exits the closed-loop mode when certain criteria are not met. For example, the controller  900  may cause the system to exit the closed-loop mode if more than a designated number of consecutive data packets are missed. This assumes that the controller  900  usually receives data packets (from the insulin delivery system  14 , from a monitor, from a translation device, or the like) in a continuous manner during closed-loop operation. Thus, if the controller  900  detects that more than a threshold number of consecutive data packets are not received as expected, the system will be commanded to exit the closed-loop mode. This functionality is associated with the missed transmission module  916 , as described previously. 
     Moreover, the model supervisor module  914  estimates the user&#39;s glucose concentration in an ongoing manner, based on the insulin delivered  954 , the sensor Isig values  950 , and the sensor calibration factors  952 . If the difference between the model-predicted glucose and the sensor glucose value is greater than a stated threshold, the controller  900  may cause the system to exit the closed-loop mode. 
     As summarized above, the controller  900  employs a number of modules or functions that cooperate to regulate the delivery of insulin during closed-loop operation: the closed-loop initiation module  902 ; the start-up module  904 ; the PID-IFB control module  906 ; the insulin limit module  908 ; and the IOB compensation module  910 . Moreover, the controller  900  may employ a number of modules that perform various safeguarding functions during closed-loop operation. These safeguarding modules may include: the insulin delivery timeout module  912 ; the model supervisor module  914 ; and the missed transmission module  916 . 
     Closed-Loop Initiation Module 
     The closed-loop initiation module  902  checks for changes in sensor sensitivity and determines whether or not the system is allowed to enter the closed-loop mode. To this end, the closed-loop initiation module  902  receives, obtains, or accesses sensor calibration data that is associated with a continuous glucose sensor that generates a sensor variable (e.g., an electrical current such as Isig), which in turn is indicative of the current blood glucose level of the user/patient. Referring again to  FIG. 49 , the sensor calibration data is depicted as various inputs to the closed-loop initiation module  902 . In certain embodiments the inputs utilized for operation of the closed-loop initiation module  902  at any given time include a current meter BG value  920 , one or more sensor calibration factors  922 , a sensor Isig value  924  at the time of the current meter BG value, and calibration timestamp data  926  corresponding to the sensor calibration factors  922 . In accordance with alternative embodiments, the inputs utilized for operation of the closed-loop initiation module  902  at any given time include the sensor calibration factors  922  and the calibration timestamp data  926  (i.e., the current meter BG value  920  and the sensor Isig value  924  need not be used). 
     In the context of the closed-loop initiation module and its related functionality, a sensor calibration factor represents a translation or conversion value that is applicable to convert a given value of a sensor variable (e.g., an Isig value) to a corresponding blood glucose value. For the exemplary embodiment presented here, Isig is an electrical current that is expressed in nanoamperes (nA), blood glucose is expressed in mg/dL, and, therefore, sensor calibration factors are expressed in 
                 mg   ⁢     /     ⁢   dL     nA     .         
The closed-loop initiation module  902  analyzes the sensor calibration factors and checks for a series of conditions pertaining to the calibration and/or sensitivity of the continuous glucose sensor used by the system, based on the sensor calibration data that is processed at that time. If all the conditions are met, the controller  900  initiates the closed-loop operating mode. If this criteria is not met, the system remains in the open-loop operating mode.
 
       FIG. 50A  is a flow chart that illustrates an exemplary embodiment of a closed-loop initiation process  5000  for an insulin infusion device; the process  5000  may be performed by the closed-loop initiation module  902  (see  FIG. 49 ). The process  5000  may be triggered when the host device (e.g., a controller device, the infusion device, or the like) receives a command to enter the closed-loop operating mode. The process  5000  depicted in  FIG. 50A  represents one iteration that is performed for a current sampling point or time. Accordingly, the process  5000  receives, obtains, or accesses sensor calibration data, which represents the inputs that may have an influence on the output of the closed-loop initiation module (task  5002 ). In accordance with some implementations, the sensor calibration data obtained at task  5002  includes sensor calibration factors that have already been calculated, along with the respective calibration timestamp data corresponding to each obtained sensor calibration factor. In accordance with other embodiments, the sensor calibration data obtained at task  5002  also includes the current meter BG value and the corresponding Isig value at the time of the meter BG value. For such embodiments, the process  5000  may generate a request, a message, or a prompt for the most recent meter BG value, and wait until the patient or a caregiver has entered the current meter BG value. In practice, the meter BG value may be obtained via a finger stick measurement or any equivalent methodology that is based on a blood sample from the patient. 
     As explained in more detail below, the closed-loop initiation process  5000  utilizes at least two sensor calibration factors to determine whether or not to allow the insulin infusion device to transition into the closed-loop operating mode. One of the two calibration factors is the most recent calibration factor, CFR. To this end, the process  5000  identifies or calculates the most recent calibration factor from the received sensor calibration data (task  5004 ). In accordance with one methodology, task  5004  identifies the most recent calibration factor that was received at task  5002 , based on the received calibration timestamp data. In accordance with an alternative methodology, task  5004  calculates the most recent calibration factor, using the current Isig value and the current meter BG value (which may also be received with the sensor calibration data, as mentioned above). When the most recent calibration factor is calculated in this manner, it will represent the current or instantaneous calibration factor rather than a historical or previously-computed calibration factor. 
     Although the most recent calibration factor can be generated using any suitable methodology that leads to an accurate representation, the exemplary embodiment presented here calculates the most recent calibration factor (CFR) in accordance with the expression CFR=meterBG/(Isig−2). In this expression, meterBG is the most recent meter blood glucose value and Isig is the sensor current obtained at the time of the meterBG value received from the continuous glucose sensor. For this particular implementation, the most recent calibration factor is calculated based on only one sampling point, i.e., only one meter BG reading and only one Isig reading. This simplified derivation is preferred because it enables the process  5000  to quickly and effectively obtain the recent calibration factor with little to no delay. 
     Referring again to  FIG. 50A , the process  5000  also identifies at least one prior calibration factor, CFP, which is associated with an earlier time relative to the most recent calibration factor (task  5006 ). For this particular embodiment, task  5006  identifies the second most recent calibration factor for use as the prior calibration factor. Thus, the prior calibration factor is the closest calibration factor (in time) relative to the recent calibration factor. For the sake of brevity and simplicity, this description assumes that task  5006  identifies only one prior calibration factor, CFP. Moreover, the description of the process  5000  assumes that the calibration time of CFP occurred more than a designated period of time before the calibration time of CFR. This designated period of time is also referred to herein as tDiffmin, a minimum allowable time difference relative to the calibration time of CFR. The value of tDiffmin may vary from one embodiment to another, and tDiffmin may be adjustable or user-configurable in some embodiments. For this example, the default value of tDiffmin is 120 minutes (two hours). 
     In accordance with the exemplary timing requirements described in the preceding paragraph, by definition there will be no intervening calibration factors obtained between the most recent calibration factor (CFR) and the prior calibration factor (CFP). In contrast, and as explained in more detail below with reference to  FIG. 50C  and  FIG. 50D , task  5006  may also identify additional sensor calibration factors. For example, task  5006  may identify one or more intervening sensor calibration factors that were obtained or calculated less than 120 minutes before the most recent calibration factor. As another example, task  5006  may identify one or more intervening sensor calibration factors that were obtained or calculated less than 120 minutes before the most recent calibration factor, and before the prior calibration factor. As yet another example, task  5006  may identify one or more additional sensor calibration factors for use as redundant check values. 
       FIG. 50B  is a timeline diagram  5024  that illustrates the temporal relationships for CFR and CFP, which are consistent with the example described here. The time t (which appears at the right side of the timeline diagram  5024 ) represents the time when the system is attempting to enter the closed-loop operating mode. In this context, therefore, the time t generally corresponds to the beginning of the process  5000 . The timeline diagram  5024  also indicates the time (tR) when the most recent calibration factor was obtained and the time (tP) when the prior calibration factor was obtained. Notably, the timeline diagram  5024  illustrates an embodiment that obtains both calibration factors at task  5002 . It should be appreciated that tR will be contemporaneous with (or substantially contemporaneous with) the time t for embodiments that calculate CFR dynamically at the beginning of the closed-loop initiation process  5000 . 
     The timeline diagram  5024  also indicates a window of time  5025  that is defined between a first (minimum) time  5026  and a second (maximum) time  5028 . For this particular example, the first time  5026  and the second time are defined relative to tR. More specifically, the first time  5026  is defined to be tR−tDiffmin, where tDiffmin is the minimum allowable time difference relative to tR. Although other time values could be utilized, tDiffmin equals two hours for this example. Accordingly, the first time  5026  is labeled tR−2 in  FIG. 50B . Similarly, the second time  5028  is defined to be tR−tDiffmax, where tDiffmax is the maximum allowable time difference relative to tR. Although other time values could be used, tDiffmax equals eight hours for this example. Accordingly, the second time  5028  is labeled tR−8 in  FIG. 50B . 
     The timeline diagram  5024  also indicates a window of time  5029  that is defined between the time t and a recent time  5030 . For this particular example, the recent time  5030  is defined relative to the time t. More particularly, the recent time  5030  is defined to be t−tRecent, where tRecent is a predetermined time period that is utilized by the closed-loop initiation module  902  to determine the “freshness” of the most recent calibration factor. Although other time values could be utilized, tRecent equals two hours for this example. Accordingly, the recent time  5030  is labeled t−2 in  FIG. 50B . 
     The timeline diagram  5024  also indicates a window of time  5031  that is defined between the first time  5026  (i.e., the time defined by tR−tDiffmin) and tR (which is obtained from the timestamp data for the most recent calibration factor). The closed-loop initiation process  5000  is performed when tP (which is obtained from the timestamp data for the prior calibration factor) is not within the window of time  5031 . 
       FIG. 50B  illustrates this scenario: the tP corresponding to CFP occurs prior to the first time  5026  and, therefore, is outside the window of time  5031  of interest. The other scenario—when tP falls within the window of time  5031 —is described below with reference to  FIG. 50C  and  FIG. 50D . 
     Referring back to  FIG. 50A , the closed-loop initiation process  5000  regulates entry into the closed-loop operating mode of the insulin infusion device, based on the most recent calibration factor, the prior calibration factor, and the associated calibration timestamp data. In this regard, the process  5000  permits entry into the closed-loop mode only when certain conditions are met. If any of the conditions are not satisfied, then the process  5000  prevents entry into the closed-loop mode. 
     In accordance with certain embodiments, one of the conditions relates to the recency of the most recent calibration factor (query task  5008 ). In this regard, the process  5000  permits entry into the closed-loop operating mode only when the recent calibration factor is relatively new or “fresh”. More specifically, closed-loop operation is allowed only when t−tRecent≦tR≦t. For the example presented here, tRecent is two hours and, therefore, query task  5008  checks whether the most recent calibration factor has a timestamp that is less than two hours old. If the timing of the most recent calibration factor does not satisfy this condition (the “No” branch of query task  5008 ), then the process  5000  remains in the open-loop operating mode (task  5020 ). This example assumes that the most recent calibration factor is less than two hours old (see  FIG. 50B , which shows tR and CFR occurring within the designated window of time  5029 ). 
     As mentioned previously, the recent calibration factor may be calculated on the fly. For such embodiments, the recency check of query task  5008  need not be performed because the system can safely assume that the calculated recent calibration factor is less than two hours old. Alternatively, query task  5008  could still be performed even though the recency condition will always be satisfied. 
     In accordance with certain embodiments, one of the conditions relates to the timing of the prior calibration factor, CFP. In this regard, the process  5000  permits entry into the closed-loop operating mode only when the prior calibration factor falls within a designated window of time (query task  5010 ). More specifically, closed-loop operation is allowed only when tR−tDiffmax≦tP≦tR−tDiffmin. For the example presented here, tDiffmax is eight hours and tDiffmin is two hours. Accordingly, query task  5010  checks whether the prior calibration factor has a timestamp that falls between tR−8 and tR−2. If the timing of the prior calibration factor does not satisfy this condition (the “No” branch of query task  5010 ), then the process  5000  remains in the open-loop operating mode (task  5020 ). This example assumes that the prior calibration factor falls within the window of time of interest (see  FIG. 50B , which shows tP and CFP occurring within the window of time  5025 ). 
     In accordance with certain embodiments, one of the conditions relates to the value of the most recent calibration factor, CFR. In this regard, the process  5000  permits entry into the closed-loop operating mode only when the most recent calibration factor falls within a specified range of values (query task  5012 ). More specifically, closed-loop operation is allowed only when CFmin≦CFR≦CFmax, where CFmin is a minimum acceptable calibration factor value and CFmax is a maximum acceptable calibration factor value. For the example presented here, CFmin is 
             2.5   ⁢           ⁢       mg   ⁢     /     ⁢   dL     nA           
and CFmax is
 
             6.0   ⁢           ⁢         mg   ⁢     /     ⁢   dL     nA     .           
Accordingly, query task  5012  checks whether the most recent calibration factor is within this range of values. If not, (the “No” branch of query task  5012 ), then the process  5000  remains in the open-loop operating mode (task  5020 ). This example assumes that the most recent calibration factor falls within the designated range.
 
     In accordance with certain embodiments, one of the conditions relates to the value of the prior calibration factor, CFP. In this regard, the process  5000  permits entry into the closed-loop operating mode only when the prior calibration factor falls within a specified range of values (query task  5014 ). More specifically, closed-loop operation is allowed only when CFmin≦CFP≦CFmax. Accordingly, query task  5014  checks whether the prior calibration factor is also within this range of values. If not, (the “No” branch of query task  5014 ), then the process  5000  remains in the open-loop operating mode (task  5020 ). This example assumes that the prior calibration factor falls within the designated range. 
     In accordance with certain embodiments, one of the conditions relates to the change between the prior and most recent calibration factors. In this regard, the process  5000  may regulate entry into the closed-loop operating mode by permitting entry only when the change between the most recent calibration factor and the prior calibration factor is less than or equal to a threshold value. The example described here calculates a percentage change value, CFchange, using the values of the prior and most recent calibration factors (task  5016 ). In some embodiments, CFchange is calculated in accordance with the expression: 
     
       
         
           
             CFchange 
             = 
             
               
                 
                    
                   
                     CFR 
                     - 
                     CFP 
                   
                    
                 
                 CFP 
               
               × 
               100. 
             
           
         
       
     
     If CFchange is less than or equal to a designated threshold value (the “Yes” branch of query task  5018 ), then the closed-loop initiation process  5000  determines that the continuous glucose sensor is accurate for purposes of the closed-loop operating mode and the process  5000  continues by initiating the closed-loop operating mode (task  5022 ). If, however, CFchange is greater than the designated threshold value (e.g., 35% for this example), then the “No” branch of query task  5018  is followed and the insulin infusion device remains in the open-loop mode (task  5020 ). 
     Referring again to  FIG. 50B  for visual guidance, a practical instantiation of the closed-loop initiation module may obtain and process any number of calibration factors in addition to the most recent calibration factor. The above example utilizes the second most recent calibration factor as the prior calibration factor, CFP. An alternative embodiment may instead select any eligible and recent calibration factor that falls between tR−tDiffmax and tR−tDiffmin, and designate the selected calibration factor as CFP. As another option, the closed-loop initiation module may perform redundant checks on a plurality of different CFPs (assuming that they all fall within the required window of time  5025 ). 
     Recall that the closed-loop initiation process  5000  and the timeline diagram  5024  relate to a situation where the prior calibration factor, CFP, falls outside of the window of time  5031 , which is defined between the first time  5026  and tR. Indeed, CFP in  FIG. 50B  occurs well before the first time  5026 . In contrast, see  FIG. 50C , which shows another exemplary timeline diagram  5034  that illustrates the temporal relationships for sensor calibration factors. The timeline diagram  5034  indicates the time t, the CFR and its associated time tR, the window of time  5025 , the first time  5026 , the second time  5028 , the window of time  5029 , the recent time  5030 , and the window of time  5031  in a manner that is consistent with that shown in  FIG. 50B . The timeline diagram  5034 , however, corresponds to a situation where the second most recent calibration factor, CFP, falls within the window of time  5031 , which is defined between the first time  5026  and tR. According to this example, therefore, the second most recent calibration factor was determined less than two hours before the most recent calibration factor was determined. The closed-loop initiation module handles this scenario differently than the scenario represented by  FIG. 50B . In this regard,  FIG. 50D  is a flow chart that illustrates another exemplary embodiment of a closed-loop initiation process  5050  for an insulin infusion device. 
     The process  5050  is similar to the closed-loop initiation process  5000  in many ways. Indeed the process  5050  may perform tasks  5002 ,  5004 , and  5006  in the manner described above. Moreover, certain aspects of the process  5050  are similar or identical to counterpart aspects described previously for the process  5000 . For the sake of brevity and simplicity, such common aspects will not be redundantly described here in the context of the process  5050 . 
     The closed-loop initiation process  5050  regulates entry into the closed-loop operating mode of the insulin infusion device, based on the most recent calibration factor, the prior calibration factor, and the associated calibration timestamp data. In this regard, the process  5050  permits entry into the closed-loop mode only when certain conditions are met. If any of the conditions are not satisfied, then the process  5050  prevents entry into the closed-loop mode. 
     In accordance with certain embodiments, one of the conditions relates to the recency of the most recent calibration factor (query task  5052 ). Query task  5052  is equivalent to query task  5008  of the process  5000 , which was described previously. For the example presented here, query task  5052  checks whether the most recent calibration factor has a timestamp that is less than two hours old. If the timing of the most recent calibration factor does not satisfy this condition (the “No” branch of query task  5052 ), then the process  5050  remains in the open-loop operating mode (task  5066 ). This example assumes that the most recent calibration factor is less than two hours old (see  FIG. 50C , which shows tR and CFR occurring within the window of time  5029 ). 
     In accordance with certain embodiments, one of the conditions relates to the value of the most recent calibration factor, CFR. In this regard, the process  5050  permits entry into the closed-loop operating mode only when the most recent calibration factor falls within a specified range of values (query task  5054 ). Query task  5054  is equivalent to query task  5012  of the process  5000 , which was described previously. Thus, query task  5054  checks whether the most recent calibration factor is within the specified range of values. If not (the “No” branch of query task  5054 ), then the process  5050  remains in the open-loop operating mode (task  5066 ). This example assumes that the most recent calibration factor falls within the designated range. 
     As an additional safeguard, the process  5050  also checks for the presence of at least one eligible calibration factor that was determined or obtained prior to the most recent calibration factor, and prior to the second most recent calibration factor (query task  5056 ). In this context, a prior calibration factor is “eligible” if it was determined or obtained during the specified window of time  5025  (see  FIG. 50C ). In other words, query task  5056  checks whether there is an older calibration factor that satisfies the condition described above for query task  5010  of the process  5000 . If not (the “No” branch of query task  5056 ), then the process  5050  remains in the open-loop operating mode (task  5066 ). This example assumes that the process  5050  identifies an eligible calibration factor, which is referred to herein as CFP 2 .  FIG. 50C  shows CFP 2  occurring within the designated window of time  5025  that satisfies the condition associated with query task  5056 . 
     It should be appreciated that the closed-loop initiation module may be suitably configured to select any eligible calibration factor for use as CFP 2 . For example, the process  5050  may select the newest eligible calibration factor (i.e., the most recent calibration factor that falls within the designated window of time), the oldest eligible calibration factor, the median eligible calibration factor, a randomly selected eligible calibration factor, the first-discovered eligible calibration factor, or the like. In certain embodiments, and for purposes of this example, it is assumed that the process  5050  has designated the most recent eligible older calibration factor as CFP 2 . Accordingly, there will be no intervening calibration factors obtained between tP 2  and tR−2 (as depicted in  FIG. 50C ). Although there may be additional calibration factors obtained between tR−8 and tP 2 , they are not shown in  FIG. 50C  because the described embodiment disregards such additional calibration factors. 
     The process  5050  may perform task  5058  to identify or designate some or all of the intervening calibration factors that were obtained within the window of time between tR−tDiffmin (e.g., tR−2 as shown in  FIG. 50C ) and tP. This particular window of time is applicable to this example because it is assumed that CFP 2  is the most recent calibration factor within the window of time  5025 , and because it is assumed that CFP is the second most recent calibration factor relative to CFR. In certain preferred embodiments, task  5058  identifies all of the intervening calibration factors within this time window. For simplicity and ease of understanding, only one intervening calibration factor (CF INT ) is shown on the timeline diagram  5034  of  FIG. 50C . Moreover, the second most recent calibration factor (CFP) is also considered to be an intervening calibration factor for purposes of this description. 
     It should be appreciated that the process  5050  could be suitably designed to designated and consider other calibration factors if so desired. For example, if the process  5050  is able to select any eligible calibration factor as CFP 2  (rather than always selecting the most recent eligible calibration factor), then the process  5050  may also identify and handle additional intervening calibration factors that were obtained after CFP 2  was obtained. In other words, one or more intervening calibration factors could fall within the window of time  5025 . As another example, if the process  5050  is able to select any calibration factor that falls within the window of time  5031  as CFP (rather than always selecting the second most recent calibration factor, relative to CFR), then the process  5050  may also identify and handle additional intervening calibration factors that were obtained during the window of time  5031 . In such a scenario, one or more intervening calibration factors could be obtained during the window of time defined between tP and tR. Moreover, in certain embodiments, it may be desirable to disregard any intervening calibration factors (other than CFP) that fall within the window of time  5031 , based on the assumption that accurate results can be obtained using only the second most recent calibration factor, CFP. 
     In accordance with certain embodiments, one of the conditions for entering the closed-loop operating mode relates to the values of the intervening calibration factors, CF INT . In this regard, the process  5050  permits entry into the closed-loop operating mode only when each of the intervening calibration factors falls within a specified range of values (query task  5060 ). More specifically, closed-loop operation is allowed only when CFmin≦CF INT ≦CFmax for all intervening calibration factors under consideration. Accordingly, query task  5060  checks whether all of the intervening calibration factors are within this range of values. If not, (the “No” branch of query task  5060 ), then the process  5050  remains in the open-loop operating mode (task  5066 ). This example assumes that all of the identified intervening calibration factors fall within the designated range. 
     Thereafter, the process  5050  continues in the manner described above for tasks  5016 ,  5018 , and  5022  of the process  5000 . Thus, the process  5050  calculates the percentage change value, CFchange, using the values of the most recent calibration factor and the eligible calibration factor that was selected for use as CFP 2  (task  5062 ), and compares CFchange to the designated threshold value (query task  5064 ). If CFchange is less than or equal to the threshold value (the “Yes” branch of query task  5064 ), then the closed-loop initiation process  5050  determines that the continuous glucose sensor is accurate for purposes of the closed-loop operating mode and the process  5050  continues by initiating the closed-loop operating mode (task  5068 ). If, however, CFchange is greater than the designated threshold value (e.g., 35% for this example), then the “No” branch of query task  5064  is followed and the insulin infusion device remains in the open-loop mode (task  5066 ). 
     It should be understood that the various conditions checked by the process  5000  and the process  5050  need not be performed in the illustrated order, or in any particular order. Indeed, some or all of the conditions could be checked in parallel if so desired. Of course, if any one of the conditions is not satisfied, then the process  5000 ,  5050  may immediately exit rather than perform any remaining checks. 
     As mentioned previously, the functionality of the closed-loop initiation module can be implemented using a suitably written software program, application, or executable logic. In this regard, the following sections contain descriptions of the desired functionality in a format that is helpful for purposes of software development, application programming, and the like. 
     Closed-Loop Initiation Module: First Representation 
     Certain embodiments of the closed-loop initiation module  902  (see  FIG. 49 ) execute one or more functions, algorithms, or methods to determine whether or not the system can proceed to the closed-loop mode. The following are the parameters and variables used by an exemplary embodiment of the closed-loop initiation module  902 :
         t=time when attempting to enter the closed-loop mode;   Recent Calibration Factor (CFR)=the most recent sensor calibration factor (CT) value;   tR=the time when the CFR was obtained;   Prior Calibration Factor (CFP)=the last CF value before the CFR;   tP=the time when the CFP was obtained;   CFchange=percentage change in CF from a previous CF to a current CF, for any pair of calibration factors. The CFchange can be calculated according to the following equation:
 
 CF change=( abs ( CF current− CF previous)/ CF previous)*100  (eq 50)
   tRecent=time window for the most recent calibration before attempting to start closed-loop mode (minutes)   tDiffmin=minimum time difference between the recent calibration and the calibration prior to the recent calibration (minutes)   tDiffmax=maximum time difference between the recent calibration and the prior calibration (minutes)   CFmin=minimum acceptable CF (mg/dL per nA)   CFmax=maximum acceptable CF (mg/dL per nA)   CFprevious=the CF value before CFcurrent in the pair of CF values   CFchangeTh=threshold for acceptable CFchange in % (mg/dL per nA)       

     In some embodiments, the closed-loop initiation module  902  is implemented in the form of a series of processing steps. Using the logic described below, the closed-loop initiation module  902  decides whether to let the system enter the closed-loop mode. 
     Case A 
     Case A refers to the scenario depicted in  FIG. 50B , where the most recent calibration factor, CFR, is a historical value that has already been generated. 
     If (tP is not in the time window (tR−tDiffmin:tR)), the following logic is checked. 
     
       
         
           
               
             
               
                   
               
             
            
               
                 If (CFmin ≦ CFR ≦ CFmax) 
               
            
           
           
               
               
            
               
                   
                 If (t-tRecent ≦ tR ≦ t) 
               
            
           
           
               
               
            
               
                   
                 If (tR-tDiffmax ≦ tP ≦ tR-tDiffmin) 
               
            
           
           
               
               
            
               
                   
                 If (CFmax ≦ CFP ≦ CFmax) 
               
            
           
           
               
               
            
               
                   
                 Calculate CFchange with CFR as the CFcurrent and 
               
               
                   
                 with CFP as the CFprevious in Equation 50 stated 
               
               
                   
                 above 
               
               
                   
                 If (CFchange ≦ CFchangeTh) 
               
            
           
           
               
               
            
               
                   
                 Enter Closed Loop 
               
            
           
           
               
               
            
               
                   
                 Else Cannot enter closed loop at that time 
               
            
           
           
               
               
            
               
                   
                 Else Cannot enter closed loop at that time 
               
            
           
           
               
               
            
               
                   
                 Else Cannot enter closed loop at that time 
               
            
           
           
               
               
            
               
                   
                 Else Cannot enter closed loop at that time 
               
            
           
           
               
            
               
                 Else Cannot Enter Closed Loop 
               
               
                   
               
            
           
         
       
     
     If any of the above conditions is not met, the system remains in the open-loop mode. Thus, in order to enter the closed-loop mode, new calibration(s) that satisfy all of the conditions in Case A (or Case B as described below) will be required. 
     Case B 
     Case B refers to the scenario depicted in  FIG. 50C , where the most recent calibration factor, CFR, is a historical value that has already been generated. 
     
       
         
           
               
             
               
                   
               
             
            
               
                 If (tP is in the time window (tR-tDiffmin : tR)), 
               
               
                 CFP2 = most recent CF value in the time window of tR-tDiffmax : 
               
               
                 tR-tDiffmin 
               
               
                 tP2 = time when CFP2 was obtained 
               
               
                 If (CFmin ≦ CFR ≦ CFmax) 
               
            
           
           
               
               
            
               
                   
                 If (t-tRecent ≦ tR ≦ t) 
               
            
           
           
               
               
            
               
                   
                 If there is a CFP2 available 
               
            
           
           
               
               
            
               
                   
                 Calculate CFchange with CFR as the CFcurrent and with 
               
               
                   
                 CFP2 as the CFprevious in Equation 50 stated above 
               
               
                   
                 If (CFP2, CFR and all CF values between times tP2 and tR 
               
               
                   
                 lie in the range of (CFmin:CFmax) AND CFchange 
               
               
                   
                 between CFP2 and CFR is ≦ CFchangeTh) 
               
            
           
           
               
               
            
               
                   
                 Enter closed loop 
               
            
           
           
               
               
            
               
                   
                 Else Cannot enter closed loop at that time 
               
            
           
           
               
               
            
               
                   
                 Else Cannot enter closed loop at that time 
               
            
           
           
               
               
            
               
                   
                 Else Cannot enter closed loop at that time 
               
            
           
           
               
            
               
                 Else Cannot Enter Closed Loop 
               
               
                   
               
            
           
         
       
     
     If any of the above conditions is not met, the system remains in the open-loop mode. Thus, in order to enter the closed-loop mode, new calibration(s) that satisfy all of the conditions in Case A or Case B will be required. 
     In accordance with certain variations of the closed-loop initiation module  902 , the system requests a meter BG and related calibration when entering the closed-loop mode. In such alternative embodiments, therefore, the closed-loop initiation module  902  uses the meter BG and Isig to calculate CFR. Thus, in such an implementation, the sensor current would also be an input to the closed-loop initiation module  902 . Accordingly, because CFR is now being calculated by the closed-loop initiation module  902  itself, the conditions in Case A and Case B (i.e., checking whether t-tRecent≦tR≦t) will always be met. 
     In particular implementations, some of the parameters mentioned above can be fixed. In this regard, the following values may be utilized in an exemplary embodiment. It should be appreciated that these values are provided here for illustrative purposes only, and that an implementation of the closed-loop initiation module  902  may utilize different values if so desired. 
     tRecent=120 minutes 
     tDiffmin=120 minutes 
     tDiffmax=480 minutes 
     CFmin=2.5 mg/dL per nA 
     CFmax=6 mg/dL per nA 
     Closed-Loop Initiation Module: Second Representation 
     In accordance with some embodiments, the functionality of the closed-loop initiation module  902  can be represented as follows. The closed-loop initiation module  902  may be implemented in the form of a series of case steps. In this regard, the closed-loop initiation module  902  first calculates the recent calibration factor value (CFR) using the most recent meter BG and Isig values as shown in the following Equation A1:
 
 CFR =meter BG /(Isig−2)  (eq A1)
 
Here, CFR is the recent calibration factor value, meterBG is the meter BG value, and Isig is the sensor Isig value. The “−2” in Equation A1 represents a constant offset that is used by the calibration algorithm when calculating calibration factors and sensor glucose.
 
     Using the logic described below for Case C or Case D, the closed-loop initiation module  902  decides whether to let the system enter the closed-loop mode. Each case condition is dependent upon the time at which the most recent prior calibration factor (CFP) was obtained. 
     Case C 
     Case C corresponds to a scenario where the time of prior calibration is greater than 120 minutes before the most recent calibration. In addition, the recent calibration factor (CFR) and the prior calibration factor (CFP) are within limits as shown in the following logical expressions.
 
 CF min≦ CFR≦CF max  (eq A2)
 
 CF min≦ CFP≦CF max  (eq A3)
 
Here, CFR is the recent calibration factor value, CFP is the prior calibration value, CFmin is the minimum value for the calibration factor that is set as 2.5 mg/dL per nA, and CFmax is the maximum value for the calibration factor that is set as 6 mg/dL per nA.
 
     For Case C, the time of prior calibration (tP) occurs between two and eight hours before time of recent calibration factor as shown in the following logical expression.
 
 tR−t Diffmax≦ tP≦tR−t Diffmin  (eq A4)
 
Here, tP is the time of prior calibration, tR is the time when CFR was obtained, tDiffmax is the maximum time difference between the recent calibration and the prior calibration (which is set as 480 minutes (8 hours)), and tDiffmin is the minimum time difference between the recent calibration and the calibration prior to the recent calibration (which is set as 120 minutes (2 hours)).
 
     For Case C, the calibration change (CFchange) is less than 35% as shown in the following logical expression, where CFchange is calculated according to Equation A6.
 
 CF change=(abs( CFR−CFP )/ CFP )×100  (eq A5)
 
 CF change≦ CF change Th   (eq A6)
 
Here, CFchange is the percentage change in calibration factor from the previous calibration factor to a current calibration factor for any pair of calibration factors, CFchangeTh is the threshold for acceptable CFchange, (which is set to 35% for this example), CFR is the most recent calibration factor value, and CFP is the last calibration factor value before CFR.
 
     If all of the foregoing conditions are met for Case C (Equations A2-A6), the closed-loop initiation module  902  can initiate the methodology for calculating the correction bolus (if needed). If, however, any condition is not met, the controller  900  remains in the open-loop mode. Thus, in order to enter the closed-loop mode, new calibration(s) that satisfy all of the conditions in Case C or Case D will be required. 
     Case D 
     Case D corresponds to a scenario where the time of prior calibration is less than 120 minutes before the most recent calibration. If the prior calibration is less than two hours before the recent calibration, an additional prior calibration factor (CFP 2 ) is included in the analysis. This allows the closed-loop initiation module  902  to evaluate sensor sensitivity that has at least a two hour time span. 
     For Case D, the closed-loop initiation module  902  finds an earlier second prior calibration factor (CFP 2 ) that is the most recent within a time window of two to eight hours before the time of the recent calibration factor (CFR) as shown in the following logical expression.
 
 tR−t Diffmax≦ tP 2 ≦tR−t Diffmin  (eq A7)
 
Here, tP 2  is the time when the second prior calibration factor (CFP 2 ) is obtained, tR is the time when CFR was obtained, tDiffmax is the maximum time difference between tP 2  and tR (which is set as 480 minutes (8 hours) for this example), and tDiffmin is the minimum time difference between tP 2  and tR (which is set as 120 minutes (2 hours) for this example).
 
     For Case D, the closed-loop initiation module  902  also determines if more than one calibration factor (CF 1 . . . CF N ) is available between the time of the second prior calibration factor (CFP 2 ) and the time of the recent calibration factor (CFR), as shown in the following logical expression.
 
 tP 2 ≦t 1  . . . tn≦tR   (eq A8)
 
Here, t1. . . tn is the time when more calibration factors (CF 1 . . . CF N ) are observed, tR is the time when CFR was obtained, and tP 2  is the time when CFP 2  is obtained.
 
     For Case D, all calibration factors including recent calibration factor (CFR), prior calibration factor (CFP), second prior calibration factor (CFP 2 ) and CF 1 . . . CF N  are within limits as shown in the following logical expressions.
 
 CF min≦ CFR≦CF max  (eq A9)
 
 CF min≦ CFP≦CF max  (eq A10)
 
 CF min≦ CFP 2 ≦CF max  (eq A11)
 
 CF min≦ CF   1    . . . CF   N   ≦CF max  (eq A12)
 
     Here, CFR is the recent calibration factor, CFP is the prior calibration factor, CFP 2  is the second prior calibration factor, CF 1 . . . CF N  are calibration factors obtained between tP 2  and tR, CFmin is the minimum value for the calibration factor (which is set as 2.5 mg/dL per nA for this example), and CFmax is the maximum value for the calibration factor (which is set as 6 mg/dL per nA for this example). 
     For Case D, the calibration change (CFchange) between CFR and CFP 2  is less than 35%, as shown in the following logical expression where CFchange is calculated according to Equation A15.
 
 CF change=(abs( CFR−CFP 2)/ CFP 2)×100  (eq A13)
 
 CF change≦ CF change Th   (eq A14)
 
Here, CFchange is the percentage change in calibration factor from the previous calibration factor to a current calibration factor for any pair of calibration factors, CFchangeTh is the threshold for acceptable CFchange (which is set to 35% for this example), CFR is the most recent calibration factor value, and CFP 2  is the most recent calibration factor value in the time range described in Equation A7.
 
     If all of the foregoing conditions are met for Case D (Equations A7-A14), the closed-loop initiation module  902  can initiate the methodology for calculating the correction bolus (if needed). If, however, any condition is not met, the controller  900  remains in the open-loop mode. Thus, in order to enter the closed-loop mode, new calibration(s) that satisfy all of the conditions in Case C or Case D will be required. 
     Correction Bolus with IOB Compensation 
     As described above, a correction bolus  932  may be commanded at the beginning of the closed-loop mode. The purpose of the correction bolus is to provide an insulin dose for mitigating hyperglycemia at the initiation of the closed-loop mode. This can be achieved by first acquiring a blood glucose meter reading value immediately prior to closed-loop initiation. If that BG meter reading value is above a certain correction threshold (CTH, which is 180 mg/dL for this example), the controller  900  will deliver an insulin dose based on the patient&#39;s insulin sensitivity (ISF, mg/dL/Units), insulin on board, and the desired target glucose level (TG, mg/dL) in order to bring the subject&#39;s glucose level to the target glucose level. 
     In accordance with certain implementations, the correction bolus (CB) is delivered based on the meter BG value (in mg/dL) acquired at the start of the closed-loop mode, as shown below: 
                   CB   =     {                 BG   -   TG     ISF     -     IOB   ⁡     (   n   )         ,           if   ⁢           ⁢     (     BG   &gt;   CTH     )                 0   ,           if   ⁢           ⁢     (     BG   ≤   CTH     )                       (     eq   ⁢           ⁢   A17     )               
Here, CB is the correction bolus, BG is the blood glucose meter value (mg/dL), TG is the target glucose (mg/dL), ISF (see Equation A18) is the patient&#39;s adjusted insulin sensitivity factor (mg/dL/Units), CTH is the correction threshold for blood glucose beyond which a correction bolus will be delivered (mg/dL), and IOB(n) is the active insulin on board from manual boluses (Units) where n is the current sampling point as described previously.
 
ISF=ISFfactor×ISF 0   (eq A18)
 
Here, ISF is the patient&#39;s adjusted insulin sensitivity factor (mg/dL/Units), ISF 0  is the patient&#39;s established insulin sensitivity factor (mg/dL/Units) and ISFfactor is an ISF adjusting factor (unit less). The default value for ISFfactor is set to one, which makes ISF=ISF 0 . However, for this particular example, ISFfactor has been assigned as an adjustable parameter with a range of 0.5 to 2 in order to provide greater flexibility for optimizing the patient&#39;s insulin sensitivity factor.
 
                   CB   =     {           CB   ,           if   ⁢           ⁢     (     CB   ≥   0     )                 0   ,           if   ⁢           ⁢     (     CB   &lt;   0     )                       (     eq   ⁢           ⁢   A19     )               
Here, CB is the correction bolus expressed in Units. It should be appreciated that Equation A19 is utilized because the controller  900  can only deliver positive boluses.
 
     Start-Up Module 
     Referring again to  FIG. 49 , the start-up module  904  is “activated” or initiated at the beginning of the closed-loop mode. The start-up module  904  is suitably configured to generate the final target glucose value  946 , which serves as an input to the PID-IFB control module  906 . The start-up module  904  processes the sensor glucose (SG) value  940  obtained at or near the time when the closed-loop mode begins, along with the target glucose setpoint value  944  (which is set to 120 mg/dL in certain embodiments), to calculate the final target glucose value  946 , which in turn serves as an input to the PID-IFB control module  906 . Accordingly, the final target glucose value  946  is sent to the PID-IFB control module  906  to calculate the final insulin dose  962 . 
       FIG. 50E  is a flow chart that illustrates an exemplary embodiment of a closed-loop insulin control process  5100  for an insulin infusion device. The process  5100  represents one exemplary embodiment that could be performed in conjunction with the control process  1000 . More specifically, some or all of the process  5100  may be performed by the start-up module  904  shown in  FIG. 49 . 
     The process  5100  may begin by starting or initiating the closed-loop operating mode of the insulin infusion device (task  5102 ). In this regard, task  5102  may be triggered by the closed-loop initiation module  902  in the manner described above. The process  5100  responds to the initiation of the closed-loop operating mode by receiving or accessing the most recent sensor glucose value for the user, e.g., the sensor glucose value obtained for the current sampling point (task  5104 ). Referring to  FIG. 49 , the most recent SG value  940  is utilized for task  5104 . As shown in  FIG. 49 , the start-up module  904  may also obtain or access the target glucose setpoint value  944  for the user. 
     The process  5100  continues by calculating a difference between the most recent sensor glucose value (obtained at task  5104 ) and the target glucose setpoint value (task  5106 ). This difference, DeltaGlu, may be calculated in accordance with the following expression: DeltaGlu=SG−Setpoint, where SG is the most recent sensor glucose value and Setpoint is the target glucose setpoint value (it should be appreciated that DeltaGlu could be derived using a more complex relationship or formula if so desired). At the beginning of the closed-loop operating mode, the start-up module  904  calculates the difference between the current SG value  940  and the target glucose setpoint value  944 , as indicated by Equation 51 below. 
                     DeltaGlu   ⁢           ⁢     (   n   )       =     {               SG   ⁡     (   n   )       -   Setpoint     ,           m   =   1               0   ,           m   &gt;   1                     (     eq   ⁢           ⁢   51     )               
In Equation 51, SG is the most recent sensor glucose value, n is the current sampling point, Setpoint is the target glucose setpoint value defined by user, and m is the sampling time during closed-loop operation (m=1 indicates the start of the closed-loop mode, and m increases with each sample received during the closed-loop mode). DeltaGlu(n) is forced to zero when m&gt;1 as well as in the following situation described in Equation 52. In other words, DeltaGlu(n) is equal to the calculated difference only for the initial calculation of the final target glucose value  946 . In contrast, DeltaGlu(n) is equal to zero for all subsequent calculations of the final target glucose value  946 .
 
     Referring again to  FIG. 50E , the process  5100  compares the initial value of DeltaGlu to a minimum threshold value (query task  5108 ). This minimum threshold value is referred to herein as MinDeltaGlu. If the initial value of DeltaGlu (i.e., the calculated difference) is less than or equal to MinDeltaGlu (the “No” branch of query task  5108 ), then the process  5100  calculates and adjusts the closed-loop insulin infusion rate (the final insulin dose  962  depicted in  FIG. 49 ) over time, based on a fixed final target glucose value  946  that is derived from the target glucose setpoint value  944  (task  5110 ). In other words, the output of the start-up module  904  is a constant value for this particular scenario. In certain implementations, the fixed final target glucose value is equal to the target glucose setpoint value  944 . In other implementations, the fixed final target glucose value may be a function of the target glucose setpoint value  944 . 
     In accordance with the embodiments described herein, task  5110  adjusts the closed-loop insulin infusion rate in accordance with a suitable PID-IFB control algorithm. This closed-loop control is performed in an ongoing manner until it is time to exit the closed-loop operating mode (the “Yes” branch of query task  5112 ). Thus, task  5110  is repeated for each sampling point to update the final insulin dose  962  as needed while the closed-loop mode remains active. 
     Referring to the “Yes” branch of query task  5108 , if the initial value of DeltaGlu is greater than MinDeltaGlu, then the process  5100  calculates and adjusts the closed-loop insulin infusion rate over time, based on a dynamic final target glucose value that gradually decreases over time toward the target glucose setpoint value (task  5114 ). This action ensures that the patient does not experience a “bump” associated with a significant change in insulin infusion rate at the outset of the closed-loop operating mode. Rather, the process  5100  transitions the insulin infusion rate in a manner that contemplates the difference between the patient&#39;s actual sensor glucose reading and the desired target glucose setpoint. 
     In accordance with the embodiments described herein, task  5114  adjusts the closed-loop insulin infusion rate in accordance with a suitable PID-IFB control algorithm. This closed-loop control is performed in an ongoing manner until it is time to exit the closed-loop operating mode (the “Yes” branch of query task  5116 ). Thus, task  5114  is repeated for each sampling point to update the final insulin dose  962  as needed while the closed-loop mode remains active. Notably, the dynamic final target glucose value will eventually settle to a value that is equal to (or substantially equal to) the target glucose setpoint value, as described in more detail below. This settling time will typically occur about two hours after the start of the closed-loop mode. 
       FIG. 50F  is a flow chart that illustrates an exemplary embodiment of a dynamic closed-loop start-up process  5150  for an insulin infusion device. The process  5150  represents one suitable methodology for adjusting the closed-loop insulin infusion rate based on the dynamic final target glucose value. In this regard, the process  5150  could be performed during tasks  5114  and  5116  of the closed-loop insulin control process  5100 . 
     The process  5150  is iterative in that a final target glucose value is generated for each sampling point. For purposes of this description, the variable n represents the current sampling point. Accordingly, for the first iteration of the process  5150 , n is assigned an initial value, such as one (task  5152 ). As mentioned above with reference to Equation 51, the process  5154  calculates the initial value of DeltaGlu as follows: DeltaGlu(n)=SG(n)−Setpoint (task  5154 ). In other words, DeltaGlu(n) is equal to the calculated difference between the initial sensor glucose value and the target glucose setpoint value only for the initial calculation of the dynamic glucose setpoint value. Otherwise, DeltaGlu(n) is equal to zero for all subsequent calculations of the dynamic glucose setpoint value (following the initial calculation of the dynamic glucose setpoint value). 
     In practice, therefore, the start-up module  904  forces DeltaGlu to zero if it is less than a certain threshold set in the controller  900  (referred to as MinDeltaGlu). As will become apparent from the following description, forcing DeltaGlu to zero in this manner results in the calculation of the final insulin dose  962  based on the fixed final target glucose value (as explained above with reference to task  5110  of the process  5100 ). Otherwise, DeltaGlu(n) retains its value if it is more than the threshold set in the controller  900 , as described in Equation 52: 
                     DeltaGlu   ⁡     (   n   )       =     {           0   ,           DeltaGlu   ≤   MinDeltaGlu                 DeltaGlu   ⁡     (   n   )       ,           DeltaGlu   &gt;   MinDeltaGlu                     (     eq   ⁢           ⁢   52     )               
Here DeltaGlu is the difference between the current SG value  940  and the defined target glucose setpoint value  944 , calculated from Equation 51 above, and MinDeltaGlu is the minimum difference (set in the controller  900 ) allowable between the current SG value  940  and the target glucose setpoint value  944 . For purposes of the process  5150 , it is assumed that the initial value of DeltaGlu(n) exceeds MinDeltaGlu.
 
     The process  5150  may continue by calculating the dynamic glucose setpoint value (DynSP) for the current sampling point (task  5156 ). For this particular implementation, DynSP(n) is calculated in accordance with a discretized second order transfer function model. More specifically, DynSP(n) is calculated in accordance with the expression set forth in Equation 53:
 
 DynSP ( n )= cd   1   ·DynSP ( n− 1)+ cd   2   ·DynSP ( n− 2)+ cn   0 ·Delta Glu ( n )+ cn   1 ·Delta Glu ( n− 1)  (eq 53)
 
Here, DynSP is the dynamic setpoint value, n is the current sampling point, n−1 is the last sampling point, and n−2 is the second to last sampling point. For this example, DynSP(n−1) is equal to zero for the initial calculation of the dynamic glucose setpoint value (i.e., for the first iteration of the process  5150 ). Similarly, DynSP(n−2) is equal to zero for the initial calculation of the dynamic glucose setpoint value, and DeltaGlu(n−1) is equal to zero for the initial calculation of the dynamic glucose setpoint value.
 
     The parameters cd 1 , cd 2 , cn 0 , and cn 1  are the coefficients of the discretized second order transfer function model. Each of the parameters cd 1 , cd 2 , and cn 1  is calculated based on the two time constants (τ sp1  and τ sp2 ) of the discretized second order transfer function model, as indicated below: 
               cd   1     =       eaxx   ⁢           ⁢   1     +     eaxx   ⁢           ⁢   2                     cd   2     =       -   eaxx     ⁢           ⁢   1   ×   eaxx   ⁢           ⁢   2                   cn   0     =   1                 cn   1     =       (       axx   ⁢           ⁢   1   ×   eaxx   ⁢           ⁢   1     -     axx   ⁢           ⁢   2   ×   eaxx   ⁢           ⁢   2       )       daxx   ⁢           ⁢   21                   Where   ⁢     :                   axx   ⁢           ⁢   1     =     1   /     τ     sp   ⁢           ⁢   1                       axx   ⁢           ⁢   2     =     1   /     τ     sp   ⁢           ⁢   2                       eaxx   ⁢           ⁢   1     =     e       -   axx     ⁢           ⁢     1   ·   Ts                       eaxx   ⁢           ⁢   2     =     e       -   axx     ⁢           ⁢     2   ·   Ts                       daxx   ⁢           ⁢   21     =       axx   ⁢           ⁢   2     -     axx   ⁢           ⁢   1             
In the above equations Ts indicates the sampling interval in minutes, and τ sp1  and τ sp2  are the time constants of the setpoint model. Moreover, axx1 is the reciprocal of the time constant τ sp1 , axx2 is the reciprocal of the time constant τsp2, eaxx1 is the exponential decay factor for τ sp1 , eaxx2 is the exponential decay factor for τ sp2 , and daxx21 is the difference between the reciprocal of τ sp1  and τ sp2 .
 
     It should be appreciated that the coefficient values could be adjusted if so desired to define the trajectory characteristics of DynSP over time. In this regard, the coefficient values could be changed as needed to alter the decay timeline, to alter the shape of the decay trajectory curve, or the like. 
     Referring again to  FIG. 50F , the process  5150  calculates the dynamic final target glucose value at the current sampling point, FinalTarget(n), by adding the dynamic glucose setpoint value (calculated in Equation 53) to the target glucose setpoint value. In this regard, FinalTarget(n) is calculated in accordance with the expression set forth in Equation 54:
 
FinalTarget( n )=Setpoint+ DynSP ( n )  (eq 54)
 
Notably, FinalTarget(n) corresponds to the final target glucose value  946  shown in  FIG. 49 , and Setpoint corresponds to the target glucose setpoint value  944  shown in  FIG. 49 .
 
     At the end of the closed-loop operating mode (the “Yes” branch of query task  5160 ), the process  5150  exits. If the closed-loop operating mode remains active (the “No” branch of query task  5160 ), then the variable n is incremented by an appropriate amount, such as one (task  5162 ). As mentioned above, DeltaGlu(n) is forced to zero for all iterations of the process  5150  other than the first iteration. Accordingly, the process  5150  sets DeltaGlu(n) to zero (task  5164 ) before returning to task  5156  to calculate the next value of the dynamic glucose setpoint value. Referring again to Equation 53, the current value of DynSP, i.e., DynSP(n), is calculated from two previous values of DynSP. Moreover, Equation 53 results in a second order decay of DynSP over time, such that DynSP effectively approaches zero and, consequently, the dynamic final target glucose value eventually approximates the target glucose setpoint value (see Equation 54). 
     Referring again to Equation 53, DynSP will be zero for the initial iteration if DeltaGlu(n) is forced to zero (which occurs when DeltaGlu(n) is less than or equal to the minimum threshold value). Moreover, DynSP will be zero for all subsequent iterations because DeltaGlu(n) is forced to zero for subsequent iterations, and because the historical values of DynSP (namely, DynSP(n−1) and DynSP(n−2)) will also be zero. Accordingly, FinalTarget(n) will be equal to Setpoint for all sampling points when the “No” branch of query task  5108  is followed (see  FIG. 50E ). 
     In particular implementations, some of the parameters mentioned above for the start-up module  904  can be fixed. In this regard, the following values may be utilized in an exemplary embodiment. It should be appreciated that these values are provided here for illustrative purposes only, and that an implementation of the start-up module  904  may utilize different values if so desired.
         Setpoint=120 mg/dL   MinDeltaGlu=30 mg/dL (nominal); 0 mg/dL (lower bound); 600 mg/dL (upper bound)   τ sp1 =25 minutes (nominal); 0.1 minute (lower bound); 250 minutes (upper bound)   τ sp2 =30 minutes (nominal); 0.1 minute (lower bound); 250 minutes (upper bound)       

     PID-IFB Control Module 
     The PID-IFB control module  906  calculates the current insulin dose  958  based on the current and past sensor glucose values  940 , the sensor Isig values  950 , the rate of change of the sensor glucose values, the sensor calibration factor  952 , the final target glucose value  946 , the target glucose setpoint value  944 , insulin limits such as the upper insulin limit  959 , and the insulin delivered  954  in order to achieve euglycemia. In certain embodiments, the PID-IFB control module  906  receives its inputs every five minutes, therefore the calculation of the insulin feedback components considers how often the input data is being received by the controller  900 . 
     The PID-IFB control module  906  calculates the current insulin dose  958  in accordance with Equation 55:
 
 u ( n )= P ( n )+ I ( n )+ D ( n )−γ 1   I   SC −γ 2   I   P −γ 3   I   EFF   (eq 55)
 
Note that PIDRate(n)≡u(n). In Equation 55, the insulin infusion rate u(n) represents the current insulin dose  958  shown in  FIG. 49 . In Equation 55, P(n), I(n), and D(n) are, respectively, the proportional, integral, and derivative components of the PID controller. The insulin feedback components correspond to the remaining terms. The variables γ 1 , γ 2 , and γ 3  represent tuning coefficients. In accordance with some embodiments, γ 1 =0.64935, γ 2 =0.34128, and γ 3 =0.0093667, although other values may be used. The parameters I SC (n), I P (n), and I EFF (n) correspond to the states of the insulin pharmacokinetic model corresponding to, respectively, the subcutaneous, plasma, and effective site compartments. Therefore, the amount of insulin delivered is reduced in proportion to the predicted insulin concentration in the different compartments.
 
     The exemplary implementation of the control algorithm employed by the PID-IFB control module  906  is implemented in discrete (sampled) time. In the notation used, n is the current time step, where t=nT s , and t is the continuous time (in minutes) when using a sampling period of T s . 
     The proportional component P(n) is calculated as follows:
 
 P ( n )= Kp [ SG ( n )−Final Target( n )]  (eq 56)
 
Here, Kp is the overall controller gain (expressed in Units/hour per mg/dL), SG(n) is the current sensor glucose, n indicates the current sampling point, and Final Target(n) is the calculated final target glucose setpoint from Equation 54. It should be appreciated that Kp is a patient-specific value and, therefore, the actual value of Kp will vary from one person to another. Although the range can vary depending upon the patient, in most typical scenarios, the value of Kp may be within the range of 0.008 to 0.200.
 
     The integral component I(n) can be calculated as follows: 
                     I   ⁡     (   n   )       =       I   ⁡     (     n   -   1     )       +           K   p     ·     T   s         T   I       ⁡     [       SG   ⁡     (   n   )       -     Final   ⁢           ⁢     Target   ⁡     (   n   )           ]                 (     eq   ⁢           ⁢   57     )               
Here, I(n−1) is the integral component from the previous sampling point, n indicates the current sampling point, n−1 indicates the previous sampling point, Kp is the overall controller gain, Ts is the sampling period, T 1  is the integral time constant, SG(n) is the current sensor glucose, and Final Target(n) is the calculated final target glucose setpoint from Equation 54.
 
     The derivative component D (n) can be calculated as follows:
 
 D ( n )= Kp×T   D   ×dSGdt ( n )  (eq 58)
 
Here, Kp is the overall controller gain, T D  is the derivative time constant, dSGdt(n) is derivative of the sensor glucose value (pre-filtered to remove noise), and n indicates the current sampling point.
 
     The parameters that need to be set (tuned) for the controller  900  are: K P , τ I , and τ D  (see Equations 56, 57, and 58). For the first three PID parameters, they will be calculated in accordance with the previous studies mentioned below (these previous approaches have resulted in good controller performance). The nominal (i.e., for the case with no insulin feedback) controller gain K P0  is calculated based on the subject&#39;s insulin total daily dose I TDD , (in Units/day), as indicated in Equation 59: 
                     K     P   ⁢           ⁢   0       =       60       (   90   )     ⁢     (   1500   )         ⁢     I   TDD               (     eq   ⁢           ⁢   59     )               
Here, K P0  is the default controller gain, and I TDD  is the subject&#39;s insulin total daily dose in Units/Day.
 
     The purpose of insulin feedback is to allow the controller  900  to deliver more insulin up-front (e.g., at the onset of a meal disturbance), but to prevent over-infusion of insulin, in a similar fashion to the bolus estimator calculations used in existing insulin pumps to prevent the stacking of boluses. Therefore, when insulin feedback is used, the controller gain K P  can be adjusted so that at steady state (i.e., basal delivery conditions) the insulin delivery system will deliver the same amount of insulin as in the nominal case. This is accomplished by multiplying the nominal controller gain K P0  (calculated for no insulin feedback) by (1+γ 1 +γ 2 +γ 3 ) as indicated below:
 
 K   P   =K   P factor· K   P0 ·(1+γ 1 +γ 2 +γ 3 )  (eq 60)
 
Here, K P  is the overall controller gain, K P factor is the gain factor for K P , K P0  is the default controller gain, γ 1  (0.64935) is a tuning coefficient for the subcutaneous insulin concentration, γ 2  (0.34128) is a tuning coefficient for plasma insulin concentration, and γ 3  (0.0093667) is a tuning coefficient for effective insulin concentration.
 
     The integral component I(n) is also equipped with anti-windup and saturation constraints to address integral windup issues. This is achieved by calculating an integral clip value (upper limit for the integral component, IClip) as indicated by the following equations: 
                     IClip   ⁡     (   n   )       =     {             Imax   ⁡     (   n   )       ,           (       SG   ⁡     (   n   )       &gt;   UnwindHigh     )                 Iramp   ⁡     (   n   )       ,             (       SG   ⁡     (   n   )       &gt;   UnwindLow     )     ⁢           ⁢   and   ⁢           ⁢     (       SG   ⁡     (   n   )       &lt;   UnwindHigh     )                   Ilow   ⁡     (   n   )       ,           (       SG   ⁡     (   n   )       &lt;   UnwindLow     )                     (     eq   ⁢           ⁢   61     )                       ⁢       Imax   ⁡     (   n   )       =     Imaxfactor   ×   Basal   ×     (     1   +     γ   1     +     γ   2     +     γ   3       )                 (     eq   ⁢           ⁢   61   ⁢   a     )               
Here, Imaxfactor is the gain factor for Imax, and Basal is the subject&#39;s night time basal rate. In accordance with these expressions, IClip becomes equal to the Imax (which is a constant value) when the sensor glucose value is greater than an upper threshold (UnwindHigh). In certain embodiments, the value of (expressed in Units/hour) may reach about 15. In a typical case, Imax may have a default value of 5.0. When the sensor glucose value is between the upper and lower threshold (UnwindLow), then IClip becomes equal to Iramp(n), which is calculated as indicated in Equation 62.
 
                     Iramp   ⁡     (   n   )       =     Kp   ·     [       SG   ⁡     (   n   )       -   UnwindLow     ]     ·     (         SG   ⁡     (   n   )       -   UnwindLow       UnwindHigh   -   UnwindLow       )     ·     (     Imax   -     Kp   ·     [       Setpoint   ⁡     (   n   )       -   UnwindLow     ]         )               (     eq   ⁢           ⁢   62     )               
Here, Kp is the overall controller gain, SG(n) is the current sensor glucose, UnwindLow is the sensor glucose lower threshold, UnwindHigh is the sensor glucose upper threshold, Imax is a constant value, and Setpoint(n) is a user-defined target glucose setpoint.
 
     Finally, if sensor glucose is below the UnwindLow threshold, IClip assumes the value of Ilow(n), which can be calculated by Equation 61:
 
 I low( n )= Kp [Setpoint( n )−Unwindlow]  (eq 63)
 
Here, Kp is the overall controller gain, Setpoint is the target glucose defined by the user, and UnwindLow is the sensor glucose lower threshold.
 
       FIG. 51  is a graph of IClip (in Units/Hour) versus sensor glucose level (in mg/dL) in accordance with one example.  FIG. 51  depicts the relationships between Imax, Ilow, UnwindLow, and UnwindHigh for this particular example. 
     The integral component I(n) as calculated in Equation 57 must be less than or equal to the IClip value as shown in Equation 64: 
     
       
         
           
             
               
                 
                   
                     I 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               IClip 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             , 
                           
                         
                         
                           
                             
                               I 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             &gt; 
                             
                               IClip 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                         
                       
                       
                         
                           
                             
                               I 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             , 
                           
                         
                         
                           
                             
                               I 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             ≤ 
                             
                               IClip 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     64 
                   
                   ) 
                 
               
             
           
         
       
     
     The insulin feedback components correspond to the remaining terms. As mentioned above, for this particular example γ 1 =0.64935, γ 2 =0.34128, and γ 3 =0.0093667 (the tuning coefficients), while the parameters I SC (n), I P (n), and I EFF (n) correspond to the states of the insulin pharmacokinetic model corresponding to, respectively, the subcutaneous, plasma, and effective site compartments. Therefore, the amount of insulin delivered is reduced in proportion to the predicted insulin concentration in the different compartments. 
     The model describing the insulin pharmacokinetics (insulin PK) is given by the following expressions: 
     
       
         
           
             
               
                 
                   
                     
                       
                         I 
                         SC 
                       
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     = 
                     
                       
                         
                           α 
                           11 
                         
                         × 
                         
                           
                             I 
                             SC 
                           
                           ⁡ 
                           
                             ( 
                             
                               n 
                               - 
                               1 
                             
                             ) 
                           
                         
                       
                       + 
                       
                         
                           β 
                           1 
                         
                         × 
                         
                           
                             I 
                             D 
                           
                           ⁡ 
                           
                             ( 
                             n 
                             ) 
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     where 
                     ⁢ 
                     
                       : 
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     65 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     α 
                     11 
                   
                   = 
                   
                     exp 
                     ⁡ 
                     
                       ( 
                       
                         - 
                         
                           Ts 
                           
                             τ 
                             s 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     65 
                     ⁢ 
                     a 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     β 
                     1 
                   
                   = 
                   
                     
                       ( 
                       
                         60 
                         1 
                       
                       ) 
                     
                     · 
                     
                       [ 
                       
                         1 
                         - 
                         
                           exp 
                           ⁡ 
                           
                             ( 
                             
                               - 
                               
                                 Ts 
                                 
                                   τ 
                                   s 
                                 
                               
                             
                             ) 
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     65 
                     ⁢ 
                     b 
                   
                   ) 
                 
               
             
           
         
       
     
     Here, Ts is the sampling time (which is five minutes for this example), and τ s  is the time constant for estimated subcutaneous insulin level in minutes (which is set to 50 minutes for this example). 
     
       
         
           
             
               
                 
                   
                       
                   
                   ⁢ 
                   
                     
                       
                         
                           I 
                           P 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                       = 
                       
                         
                           
                             α 
                             21 
                           
                           × 
                           
                             
                               I 
                               SC 
                             
                             ⁡ 
                             
                               ( 
                               
                                 n 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                         
                         + 
                         
                           
                             α 
                             22 
                           
                           × 
                           
                             
                               I 
                               P 
                             
                             ⁡ 
                             
                               ( 
                               
                                 n 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                         
                         + 
                         
                           
                             β 
                             2 
                           
                           × 
                           
                             
                               I 
                               D 
                             
                             ⁡ 
                             
                               ( 
                               n 
                               ) 
                             
                           
                         
                       
                     
                     ⁢ 
                     
                       
 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       where 
                       ⁢ 
                       
                         : 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     65 
                     ⁢ 
                     c 
                   
                   ) 
                 
               
             
             
               
                 
                   
                       
                   
                   ⁢ 
                   
                     
                       α 
                       21 
                     
                     = 
                     
                       
                         τ 
                         s 
                       
                       · 
                       
                         
                           [ 
                           
                             
                               exp 
                               ⁡ 
                               
                                 ( 
                                 
                                   - 
                                   
                                     Ts 
                                     
                                       τ 
                                       s 
                                     
                                   
                                 
                                 ) 
                               
                             
                             - 
                             
                               exp 
                               ⁡ 
                               
                                 ( 
                                 
                                   - 
                                   
                                     Ts 
                                     
                                       τ 
                                       p 
                                     
                                   
                                 
                                 ) 
                               
                             
                           
                           ] 
                         
                         / 
                         
                           ( 
                           
                             
                               τ 
                               s 
                             
                             - 
                             
                               τ 
                               p 
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     65 
                     ⁢ 
                     d 
                   
                   ) 
                 
               
             
             
               
                 
                   
                       
                   
                   ⁢ 
                   
                     
                       α 
                       22 
                     
                     = 
                     
                       exp 
                       ⁡ 
                       
                         ( 
                         
                           - 
                           
                             Ts 
                             
                               τ 
                               p 
                             
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     65 
                     ⁢ 
                     e 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     β 
                     2 
                   
                   = 
                   
                     
                       ( 
                       
                         60 
                         1 
                       
                       ) 
                     
                     · 
                     
                       
                         ( 
                         
                           
                             
                               τ 
                               s 
                             
                             · 
                             
                               [ 
                               
                                 1 
                                 - 
                                 
                                   exp 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       - 
                                       
                                         Ts 
                                         
                                           τ 
                                           s 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                               ] 
                             
                           
                           - 
                           
                             
                               τ 
                               p 
                             
                             · 
                             
                               [ 
                               
                                 1 
                                 - 
                                 
                                   exp 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       - 
                                       
                                         Ts 
                                         
                                           τ 
                                           p 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                               ] 
                             
                           
                         
                         ) 
                       
                       / 
                       
                         ( 
                         
                           
                             τ 
                             s 
                           
                           - 
                           
                             τ 
                             p 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     65 
                     ⁢ 
                     f 
                   
                   ) 
                 
               
             
           
         
       
     
     Here, Ts is the sampling time, which is five minutes for this example, τ s  is the time constant for estimated subcutaneous insulin level in minutes, which is set to 50 for this example, and τ p  is the time constant for estimated plasma insulin level in minutes, which is set to 70 for this example.
 
 I   EFF ( n )=α 31   ×I   SC ( n− 1)+α 32   ×I   P ( n− 1)+α 33   ×I   EFF ( n− 1)+β 3   ×I   D ( n )   (eq 66)
 
     For Equation 66: 
                     α   31     =       τ   s     ·       [         τ   s     ·     (       τ   p     -     τ   e       )     ·     exp   ⁡     (     -     Ts     τ   s         )         -       τ   p     ·     (       τ   p     -     τ   e       )     ·     exp   ⁡     (     -     Ts     τ   p         )         +       τ   e     ·     (       τ   s     -     τ   p       )     ·     exp   ⁡     (     -     Ts     τ   e         )           ]     /     [       (       τ   s     -     τ   p       )     ·     (       τ   s     -     τ   e       )     ·     (       τ   p     -     τ   e       )       ]                 (     eq   ⁢           ⁢   66   ⁢   a     )                       ⁢       α   32     =       τ   p     ·       [       exp   ⁡     (     -     Ts     τ   p         )       -     exp   ⁡     (     -     Ts     τ   e         )         ]     /     (       τ   p     -     τ   e       )                   (     eq   ⁢           ⁢   66   ⁢   b     )                       ⁢       α   33     =     exp   ⁡     (     -     Ts     τ   e         )                 (     eq   ⁢           ⁢   66   ⁢   c     )                 β   3     =       (     60   1     )     ·       (       [       τ   s   2     ·     (       τ   p     -     τ   e       )     ·     (     1   -     exp   ⁡     (     -     Ts     τ   s         )         )       ]     -     
     ⁢           ⁢       τ   p   2     ·     (       τ   s     -     τ   e       )     ·     [     1   -     exp   ⁡     (     -     Ts     τ   p         )         ]       +       τ   e   2     ·     (       τ   s     -     τ   p       )     ·     
     ⁢           ⁢     [     1   -     exp   ⁡     (     -     Ts     τ   e         )         ]         )     /     (       τ   s     -     τ   p       )       ·     (       τ   s     -     τ   e       )     ·     (       τ   p     -     τ   e       )               (     eq   ⁢           ⁢   66   ⁢   d     )               
Here, Ts is the sampling time, which is five minutes for this example, τ s  is the time constant for estimated subcutaneous insulin level in minutes, which is set to 50 for this example, τ p  is the time constant for estimated plasma insulin level in minutes, which is set to 70 for this example, and τ e  is the time constant for estimated interstitial insulin level in minutes, which is set to 55 for this example.
 
     ID(n) is the calculated and administered insulin infusion. 
     The notation (n−1) indicates values at the previous time step. 
     I SC  is the subcutaneous insulin model estimate/prediction. 
     I P  is the plasma insulin model estimate/prediction. 
     I EFF  is the effective site insulin model estimate/prediction. 
     For this particular example, the insulin PK model parameters α 11 , α 21 , α 22 , α 31 , α 32 , α 33 , β 1 , β 2 , and β 3  are set to 0.9802, 0.014043, 0.98582, 0.000127, 0.017889, 0.98198, 1.1881, 0.0084741, and 0.00005, respectively. These values were calculated from PK-PD data for insulin as part of an empirical study and investigation. It should be appreciated that the specific values presented here merely reflect one possible set of suitable values, and that any one or more of these values may be adjusted as appropriate for the particular embodiment. 
     As mentioned above, previous studies may be leveraged for purposes of configuring and/or operating the PID-IFB control module  906 . A first study (Study 1; Panteleon et al., 2006) looked at the effect of changing the controller gain in a study on eight diabetic dogs. The nominal gain was calculated based on the total daily dose of insulin for one experiment; in duplicate experiments this nominal gain was increased and decreased by fifty percent. Insulin delivery in the six-hour postprandial period tended to increase with increasing gain, but this did not achieve statistical significance. This was due to feedback, with lower insulin delivered as glucose levels fell. In essence, the higher gains tended to give more insulin earlier (achieving much better glucose regulation), and reducing the infusion later, whereas the lower gains tended to keep insulin infusion above basal for a longer period of time due to the glucose levels remaining significantly above target. Note that the controller gain affects all of the components of the PID algorithm, including the integral and derivative terms. 
     A second study (Study 2; Steil et al., 2006) applied a PID controller to ten human subjects. In this study the nominal controller gain was about 42 percent higher than that proposed here, with the integral time constants the same (therefore also a higher integral response), but slightly lower derivative time constants (defined in terms of rising or falling blood glucose, instead of day or night response). In the proposed embodiment presented here, the night-time derivative time constant is just slightly lower than that used in Study 2. 
     A third study (Study 3; Weinzimer et al., 2008) applied a PID controller to seventeen human subjects. For a subset of eight subjects, no pre-meal bolus was given, while in the remaining nine subjects about 50 percent of the standard meal bolus was given about fifteen minutes before the meal. The controller tuning was the same as that proposed herein. In both cases, performance was acceptable, with the pre-meal bolus helping to lower the postprandial peak glucose excursion. When compared with home treatment using standard pump therapy, both closed-loop algorithms were superior, reducing both glucose excursions above 180 mg/dl and below 70 mg/dl. 
     One of the observations from Study 3 was that the meal-related insulin infusion persisted above pre-meal levels for at least four hours after the meal. This result led to the introduction of insulin feedback to the algorithm, which serves to compensate for insulin already delivered, while at the same time allowing for more aggressive action at the start of meals, where it is needed. 
     In particular implementations, some of the parameters mentioned above for the PID-IFB control module  906  can be fixed. In this regard, the following values may be utilized in an exemplary embodiment. It should be appreciated that these values are provided here for illustrative purposes only, and that an implementation of the PID-IFB control module  906  may utilize different values if so desired.
         γ 1 =0.64935   γ 2 =0.34128   γ 3 =0.0093667   α 11 =0.90483741803596   α 21 =0.065563404170158   α 22 =0.931062779704023   α 31 =0.00297495042963571   α 32 =0.083822962634882   α 33 =0.083822962634882   β 1 =5.70975491784243   β 2 =0.202428967549153   β 3 =0.202428967549153       

     The values of the PID parameters mentioned above (K P , τ I , and τ D ) are not expected to change, but it may be desirable to adjust them if doing so would improve the response of the glucose excursion. The nominal values for these PID parameters, together with exemplary allowable ranges, are shown in Table 2. 
     
       
         
           
               
             
               
                 TABLE 2 
               
             
            
               
                   
               
               
                 Adjustable Parameters For the PID-IFB Control Module 
               
            
           
           
               
               
               
               
            
               
                 Parameter 
                 Nominal Value 
                 Lower Bound 
                 Upper Bound 
               
               
                   
               
               
                 Controller 
                 1 × K P0  × 
                 0.05 × K P0  × 
                 20 × K P0  × 
               
               
                 gain: K P   
                 (1 + γ 1  + γ 2  + γ 3 ) 
                 (1 + γ 1  + γ 2  + γ 3 ) 
                 (1 + γ 1  + γ 2  + γ 3 ) 
               
               
                 Integral time 
                 250 min 
                 10 min 
                 1500 min 
               
               
                 constant: τ I   
               
               
                 Derivative time 
                  75 min 
                 10 min 
                  500 min 
               
               
                 constant: τ D   
               
               
                 UnwindLow 
                  80 
                 0 
                 200 
               
               
                 (mg/dL) 
               
               
                 UnwindHigh 
                 100 
                 0 
                 200 
               
               
                 (mg/dL) 
               
               
                 Imax 
                 2.5 × (1 + γ 1  + 
                 0 
                 10 × (1 + γ 1  + 
               
               
                   
                 γ 2  + γ 3 ) × 
                   
                 γ 2  + γ 3 ) × 
               
               
                   
                 Basal Rate 
                   
                 Basal Rate 
               
               
                   
               
            
           
         
       
     
     The lower bound for the controller gain K P0  would lower it by 95 percent from the nominal, resulting in an overall less aggressive response of the controller  900 , and resulting in less insulin delivered for the same glucose level and trend. The upper bound allows this gain to be increased up to 20 times from the nominal. Although this would result in more insulin being given, this is always with respect to the actual glucose level and its derivative, rapidly falling blood glucose, even with an elevated blood glucose level, results in a decreased delivery of insulin due to the derivative component. 
     The integral time constant τ I  determines how fast a deviation in the blood glucose from the desired glucose target accumulates. A higher value results in a slower response to persistent deviations in glucose from target. Lastly, the derivative time constant τ D  can safely be decreased all the way to zero, as the lower it is the less insulin will be delivered. Anything much higher than the upper bound of 500 minutes would make the controller too sensitive to small changes in the rate of change of the sensor glucose, which even though it is not necessarily dangerous, is still undesirable in terms of overall performance. 
     Insulin Limit 
     As mentioned previously with reference to  FIG. 49 , the insulin limit module  908  imposes an upper limit on the closed-loop insulin infusion rate, wherein the upper limit is generated as needed (e.g., at the beginning of each closed loop operating period, once every 24 hours, twice a day, or the like).  FIG. 51A  is a block diagram that schematically illustrates a portion  5200  of the controller  900 ;  FIG. 51A  depicts an exemplary embodiment of the insulin limit module  908  in more detail. For the exemplary embodiment described here, the upper limit is calculated once for each period of closed-loop operation. For a system that frequently operates in the closed-loop mode (or exclusively in the closed-loop mode), the upper limit may be calculated once a day, or in accordance with any desired schedule. 
     The illustrated embodiment of the insulin limit module  908  receives at least the following items as inputs: a fasting blood glucose value  5202  that is associated with the user/patient; a total daily insulin value  5204  that is associated with the user/patient; and fasting insulin delivery data  5206  that is associated with the user/patient. Some or all of this input data may be provided directly or indirectly by the insulin delivery system  14  (see  FIG. 1 ), a translator device, a monitor device, or any device in the closed-loop system. The insulin limit  959  may be considered to be the output of the insulin limit module  908 , which provides the insulin limit  959  to the PID-IFB control module  906 . 
     The operation of the insulin limit module  908  will now be described with reference to  FIG. 51A  and  FIG. 51B , which is a flow chart that illustrates an exemplary embodiment of a closed-loop insulin limit process  5250 . The process  5250  is performed after starting the closed-loop operating mode (task  5252 ). In preferred implementations, the first iteration of the process  5250  is performed for the initial sampling point during the closed-loop mode. Thus, the process  5250  may receive, access, or calculate the fasting blood glucose value  5202 , the total daily insulin (TDI) value  5204 , and the fasting insulin delivery data  5206  to be used for the period of closed-loop operation (task  5254 ). 
     The fasting blood glucose value  5202  indicates a patient-specific measure of blood glucose taken after a period of fasting. For example, the fasting blood glucose value  5202  could be based on one or more blood glucose measurements obtained the morning after the patient wakes up (assuming that no food was ingested overnight, etc.). In practice, the fasting blood glucose value  5202  may be obtained from a continuous glucose sensor, a blood sample device—such as a finger stick measurement device, or a combination thereof. Of course, the actual fasting blood glucose of the patient may vary from one day to another, on a weekly basis, or the like. Accordingly, the current fasting blood glucose value  5202  obtained at task  5254  may be an average value, a median value, or any statistical value that is calculated based on at least some historical patient data. The fasting blood glucose value  5202  could be calculated instantaneously (based on historical data) whenever the process  5250  is performed, or the fasting blood glucose value  5202  could be pre-calculated and stored in accordance with any desired schedule, such that pre-calculated values can be accessed at task  5254 . Regardless of the manner in which the fasting blood glucose value  5202  is obtained or derived, the specific value preferably remains constant during the period of closed-loop operation. 
     The TDI value  5204  indicates an amount of insulin delivered to the patient over a specified 24-hour period. The amount of insulin delivered to a person will usually vary from day to day, depending on a variety of factors. Accordingly, the TDI value  5204  obtained at task  5254  may be an average value, a median value, or any statistical value that is calculated based on at least some historical patient data. In certain embodiments, for example, the TDI value  5204  is calculated as a running average based on the last five days, wherein the insulin delivery information is recorded and provided by the insulin infusion device. In practice, the TDI value  5204  could be calculated instantaneously (based on historical data) whenever the process  5250  is performed, or the TDI value  5204  could be pre-calculated and stored in accordance with any desired schedule, such that pre-calculated values can be accessed at task  5254 . Regardless of the manner in which the TDI value  5204  is obtained or derived, the specific value preferably remains constant during the period of closed-loop operation. 
     For this implementation, the fasting insulin delivery data  5206  indicates an amount of insulin delivered to the user during a specified fasting period, such as the fasting period that precedes the time corresponding to the fasting blood glucose value  5202 . In this regard, if the fasting blood glucose value  5202  is obtained for a given ten-hour window of time, then the fasting insulin delivery data  5206  will also correspond to that same ten-hour window of time. Consequently, the fasting insulin delivery data  5206  is correlated to the fasting blood glucose value in this manner. In certain embodiments, the fasting insulin delivery data  5206  includes information about each insulin delivery operation (that occurred during the designated fasting period). In this context, the fasting insulin delivery data  5206  may include, without limitation: a quantity of insulin (in Units); an insulin delivery rate (in Units/hour); timestamp data; and other data for each insulin delivery operation of interest. Accordingly, the fasting insulin delivery data  5206  includes timing information associated with insulin delivery during the fasting period, rather than a simple accumulated total volume or quantity of insulin. 
     Referring again to  FIG. 51B , the process  5250  continues by calculating a maximum insulin infusion rate for the user (task  5256 ). For this particular embodiment, the maximum insulin infusion rate is calculated from the fasting blood glucose value  5202 , the TDI value  5204 , and the fasting insulin delivery data  5206  obtained at task  5254 . In accordance with this example, the calculated maximum insulin infusion rate is applicable during and throughout the entire period of closed-loop operation. Thus, the maximum insulin infusion rate may be calculated at the outset of (or prior to) the closed-loop operating mode to impose an upper limit on the current insulin dose  958  (see  FIG. 49 ) during the closed-loop mode. 
     In certain embodiments, the maximum insulin infusion rate, Umax, is calculated in accordance with the following expression (Equation 67): 
                   Umax   =       I     basal   ,   0       +         BG   LBL     -     FBG   0       KI               (     eq   ⁢           ⁢   67     )               
Here, Umax is the maximum insulin infusion rate (expressed in Units/hour) bounded at BG LBL  (see Equation 67a below), and I basal,0  is an estimated basal rate (expressed in Units/hour) that will bring the patient&#39;s fasting blood glucose to a value equal to FBG 0 . Thus, I basal,0  is a basal rate that in theory results in the fasting blood glucose value  5202  obtained for the patient (see  FIG. 51A ). In this context, FBG 0  represents the fasting blood glucose value  5202 , expressed in mg/dL, BG LBL  (which is expressed in mg/dL) is the lower buffer limit blood glucose when reaching Umax, and KI is an insulin gain value as calculated by Equation 68 below.
 
 BG   LBL =Setpoint−ILB  (eq 67a)
 
Here, BG LBL  (mg/dL) is a lower blood glucose limit that corresponds to operation of the insulin infusion device at Umax, Setpoint is the target glucose setpoint value  944  ( FIG. 49 ) that is defined by the user, and ILB is the insulin limit buffer, which is an amount (in mg/dL) that the system allows as an additional buffer to handle higher insulin needs. For example, an ILB of 50 allows the system to deliver additional insulin to lower by 50 mg/dL from the Setpoint. In accordance with one non-limiting example presented here, Setpoint=120 mg/dL and, therefore, BG LBL =120−50=70 mg/dL. It should be appreciated that other values of BG LBL  could be utilized if so desired. In practice, the value of BG LBL  is predetermined and provided as a constant for purposes of calculating the maximum insulin infusion rate. In other words, the computation indicated by Equation 67a need not be performed during the process  5250 .
 
                   KI   =       -   IS     *   3   ⁢     (       mg   dL     ⁢           ⁢   per   ⁢           ⁢     U   h       )               (     eq   ⁢           ⁢   68     )               
Here, KI is insulin gain, and IS is an insulin sensitivity value for the user, expressed in mg/dL/U. For this particular embodiment, KI is estimated by the “1800 rule” as IS=1800/TDI (where TDI is the TDI value  5204 ). Accordingly, IS and KI are derived from the TDI value  5204  obtained for the user. In a typical implementation, the value of Umax is calculated on a per-patient basis, and the typical range for Umax is between 0.5 to 3.0 Units/hour.
 
     Referring back to  FIG. 51A  and  FIG. 51B , the process  5250  continues by receiving, obtaining, or accessing the closed-loop insulin infusion rate that has been calculated for the current sampling point during the period of closed-loop operation (task  5258 ). The process  5250  compares the closed-loop insulin infusion rate (as computed by the PID-IFB control module) to the calculated maximum insulin infusion rate (query task  5260 ). When the obtained closed-loop insulin infusion rate is greater than Umax (the “Yes” branch of query task  5260 ), the controller uses a different closed-loop insulin infusion rate that is less than the obtained closed-loop insulin infusion rate. For this scenario, and in accordance with certain embodiments, the PID-IFB control module  906  uses the calculated insulin limit  959  as the current insulin dose  958  (task  5262 ). In this regard, the current insulin dose  958  is limited such that is does not exceed the maximum insulin limit  959  (Umax) as indicated below in Equation 69: 
     
       
         
           
             
               
                 
                   
                     PIDRate 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             Umax 
                             , 
                           
                         
                         
                           
                             
                               PIDRate 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             &gt; 
                             Umax 
                           
                         
                       
                       
                         
                           
                             
                               PIDRate 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             , 
                           
                         
                         
                           
                             
                               PIDRate 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             ≤ 
                             Umax 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     eq 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     69 
                   
                   ) 
                 
               
             
           
         
       
     
     As explained previously with reference to the PID-IFB control module  906 , the insulin dose, PIDRate(n), is calculated in accordance with a PID-IFB control algorithm that considers a proportional component, an integral component, and a derivative component. The process  5250  is suitably designed to inhibit or prevent windup of the integral component when the insulin infusion rate is limited. In this regard, the process  5250  may initiate an integral windup prevention scheme (task  5264 ) when the closed-loop insulin infusion rate calculated by the PID-IFB control module  906  is greater than the calculated insulin limit  959 . For this exemplary embodiment, the PID-IFB control module  906  responds to the application of the insulin limit  959  by effectively freezing the integral component while permitting continued updating of the proportional and derivative components of the PID-IFB control algorithm. 
     Thus, if the insulin limit  959  is active, then the integral component of the PID algorithm is frozen to its previous value. This feature can be employed to assist in the prevention of integral windup. This information is used by the PID-IFB control module  906  for use during the next PID calculation, as indicated here: 
                     I   ⁡     (   n   )       =     {             I   ⁡     (     n   -   1     )       ,             u   ⁡     (   n   )       =   Umax                 I   ⁡     (   n   )       ,             u   ⁡     (   n   )       &lt;   Umax                     (     eq   ⁢           ⁢   70     )               
In Equation 70, I(n) represents the current value of the integral component of the PID-IFB control algorithm. The integral windup scheme enables the proportional and derivative components of the PID-IFB control algorithm to remain active for purposes of dynamically adjusting PIDRate(n) in a manner that does not accumulate error that would otherwise be associated with the integral component.
 
     Referring again to  FIG. 51B , the process  5250  uses the calculated closed-loop insulin infusion rate as the current insulin dose  958  when the calculated rate is less than or equal to Umax (task  5266 ). Equation 69 above also reflects this scenario, wherein the obtained value of PIDRate(n) is provided without adjustment or limiting. Thus, when the obtained closed-loop insulin infusion rate is less than or equal to Umax, the process  5250  ends the integral windup prevention scheme, if currently active, which unfreezes the integral component of the PID-IFB control algorithm (task  5268 ). Task  5268  may be performed by the PID-IFB control module  906  such that the integral component is considered for ongoing calculations of PIDRate(n). 
     In certain embodiments, Umax is calculated once for each period of closed-loop operation. Accordingly, if the next sampling point for the current period of closed-loop operation has been reached (the “Yes” branch of query task  5270 ), the process  5250  returns to task  5258  to calculate the next closed-loop insulin infusion rate (which may or may not need to be limited by the previously calculated value of Umax), and to proceed as described above. If the closed-loop operating mode has ended, then the process  5250  exits such that it can be restarted at the beginning of the next period of closed-loop operation. 
     IOB Compensation Module 
       FIG. 52  is a block diagram that schematically depicts one suitable embodiment of the IOB compensation module  910  in additional detail. As mentioned briefly above, the IOB compensation module  910  adjusts the current insulin dose  958  (i.e., the insulin infusion rate provided by the PID-IFB control module  906 ) as needed to generate the final insulin dose  962  (i.e., the final adjusted infusion rate used by the insulin infusion device). The IOB compensation module  910  may also receive basal rate data  990  and the information related to the manual boluses delivered  960  as input for purposes of calculating the current value of the final insulin dose  962  and/or for purposes of calculating future values of the final insulin dose  962 . The basal rate data  990  may indicate the current basal rate of insulin being delivered to the user, and the manual boluses delivered  960  may indicate the amount for each bolus administered to the user, along with timestamp data corresponding to the delivery date/time of each bolus. In this regard, the manual boluses delivered  960  may include information for any number of boluses delivered in the past, and the manual boluses delivered  960  can be updated as needed in response to each bolus that is delivered going forward. Moreover, the basal rate could be dynamically adjusted if needed or desired (automatically by the system, by the user, by a caregiver, etc.). 
     The manual boluses delivered  960  may be collected and saved in association with the IOB compensation module  910  for use as bolus history  992 . In this regard, the bolus history  992  may include any number of past bolus amounts administered during a given period of time. The IOB compensation module  910  may also use a number of constants, parameters, coefficients, configuration settings, gain values, or the like (for simplicity, the constants  994  shown in  FIG. 52  are intended to encompass these and any other quantities that might be used by the IOB compensation module  910  to calculate the final insulin dose  962 .  FIG. 52  also depicts IOB history  996 , which represents previously calculated IOB values (i.e., historical IOB values calculated for past sampling times). As explained in more detail below, the IOB history  996  and the bolus history  992  may influence the determination of the final insulin dose  962 . It should be appreciated that the bolus history  992 , the constants  994 , and the IOB history  996  can be stored and maintained in one or more memory storage elements of the host system.  FIG. 52  shows these data items “inside” the IOB compensation module  910  for simplicity and ease of description. 
     The IOB compensation module  910  provides an additional safeguard that estimates the insulin on board the body of the patient from manual boluses that were delivered prior to activation of the closed-loop mode, to compensate the final insulin dose  962  and help avoid over-delivery of insulin. When the system initially enters the closed-loop mode, the IOB compensation module  910  considers the manual boluses delivered  960  that have been administered over a defined period of time (e.g., the last eight hours), and subtracts the manual boluses. Thereafter, during the closed-loop mode, the IOB compensation module adjusts for manual boluses that were delivered during each sampling period (e.g., every five minutes). 
       FIG. 53  is a flow chart that illustrates an exemplary embodiment of an IOB compensation process  1100 , which may be performed by the IOB compensation module  910 . The process  1100  represents one iteration that is performed for a current sampling point or time, n. Accordingly, the process  1100  receives, obtains, or accesses a variety of inputs that may have an influence on the output of the IOB compensation module (task  1102 ). For example, the process  1100  may utilize the current value of the uncompensated insulin infusion rate, PIDRate(n), as generated by the PID-IFB control module  906 ; this input is also referred to herein as the current insulin dose  958 . The process  1100  may also use the current basal rate (provided with the basal rate data  990 ), some of the bolus history  992 , and/or some of the IOB history  996  as needed. 
     In the context of the process  1100 , the IOB compensation module  910  calculates insulin on board from manual boluses at each cycle and compensates the controller output rate (insulin infusion rate) if active IOB is greater than a certain threshold. Accordingly, the process  1100  calculates, generates, or otherwise obtains a current IOB value (task  1104 ) that represents an estimate of active insulin in the body of the user. In certain embodiments, the active IOB is estimated in accordance with a discretized three-compartment insulin pharmacokinetic (PK) model, as indicated below:
 
IOB( n )= ci   1 ·IOB( n− 1)+ ci   2 ·IOB( n− 2)+ ci   3 ·IOB( n− 3)+ cb   0   ·U bolus( n )+ cb   1   ·U bolus( n− 1)+ cb   2   ·U bolus( n− 2)  (eq 71)
 
     Here, IOB is the active insulin on board, Ubolus is the amount of manual bolus delivered in units per sample, n is the current sampling point, n−1 is the last sampling point, n−2 is the second to last sampling point, and n−3 is the third to last sampling point. Accordingly, the process  1100  obtains the current IOB value, IOB(n), based at least in part on historical bolus delivery data for the user (see the manual boluses delivered  960  and the bolus history  992  in  FIG. 52 ). The parameters ci 1 , ci 2 , ci 3 , cb 0 , cb 1 , and cb 2  are the coefficients of the insulin absorption model. These parameters are calculated based on the three time constants (τ sc , τ p , and τ eff ) of the insulin pharmacokinetic model, as indicated below:
 
 ci   1   =eaxx 3 +eaxx 4 +eaxx 5  (eq 71a)
 
 ci   2 =−( eaxx 3 ×eaxx 4+( eaxx 3 +eaxx 4)× eaxx 5)  (eq 71b)
 
 ci   3   =eaxx 3 ×eaxx 4 ×eaxx 5  (eq 71c)
 
 cb   0 =1
 
 cb   1   =d prod×(−( daxx 22 ×eaxx 3 +daxx 22 ×eaxx 4)× axx 3 ×axx 4+( daxx 31 ×eaxx 3 +daxx 31 ×eaxx 5)× axx 3 ×axx 5−( daxx 32 ×eaxx 4 +daxx 32 ×eaxx 5)× axx 4 ×axx 5)  (eq 71d)
 
 cb   2   =d prod×( daxx 22 ×eaxx 3 ×eaxx 4 ×axx 3 ×axx 4 +daxx 32 ×eaxx 4 ×eaxx 5 ×axx 4 ×axx 5 −daxx 31 ×eaxx 3 ×eaxx 5 ×axx 3 ×axx 5)  (eq 71e)
 
Where:
 
 axx 3=1/τ SC   (eq 71f)
 
 axx 4=1/τ P   (eq 71g)
 
 axx 5=1/τ eff   (eq 71h)
 
 eaxx 3 =e   −axx3·TsC   (eq 71i)
 
 eaxx 4 =e   −axx4·TsC   (eq 71j)
 
 eaxx 5 =e   −axx5·TsC   (eq 71k)
 
 daxx 22 =axx 4 −axx 3  (eq 711)
 
 daxx 31 =axx 5 −axx 3  (eq 71m)
 
 daxx 32 =axx 5 −axx 4  (eq 71n)
 
 d prod=−1/( daxx 22 ×daxx 31 ×daxx 32)  (eq 71o)
 
In the above equations TsC indicates a modified sampling interval in minutes, which can be calculated as TsC=Ts*6/CurveSpeed, where Ts is the sampling interval and CurveSpeed is the insulin on board decay speed rate in hours. τ SC , τ P , and τ eff  are the respective time constants of the subcutaneous, plasma, and effective compartments of the insulin PK model.
 
     IOB (in Units) as calculated by Equation 71 represents the residual active insulin in the body from manual boluses (that may have been administered before the start of the closed-loop mode or during closed-loop operation) which must be taken into account for calculation of the final insulin delivery rate. This is achieved by first calculating the IOB rate (task  1106 ) and then deducting the IOB rate from the PID-IFB calculated infusion rate, as indicated below. Accordingly, in certain situations the process  1100  determines an adjusted insulin infusion rate (task  1108 ) based at least in part on the calculated IOB rate and the uncompensated insulin infusion rate, PIDRate(n): 
                     IOBRate   ⁡     (   n   )       =     {             GainIOB   ×     IOB   ⁡     (   n   )         ,             IOB   ⁡     (   n   )       &gt;   MinIOB               0   ,             IOB   ⁡     (   n   )       ≤   MinIOB                     (     eq   ⁢           ⁢   72     )                 AdjustedRate   ⁡     (   n   )       =     max   ⁡     (     0   ,       PIDRate   ⁡     (   n   )       -     IOBRate   ⁡     (   n   )           )               (     eq   ⁢           ⁢   73     )               
Note that the process  1100  calculates the IOB rate, IOBRate(n), based at least in part on the current IOB value, IOB(n). The IOB rate, which is expressed in Units per hour (U/h), represents the amount of active insulin accumulated from manual boluses in the body per unit of time. Hence, this additional insulin which is already present in the body is deducted from the controller delivery rate (PIDRate). This accounts for all the manual boluses that have been administered by the user, and minimizes the possibility of over-delivery by the controller. Here, GainIOB is the IOB decay rate in h −1 , and MinIOB is the minimum IOB required to compensate the PIDRate (where MinIOB is expressed in Units). Thus, the IOB rate is calculated to be equal to the current IOB value multiplied by an IOB decay rate when the current IOB value is greater than a minimum IOB value, and is calculated to be equal to zero when the current IOB value is less than or equal to the minimum IOB value. In this regard, MinIOB is a minimum threshold for IOB, below which the effect of IOB on glucose is considered to be negligible; hence not needed to be compensated.
 
     As reflected in Equation 73, the process  1100  selects the adjusted insulin infusion rate to be the maximum of zero or the difference between the uncompensated insulin infusion rate and the calculated IOB rate (from task  1106 ). Note that the difference between PIDRate and IOBRate could be negative, as these values are calculated from different sources. PIDRate is the controller calculated infusion rate and IOBRate is the accumulated active insulin in the body obtained from manual boluses. Accordingly, Equation 73 ensures that the AdjustedRate does not fall below zero. 
     Next, the process  1100  may calculate, select, or otherwise determine a final insulin infusion rate (task  1110 ). In certain embodiments, the final insulin infusion rate (the final insulin dose  962  in  FIG. 49 ) is calculated as indicated below: 
                     FinalRate   ⁡     (   n   )       =     {             max   ⁡     (     Basal   ,     AdjustedRate   ⁡     (   n   )         )       ,           PIDRate   &gt;   Basal                 PIDRate   ⁡     (   n   )       ,           PIDRate   ≤   Basal                     (     eq   ⁢           ⁢   74     )               
As indicated by this expression, the process  1100  selects either the adjusted insulin infusion rate (AdjustedRate(n)), the uncompensated insulin infusion rate (PIDRate(n)), or the current basal rate (Basal) to serve as the final insulin infusion rate (FinalRate(n)) for the insulin infusion device. Here, PIDRate is the insulin infusion rate as calculated by the PID-IFB control module  906  and Basal is the current pre-programmed pump basal rate. Accordingly, task  1110  selects the final insulin infusion rate to be equal to the uncompensated insulin infusion rate when the current basal rate is greater than or equal to the uncompensated insulin infusion rate. In contrast, when the current basal rate is less than the uncompensated insulin infusion rate, task  1110  selects the final insulin infusion rate to be either the current basal rate or the adjusted insulin infusion rate, whichever is higher.
 
     In the context of task  1110 , the PIDRate is used as the FinalRate (when PIDRate is less than or equal to Basal) to allow the controller to “apply brakes” (in other words, suppress insulin delivery rate) in order to prevent any potential hypoglycemia. On the other hand, when PIDRate is greater than Basal, the FinalRate will be the maximum of Basal or AdjustedRate, which ensures that the insulin adjustment only accounts for the insulin coming from boluses, and not the basal. A lower bound (i.e., the value of Basal) is applied to the FinalRate when PIDRate is greater than Basal; this lower bound is utilized to prevent over-compensation of insulin on board under these circumstances. 
     The process  1100  may continue by communicating or otherwise providing the final insulin infusion rate, FinalRate(n), to the insulin infusion device (task  1112 ). For embodiments where the process  1100  is executed natively by the insulin infusion device itself, then the process  1100  may simply provide the final insulin infusion rate to the processing logic or fluid delivery control module of the infusion device. In turn, the insulin infusion device responds by regulating delivery of insulin in accordance with the final insulin infusion rate. 
     This description assumes that the process  1100  is repeated for each sampling time. For the next sampling time, therefore, the value of n may be incremented by one (or by any desired amount) to establish an index for the next iteration of the process  1100  (task  1114 ). Thereafter, the process  1100  may return to task  1102  to obtain the newest input data values and to repeat the various tasks described above. Accordingly, the process  1100  facilitates regulation of insulin delivery to the body of the user in a controlled and ongoing manner by continuously adjusting the final insulin infusion rate while the system is operating in the closed-loop mode. 
     In certain embodiments, it may be desirable to adjust some of the parameters utilized by the IOB compensation module  910  if doing so would improve performance. The nominal values for these parameters, together with exemplary allowable ranges, are shown in Table 3. 
     
       
         
           
               
             
               
                 TABLE 3 
               
             
            
               
                   
               
               
                 Adjustable Parameters For the IOB Compensation Module 
               
            
           
           
               
               
               
               
            
               
                 Parameter 
                 Nominal Value 
                 Lower Bound 
                 Upper Bound 
               
               
                   
               
            
           
           
               
               
               
               
            
               
                 CurveSpeed 
                 6 
                 1 
                 8 
               
               
                 GainIOB 
                 1.25 
                 0 
                 5 
               
               
                 MinIOB 
                 1 
                 0 
                 500 
               
               
                   
               
            
           
         
       
     
     Insulin Delivery Timeout Module 
     The insulin delivery timeout module  912  is suitably designed and configured to continuously monitor (during the closed-loop mode) if the patient is receiving insulin at the insulin limit (Umax) or no insulin (Umin, which may be defined as insulin delivery at little to no Units/Hour) for a prolonged period of time. If one of these insulin delivery conditions is detected, the system will issue a warning and continue operating under the closed-loop mode. As mentioned previously, the insulin delivery timeout module  912  may process the insulin delivered  960  as an input. 
     Accordingly, the insulin delivery timeout module  912  introduces an additional safeguard that checks for a series of steps as described below for the delivery of insulin at the insulin limit (Umax Timeout) or no insulin (Umin Timeout) for a prolonged period of time. This is achieved by calculating the total amount of insulin delivered by the system during the closed-loop mode in a pre-specified moving window that is identified as the insulin time window. 
     Regarding the Umin Timeout condition, once the insulin time window for Umin (which may be defined as delivering insulin at zero Units/Hour) has been reached from the start of the closed-loop mode, the system will monitor the amount of insulin being delivered at the user specified insulin time window and compare it with the amount that could have been delivered if operating at the patient&#39;s basal rate for the same time span, as shown in the following logical expression. 
                     Pump   ⁢           ⁢   Delivery   ⁢           ⁢   Rate     =     {           FinalRate   ,             if   ⁢           ⁢     U   Tot   WinMin       &gt;       (     MinDeliveryTol   /   100     )     ×     U   Basal   WinMin                   Alert   ,             if   ⁢           ⁢     U   Tot   WinMin       ≤       (     MinDeliveryTol   /   100     )     ×     U   Basal   WinMin                         (     eq   ⁢           ⁢   75     )               
Here, Pump Delivery Rate (Units/Hour) is the infusion rate, which is either equal to the FinalRate from Equation 74 (i.e., the infusion rate calculated by the controller during the closed-loop mode), or a pre-programmed overnight basal rate that is used during open-loop operation. The quantity U Tot   WinMin  is the total amount of insulin delivered (in Units) by the closed-loop control algorithm in a user-specified insulin time window for Umin, and the quantity U Basal   WinMin  is the total amount of insulin that could be delivered if operating at a pre-programmed overnight basal rate in the same insulin time window for Umin. The parameter MinDeliveryTol is a user-specified tolerance, in percentage of U Basal   WinMin , that the system has to deliver in order to stay in the closed-loop mode.
 
     In accordance with this particular example, closed-loop control continues as long as the total amount of insulin delivered during the insulin time window (which is set to 120 minutes for this example) by the system is greater than the total amount of insulin that might have been delivered if operating at five percent (which is the default minimum tolerance for this example) of basal. Moreover, a fail-safe alert is triggered once the total amount of insulin delivered during the insulin time window (120 minutes) by the system is less than five percent of basal. 
     Regarding the Umax Timeout condition, once the insulin time window for Umax has been reached from the start of the closed-loop mode, the system will monitor the amount of insulin being delivered at the user specified insulin time window and compare it with the amount that might be delivered if operating at the Umax rate for the same time span, as shown in the following logical expression. 
                     Pump   ⁢           ⁢   Delivery   ⁢           ⁢   Rate     =     {           FinalRate   ,             if   ⁢           ⁢     U   Tot   WinMax       &lt;       (     MaxDeliveryTol   /   100     )     ×     U   max   WinMax                   Alert   ,             if   ⁢           ⁢     U   Tot   WinMax       ≥       (     MaxDeliveryTol   /   100     )     ×     U   max   WinMax                         (     eq   ⁢           ⁢   76     )               
Here, Pump Delivery Rate is the infusion rate, which is equal to either the FinalRate or a pre-programmed overnight basal rate that is used during operation in the open-loop mode. The quantity U Tot   WinMax  is the total amount of insulin delivered (in Units) by the closed-loop control algorithm in a user-specified insulin time window for Umax, and the quantity U max   WinMax  is the total amount of insulin that could have been delivered in the user-specified moving window for Umax if operating at a calculated Umax rate. The parameter MaxDeliveryTol is a user-specified tolerance, in percentage of U max   WinMax , that the system must adhere to in order to stay in the closed-loop mode.
 
     In accordance with this particular example, closed-loop control continues as long as the total amount of insulin delivered during the insulin time window (which is set to 600 minutes for this example) by the system is less than the total amount of insulin that might have been delivered if operating at 95% (which is the default maximum tolerance for this example) of Umax. Moreover, a fail-safe alert is triggered once the total amount of insulin delivered during the insulin time window (600 minutes) by the system is greater than the total amount that might have been delivered if operating at 95% of Umax. 
     In certain embodiments, it may be desirable to adjust some of the parameters utilized by the insulin delivery timeout module  912  if doing so would improve performance. The nominal values for these parameters, together with exemplary allowable ranges, are shown in Table 4. 
     
       
         
           
               
             
               
                 TABLE 4 
               
             
            
               
                   
               
               
                 Adjustable Parameters For the Insulin Delivery Timeout Module 
               
            
           
           
               
               
               
               
            
               
                 Parameter 
                 Nominal Value 
                 Lower Bound 
                 Upper Bound 
               
               
                   
               
               
                 Insulin Time 
                 120 minutes 
                 30 minutes 
                 600 minutes 
               
               
                 Window for Umin 
               
               
                 Insulin Time 
                 600 minutes 
                 30 minutes 
                 600 minutes 
               
               
                 Window for Umax 
               
               
                 MinDeliveryTol 
                  5% 
                 0% 
                 100% 
               
               
                 MaxDeliveryTol 
                 95% 
                 0% 
                 100% 
               
               
                   
               
            
           
         
       
     
     Model Supervisor Module 
     The model supervisor module  914  is similar to the insulin delivery timeout module  912  in that it monitors and polices the system during closed-loop operation. In practice, closed-loop systems are only aware of signals (inputs) that are being provided by the measurement device(s). If measurements deviate from true values, the control system may react to the deviation. When using continuous glucose sensors for diabetes, the sensors provide the measurements to the closed-loop control system and, based on these measurements, insulin is delivered to the subject. Accordingly, sensor performance and integrity should be closely monitored. Fortunately, there is a relationship between the insulin and meal intake to the glycemic response. This relationship can be translated into a mathematical model that is able to predict the sensor glucose response based upon the insulin delivered. The sensitivity of sensor glucose to insulin delivered is patient-specific (the sensitivity can usually be learned over a period of three to six days for each patient). 
     The model supervisor module  914  uses a mathematical model that enables individualization of a patient&#39;s unique blood glucose time-dependent response. The model describes the sensor glucose time-dependent response as a function of insulin and meal intake. The exemplary mathematical model described herein has a number of benefits and advantages: it is linear, physiologically-based, and includes only parameters that have direct connection to measurable data (sensor glucose and insulin delivered). These features are important because a linear model is easy to analyze and predict. Moreover, a physiological-based model facilitates an understanding of the origin of the predictions (e.g., insulin sensitivity, meal intake, etc.), and use of measurable data reduces the need to estimate unobserved variables (e.g., metabolism, cell activity, etc.). 
       FIG. 54  is a diagram that defines certain time events for the model supervision. The label “present” indicates the most recent sampling time or sampling period  1120 , and k is equal to the present sampling time minus a period corresponding to a length of prediction horizon (LPH) in sampling times.  FIG. 54  also indicates a period corresponding to a length of training horizon (LTH) in sampling times, which refers to a model training period. Insulin history is defined as the length of data needed to estimate the plasma insulin. In order for the model supervisor module  914  to be able to estimate a fault, it considers the records of the insulin delivered over the past insulin history plus the LTH and the LPH sampling periods, and at least 80 percent of the Isig (electrical signal) measurements from k-LTH and k. 
     As described in more detail below, the model supervisor module  914  considers a “moving window” that includes a historical time period  1122  that is defined from the present (most recent sampling period  1120 ) back to the beginning of the LTH. The moving window considered by the model supervisor module  914  may also include insulin history that precedes the LTH, as depicted in  FIG. 54 . Data obtained during each window of time is processed and analyzed at or near the present time and preferably before the next sampling period has ended. Thus, at the end of each new sampling period, the “moving window” shifts by one sampling period such that the model supervisor module  914  can consider the most recently obtained data for the current sampling period while disregarding the data that no longer appears within the updated window of time (i.e., the oldest data is no longer considered). The historical time period  1122  may be defined by the LTH and the LPH, which for this example immediately follows the LTH (as shown in  FIG. 54 ). The LPH may also be referred to herein as the “recent history period” or the “model prediction period” for reasons that will become apparent from the following description. The LTH may also be referred to herein as the “distant history period” or the “model training period” for reasons that will become apparent from the following description. In this regard, the LTH (distant history period) corresponds to a period of time from a begin-training sampling period  1124  to an end-training sampling period  1126 , inclusive, while the LPH (recent history period) corresponds to a period of time from a begin-prediction sampling period  1128  to the most recent sampling period  1120 , inclusive. Accordingly, by definition the current sampling period (i.e., the most recent sampling period  1120 ) resides within the LPH. For this particular example, the begin-prediction sampling period  1128  corresponds to the end-training sampling period  1126 . Alternatively, the begin-prediction sampling period  1128  may immediately follow the end-training sampling period  1126 . 
       FIG. 55  is a flow chart that illustrates an exemplary embodiment of a sensor model supervision process  1150 , which may be performed by the model supervisor module  914 . The process  1150  is shown and described in a simplified manner that focuses on functionality for ease of understanding. Certain aspects of the process  1150  are addressed in more detail below with reference to particular representations of the model supervisor module  914 . 
     The process  1150  represents one iteration that is performed for a current sampling point or time, which corresponds to the most recent sampling period. This example assumes that the insulin infusion device is already operating in the closed-loop mode (task  1152 ) to deliver insulin to the body of the user, and that the process  1150  receives relevant data in accordance with a predetermined schedule (e.g., a sampling period of five minutes). Accordingly, the process  1150  receives, obtains, or accesses a variety of inputs that may have an influence on the operation of the model supervisor module  914  (task  1154 ). For example, the process  1150  may receive at least the following data for the current sampling period: current insulin-delivered data that indicates an amount of insulin delivered by the insulin infusion device during the most recent sampling period; current sensor data that indicates a current sensor glucose value for the user, which corresponds to the most recent sampling period; and a current sensor calibration factor, which may be needed to compensate for recent meter-based calibrations. Any amount of historical data could also be received during task  1154  if so desired. Thus, some amount of redundancy may be built into the system (which may be desirable to account for missed transmissions, lost packets, or the like). The sensor data may be received and processed in any suitable form. For example, a continuous glucose sensor may generate Isig (electrical current) values that can be mapped to sensor glucose values. The model supervisor module  914  may be suitably configured to process Isig values directly, or it could translate or map the raw Isig values into any desired representation. 
     The process  1150  may also access or retrieve historical data that was received for past sampling periods (task  1156 ). Task  1156  may represent an initialization routine that populates a grid, matrix, or other type of database structure as needed to prepare the model supervisor module  914  for the various calculations, analyses, and functions described in more detail below. It should be appreciated that subsequent iterations of the process  1150  (which are performed in an ongoing manner during the closed-loop mode) need not repeat the initialization of the historical data. Rather, task  1156  may simply adjust the data history to reflect newly received data. For the embodiments described here, the following historical data may be processed by the model supervisor module  914 , without limitation: historical insulin-delivered data for the user; and historical sensor glucose values for the user. The historical insulin-delivered data may correspond to amounts of insulin delivered by the insulin infusion device during each historical sampling period of interest, and the historical sensor glucose values may correspond to respective sensor glucose measurements obtained during each historical sampling period of interest. In certain implementations, each historical sensor glucose value may be associated with or derived from a historical Isig value and a sensor calibration factor. 
     The process  1150  is iterative in nature, and each iteration considers data associated with the defined historical period of time (see  FIG. 54 ). Accordingly, the process  1150  may define the model training period and the model prediction period for the historical period of time (task  1158 ). In this regard, task  1158  may identify or designate which data samples fall within the model training period (the LTH in  FIG. 54 ) and/or which data samples fall within the model prediction period (the LPH in  FIG. 54 ). Task  1158  may also serve to identify or designate “stale” data samples that need not be considered going forward. In practice, if data for the oldest sampling period is missing for some reason, then the process  1150  can make appropriate adjustments (e.g., search for the closest available data sample, wait for the next sampling period, or the like). 
     Next, the process  1150  processes at least some of the historical data to determine a best-matched solution to a sensor glucose prediction model (task  1160 ). Task  1160  may be considered to be a training procedure that finds the best-fitting sensor glucose prediction function, which in turn can be used to check (predict) the integrity and quality of the glucose sensor. In certain embodiments, the sensor glucose prediction model is expressed as a fourth order ordinary differential equation that, when solved given the initial conditions, provides model-predicted sensor glucose values. Notably, task  1160  uses the actual sensor glucose values obtained during the model training period (and does not use any of the actual sensor glucose values obtained during the model prediction period) to determine which candidate solution will be selected as the best-matched solution. Conceptually, task  1160  generates a plurality of curves (or discrete values that may be used to visualize curves for purposes of this explanation) and compares the portion of the curves within the model training period to the actual sensor glucose values obtained during the model training period. In an ideal scenario with a perfect match, one of the generated curves will precisely track the actual sensor glucose values within the model training period. In practice, however, the generated curves will deviate from the actual sensor glucose values. Accordingly, task  1160  identifies the calculated curve that best matches the actual sensor values. It should be appreciated that this best-matching curve also includes model-predicted sensor glucose values that extend beyond the model training period and into the model prediction period. 
     The process  1150  may continue by comparing at least one historical sensor glucose value obtained during the model prediction period to at least one corresponding predicted sensor glucose value of the best-matched solution (task  1162 ). In certain embodiments, task  1162  checks only one actual sensor glucose value: the current sensor glucose value obtained for the most recent sampling period. In other embodiments, any or all of the sensor glucose values obtained during the model prediction period could be analyzed during task  1162 . The straightforward example described here only considers the current sensor glucose value such that the comparison in task  1162  is simple and straightforward. In this regard, task  1162  may calculate a difference between the current sensor glucose value (i.e., the most recent historical value) and the predicted current glucose value for the most recent sampling period (the difference may be expressed as an absolute value), and the process  1150  may continue by comparing the calculated difference to a threshold error amount (query task  1164 ). In other embodiments, the comparison performed during task  1162  may involve a more advanced methodology, e.g., curve-fitting that considers more than one sampling point in the model prediction period, statistical analyses, or the like. For example, rather than calculating error on a point-by-point basis, the process  1150  could utilize any appropriate methodology to determine whether or not the historical sensor glucose values in the model prediction period deviate (by at least a threshold amount) from the corresponding model-predicted values in the best-matched solution. 
     If the calculated error between the model-predicted glucose value(s) and the corresponding actual historical sensor glucose value(s) is less than or equal to the error threshold, or otherwise satisfies the predetermined criteria monitored by the model supervisor module  914 , then the “No” branch of query task  1164  is followed and the process  1150  continues to the next sampling period (task  1166 ). At this point, the process  1150  returns to task  1152  such that the core of the process  1150  can be repeated to consider the data received for the next sampling period. Thus, the oldest data considered by the previous iteration of the process  1150  is disregarded, the newly received data is designated as the “most recent” data, and the historical time period or “analysis window” for the current iteration of the process  1150  shifts by one sampling period (see  FIG. 54 ). 
     If the calculated error exceeds the threshold error amount (the “Yes” branch of query task  1164 ), then the process  1150  may generate an alert, an alarm, and/or a message (task  1168 ). In practice, an alert, alarm, or message can be initiated by the model supervisor module  914  for rendering, annunciation, delivery, playback, etc. For example, an alert could be presented at the insulin infusion device, at a remote monitoring station, at a handheld controller device, or the like. In certain embodiments, the process  1150  switches from the closed-loop mode to the open-loop mode (or to some type of safe operating mode with reduced insulin delivery) when the threshold error amount is exceeded (task  1170 ). 
     One important aspect of the process  1150  relates to the manner in which the best-matched sensor glucose prediction model is chosen (see task  1160 ). In this regard,  FIG. 56  is a flow chart that illustrates an exemplary embodiment of a sensor model training process  1180 , which may be performed in conjunction with the sensor model supervision process  1150  depicted in  FIG. 55 . The process  1180  is shown and described in a simplified manner for ease of understanding. Certain aspects of the process  1180  are addressed in more detail below with reference to particular implementations of the model supervisor module  914 . 
     As mentioned previously, the exemplary sensor glucose prediction model utilized here is expressed as a fourth order ordinary differential equation. In accordance with conventional mathematics, the model-predicted sensor glucose values (G) in time are calculated as a function of the two model prediction initial conditions G 0  and dG 0 . Here, G 0  is the estimated sensor glucose value for the begin-training sampling period  1124  (the start of LTH in  FIG. 54 ), and dG 0  is the derivative of G 0 . Therefore, different initial condition values result in different solutions to the sensor glucose prediction model; each distinct set of initial conditions corresponds to a different prediction model. For the sake of processing efficiency, the model supervisor module  914  imposes limits and boundaries on the initial condition values to calculate and analyze a manageable number of candidate solutions. In this regard, the sensor model training process  1180  may begin by calculating a range or boundary for each bounded initial condition (task  1182 ). 
     For the exemplary embodiment presented here, the initial condition dG 0  is bounded in a simple manner that is based on a predetermined parameter (which may be adjustable): dG 0 =±grad_bound. In contrast, the boundary for the initial condition G 0  is based on (or is otherwise influenced by) a baseline historical sensor glucose value obtained during the model training period, such as the sensor glucose value that was obtained during the begin-training sampling period  1124 . Thus, the process  1180  may identify, from the historical sensor glucose values, the baseline sensor glucose value to be used for purposes of calculating the boundary for the initial condition G 0 : G 0 =SG k-LTH ±0.14·SG k-LTH  where SG k-LTH  is the baseline sensor glucose value obtained for the earliest sampling period in the historical time period under analysis (see  FIG. 54 ). Notably, the boundary for G 0  is a function of the baseline sensor glucose value, which may vary in an ongoing manner during operation of the system, and which may vary from one iteration of the process  1180  to another. In practice, if the sensor glucose data is missing for the begin-training sampling period  1124 , then the process  1180  can take appropriate measures, e.g., search for the nearest available sensor glucose data point, wait for the next sampling period, etc. 
     The process  1180  may then continue by determining, calculating, or otherwise obtaining the next set of initial conditions (task  1184 ). The manner in which the process  1180  selects and steps through the different initial conditions is unimportant in this context. The current set of initial conditions is used to calculate a candidate solution to the sensor glucose prediction model (task  1186 ). As mentioned above, each candidate solution is calculated as a function of the two bounded initial conditions. Moreover, each candidate solution is calculated as a function of estimated plasma insulin for the user, which in turn is calculated as a function of an amount of insulin delivered to the user. Accordingly, task  1186  may estimate plasma insulin for the user based on: the current insulin-delivered data (obtained for the most recent sampling period); the historical insulin-delivered data; and an insulin basal rate for the user. In practice, task  1186  considers the total insulin (basal, bolus, and any other insulin delivered) for all sampling periods. This allows the process  1180  to obtain the candidate solution to the sensor glucose prediction model based at least in part on the estimated plasma insulin and based at least in part on the baseline sensor glucose value obtained at the earliest sampling period under analysis. 
     The process  1180  may continue by generating a training error value, quantity, or function for the candidate solution (task  1188 ). The training error may be calculated by comparing predicted sensor glucose values from the candidate solution to the corresponding historical sensor glucose values, to obtain a metric that indicates how closely the predicted values match the actual values. In certain embodiments, the training error is based only on predicted values and actual values for the model training period (LTH in  FIG. 54 ), and, therefore, task  1188  does not consider any predicted or actual values for the model prediction period (LPH in  FIG. 54 ). 
     If the process  1180  has considered all of the initial condition combinations (the “Yes” branch of query task  1190 ), then the process  1180  may proceed to a task  1192 . If more sets of initial conditions remain (the “No” branch of query task  1190 ), then the process  1180  may return to task  1184 , retrieve the next set of initial conditions, and continue as described above. Task  1192  is performed after a plurality of different candidate solutions have been calculated, using the different sets of initial conditions. Task  1192  may be performed to select the best-matching candidate solution from the plurality of calculated solutions. For this particular embodiment, the selection is based on the training errors generated during task  1188 . For example, the candidate solution having the lowest training error may be selected as the best-matching solution. 
     It should be appreciated that the process  1180  need not be performed in the illustrated sequence, and that some tasks could be performed in parallel. For example, the calculation of the training errors (task  1188 ) may instead be performed after all of the candidate solutions have been obtained and saved. Moreover, the process  1180  could be designed to immediately eliminate candidate solutions (following completion of task  1188 ) that have a training error that exceeds a predetermined error threshold. As another option, the process  1180  could be designed to immediately designate a candidate solution as the best-matched solution if the associated training error satisfies certain criteria. 
     The foregoing concepts and methodologies may be implemented in a practical embodiment of the model supervisor module  914 . The following description relates to two possible embodiments that implement the general concepts presented above. It should be appreciated that the particular embodiments described below are not exhaustive, and that the description of the embodiments is not intended to limit or restrict the scope or application of the subject matter presented here. 
     Model Supervisor Module: First Representation 
     The model supervisor module  914  is suitably designed and configured to detect potentially faulty sensor measurements. The model supervisor module  914  may utilize a mathematical model that is trained offline. For example, parameters that could be estimated offline estimated include, without limitation: K I  (insulin gain in mg/dL per U/h; τ 1  (first insulin time constant, in minutes); τ 2  (second insulin time constant, in minutes); Ibasal (basal insulin, in U/h); and SGbase (blood glucose (BG) at fasting, in mg/dL, when Ibasal insulin is delivered. 
     The model supervisor module  914  trains the model prediction initial conditions, G 0  and dG 0  every sampling time. G 0  and dG 0  represent the BG (mg/dL) and BG derivative (mg/dL/min) estimate values at k-LTH (see  FIG. 54 ), where LTH is the length of the training data (sampling times) and k is equal to the present sampling time minus LPH. In this context, LPH is the length of the prediction horizon in sampling times. G 0  and dG 0  estimations are bounded as formulated by the expressions collectively identified below as Equation 77. Note that these initial conditions and their boundaries were also described above with reference to task  1182  of the sensor model training process  1180 .
 
 G   0   =CGM   k-LTH ±0.14 ·CGM   k-LTH  
 
 dG   0 =±grad_bound  (eq 77)
 
For Equation 77, CGM k-LTH  is the CGM measurement at sampling time k-LTH, and grad_bound is a predefined absolute maximum BG derivative in time (mg/dL/min)
 
     The model supervisor module  914  estimates plasma insulin, I p , at k-LTH using the insulin history records from k-LTH-insulin history and k-LTH (see  FIG. 54 ) in accordance with Equation 81. Having the estimated I p , G 0 , and dG 0 , a model prediction is generated from present-LTH-LPH, until present (as described above for task  1186  of the sensor model training process  1180 ). The model prediction enables the calculation of two values: Terr and Perr. Terr is defined as the mean sum square of errors between the model prediction and the CGM records from k-LTH and k (Equation 78). Perr is defined as the absolute mean error between the model prediction and the CGM records from k and present (Equation 79). Note that Terr is one type of training error, which was described above for task  1188  of the process  1180 , and Perr is one type of prediction error, as described above for task  1162  and query task  1164  of the sensor model supervision process  1150 . A fault is defined when Perr&lt;err1 and Terr&gt;err2 (Equation 80). 
                   Terr   =           ∑     i   =     k   -   LTH       k     ⁢           ⁢       (       Model   i     -     CGM   i       )     2       LTH               (     eq   ⁢           ⁢   78     )               Perr   =     abs   (           ∑     i   =   k       k   +   LPH       ⁢           ⁢     Model   i       -     CGM   i       LPH     )             (     eq   ⁢           ⁢   79     )               Fault   =     {           1   ,             if   ⁢           ⁢   Terr     &lt;     err   ⁢           ⁢   1   ⁢           ⁢   and   ⁢           ⁢   Perr     &gt;     err   ⁢           ⁢   2                 0   ,             else   ⁢           ⁢   if   ⁢           ⁢   Terr     ≤     err   ⁢           ⁢   2   ⁢           ⁢   or   ⁢           ⁢   Perr     ≥     err   ⁢           ⁢   1                   -   1     ,           if   ⁢           ⁢   not   ⁢           ⁢   enough   ⁢           ⁢   data   ⁢           ⁢   records   ⁢           ⁢   available                     (     eq   ⁢           ⁢   80     )               
In Equation 80, Fault 1 indicates a faulty sensor, Fault 0 indicates a non-faulty sensor, and Fault −1 indicates that there is not enough information to decide. Referring again to  FIG. 55 , Fault 1 corresponds to the “Yes” branch of query task  1164 .
 
     In certain embodiments, some of the parameters used by the model supervisor module  914  may be adjustable. Table 5 identifies the adjustable parameters, along with some exemplary values for the parameters. 
     
       
         
           
               
             
               
                 TABLE 5 
               
             
            
               
                   
               
               
                 Adjustable Parameters For the Model Supervisor Module 
               
            
           
           
               
               
               
               
               
            
               
                   
                   
                 Typical 
                   
                   
               
               
                   
                   
                 Starting 
                 Minimum 
                 Maximum 
               
               
                 Parameter 
                 Symbol 
                 Value 
                 Value 
                 Value 
               
               
                   
               
            
           
           
               
               
               
               
               
            
               
                 Insulin gain 
                 K I   
                 −100 
                 −500 
                 −1 
               
               
                 Insulin time constant 
                 τ 1   
                 30 
                 0.1 
                 150 
               
               
                 Insulin time constant 
                 τ 2   
                 150 
                 0.1 
                 150 
               
               
                 Fasting BG 
                 SGbase 
                 120 
                 50 
                 300 
               
               
                 Basal insulin at 
                 Ibasal 
                 1 
                 0.1 
                 3 
               
               
                 fasting BG 
               
               
                 Training data error 
                 err1 
                 5 
                 1 
                 100 
               
               
                 Prediction data error 
                 err2 
                 20 
                 1 
                 100 
               
               
                 Length of training data 
                 LTH 
                 8 
                 5 
                 30 
               
               
                 Length of prediction data 
                 LPH 
                 3 
                 1 
                 20 
               
               
                 Length of insulin data 
                 Insulin 
                 48 
                 30 
                 60 
               
               
                   
                 History 
               
               
                 BG maximum absolute 
                 grad_bound 
                 5 
                 1 
                 8 
               
               
                 derivative 
               
               
                   
               
            
           
         
       
     
     The following equations describe the mathematical model equations in Laplace transform form: 
                         I   ^     p     ⁡     (   s   )       =       1       (       50   ⁢           ⁢   s     +   1     )     ⁢     (       70   ⁢           ⁢   s     +   1     )         ⁢     (         I   ^     D     +         I   ^       P   ⁢           ⁢   0       ⁢   s   ⁢           ⁢   α   ⁢           ⁢   α     +     d   ⁢           ⁢     I     P   ⁢           ⁢   0       ⁢   β       )               (     eq   ⁢           ⁢   81     )               
In this expression, α=3500, β=120, and Î P  is the I P  in deviation form. Î P0  and dI P0  are the Î P  and derivative initial conditions, respectively.
 
     All the insulin states are formulated in deviation form from the given insulin value Ibasal as it is expressed by the following Equation 82:
 
 Î   x   =I   x   −I basal  (eq 82)
 
In Equation 82, x represents D, in, or P.
 
     The following Equation 83 expresses BG in deviation form from SGbase. Note that Equation 83 represents one suitable expression for the sensor glucose prediction model, which is a fourth order ordinary differential equation. 
                       G   ^     ⁡     (   s   )       =       1       (         τ   1     ⁢   s     +   1     )     ·     (         τ   2     ⁢   s     +   1     )         ⁢     (         K   I     ·       I   ^     P       -       1       (       50   ⁢           ⁢   s     +   1     )     ⁢     (       70   ⁢           ⁢   s     +   1     )         ⁢     (           G   ^     0     ·   α     +       (           G   ^     0     ·   s     +     d   ⁢           ⁢       G   ^     0         )     ·   β     +       (           G   ^     0     ·     s   2       +     d   ⁢           ⁢         G   ^     0     ·   s         )     ·   χ     +       (           G   ^     0     ·     s   3       +     d   ⁢           ⁢         G   ^     0     ·     s   2           )     ·   δ       )         )               (     eq   ⁢           ⁢   83     )               
In Equation 83, the following relationships hold:
 
α=120+τ 1 +τ 2  
 
β=3500+120τ 1 +120τ 2 +τ 1 τ 2  
 
χ=3500τ 1 +3500τ 2 +120τ 1 τ 2  
 
δ=3500τ 1 τ 2  
 
Moreover, in Equation 78, Ĝ, K I , Ĝ 0 , dG 0 , τ 1 , and τ 2  are the BG in deviation form from SGbase, the insulin gain, the BG initial conditions in deviation form, the BG derivative initial conditions, and two time constants, respectively.
 
     Model Supervisor Module: Second Representation 
     In accordance with some embodiments, the functionality of the model supervisor module  914  can be represented as follows. As mentioned above, the model supervisor module  914  estimates the user&#39;s glucose concentration in real-time based on the insulin delivered, the sensor Isig values, and sensor calibration factors. If the model-predicted sensor glucose value (SG) and the actual SG value differ significantly, the system will trigger a fail-safe alert that indicates that the collected data contains unexplained behavior, which may in turn be associated with a faulty sensor and/or insulin delivery, or an unannounced meal intake. 
     The time frames and reference time periods for the model supervisor module  914  are defined as shown in  FIG. 54 . The methodology performed by the model supervisor module  914  uses data packets received for past time frames to estimate plasma insulin and model-predicted glucose in order to estimate the fault conditions. The sampling time is the time interval between two consecutive data packets, which for this particular example is five minutes. The insulin history in  FIG. 54  corresponds to a defined past time frame that is needed to estimate plasma insulin (for this example, the insulin history corresponds to four hours or 48 sampling periods). The length training horizon (LTH) for this example includes 24 data packets, which corresponds to a past time frame of 120 minutes. The length of predicted horizon (LPH) for this example includes 24 data packets, which corresponds to a past time frame of 120 minutes. In  FIG. 54 , k is equal to the present number of data packets minus LPH, and “present” indicates the most recent sampling time. 
     The following equations describe the mathematical model in Laplace transform form. Equation 84 provides an estimate of the plasma insulin, and Equation 85 provides the model-predicted SG values. Accordingly, the model supervisor module  914  in accordance with this particular embodiment estimates the plasma insulin as follows: 
                         I   ^     p     ⁡     (   s   )       =       1       (       50   ⁢           ⁢   s     +   1     )     ⁢     (       70   ⁢           ⁢   s     +   1     )         ⁢     (         I   ^     D     +         I   ^       P   ⁢           ⁢   0       ⁢   s   ⁢           ⁢   ɛ     +     d   ⁢           ⁢     I     P   ⁢           ⁢   0       ⁢   γ       )               (     eq   ⁢           ⁢   84     )               
For this example, ε=3500, γ=120, Î P  is the estimated plasma insulin in deviation form, (s) refers to Laplace transform form, and Î D  is the insulin delivered from the system in deviation form. Moreover, Î P0  is the estimated plasma insulin in deviation form for the sampling time identified as k-LTH (see  FIG. 54 ), dI P0  is the derivative of the estimated plasma insulin, and α and β are constants.
 
     The insulin states described above are formulated in deviation form from a given insulin value Ibasal as it is expressed by the following equation:
 
 Î   x   =Î   x   −I basal  (eq 85)
 
In Equation 85, x represents D or P (where D refers to insulin delivered and P refers to plasma insulin), and I basal,0  is the estimated basal rate defined for each user to bring the patient to a fasting blood glucose (FBG) of the value FBG 0  (in mg/dL).
 
     For this second embodiment, the model-predicted sensor glucose value, Ĝ, in time is calculated in accordance with Equation 83 and the associated relationships, as described for the first embodiment of the model supervisor module  914 . In this regard, Ĝ is the model-predicted SG value in deviation form from FBG 0  (estimated blood glucose using meter blood glucose readings at the end of the night period), (s) refers to Laplace transform form, τ 1 , and τ are the two insulin time constants identified for each patient, which are related to how fast a patient reacts to insulin, K I  is the insulin gain, and Î P  is the estimated plasma insulin in deviation form. Moreover, Ĝ 0  is the estimated SG value (in mg/dL) in deviation form for the sampling time of k-LTH (see  FIG. 54 ), as calculated in accordance with Equation 86 below, and dG 0  (calculated by Equation 87 below) is the derivative of the estimated SG value (in mg/dL/min) for the sampling time of k-LTH. The constants α, β, χ, and δ are calculated as set forth above in the context of Equation 83. 
     The estimated blood glucose values are calculated as a function of the model prediction initial conditions, G 0  and dG 0 . For this particular embodiment, the estimations for G 0  and dG 0  are bounded as formulated by the following equations. Note that these initial conditions and their boundaries were also described above with reference to task  1182  of the sensor model training process  1180 .
 
 G   0   =SG   k-LTH ±0.14 ·SG   k-LTH   (eq 86)
 
 dG   0 =±grad_bound  (eq 87)
 
Here, G 0  is the estimated SG value (in mg/dL) value for the sampling time of k-LTH, SG k-LTH  is the SG measurement for the sampling time of k-LTH, dG 0  is the derivative of the estimated SG value (in mg/dL/min) for the sampling time of k-LTH, and grad_bound is a predefined absolute maximum SG derivative in time (mg/dL/min). For certain embodiments, grad_bound is a fixed parameter. For the example presented here, grad_bound has a value of 5 mg/dL/min.
 
     The model prediction facilitates the calculation of two values: Terr and Perr. Terr is defined as the mean absolute error between the model predicted SG values and the actual SG records for the sampling time identified as k-LTH and k as calculated by Equation 88 below. Perr is defined as the mean absolute error between the model predicted SG values and the actual SG records for sampling times identified as k to present (see  FIG. 54 ) as calculated by Equation 89 below. 
                   Terr   =         ∑     i   =     k   -   LTH       k     ⁢           ⁢     abs   ⁡     (       Model   i     -     SG   i       )         LTH             (     eq   ⁢           ⁢   88     )               
Here, Terr is defined as the mean absolute error between the model predicted SG values (Model i ) and the SG records (SG i ) for the sampling time identified as k-LTH and k.
 
                   Perr   =           abs   ⁡     (       Model   present     -     SG   present       )         SG   present       ·   100     ⁢   %             (     eq   ⁢           ⁢   89     )               
Here, Perr is defined as the percentage of error between the model prediction and the SG measurement at the present (most recent) sampling time.
 
     In accordance with this particular implementation, the model supervisor module  914  estimates the fault scenario based on Equation 90, where Fault  1  signifies a faulty sensor, Fault  0  indicates a non-faulty sensor, Fault  3  indicates a training error, and Fault −1 indicates that there is not enough data available to make a determination. 
                   Fault   =     {           1   ,             if   ⁢           ⁢   Terr     &lt;     err   ⁢           ⁢   1   ⁢           ⁢   and   ⁢           ⁢   Perr     &gt;     err   ⁢           ⁢   2                 0   ,             if   ⁢           ⁢   Perr     ≤     err   ⁢           ⁢   2   ⁢           ⁢   or   ⁢           ⁢   Terr     ≥     err   ⁢           ⁢   1                 3   ,             if   ⁢           ⁢   Terr     &gt;     err   ⁢           ⁢   3                   -   1     ,           if   ⁢           ⁢   not   ⁢           ⁢   enough   ⁢           ⁢   data   ⁢           ⁢   available                     (     eq   ⁢           ⁢   90     )               
In Equation 90, err1 is the upper threshold for the mean absolute error (see Equation 88). Thus, if the training error is above this threshold, a fault cannot be triggered because the credibility of the training is suspect. The err2 is the lower threshold for Equation 89. If the prediction value of the model and the sensor measurement at present are above this threshold and the training error is less than err1, then a fault will be triggered. The err3 defines a lower threshold for the training period. If Equation 88 indicates a value that is above this threshold, then a warning associated with poor training can be triggered.
 
       FIG. 57  is a diagram that illustrates exemplary sensor conditions corresponding to a non-faulty sensor (Fault  0 ) and a faulty sensor (Fault  1 ). The common horizontal axis indicates the present sampling time at the far right, along with the time periods identified by LPH and LTH. The sampling time  1202  corresponds to the oldest data considered by the model supervisor module  914  at the present time. Accordingly, historical data  1204  for sampling times that occurred before the sampling time  1202  is disregarded. 
     The top plot  1206  in  FIG. 57  is indicative of a non-faulty sensor (Fault  0 ), the middle plot  1208  is indicative of a faulty sensor (Fault  1 ), and the bottom plot  1210  depicts the insulin administered, which is needed in order to estimate the plasma insulin and to generate the model predicted SG values. In the plots  1206 ,  1208 , the solid line  1212  represents the model-predicted SG values, and the dots represent the actual SG measurements. The dashed vertical line  1214  represents the demarcation between the LTH time frame and the LPH time frame. The lines between the solid line  1212  and the dots represent the difference (error) between the model-predicted SG values and the actual SG measurements. Dashed lines are utilized in the LPH time frame, which corresponds to fifteen minutes or three sampling periods for this example. 
     Referring to the top plot  1206 , there is good agreement between the model predicted SG values (represented by the solid line  1212 ) and the actual SG measurements (represented by the dots). In other words, the actual measurements do not deviate significantly from the predicted values. In certain embodiments, the model supervisor module  914  only compares actual measurement values that are within the LPH time frame. In accordance with one exemplary embodiment, the model supervisor module  914  determines the fault status based solely on the most recently obtained data, i.e., the information received for the last sampling time. For this example depicted in  FIG. 55 , Perr is less than or equal to err2. Thus, in accordance with Equation 90, the model supervisor module  914  returns Fault  1  and the system is commanded to remain in the closed-loop mode. 
     Referring to the middle plot  1208 , of  FIG. 57 , there is good agreement between the model predicted SG values and the actual SG measurements in the LTH time period (for this period, Terr is less than err1 in Equation 90). Note, however, that there is a significant difference observed between the model predicted SG last value and the actual last SG measurement  1218  (Perr is greater than err2 in Equation 90). In this scenario, therefore, the model supervisor module  914  will issue a fail-safe alert and/or take other appropriate measures. 
     In certain embodiments, some of the parameters used by the model supervisor module  914  may be adjustable. Table 6 identifies some adjustable parameters for this embodiment, along with some exemplary values for the parameters. 
     
       
         
           
               
             
               
                 TABLE 6 
               
             
            
               
                   
               
               
                 Adjustable Parameters For the Model Supervisor Module 
               
            
           
           
               
               
               
               
            
               
                 Parameter 
                 Default Value 
                 Lower Bound 
                 Upper Bound 
               
               
                   
               
            
           
           
               
               
               
               
            
               
                 K I  (mg/dL/U/H) 
                 −100 
                 −360 
                 −49 
               
               
                 FBG 0  (mg/dL) 
                 120 
                 50 
                 300 
               
               
                 Ibasal (U/H) 
                 1 
                 0.1 
                 3 
               
               
                 err1 (mg/dL) 
                 5 
                 1 
                 30 
               
               
                 err2 (%) 
                 50 
                 20 
                 100 
               
               
                 err3 (mg/dL) 
                 10 
                 1 
                 30 
               
               
                 LTH (sampling times) 
                 24 
                 4 
                 48 
               
               
                 LPH (sampling times) 
                 24 
                 1 
                 48 
               
               
                   
               
            
           
         
       
     
     Missed Transmission Module 
     The missed transmission module  916  continuously checks whether the controller receiving data packets (including SG values) for processing. The missed transmission module  916  keeps the system operating in the closed-loop mode for when less than a stated number of data packets are missed (e.g., less than four data packets in a row, a total number of data packets that represent a timespan of less than 15 minutes, or the like). During this time, the system will continue to calculate the insulin dose using the closed-loop control algorithm based on the last valid sensor glucose value or sensor Isig value. For missed data packets that represent a time longer than a lower time threshold and longer than an upper time threshold (e.g., between 15 and 60 minutes), the missed transmission module  916  switches the system to a pre-programmed safe basal rate, which may be defined as half the patient&#39;s nighttime basal rate. If the controller starts receiving data packets during the safe basal rate timeframe, the system will switch back to the closed-loop mode. For missed data packets that represent a time longer than the upper time threshold, however, the missed transmission module  916  switches the system to the open-loop mode to deliver a pre-programmed nighttime basal rate, which may be set by a healthcare provider or a caregiver. 
     The missed transmission module  916  checks for different scenarios pertaining to when and what kind of packet is lost during transmission. Different steps are executed depending on the type of lost transmission. The details of four different scenarios are described below. 
     Case 1 
     If the sensor Isig value and the SG value are both received by the controller, then:
         (a) the sensor Isig is saved by the controller;   (b) the SG value is saved by the controller;   (c) a Zero Order Hold (ZOH) count is set to zero; and   (d) the system remains in the closed-loop mode as described previously.       

     Case 2 
     If the sensor Isig value is not received, but the SG value is received by the controller, then:
         (a) the ZOH count is set to zero;   (b) Isig is calculated by Equation 91 (see below) using the SG value and the sensor calibration factor; and   (c) the system remains in the closed-loop mode.
 
 I sig calc =( SG/CF ′)+2  (eq 91)
       

     Case 3 
     If the sensor Isig value is received, but the SG value is not received by the controller, then:
         (a) the ZOH count is set to zero;   (b) SG is calculated by Equation 92 (see below) using the Isig value and the sensor calibration factor; and   (c) the system remains in the closed-loop mode.
 
 SG   calc =( I sig−2)× CF′   (eq 92)
       

     Case 4a 
     If neither the sensor Isig value nor the SG value are received by the controller (i.e., both values are not received), and if:
 
ZOH Count≦ZOH Count Max
 
then:
         (a) the ZOH count for the sensor Isig and SG is calculated based on previous values;   (b) ZOH Count=ZOH Count+1;   (c) TimeoutCount=0; and   (d) the system remains in the closed-loop mode.       

     Case 4b 
     If neither the sensor Isig value nor the SG value are received by the controller (i.e., both values are not received), and if:
 
ZOH Count&gt;ZOH Count Max
 
then:
         (a) an “invalid” place holder for the sensor Isig and SG value is saved;   (b) the system remains in the closed-loop mode, but switches to a temporary safe basal rate, which is half the patient&#39;s night time basal rate when in the open-loop mode;   (c) if a packet is received by the system while it is delivering the safe basal rate, the system will transition back to the closed-loop mode;   (d) for every minute that the system is delivering the safe basal rate, a TimeoutCount is incremented: TimeoutCount=TimeoutCount+1;   (e) if TimeoutCount&gt;Timeout Count Max, then the system switches to the open-loop mode.       

     In accordance with certain embodiments, ZOH Count Max has a fixed value of two, and Timeout Count Max has a fixed value of 45, although different values may be used as appropriate to the particular implementation. Moreover, the safe basal rate used by the missed transmission module  916  may be adjustable. In this regard, the safe basal rate may be adjustable within a range of about zero to five Units/Hour. 
     While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or embodiments described herein are not intended to limit the scope, applicability, or configuration of the claimed subject matter in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the described embodiment or embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope defined by the claims, which includes known equivalents and foreseeable equivalents at the time of filing this patent application.