Method of sensorless plunger detection during insulin reservoir setup
By using a motor position sensor and mathematical filter technology, the insulin pump achieves accurate plunger detection and timely blockage identification during reservoir setup, solving the problems of detection accuracy and reliability in existing technologies and reducing mechanical complexity and cost.
Patent Information
- Application Number
- CN202511099674.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-07-28
- Filing Date
- 2025-08-07
- Publication Date
- 2026-02-10
AI Technical Summary
Existing insulin pumps have difficulty accurately detecting plunger position and timely blockage during reservoir setup, leading to inaccurate delivery, reduced reliability, and increased mechanical complexity and cost.
Motor position sensors (such as Hall effect sensors) are used to measure motor rotation time and speed. The coefficient of variation is determined by mathematical and statistical filters. Combined with motor drive voltage and duty cycle adjustment, plunger detection and blockage identification are achieved, avoiding the use of additional sensors.
It improves the delivery accuracy and reliability of insulin pumps, reduces design complexity and cost, and extends battery life.
Smart Images

Figure CN121490180A_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims the benefit and priority of U.S. Provisional Application No. 63 / 680,353, filed August 7, 2024, entitled “METHOD OF SENSOR-LESS PLUNGER DETECTION DURING INSULIN RESERVOIR SETUP,” which has been assigned to the assignee of this application and is hereby incorporated in its entirety by reference for all purposes. Technical Field
[0003] The technologies disclosed in this article generally relate to fluid delivery devices, such as insulin pumps. Background Technology
[0004] Fluid delivery devices are commonly used to deliver medications to patients. Fluid delivery devices may include syringes, pen syringes, pumps, etc. For example, a fluid delivery pump may include a pump drive system that includes a motor and transmission components (e.g., including sliders and / or sleeves). The transmission components can convert the motion of a rotary motor into translational displacement of a plunger (or plug) in a fluid reservoir containing the medication fluid. In this way, the medication fluid can be moved from the reservoir to the patient's body via a fluid path between the reservoir and the patient's body (such as a flexible tube and / or tubular protrusion at least partially inserted into the user's body). Many fluid delivery pumps can be portable or wearable and therefore can be battery powered. In one example, a fluid delivery device (e.g., an insulin pump) may be worn by a diabetic patient to administer insulin to the patient automatically or semi-automatically.
[0005] In healthy individuals, the pancreas produces insulin and releases it into the bloodstream in response to elevated blood sugar levels. More specifically, beta cells (β-cells) in the pancreas produce insulin as needed and secrete it into the bloodstream. If beta cells lose their ability to function or die (a condition known as type 1 diabetes), insulin may be required to deliver insulin to the body of a diabetic patient using methods such as syringes, pens, or infusion pumps from glucose management systems to maintain health or life. Some glucose management systems may require manual administration of insulin based on a dose determined by an insulin calculator. Some glucose management systems may include an insulin pump that is controlled to deliver insulin to the patient automatically or semi-automatically. For example, an insulin pump may operate in a mode in which basal insulin is delivered at a fixed or variable rate, determined for the user based, for example, on glucose level measurements obtained from a glucose sensor worn by the patient, such as a continuous glucose monitoring (CGM) sensor. Insulin pumps can also be used to control the delivery of large doses after meals to account for dietary intake, and / or the delivery of large doses of insulin to account for rising glucose trends, detected sudden increases in glucose levels, etc. Therefore, this glucose level management system, which includes a CGM sensor and an insulin pump, can monitor and regulate a user's blood or interstitial glucose levels in a largely continuous and autonomous manner, for example, overnight while the patient is sleeping. Summary of the Invention
[0006] This disclosure generally relates to fluid delivery devices, such as insulin pumps. The processes disclosed herein can be practiced in a variety of ways, such as methods implemented using a processor, systems including one or more processors and one or more processor-readable media, and / or one or more (non-transitory) processor-readable media.
[0007] According to some embodiments, a processor-implemented method may include: obtaining motor rotation data associated with a motor configured to rotate stably to actuate a drive system for driving a plunger in a reservoir in a fluid delivery device, the motor rotation data indicating time intervals between changes in the position of the motor; for each of multiple rotations of the motor, determining a current maximum rotation time of the motor based on measured rotation time of the motor rotation and a previous maximum rotation time of the motor, and storing the current maximum rotation time in a buffer; determining a coefficient of variation of the motor rotation time based on data in the buffer; determining the change in the coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and determining whether the plunger is detected based on a comparison of the change with a threshold.
[0008] According to some embodiments, a system may include one or more processors; and one or more processor-readable storage media storing instructions that, when executed by the one or more processors, cause to perform operations including: obtaining motor rotation data associated with a motor configured to rotate stably to actuate a drive system for driving a plunger in a reservoir in a fluid delivery device, the motor rotation data indicating time intervals between changes in the position of the motor; for each of multiple rotations of the motor, determining a current maximum rotation time of the motor based on measured rotation time of the motor rotation and a previous maximum rotation time of the motor, and storing the current maximum rotation time in a buffer; determining a coefficient of variation of the motor rotation time based on the data in the buffer; determining the change in the coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and determining whether the plunger is detected based on a comparison of the change with a threshold.
[0009] According to some embodiments, a fluid delivery device may include: a reservoir including a plunger and a cylinder for storing fluid; a drive system including a motor and configured to linearly translate the plunger; a motor position sensor configured to measure the position of the motor; one or more processors electrically coupled to the motor and the motor position sensor; and one or more processor-readable storage media. The one or more processor-readable storage medium stores instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: obtaining motor rotation data associated with a motor configured to rotate stably to actuate a drive system for driving a plunger in a reservoir in a fluid delivery device, the motor rotation data indicating time intervals between changes in the position of the motor; for each of multiple rotations of the motor, determining the current maximum rotation time of the motor based on measured rotation time of the motor rotation and the motor's previous maximum rotation time, and storing the current maximum rotation time in a buffer; determining a coefficient of variation of the motor rotation time based on the data in the buffer; determining the change in the coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and determining whether the plunger is detected based on a comparison of the change with a threshold.
[0010] This summary is provided to introduce, in a simplified form, a series of concepts further described below in the detailed embodiments. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to help determine the scope of the claimed subject matter. Attached Figure Description
[0011] The exemplary implementation scheme is described in detail below with reference to the accompanying drawings.
[0012] Figure 1 An example of glucose level management is shown. Figure 1 An example of a glucose level management system according to certain implementation schemes is shown.
[0013] Figure 2 This is a block diagram of an example of a blood glucose level management system based on certain implementation schemes.
[0014] Figure 3 An example of a fluid delivery device suitable for a glucose level management system according to certain embodiments is shown.
[0015] Figure 4 It is based on certain implementation plans. Figure 4 An exploded perspective view of an example of a fluid transport device.
[0016] Figure 5 yes Figure 4 A cross-sectional view of a fluid transport device, in which a reservoir is inserted into the fluid transport device.
[0017] Figure 6 This is a block diagram of an example infusion system according to certain implementation schemes.
[0018] Figure 7 This includes flowcharts illustrating examples of the process of calibrating and utilizing fluid delivery equipment according to certain implementation schemes.
[0019] Figure 8 Includes a flowchart illustrating an example of the manufacturing calibration process for a fluid delivery device according to certain implementation schemes.
[0020] Figure 9 The flowchart includes an example of a process for determining the baseline coefficient of variation of motor rotation time in a fluid transport system without applied load, according to certain embodiments.
[0021] Figure 10 Includes a flowchart illustrating an example of a process for detecting a plunger in a fluid delivery system according to certain embodiments.
[0022] Figure 11 The flowchart includes an example of a process for measuring and compensating for friction between the plunger and the cylinder of a fluid reservoir in a fluid delivery system, according to certain embodiments.
[0023] Figure 12 Includes a flowchart illustrating an example of a process for determining the baseline coefficient of variation of the delivery rate of a fluid delivery device according to certain embodiments.
[0024] Figure 13This includes flowcharts illustrating examples of the process of scheduling and transporting fluids using a fluid transport system according to certain implementation schemes.
[0025] Figure 14 Includes flowcharts illustrating examples of processes for controlling a fluid delivery system for fluid transport according to certain implementation schemes.
[0026] Figure 15 This includes a flowchart illustrating an example of a process for determining the stroke size of the next stroke based on the remaining amount of fluid to be delivered, according to certain implementation schemes.
[0027] Figure 16 This includes flowcharts illustrating examples of the process of scheduling and delivering basal insulin using a fluid delivery system according to certain implementation schemes.
[0028] Figure 17 This includes flowcharts illustrating examples of the process of scheduling and delivering temporary basal insulin using a fluid delivery system according to certain implementation schemes.
[0029] Figure 18 This includes flowcharts illustrating examples of the process of scheduling and delivering large doses of square wave insulin using a fluid delivery system according to certain implementation schemes.
[0030] Figure 19A This is a diagram illustrating an example of selecting the number of square wave large dose delivery events based on the total amount of square wave large dose according to certain implementation schemes.
[0031] Figure 19B An example is shown of delivering a large dose of square wave over four events within one hour, based on some examples.
[0032] Figure 20 This includes a flowchart illustrating an example of a process for detecting blockages during fluid delivery using a fluid delivery system according to certain implementations.
[0033] Figure 21 This includes a flowchart illustrating an example of a process for detecting blockages in a fluid delivery system when the operating temperature changes, according to certain embodiments.
[0034] Figure 22 This includes graphs illustrating examples of parameters used in a process for detecting blockages in a fluid delivery system when the operating temperature changes, according to certain embodiments.
[0035] Figure 23 This is a block diagram of an example electronic device that can implement some of the examples disclosed in this document.
[0036] The accompanying drawings illustrate embodiments of the present disclosure for illustrative purposes only. Those skilled in the art will readily recognize from the following description that alternative embodiments of the illustrated structures and methods may be employed without departing from the principles of the present disclosure or the benefits claimed.
[0037] In the accompanying drawings, similar parts and / or features may have the same reference numerals. Additionally, various parts of the same type can be distinguished by adding a dash after the reference numerals and a second reference numeral to differentiate similar parts. If only the first reference numeral is used in the description, the description applies to any one of the similar parts having the same first reference numeral, regardless of the second reference numeral. Detailed Implementation
[0038] This disclosure generally relates to fluid delivery devices (e.g., insulin pumps) and methods for calibrating and operating fluid delivery devices. For illustrative and explanatory purposes, the various examples described herein relate to insulin delivery. However, the techniques disclosed herein can be used in fluid delivery systems for the automatic or semi-automatic delivery of other types of fluids (such as other types of medications) and are therefore not limited to insulin delivery using insulin pumps.
[0039] Diabetes is a disease of the patient's glucose regulation system, in which the body's naturally produced insulin may be insufficient to control glucose levels in the bloodstream due to inadequate insulin production and / or insulin resistance. Therefore, patients with diabetes may need to receive insulin from a pump or another delivery device (such as an injection or infusion device, e.g., a syringe or pen injector) to control glucose levels in their bloodstream. A typical treatment routine for patients with diabetes may generally include basal insulin and bolus insulin doses. Basal insulin (also known as background insulin) may consist of a continuous or constant release of small amounts of insulin to maintain a consistent blood glucose level over a long period. Bolus insulin may be administered, for example, before, during, or after meals, or at other times when blood glucose levels may rise rapidly. The insulin dose to be delivered may be determined based on, for example, a carbohydrate count of the meal and / or the patient's glucose levels as measured using a blood glucose monitor (such as a finger-prick blood glucose meter or a continuous glucose monitoring (CGM) sensor). Insulin doses may also be affected by measurements of, for example, the patient's physiological condition (e.g., temperature) and the patient's activity (e.g., exercise, food intake activity, etc.). Therefore, the infusion rate can be predetermined or can vary with the difference between the current measurement and the target measurement. In closed-loop or automatic operation mode, the dosage command can be generated based on the difference between the current (or most recent) measurement of interstitial fluid glucose level in the user's body and the target (or reference) glucose setpoint value, and can be generated automatically according to the delivery control scheme associated with the specific operation mode.
[0040] The delivered insulin (including basal and bolus insulin) is expected to maintain glucose levels in diabetic patients within a desired range. Managing a patient's glucose levels can be complicated by variations in individual physiological responses to insulin and different types of food, as well as other potential factors such as changes in the patient's daily activities (e.g., exercise). Therefore, insulin delivery to a patient may require precise control to occur at specific times and in specific amounts, determined based on, for example, the amount of carbohydrates the patient ingests and / or by real-time measurements of glucose levels (e.g., interstitial or blood glucose levels) from a glucose sensor (such as a CGM sensor).
[0041] Fluid delivery devices for automatically or semi-automatically delivering fluids to a patient may include a motor and / or other actuating device operable to linearly displace a plunger (or stopper) of a fluid reservoir disposed within the fluid delivery device to deliver a dose of fluid, such as insulin, to the patient's body. Fluid delivery devices (such as insulin pumps) may be worn by a user to deliver fluid (e.g., insulin) in a substantially continuous and autonomous manner, for example, overnight while the patient is asleep. The fluid reservoir may be disposable, replaceable, or refillable, while other parts of the fluid delivery device may be reusable. Different fluid reservoirs may have different friction between the plunger and the cylinder and may be filled with different volumes of fluid. The drive systems (such as motors and transmission components) in different fluid delivery devices may also have different performance characteristics. Therefore, when a new or refilled reservoir is placed into a fluid delivery device, it may be necessary to measure the volume of fluid in the reservoir and to calibrate the fluid delivery device to compensate for variations in the drive system and reservoir, such as determining the appropriate drive voltage level and / or drive signal duty cycle and corresponding delivery speed, in order to precisely control the amount of fluid delivered to the user. Furthermore, since many fluid delivery devices (such as insulin pumps) can be portable and wearable and are typically battery-powered, it may be desirable for fluid delivery devices (e.g., insulin pumps) to employ safe, reliable, accurate, power-efficient, and relatively simple and quick calibration and control schemes.
[0042] Insulin pumps utilize motors to control insulin delivery. To precisely control the dosage of insulin therapy and to conserve energy for longer battery life, the motor can be controlled to perform pulsatile operations relative to continuous motion. For example, some insulin pumps may utilize a set of motor stroke sizes (e.g., three different stroke sizes), where each stroke can be used to deliver a set amount of insulin. The amount of insulin in each delivery request can be divided into one or more strokes. In each stroke, the motor can be driven at a constant voltage for a specified amount of time, then allowed to coast to a stop. In some examples, the drive time for each stroke can be adjusted based on feedback from a motor position sensor to compensate for under- or over-delivery that may occur due to variations in fluid back pressure and friction in the drive system, for example. This drive technique can lead to energy inefficiency due to a combination of, for example, short motor on-time (which can result in high peak motor power) and long processor and sensor on-time for each stroke (e.g., to capture long coasting motions). Furthermore, this drive technique can lead to variations in insulin delivery (and thus errors) between strokes due to the indirect relationship between motor drive time and the amount of insulin delivered. In addition, additional force, strain, or pressure sensors (collectively referred to herein as strain sensors) may be required to detect back pressure generated by the fluid in the fluid reservoir in order to detect the initial plunger position (and the amount of insulin in the reservoir) and potential blockages during fluid delivery. Including additional strain sensors in fluid delivery devices can significantly increase design and control complexity, increase costs, and reduce the reliability of the infusion pump due to, for example, sensor fragility.
[0043] According to certain embodiments disclosed herein, the motor of a fluid delivery device can be controlled to perform pulsed motor operation, wherein the set of stroke sizes can include many (e.g., more than 10 or more than 20) different stroke sizes. Each stroke can include multiple steps, wherein the number of steps in a stroke can be selected from many different values depending on the maximum stroke size used by the fluid delivery device and the amount of fluid delivered using the stroke. Instead of controlling different delivery rates based on different motor drive durations, stepwise position control can be used to control the delivery rate more precisely. Active motor braking (instead of coasting) can also be used to improve the energy efficiency of the motor, position sensor, and controller. The motor and other components of the drive system of each fluid delivery device can be driven at a specific voltage level, which is calibrated for a specific stall load during production and further tuned for a specific reservoir during reservoir setup. These techniques allow for the use of motor speed (or rotation time and / or delivery rate) to perform plunger detection and blockage detection, which is measured using a motor position sensor also used for other purposes instead of using additional force, strain, or pressure sensors. Therefore, the drive technology disclosed herein can significantly reduce energy consumption, improve delivery accuracy, and enable the use of a motor position sensor instead of an additional strain sensor to detect plunger movement during reservoir setup and potential blockages during insulin delivery. Consequently, fluid delivery devices can have longer battery life, use smaller batteries, or utilize more energy for functions other than the drive motor. Improved inter-stroke accuracy leads to more predictable therapy. The ability to detect both plunger movement during reservoir setup and potential blockages during insulin delivery using a motor position sensor instead of an additional pressure sensor results in reduced mechanical design and control complexity, increased product reliability, and lower product costs.
[0044] Insulin pumps use insulin reservoirs or cartridges to store insulin for delivery. Some insulin pumps integrate the reservoir into the pump body and can therefore be discarded after the reservoir is emptied. However, many insulin pumps are reusable, where the insulin reservoir can be replaced (or refilled) by the user. This allows the reservoir to be replaced after the patient has used up all the insulin in the reservoir (e.g., within 3–7 days) or after the reservoir has been in the pump for an extended period, providing continuous insulin delivery and preventing insulin degradation or potential infection. Many other parts of the insulin pump, such as the housing, controller, motor, drivetrain components, user interface, and communication interface, can be reused to reduce overall cost over the long term.
[0045] Many different types of insulin reservoirs or cartridges can be used in insulin pumps. For example, some insulin pumps may use syringe-type reservoirs, which may include a hollow plastic cartridge with an open end, a diaphragm at the closed end, and a plunger (also called a stopper) with a rubber O-ring inside the cartridge. The plunger may be linearly actuated from the open end by the motor and drivetrain of the insulin pump, and the linear movement of the plunger may displace fluid from the reservoir to induce fluid delivery through a needle piercing the diaphragm (e.g., from an infusion set). The motor may be driven to rotate about an axis, and the drivetrain may convert the rotational motion of the motor into linear motion of the plunger, and may include, for example, a slider for actuating the plunger and a sleeve for linearly moving the slider.
[0046] Different users may use different total daily doses (TDD) of insulin and therefore may require different amounts of insulin within the same time period. Therefore, some reservoirs and fluid delivery devices allow patients to fill reservoirs to any volume that may suit them. Consequently, insulin pumps may need to be able to automatically determine the initial position of the plunger within the reservoir canister and the volume of insulin stored in each reservoir during reservoir setup. Some insulin pumps determine the reservoir filling volume and plunger position within the reservoir by driving the motor forward at high speed and using back pressure measured by a strain sensor. For example, back pressure may increase sharply when the slider reaches the plunger position and may be detected by the strain sensor to indicate plunger detection. As mentioned above, incorporating a strain sensor into the insulin pump can increase mechanical complexity because the entire drive system may need to "float" to allow the strain sensor to detect back pressure generated by the fluid due to pressure applied to the fluid by the slider through the plunger or back pressure caused by blockage. The presence of a strain sensor can also reduce the reliability of the insulin pump due to, for example, the fragility of the sensor and the inability to completely secure the drive system, potentially making the insulin pump more susceptible to damage from shocks and drops. Furthermore, strain sensors with sufficient accuracy and resolution for plunger and blockage detection can be expensive, and thus may significantly increase the cost of insulin pumps.
[0047] According to certain embodiments disclosed herein, plunger detection during reservoir setup can be performed using signals from a motor position sensor (e.g., a Hall effect sensor) that is also used to determine the delivery rate and / or speed of the fluid delivery motor, instead of using a separate strain sensor or other sensors. For example, during reservoir setup, the motor can be driven at a voltage level determined during a factory calibration procedure, and the motor rotational speed or rotational time can be determined using the motor position sensor. When no load is applied to the motor slide, a baseline coefficient of variation (CV) of the motor rotational time (or motor rotational speed) can be determined during the first few rotations of the motor. After establishing the baseline CV of the motor rotational time, subsequent motor speed or rotational time measurements can be filtered using a series of mathematical and statistical filters (e.g., a maximum value filter) to generate a moving coefficient of variation of the motor rotational time. The moving coefficient of variation can be compared to the baseline coefficient of variation to detect a plunger. For example, a plunger can be detected when the moving coefficient of variation exceeds a specified amount from the baseline CV. This allows plunger detection to be performed during reservoir setup without the need for a separate strain sensor or another type of sensor, thereby reducing design and control complexity, improving reliability, and lowering the overall cost of fluid delivery equipment.
[0048] In reusable insulin pumps using replaceable insulin reservoirs, friction between the plastic cylinder and the plunger (e.g., the O-ring on the plunger) can vary from reservoir to reservoir due to the mass production and low cost of the insulin reservoirs. Variations in friction can make it difficult to accurately and promptly determine whether back pressure is caused by reservoir friction or flow obstruction, and therefore may make it difficult to detect blockages quickly and accurately. Variations in friction can also cause variations in fluid delivery rate at the same motor drive voltage, which can affect the accuracy of the delivered insulin volume.
[0049] According to certain embodiments disclosed herein, variations in friction between the plunger (and O-ring) and the reservoir cylinder can be measured and compensated for during reservoir setup, allowing appropriate corresponding motor drive voltages and duty cycles to be used to drive a particular reservoir for a more constant or consistent delivery rate. This enables more accurate and timely detection of actual blockages based on variations in fluid delivery rate measured by a motor position sensor. In one example, during manufacturing calibration, a reference motor speed (or reference fluid delivery rate) under no-load and calibrated for known loads at motor drive voltage levels and motor drive duty cycles during the manufacturing calibration of each insulin pump can be measured and saved to the insulin pump. After the insulin reservoir is positioned in the insulin pump, the motor can be driven using a series of strokes (e.g., each stroke comprising multiple steps). The controller can obtain data from the motor position sensor to determine the motor speed (or rotation time) or fluid delivery rate during the multiple strokes and compare the measured motor speed or fluid delivery rate with the reference speed or fluid delivery rate. If the measured fluid delivery rate is lower than the reference fluid delivery rate, reservoir friction may cause a decrease in delivery rate, and the motor voltage can be increased to compensate for the decrease in delivery rate. This process can be repeated until the measured delivery rate is equal to or greater than the reference delivery rate. Reservoir friction measurement and compensation can be performed in short strokes while the tubing connecting the reservoir to the tubular system is flushed. The reservoir friction measurement and compensation technique disclosed herein allows the insulin pump to compensate for the unique friction presented by each insulin reservoir and allows for more accurate and timely blockage detection.
[0050] Fluid delivery devices, such as insulin pumps, may need to be able to detect flow obstruction caused by blockages in a timely manner during insulin delivery, as blockages prevent fluid from reaching the patient's subcutaneous tissue. Blockages can lead to complete interruption of insulin therapy and therefore pose a significant risk to diabetic patients, as they may experience hyperglycemia if insulin therapy is not resumed in time. Therefore, insulin pumps may need to be able to detect blockages within, for example, 5 units of missed insulin delivery to provide early notification to the patient. As mentioned above, some insulin pumps can use force, strain, or pressure sensors to detect back pressure generated by pumping insulin into a blocked infusion unit, thus inferring blockage based on measured changes in back pressure. Also as mentioned above, incorporating strain or pressure sensors into the insulin pump may increase mechanical complexity, as the entire drive system may need to be "floating" to allow strain sensors to detect back pressure generated by the fluid due to pressure applied to the fluid by the slider through the plunger, or back pressure caused by a blockage. The presence of strain sensors may reduce the reliability of the insulin pump due to, for example, sensor fragility and the inability to fully secure the drive system, potentially making the insulin pump more susceptible to damage from shocks and drops. Furthermore, strain sensors with sufficient accuracy and resolution for plunger and blockage detection can be significantly more expensive, and thus could significantly increase the cost of insulin pumps.
[0051] According to certain embodiments disclosed herein, blockages in a fluid delivery device can be detected based on the fluid delivery rate measured using a motor position sensor (e.g., a Hall effect sensor) combined with the calibration techniques disclosed herein. The calibration techniques can be used to compensate for variations in motor torque constants and drive system friction, which could otherwise cause significant variations in blockage detection sensitivity and prevent the achievement of specified performance targets. In one example, prior to the start of therapy, e.g., immediately after compensating for friction between the plunger and the reservoir cylinder to adjust the fluid delivery rate from the reservoir (e.g., by adjusting the motor drive voltage and / or duty cycle), the motor speed or fluid delivery rate during insulin delivery can be determined based on the motor position measured by the motor position sensor using the adjusted motor drive voltage and / or duty cycle. The measured motor speed or fluid delivery rate can be used to generate a coefficient of variation for the delivery rate, which can be used as a baseline coefficient of variation for blockage detection.
[0052] During fluid delivery, motor speed or fluid delivery rate can be continuously determined based on the motor position measured by a motor position sensor using an adjusted motor drive voltage and / or duty cycle. The measured motor speed or fluid delivery rate can be filtered through a series of mathematical and statistical filters to produce a moving coefficient of variation (VCS) of the delivery rate. The filters may include a minimum filter that reduces inter-stroke variations while allowing a consistent reduction in speed or delivery rate that would occur during a blockage to become apparent. The moving CVS can be compared to a baseline CVS for blockage detection. The comparison results can be scored against multiple thresholds, where different thresholds are used to identify the probability that an actual blockage has occurred.
[0053] For example, a blockage can be declared when the moving coefficient of variation exceeds the baseline coefficient of variation and continues to increase (e.g., the rate of change of the moving CV is greater than a first threshold) to a specified amount of delivery (e.g., a first threshold number of steps). In some examples, a pre-blockage threshold can be used to detect a pre-blockage condition when the moving coefficient of variation exceeds the baseline coefficient of variation and continues to increase at a lower rate (e.g., the rate of change of the moving CV is greater than a second threshold) to a specified amount of delivery (e.g., a second threshold number of steps). In some examples, after triggering a pre-blockage, the current rate of change of the moving CV can be compared to a previous rate of change of the moving CV, and a blockage can be detected if the current rate of change of the moving CV is greater than a threshold and the number of delivery steps during the pre-blockage period is greater than the threshold number. If the number of delivery steps during the pre-blockage period is not greater than the threshold number, no blockage may have occurred. In some examples, the pre-blockage threshold can automatically adapt to changing motor load conditions during insulin therapy. For example, if a pre-blockage condition is declared but not later declared due to subsequent steps exceeding the threshold number that do not meet the pre-blockage condition, the pre-blockage threshold can be increased.
[0054] In some examples, the blockage detection technique disclosed herein can use the operating temperature of the fluid delivery system as input to control the detection sensitivity (e.g., a threshold for comparison with the filtered delivery rate's moving coefficient of variation), thereby avoiding false blockage detections caused by the effect of temperature drops on the delivery rate. For example, if the operating temperature of the fluid delivery system drops more than the threshold value, the baseline coefficient of variation can be multiplied by a desensitization factor greater than one, and if the filtered delivery rate's moving coefficient of variation is less than the product of the baseline coefficient of variation and the desensitization factor, a blockage may not be detected.
[0055] The clogging detection technology disclosed herein does not use additional strain sensors or another type of sensor, thus significantly reducing the design and control complexity and cost of insulin pumps, and improving their reliability. The clogging detection technology disclosed herein can increase clogging detection sensitivity for faster and more accurate clogging detection, and also provides increased robustness against erroneous clogging detection by automatically adapting to changing motor load conditions during insulin therapy. Improved clogging detection performance can enhance user experience and clinical outcomes.
[0056] Insulin therapy using an insulin pump can include several delivery modes, such as bolus insulin delivery and basal insulin delivery. Bolus insulin can be delivered in larger doses near mealtimes or at any other time when the patient's glucose levels are significantly higher than the desired target. While typical bolus insulin is delivered rapidly and continuously in a series of consecutive strokes, basal insulin delivery and square-wave bolus insulin delivery can be scheduled as a series of strokes over longer time periods, such as 30 minutes or more. Insulin pumps using a limited set of stroke sizes may require complex scheduling protocols for basal delivery and may have higher delivery power consumption because most basal rates may require small strokes per minute or every few minutes to achieve. While the scheduling protocol may ultimately result in the correct amount of insulin being delivered, each particular basal rate may result in different series of strokes and time intervals between strokes, which can be difficult to predict.
[0057] According to certain embodiments disclosed herein, a series of rapid checks can be performed to determine how many delivery events need to be performed for each basal rate (including temporary basal rate) or square-wave bolus rate, and insulin delivery can be evenly distributed across the calculated number of delivery events. This scheduling scheme can produce a uniform and predictable series of basal deliveries and can also significantly reduce the number of deliveries performed for a given basal rate, allowing the delivery motor to operate more efficiently. Square-wave bolus deliveries can also be scheduled and delivered in a similar manner. In each delivery event, insulin can be delivered in one or more strokes, where the stroke size can be more flexible to accommodate different requested amounts. The size of each stroke can be selected to closely match the requested amount and also reduce the number of strokes, thereby reducing the power consumption used for delivery.
[0058] The aspects and embodiments of this disclosure can be practiced with one or more types of insulin (e.g., rapid-acting insulin, intermediate-acting insulin, and / or slow-acting insulin). Unless the context indicates otherwise, terms such as “dose,” “insulin,” “basal,” and “high dose” may not refer to a specific type of insulin. For example, rapid-acting insulin can be used for both basal and high doses. The term “basal” can refer to and include insulin delivered in an amount and frequency designed to correspond to the release of insulin by a healthy body between meals and during sleep. The term “high dose” can refer to and include insulin delivered in an amount and at regular intervals designed to correspond to the release of insulin by a healthy body to counteract high glucose levels, such as high glucose levels caused by meal consumption. Meals can include the consumption of food or beverages of any type or amount, including breakfast, lunch, dinner, snacks, and drinks, etc.
[0059] In the following description, specific details are set forth for purposes of explanation in order to provide a thorough understanding of the examples of this disclosure. However, it will be apparent that various examples may be practiced without these specific details. For example, devices, systems, structures, components, methods, and other parts may be shown as parts in the form of block diagrams to avoid obscuring the examples with unnecessary detail. In other instances, well-known devices, processes, systems, structures, operations, and techniques may be shown or may not be shown where unnecessary detail is required to avoid obscuring the examples. The figures and descriptions are not intended to be limiting. The terms and expressions used in this disclosure are used as descriptive terms rather than limiting terms, and the use of these terms and expressions is not intended to exclude any equivalents of the features shown and described or portions thereof. The word “example” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment or design described herein as an “example” is not necessarily to be construed as preferred or advantageous over other embodiments or designs.
[0060] Carbohydrates ingested from food are broken down into glucose (sugar) in the stomach and / or intestines, and absorbed into the bloodstream in the small and / or large intestines. The bloodstream carries glucose to the body's capillaries, some of which diffuse into the interstitial fluid between cells (e.g., fat or muscle cells), where glucose can be used as energy. The human endocrine system (working in conjunction with the nervous system) directs and regulates bodily functions and activities, and may secrete chemicals that send messages to tissues and organs. For example, endocrine glands or organs may release hormones into the bloodstream for delivery to target cells with receptors. In one example, insulin can be produced by the beta cells of the pancreas and can, for example, increase glucose uptake, enhance glucose utilization, stop hepatic glucose production, stimulate glycogen formation in the liver and skeletal muscle, promote protein synthesis, and increase fat storage.
[0061] Insulin acts as a key that unlocks cells and helps glucose move into them, where it can be used as energy. Without insulin, glucose may not be able to enter cells for energy and could accumulate in the interstitial fluid and bloodstream. A healthy pancreas continuously releases small amounts of normal human insulin throughout the day, including between meals and during sleep. This small amount of insulin matches the amount of glucose released by the liver. A healthy pancreas may also secrete larger amounts of insulin after food intake to match the amount of food consumed.
[0062] The liver may absorb excess glucose during digestion and convert it into glycogen for storage, so that glucose can be used when needed. For example, when blood sugar levels are low, the alpha cells of the pancreas may secrete glucagon. Glucagon may cause the liver to release stored glucose (glycogen) into the bloodstream to help increase glucose levels. The balance between insulin secreted by beta cells and glucagon secreted by alpha cells helps maintain normal blood sugar levels, such as within the range of approximately 80 mg / dL to 120 mg / dL before meals.
[0063] Due to insufficient insulin production and / or insulin resistance, the insulin naturally produced in a diabetic patient's body may be insufficient to control glucose levels in the bloodstream. Therefore, diabetic patients may need to receive insulin from a pump or another delivery device (such as an injection or infusion device) to control glucose levels in their bloodstream. To control glucose levels, a typical therapeutic routine for diabetic patients generally includes a basal insulin dose and a bolus insulin dose. The dose of insulin to be delivered can be determined based on, for example, a carbohydrate count after a meal and / or the patient's glucose levels as measured using a glucose monitor (such as a continuous glucose monitor (CGM)).
[0064] Figure 1An example of a glucose level management system 100 according to certain embodiments is shown. The glucose level management system 100 can be used to monitor and regulate the blood glucose level of a patient 101. In the example shown, the glucose level management system 100 may include a delivery device 102, a monitoring device 104, a computing device 106, and an optional remote / cloud computing system 108. The delivery device 102, monitoring device 104, and computing device 106 may be embodied in various ways, including being housed in one or more device housings. For example, in some embodiments, all devices 102 to 106 may be housed in a single device housing. In some embodiments, each device 102 to 106 may be housed in a separate device housing. In some embodiments, two or more devices 102 to 106 may be housed in the same device housing. In some embodiments, a single device 102, 104, or 106 may have two or more portions housed in two or more housings. For example, the monitoring device 104 may include a body portion and a display and control portion that communicates with the body portion via wired or wireless means. The delivery device 102 may include body parts (e.g., including a cannula) and portions including a reservoir, pump, and control unit. These and other embodiments and combinations thereof are contemplated within the scope of this disclosure.
[0065] The glucose level management system 100 may include multiple communication links, such as communication links 112 to 118. Each of communication links 112 to 118 may be a wired connection and / or a wireless connection. In embodiments where two devices are located in the same housing, the communication links may include, for example, wires, cables, and / or communication buses located on a printed circuit board. In embodiments where two devices are located in different housings and separated from each other, the communication links may be wired connections and / or wireless connections. Wired connections may include, for example, Ethernet connections, Universal Serial Bus (USB) connections, and / or another type of physical connection. Wireless connections may include, for example, cellular connections, Wi-Fi connections, etc. Connections, mesh network connections, and / or another type of connection using wireless communication protocols. Some implementations of communication links 112 to 118 may use direct connections such as... Connections, and / or connections that can be routed through one or more networks or network devices (not shown), such as Ethernet networks, Wi-Fi networks, cellular networks, satellite networks, intranets, extranets, the Internet and / or other types of networks. Various combinations of wired and / or wireless connections may be used for communication links 112 to 118.
[0066] Delivery device 102 may be configured to deliver a therapeutic substance to patient 101. The therapeutic substance may include, for example, insulin, HIV medication, medication for treating pulmonary hypertension, iron chelating agents, analgesics, anticancer drugs, pharmaceuticals, vitamins, hormones, nutritional supplements, dyes, tracer media, saline media, and hydration media. Delivery device 102 may be attached to patient 101 (e.g., attached to patient 101's body or clothing) or may be at least partially implanted in patient 101's body. In some embodiments, delivery device 102 may include a reservoir, an actuator, a delivery mechanism, and a cannula (not shown). The reservoir may be configured to store a quantity of therapeutic substance. In some embodiments, the reservoir may be refillable or replaceable. The actuator may be configured to drive the delivery mechanism. In some examples, the actuator may include a motor, such as an electric motor. The delivery mechanism may be configured to move the therapeutic substance from the reservoir through the cannula. In some examples, the delivery mechanism may include a pump and / or a plunger. The cannula facilitates a fluid connection between the reservoir and the patient's body 101. The cannula and / or needle facilitate the delivery of therapeutic substances to the patient's tissue layers, veins, interstitial fluid, or body cavities. During operation, an actuator may actuate the delivery mechanism in response to a signal (e.g., a command signal), thereby moving the therapeutic substance from the reservoir through the cannula and into the patient's body 101.
[0067] The components of the delivery device 102 described above are provided merely as examples. The delivery device 102 may include other components, such as, but not limited to, a power supply, a communication transceiver, one or more processors or other computing resources, a memory device, and / or a user interface (e.g., buttons, keys, a display, etc.). In some embodiments, the delivery device 102 may host an app (e.g., an insulin calculator) that calculates the desired amount of therapeutic substance to be delivered to the patient 101. Those skilled in the art will recognize various embodiments of the delivery device 102 and the components of such embodiments. All such embodiments and components are contemplated within the scope of this disclosure.
[0068] Monitoring device 104 may be configured to detect the physiological status of patient 101 (e.g., glucose concentration level) and may also be configured to detect other matters. Monitoring device 104 may be attached to the body of patient 101 (e.g., attached to the skin of patient 101 via adhesive) and / or may be at least partially implanted in the body of patient 101. Depending on a particular location or configuration, monitoring device 104 may be in contact with the biological material of patient 101 (e.g., interstitial fluid and / or blood). Monitoring device 104 may include one or more sensors (not shown), such as, but not limited to, electrochemical sensors, electrical sensors, and / or optical sensors. As those skilled in the art will understand, electrochemical sensors may be configured to respond to the interaction or binding of a biomarker with an electrode by generating an electrical signal based on, for example, potential, conductance, current, and / or impedance through an electrical path passing through an electrode. Electrodes may include materials selected to interact with a specific biomarker (such as glucose). Potential, current, conductance, and / or impedance may be correlated with the concentration of the specific biomarker.
[0069] In some implementations, when the sensor is inserted and exposed to glucose and oxygen diffused from the interstitial fluid, the glucose sensor generates a signal through a series of electrochemical reactions. In one example, the electrochemical sensor may include a glucose limiting membrane (GLM) that restricts the amount of glucose and oxygen delivered to the glucose oxidase (GOx) layer at the working electrode of the sensor to ensure that the reaction is glucose-limited. The GOx layer or another active enzyme layer on the working electrode of the sensor can decompose glucose and oxygen into gluconic acid and hydrogen peroxide. When a voltage signal is supplied to the working electrode, the generated peroxide molecules can interact with the working electrode to decompose hydrogen peroxide into two hydrogen ions, oxygen, and two electrons at the surface of the working electrode. Charge can be forced to move between the electrodes (e.g., between the working electrode and the counter electrode), thereby generating a sensor current signal (Isig) that can be measured by the sensor electronics. Other signals, such as the reverse voltage (Vcntr, the voltage potential difference between the counter electrode and the working electrode), electrochemical impedance spectroscopy (EIS) at different frequencies, etc., can also be measured. Signals measured using sensors (including Isig, Vcntr, and EIS) can be processed (e.g., filtered or transformed) to generate additional signals or parameters, such as filtered Isig signals, real impedance and virtual impedance at various frequencies, etc. These signals and / or processed parameters can be used in one or more sensor glucose (SG) models (e.g., machine learning models or mathematical models) to determine SG values, which can be estimates of a patient's blood glucose (BG) level.
[0070] In some embodiments, the monitoring device 104 may include other types of sensors that can be worn, carried, or coupled to the patient 101 to measure activities of the patient 101 that may affect the patient 101's glucose levels or glycemic response. For example, the sensor may include an accelerometer configured to detect acceleration of the patient 101 or a part of the patient 101 (such as a person's hand or foot), and changes in the position of the patient or that part of the patient may be correlated with the patient 101's activities. For example, acceleration or movement (or lack thereof) of a body part of the patient 101 may indicate the patient 101's exercise, sleep, or food / drink consumption activity, which may affect the patient 101's glycemic response. In some embodiments, the sensor may measure heart rate and / or body temperature, which may indicate the amount of physical exercise experienced by the patient 101. In some embodiments, the sensor may include a Global Positioning System (GPS) receiver that detects GPS signals to determine the location of the patient 101.
[0071] The sensors described above are provided merely as examples. Other sensors or other types of sensors for monitoring physiological conditions, activity, and / or location, etc., will be recognized by those skilled in the art and are conceived within the scope of this disclosure. For any sensor, the signal provided by the sensor may be referred to herein as a “sensor signal.” As used herein, the term “sensed data” may mean and include information represented by the sensor signal or by preprocessed sensor signals. In some embodiments, sensed data may include glucose levels in patient 101, acceleration of a portion of patient 101, heart rate of patient 101, temperature of patient 101, and / or geographic location of patient 101 (e.g., GPS location), etc. Monitoring device 104 may transmit sensed data to delivery device 102 via communication link 112 and / or to computing device 106 via communication link 114. The use of sensed data by delivery device 102 and / or computing device 106 is described in more detail below.
[0072] In some embodiments, monitoring device 104 may include components and / or circuitry configured to preprocess sensor signals. Preprocessing may include, for example, amplification, filtering, attenuation, scaling, isolation, normalization, transformation, sampling, and / or analog-to-digital conversion, etc. In some embodiments, monitoring device 104 may host an application for processing sensor signals. In some embodiments, monitoring device 104 may include a wired or wireless transceiver as described above for transmitting sensor signals or receiving commands or instructions. Those skilled in the art will recognize various specific implementations of such preprocessing, including, but not limited to, implementations using processors, controllers, integrated circuits, application-specific integrated circuits (ASICs), hardware, firmware, programmable logic devices, and / or machine-executable instructions, etc. The types of preprocessing and their specific implementations are provided merely as examples. Other types of preprocessing and specific implementations are contemplated within the scope of this disclosure. In some embodiments, monitoring device 104 may not perform preprocessing.
[0073] The computing device 106 can provide processing power and can be implemented in various ways. In some embodiments, the computing device 106 can be a consumer device (such as a smartphone, a computerized wearable device (e.g., a smartwatch), a tablet computer, a laptop computer, or a desktop computer, etc.) or a dedicated device (e.g., a portable control device) provided by, for example, the manufacturer of the delivery device 102. In some embodiments, the computing device 106 can be processing circuitry that can be integrated with another device (such as the delivery device 102). In some embodiments, the computing device 106 can be attached to the patient 101 (e.g., attached to the patient 101's body or clothing), can be at least partially implanted in the patient 101's body, and / or can be held in place by the patient 101.
[0074] For each embodiment of the computing device 106, the computing device 106 may include various types of logic circuitry, including but not limited to microprocessors, controllers, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), central processing units (CPUs), graphics processing units (GPUs), programmable logic devices, memories (e.g., random access memory, volatile memory, non-volatile memory, etc.) or other discrete or integrated logic circuitry, and combinations of such components. The term "processing circuitry" may generally refer to any of the aforementioned logic circuitry, alone or in combination with other logic circuitry, or any other circuitry used to perform computations.
[0075] Some aspects of delivery device 102, monitoring device 104, and computing device 106 have been described above. One or more of devices 102 to 106 may include a user interface (not shown) for presenting information to and / or receiving information from patient 101. The user interface may include a graphical user interface (GUI), a display device, a keyboard, a touchscreen, a speaker, a microphone, a vibration motor, buttons, switches, and / or other types of user interfaces. Those skilled in the art will recognize the various types of user interfaces that may be used, and all such user interfaces are conceivable within the scope of this disclosure. For example, in the case where computing device 106 is a consumer device (such as a smartphone, tablet computer, or laptop computer), the user interface would include a display device, a physical and / or virtual keyboard, and / or audio speakers, etc., provided by such a consumer device. In some embodiments, the user interface may notify patient 101 of sensed data (e.g., glucose levels) and / or insulin delivery data (e.g., historical, current, or future insulin delivery rates) and may present warnings to patient 101. In some embodiments, the user interface may receive input from patient 101, which may include, for example, requested changes to insulin delivery settings and / or meal instructions, etc. The above description and implementation of the user interface are provided by way of example only, and other types and uses of the user interface are conceivable within the scope of this disclosure.
[0076] In a specific example, communication and collaboration between devices 102 and 106 can be used for insulin delivery. For example... Figure 1As depicted and as described above, devices 102 to 106 can communicate with each other via communication links 112 to 116. In some embodiments, computing device 106 can control the operation of delivery device 102 and / or monitoring device 104. For example, computing device 106 can generate one or more signals (e.g., command signals) that cause delivery device 102 to deliver insulin to patient 101, for example, at a basal dose and / or a bolus dose. In some embodiments, computing device 106 can receive data associated with insulin delivery (e.g., insulin delivery data) from delivery device 102 and / or sensed data (e.g., glucose levels) from monitoring device 104, and can perform calculations based on insulin delivery data, sensed data, and / or other data to control delivery device 102. Insulin delivery data may include, but is not limited to, the type of insulin delivered, historical insulin delivery rates and / or amounts, current insulin delivery rates and / or amounts, insulin delivery time, and / or user input affecting insulin delivery. As those skilled in the art will understand, in closed-loop operation mode, computing device 106 can transmit a dosing command to delivery device 102 based on, for example (received from monitoring device 104), the difference between the current glucose level in the patient 101's body and (for example, a target glucose level determined by computing device 106 or set on delivery device 102). The dosing command may indicate the amount of insulin to be delivered and / or the insulin delivery rate (or time), and may adjust the current glucose level toward the target glucose level.
[0077] The remote / cloud computing system 108 can be any proprietary remote / cloud computing system or commercial cloud computing system including one or more server computing devices. When the computing resources of a client computing device (e.g., computing device 106) are insufficient, the remote / cloud computing system 108 can provide alternative or additional computing resources as needed. Computing device 106 and the remote / cloud computing system 108 can communicate with each other via a communication link 118, which traverses one or more communication networks (not shown). Communication networks may include, for example, networks of the type such as Ethernet networks, Wi-Fi networks, cellular networks, satellite networks, intranets, extranets, the Internet, and / or Internet backbones. Those skilled in the art will recognize specific implementations of the remote / cloud computing system 108 and how to interact with such a system via various types of networks. For example, the remote / cloud computing system 108 may include a processing circuit array and be capable of executing machine-readable instructions. Such specific implementations, interfaces, and networks are contemplated within the scope of this disclosure.
[0078] In some embodiments, the remote / cloud computing system 108 may make a treatment determination (e.g., insulin dosage or adjusted insulin dosage) and may transmit the treatment to the delivery device 102 via computing device 106. In some embodiments, computing device 106 may make a treatment determination and transmit that determination to delivery device 102. In some embodiments, monitoring device 104 may make a treatment determination and transmit that determination directly or through an intermediary such as computing device 106 to delivery device 102.
[0079] Figure 2 This is a block diagram of an example of a glucose level management system 200 according to certain embodiments. In the example shown, the glucose level management system 200 may include a glucose sensor subsystem 210, a controller 220, an insulin delivery subsystem 230, a glucose delivery subsystem 240, and a glucagon delivery subsystem 250. The glucose sensor subsystem 210 may generate sensor glucose (SG) signals (e.g., SG levels) (these sensor glucose (SG) signals may be estimates of blood glucose levels in body 260) and may provide the SG signals to the controller 220. The controller 220 may receive the SG signals and generate commands to the insulin delivery subsystem 230, and in some embodiments, generate commands to the glucose delivery subsystem 240 and / or the glucagon delivery subsystem 250. The insulin delivery subsystem 230 may receive commands from the controller 220 and deliver insulin to body 260 according to the commands. In some embodiments, the glucose delivery subsystem 240 may receive commands from the controller 220 and provide glucose to body 260 according to the commands. In some implementations, the glucagon delivery subsystem 250 may receive a command from the controller 220 and deliver glucagon to the body 260 according to the command.
[0080] In some implementations, the glucose sensor subsystem 210 may include a glucose sensor, sensor electronics configured to generate an SG signal, a sensor communication system configured to transmit the SG signal to a controller 220, and a housing for the sensor electronics and the sensor communication system. The glucose sensor can measure blood glucose levels, for example, directly from the bloodstream, or indirectly via interstitial fluid using a subcutaneous sensor, as described in more detail below.
[0081] Controller 220 may include electrical components and software for generating commands to insulin delivery subsystem 230, glucose delivery subsystem 240, and / or glucagon delivery subsystem 250. Controller 220 may include a controller communication system for receiving sensor signals and providing commands to insulin delivery subsystem 230, glucose delivery subsystem 240, and / or glucagon delivery subsystem 250. In some embodiments, controller 220 may implement a glucose calculator. In some embodiments, controller 220 may include a user interface and / or operator interface (not shown), which includes data input devices and / or data output devices. Such data output devices may, for example, generate signals to initiate alarms and / or include a display or printer for displaying the status of controller 220 and / or the patient's vital signs. Such data input devices may include dials, buttons, pointing devices, manual switches, alphanumeric keys, touch-sensitive displays, and / or combinations thereof for receiving user input and / or operator input. For example, such data input devices may be used to schedule and / or initiate large-dose insulin injections for meals. However, it should be understood that these are merely examples of input and output devices that may be part of the operator interface and / or user interface, and the subject matter for which protection is sought is not limited in these respects.
[0082] Insulin delivery subsystem 230 may include, for example, an infusion device and / or infusion tubing for infusing insulin into body 260. Similarly, glucose delivery subsystem 240 may include, for example, an infusion device and / or infusion tubing for infusing glucose into body 260. Similarly, glucagon delivery subsystem 250 may include, for example, an infusion device and / or infusion tubing for infusing glucagon into body 260. In some embodiments, a shared delivery system and / or infusion tubing may be used to infuse insulin, glucagon, and / or glucose into body 260. In some embodiments, an intravenous system for providing fluids to a patient (e.g., in a hospital or other medical setting) may be used to infuse insulin, glucagon, and / or glucose. However, it should be understood that some exemplary embodiments may include insulin delivery subsystem 230 without glucagon delivery subsystem 250 and / or without glucose delivery subsystem 240. In some implementations, each of the insulin delivery subsystem 230, glucose delivery subsystem 240, and glucagon delivery subsystem 250 may include: infusion electrical components for activating an infusion motor in response to a command from controller 220; an infusion communication system for receiving commands from controller 220; and a delivery subsystem housing.
[0083] In some embodiments, controller 220 may be housed within a delivery subsystem housing, and the delivery communication system may include electrical traces or wires carrying commands from controller 220 to the delivery subsystem. In some embodiments, controller 220 may be housed within a sensor system housing, and the sensor communication system may include electrical traces or wires carrying sensor signals from sensor electrical components to controller electrical components. In some embodiments, controller 220 may have its own housing or may be included in auxiliary equipment. In some embodiments, controller 220 may share a single housing with the delivery subsystem and sensor system. In some embodiments, the sensor, controller, and / or delivery communication system may utilize cables, wires, fiber optic cables, RF, IR, or ultrasonic transmitters and receivers, combinations thereof, and / or the like instead of electrical traces, to name just a few.
[0084] In some implementations, the glucose level management system 200 may further include a dietary intake monitoring subsystem 215. The dietary intake monitoring subsystem 215 may be used to record or automatically detect a user's food intake. For example, in some implementations, the user may input the food items consumed and / or an estimated amount of carbohydrates in the meal. In some implementations, the dietary intake monitoring subsystem 215 may include sensors (e.g., a camera or accelerometer) that automatically detect meal events, the food items consumed, and / or an estimated amount of carbohydrates in the meal. The estimated amount of carbohydrates in the meal may be sent to a controller 220, which may determine the appropriate amount of the bolus and generate a command for the insulin delivery subsystem 230 to deliver the bolus. In some implementations, the dietary intake monitoring subsystem 215 may not be used in the glucose level management system 200 and may determine the bolus dose based on measured glucose levels.
[0085] Figure 3 An example of a fluid delivery device 300 is depicted, which can implement the aforementioned delivery device (e.g., delivery device 102 or insulin delivery subsystem 230). In an insulin delivery device implemented using fluid delivery device 300, insulin delivery can be performed based on internal communication between a central computing module (e.g., a microprocessor of fluid delivery device 300) and an insulin delivery module (e.g., including a microcontroller, motor, and pump). For example, insulin delivery can be initiated by the central computing module transmitting a delivery command in the form of an electrical signal traveling to the insulin delivery module via a communication structure. The central computing module can also be configured (e.g., via a transceiver) to be communicatively coupled to a remote or cloud computing system (e.g., Figure 1 The computing devices of the remote / cloud computing system 108 (e.g., Figure 1The fluid delivery device 300 communicates with a computing device 106. According to the techniques described herein, the fluid delivery device 300 can transmit various event data to a remote or cloud computing system, which can transmit insulin delivery determination results to the fluid delivery device 300.
[0086] The fluid delivery device 300 can deliver insulin via a tubing 310 configured for fluid connection to a subcutaneously inserted cannula. The fluid delivery device 300 can be configured to deliver two types of doses: a basal dose, which can be delivered in small amounts periodically (e.g., every five minutes) throughout the day and night; and a large dose to cover and / or correct hyperglycemia caused by meals. In the depicted example, the fluid delivery device 300 includes a user interface with button elements 320 operable to administer large doses of insulin, change therapy settings, change user preferences, and select display features, etc. The fluid delivery device 300 may also include a display device 330 for presenting various types of information or data to the user. According to various aspects of this disclosure, a user of the fluid delivery device 300 can use the button elements 320 to input certain event data (e.g., event type, event start time, event details, etc.) and can use the display device 330 to confirm the user input. Figure 3 The fluid delivery device 300 is provided by way of example only, and other types of insulin delivery devices and other technologies different from those described above are considered to be within the scope of this disclosure.
[0087] Figure 4 and Figure 5 Examples of fluid delivery devices 400 (e.g., infusion pumps) suitable for infusion systems are shown, such as delivery device 102 or insulin delivery subsystem 230. Fluid delivery device 400 can be an example of a specific implementation of fluid delivery device 300. For example, Figure 4 It can be based on certain implementation schemes. Figure 3 An exploded perspective view of an example of a fluid transport device 300. Figure 5 It can be Figure 4 A cross-sectional view of a fluid delivery device, wherein a reservoir is inserted into the fluid delivery device. The fluid delivery device 400 may be a portable medical device designed to be carried or worn by a patient (or user) and may utilize any number of conventional features, components, elements, and characteristics of existing fluid infusion devices, such as some of the features, components, elements, and / or characteristics described in U.S. Patent Nos. 5,485,465 and 7,621,893. It should be understood that... Figures 4 to 5Some aspects of the fluid delivery device 400 are shown in a simplified manner; in practice, the fluid delivery device 400 may include additional elements, features, or components not shown or described in detail herein.
[0088] like Figures 4 to 5 As shown, the fluid delivery device 400 may include a housing 402 adapted to receive a reservoir 405 containing fluid. An opening 420 in the housing 402 accommodates a fitting 423 (or cap) for the reservoir 405, wherein the fitting 423 is configured to mate with or otherwise interface with a conduit 421 of an infusion device 425 that provides a fluid path to / from the user's body. In this way, fluid communication is established from the interior of the reservoir 405 to the user via the conduit 421. The fluid delivery device 400 shown includes a human-machine interface (HMI) 430 (or user interface) that includes elements 432, 434 that can be manipulated by the user to administer large doses of fluid (e.g., insulin), change therapy settings, change user preferences, select display features, input and / or confirm BG measurements, etc. The infusion device also includes a display element 426 such as a liquid crystal display (LCD) or another suitable display element, which can be used to present various types of information or data to the user, such as, but not limited to: the patient's current glucose level; time; a graph or chart of the patient's glucose level relative to time; device status indicators, etc.
[0089] The housing 402 is formed of a substantially rigid material having a hollow interior 414 adapted to accommodate, in addition to the reservoir 405, an electronic component 404, a sliding member (or slider) 406, a drive system 408, a sensor assembly 410, and a drive system cover member 412, wherein the contents of the housing 402 are surrounded by the housing cover member 416. The opening 420, the slider 406, and the drive system 408 are coaxially aligned in the axial direction 418, whereby the drive system 408 facilitates linear displacement of the slider 406 in the axial direction 418 to dispense fluid from the reservoir 405 (after the reservoir 405 has been inserted into the opening 420). The sensor assembly 410 is configured to measure the axial force (e.g., a force aligned with the axial direction 418) applied to the sensor assembly 410 in response to operation of the drive system 408 to displace the slider 406. In various implementations, sensor assembly 410 may be used to detect one or more of the following: mitigating, preventing, or otherwise reducing blockages in the fluid path of fluid delivery from reservoir 405 to the user's body; when reservoir 405 is emptied; when slider 406 is properly positioned with reservoir 405; when a fluid dose has been delivered; when fluid delivery device 400 is subjected to shock or vibration; and when fluid delivery device 400 requires maintenance.
[0090] According to the implementation scheme, the fluid-containing reservoir 405 can be implemented as a syringe, vial, cartridge, bag, etc. In some implementation schemes, the infused fluid is insulin, although many other fluids can be administered by infusion, such as, but not limited to, HIV drugs, drugs for treating pulmonary hypertension, iron chelating agents, analgesics, anticancer drugs, medications, vitamins, hormones, etc. Figures 4 to 5 As shown, reservoir 405 typically includes a reservoir tank 419 containing fluid and being concentrically and / or coaxially aligned (e.g., in the axial direction 418) with a slide 406 when the reservoir 405 is inserted into the fluid delivery device 400. The end of reservoir 405 near opening 420 may include a fitting 423 or otherwise engage with this fitting, which secures reservoir 405 within housing 402 and prevents displacement of reservoir 405 relative to housing 402 in the axial direction 418 after insertion into housing 402. As described above, fitting 423 extends from (or through) opening 420 of housing 402 and engages with conduit 421 to establish fluid communication from the interior of reservoir 405 (e.g., reservoir tank 419) to the user via conduit 421 and infuser 425. The opposite end of the reservoir 405 near the slider 406 includes a plunger 417 (or plug) positioned to push fluid along a fluid path through conduit 421 from the interior of the reservoir 405's container 419 to the user. The slider 406 is configured to be mechanically coupled or otherwise engaged with the plunger 417, thereby becoming disposed together with the plunger 417 and / or the reservoir 405. When the drive system 408 is operated to displace the slider 406 in the axial direction 418 toward the opening 420 in the housing 402, fluid is forced out of the reservoir 405 through conduit 421.
[0091] exist Figures 4 to 5In the illustrated embodiment, drive system 408 includes motor assembly 407 and drive screw 409. Motor assembly 407 includes a motor coupled to a transmission component of drive system 408 configured to convert rotary motor motion into translational displacement of slider 406 in the axial direction 418, thereby engaging and displacing plunger 417 of reservoir 405 in the axial direction 418. In some embodiments, motor assembly 407 may also be powered to translate slider 406 in the opposite direction (e.g., opposite to the axial direction 418) to retract from and / or remove from reservoir 405 to allow replacement of reservoir 405. In an exemplary embodiment, motor assembly 407 includes a brushless DC (BLDC) motor having one or more permanent magnets mounted, attached, or otherwise disposed on its rotor. However, the subject matter described herein is not limited to use with BLDC motors, and in alternative embodiments, the motor can be implemented as a solenoid motor, AC motor, stepper motor, piezoelectric track drive, shape memory actuator drive, electrochemical gas battery, thermally driven gas battery, bimetallic actuator, etc. Drive system components may include one or more lead screws, cams, pawls, jacks, pulleys, control rods, clamps, gears, nuts, sliders, bearings, levers, beams, stops, plungers, sliders, brackets, guide rails, bearings, supports, bellows, covers, diaphragms, bags, heaters, etc. In this respect, although the illustrated embodiment of the infusion pump uses a coaxially aligned drive system, the motor may be offset relative to the longitudinal axis of the reservoir 405 or arranged in other non-coaxial manner.
[0092] like Figure 5 As shown, the drive screw 409 engages with a thread 502 inside the slider 406. When the motor assembly 407 is powered and operated, the drive screw 409 rotates, forcing the slider 406 to translate in the axial direction 418. In an exemplary embodiment, the fluid delivery device 400 includes a sleeve 411 to prevent the slider 406 from rotating as the drive screw 409 of the drive system 408 rotates. Thus, rotation of the drive screw 409 causes the slider 406 to extend or retract relative to the drive motor assembly 407. When the fluid delivery device is assembled and operational, the slider 406 contacts the plunger 417 to engage the reservoir 405 and control the delivery of fluid from the fluid delivery device 400. In an exemplary embodiment, the shoulder portion 415 of the slider 406 contacts or otherwise engages the plunger 417 to displace the plunger 417 in the axial direction 418. In an alternative embodiment, the slider 406 may include a threaded tip 413 capable of removably engaging with an internal thread 504 on the plunger 417 of the reservoir 405, as described in detail in U.S. Patent Nos. 5,248,093 and 5,485,465, which are incorporated herein by reference.
[0093] like Figure 4 As shown, the electronics assembly 404 includes control electronics 424 coupled to the display element 426, wherein the housing 402 includes a transparent window portion 428 aligned with the display element 426 to allow the display element 426 to be viewed by a user when the electronics assembly 404 is disposed within the interior 414 of the housing 402. Control electronics 424 generally refers to hardware, firmware, processing logic, and / or software (or combinations thereof) configured to control the operation of the motor assembly 407 and / or drive system 408, as described below. Figure 4 The background describes this in more detail. Control electronics 424 is also suitably configured and designed to support various user interfaces, input / output, and display features of the fluid delivery device 400. Whether this functionality is implemented as hardware, firmware, a state machine, or software depends on the specific application and design constraints imposed on the implementation. Concepts similar to those described herein can be adapted to each specific application to implement such functionality, but such specific implementation decisions should not be construed as limiting or restrictive. In an exemplary embodiment, control electronics 424 includes one or more programmable controllers that can be programmed to control the operation of the fluid delivery device 400.
[0094] Motor assembly 407 includes one or more electrical leads 436 adapted to be electrically coupled to electronics assembly 404 to establish communication between control electronics 424 and motor assembly 407. In response to a command signal from control electronics 424 to regulate the amount of power supplied to the motor from a power source, the motor actuates drive components of drive system 408 to displace slider 406 in an axial direction 418, forcing fluid out of reservoir 405 along a fluid path (including conduit 421 and infuser), thereby applying a predetermined dose of fluid contained in reservoir 405 to the user's body. The power source may include one or more batteries contained within housing 402. Alternatively, the power source may be a solar panel, capacitor, AC or DC power supplied via a power line, etc. In some embodiments, control electronics 424 may operate motor assembly 407 and / or the motor of drive system 408 in a stepwise manner, typically on an intermittent basis; administering separate, precise doses of fluid to the user according to a programmed delivery profile.
[0095] refer to Figures 4 to 5As described above, the user interface 430 includes HMI elements such as buttons 432 and directional keys 434 formed on a graphical keypad cover 431 covering the keypad assembly 433. The keypad assembly includes features corresponding to the buttons 432, directional keys 434, or other user interface entries indicated by the graphical keypad cover 431. When assembled, the keypad assembly 433 is coupled to control electronics 424, thereby allowing the HMI elements 432, 434 to be manipulated by the user to interact with the control electronics 424 and control the operation of the fluid delivery device 400, such as administering large doses of insulin, changing therapy settings, changing user preferences, selecting display functions, setting or disabling alarms and alerts, etc. In this regard, the control electronics 424 maintains and / or provides information to the display element 426 regarding program parameters, delivery distribution, pump operation, alarms, warnings, status, etc., which can be adjusted using the HMI elements 432, 434. In various embodiments, HMI elements 432, 434 may be implemented as physical objects (e.g., buttons, knobs, joysticks, etc.) or virtual objects (e.g., using touch sensing and / or proximity sensing technologies). For example, in some embodiments, display element 426 may be implemented as a touchscreen or touch-sensitive display, and in such embodiments, the features and / or functionality of HMI elements 432, 434 may be integrated into display element 426, and user interface 430 may not be present. In some embodiments, electronic component 404 may also include an alarm generation element coupled to control electronics 424 and suitably configured to generate one or more types of feedback, such as, but not limited to, auditory feedback, visual feedback, tactile (physical) feedback, etc.
[0096] refer to Figures 4 to 5According to one or more embodiments, the sensor assembly 410 includes a backplate structure 450 and a loading element 460. The loading element 460 is disposed between a cover member 412 and a beam structure 470 comprising one or more beams having sensing elements disposed thereon affected by compressive forces applied to the sensor assembly 410 to deflect one or more beams, as described in more detail in U.S. Patent No. 8,474,332, which is incorporated herein by reference. In an exemplary embodiment, the backplate structure 450 is attached, adhered, mounted, or otherwise mechanically coupled to the bottom surface 438 of the drive system 408 such that the backplate structure 450 resides between the bottom surface 438 of the drive system 408 and the housing cover member 416. The profile of the drive system cover member 412 is shaped to adapt to and match the bottom of the sensor assembly 410 and the drive system 408. The drive system cover member 412 may be attached to the interior of the housing 402 to prevent the sensor assembly 410 from displacing in a direction opposite to the force provided by the drive system 408 (e.g., opposite to the axial direction 418). Therefore, the sensor assembly 410 is positioned between the motor assemblies 407 and secured by the cover member 412, which prevents the sensor assembly 410 from displacing in a downward direction opposite to the direction of the arrow representing the axial direction 418, such that the sensor assembly 410 is subjected to a reaction compressive force when the drive system 408 and / or the motor assembly 407 are operated to displace the slider 406 in the axial direction 418 opposite to the fluid pressure in the reservoir 405. Under normal operating conditions, the compressive force applied to the sensor assembly 410 is related to the fluid pressure in the reservoir 405. As shown, electrical lead 440 is adapted to electrically couple the sensing element of sensor assembly 410 to electronics assembly 404 to establish communication with control electronics 424, wherein control electronics 424 is configured to measure, receive, or otherwise acquire electrical signals from the sensing element of sensor assembly 410 indicating the force applied by drive system 408 in axial direction 418.
[0097] Figure 6This is a block diagram of an example infusion system 600 suitable for use with infusion device 602 (such as delivery device 102, insulin delivery subsystem 230, fluid delivery device 300, or fluid delivery device 400). Infusion system 600 is capable of controlling or otherwise regulating the physiological state in a patient's body 601 to a desired (or target) value, or otherwise maintaining the state within acceptable ranges in an automatic or autonomous manner. In one or more exemplary embodiments, the regulated state is sensed, detected, measured, or otherwise quantified by a sensing device 604 (e.g., BG or CGM sensing device 604) communicatively coupled to infusion device 602. However, it should be noted that in alternative embodiments, the state regulated by infusion system 600 may be correlated with measurements obtained by sensing device 604. That is, for clarity and illustrative purposes, this subject matter is described herein in the context of sensing device 604 being implemented as a glucose sensing device that senses, detects, measures, or otherwise quantifies a patient's glucose level regulated by infusion system 600 in patient's body 601.
[0098] In an exemplary embodiment, sensing device 604 includes one or more interstitial glucose sensing elements that generate or otherwise output an electrical signal (hereinafter alternatively referred to as a measurement signal) having signal characteristics that are related to, influenced by, or otherwise indicate the relative interstitial fluid glucose level in the patient's body 601. The output electrical signal is filtered or otherwise processed to obtain a measurement indicating the patient's interstitial fluid glucose level. In an exemplary embodiment, a BG measuring instrument 630, such as a finger-prick device, is used to directly sense, detect, measure, or otherwise quantify BG in the patient's body 601. In this regard, the BG measuring instrument 630 outputs or otherwise provides a measured BG value that can be used as a reference measurement result to calibrate sensing device 604 and convert the measurement indicating the patient's interstitial fluid glucose level into a corresponding calibrated BG value. For illustrative purposes, the calibrated BG value calculated herein based on the electrical signal output by one or more sensing elements of sensing device 604 may alternatively be referred to as a sensor glucose value, a sensed glucose value, or a variation thereof.
[0099] In an exemplary embodiment, the infusion system 600 further includes one or more additional sensing devices 606, 608 configured to sense, detect, measure, or otherwise quantify characteristics of the patient's body 601 that indicate a condition within the patient's body 601. In this regard, in addition to the glucose sensing device 604, one or more auxiliary sensing devices 606 may be worn, carried, or otherwise associated with the patient's body 601 to measure patient (or patient activity) characteristics or conditions that may affect the patient's blood glucose levels or insulin sensitivity. For example, a heart rate sensing device 606 may be worn on or otherwise associated with the patient's body 601 to sense, detect, measure, or otherwise quantify the patient's heart rate, which in turn may indicate movement (and its intensity) that may affect the patient's glucose levels or insulin response in the body 601. In yet another embodiment, another invasive, interstitial, or subcutaneous sensing device 606 may be inserted into the patient's body 601 to obtain measurements of another physiological condition that may indicate movement (and its intensity), such as a lactate sensor, a ketone sensor, etc. According to this embodiment, one or more auxiliary sensing devices 606 may be implemented as stand-alone components worn by the patient, or alternatively, one or more auxiliary sensing devices 606 may be integrated with infusion device 602 or glucose sensing device 604.
[0100] The infusion system 600 shown also includes an acceleration sensing device 608 (or accelerometer) that can be worn on or otherwise associated with the patient's body 601 to sense, detect, measure, or otherwise quantify the acceleration of the patient's body 601, thereby indicating movement or other conditions of the body 601 that may affect the patient's insulin response. While the acceleration sensing device 608 is... Figure 6 While depicted as being integrated into infusion device 602, in alternative embodiments, acceleration sensing device 608 may be integrated with another sensing device 604, 606 on the patient's body 601, or acceleration sensing device 608 may be implemented as a separate, independent component worn by the patient.
[0101] In the illustrated embodiment, pump control system 620 generally refers to the electronics and other components of infusion device 602 that control the operation of infusion device 602 in a manner influenced by sensed glucose values indicative of the current glucose level in the patient's body 601, according to a desired infusion delivery sequence. For example, to support a closed-loop operating mode, pump control system 620 maintains, receives, or otherwise acquires a target or commanded glucose value and automatically generates or otherwise determines a dose command for operating an actuator (such as motor 632) to displace plunger 617 and deliver insulin to the patient's body 601 based on the difference between the sensed glucose value and the target glucose value. In other operating modes, pump control system 620 may generate or otherwise determine a dose command configured to maintain the sensed glucose value below an upper glucose limit, above a lower glucose limit, or other values within a desired glucose range. In practice, infusion device 602 may store or otherwise maintain target values, upper and / or lower glucose limits, insulin delivery limits, and / or other glucose thresholds in data storage elements accessible to pump control system 620. As described in more detail, in one or more exemplary embodiments, the pump control system 620 automatically adjusts or adapts one or more parameters or other control information used to generate commands for operating the motor 632 in a manner that takes into account possible changes in the patient’s glucose level or insulin response caused by eating, exercise or other activities.
[0102] Still referencing Figure 6 The target glucose value and other threshold glucose values utilized by the pump control system 620 can be received from external components or input by the patient through a user interface element 640 associated with the infusion device 602. In practice, one or more user interface elements 640 associated with the infusion device 602 typically include at least one input user interface element, such as a button, keypad, keyboard, knob, joystick, mouse, touch panel, touchscreen, microphone, or other audio input device. Additionally, one or more user interface elements 640 include at least one output user interface element for providing notifications or other information to the patient, such as a display element (e.g., a light-emitting diode), a display device (e.g., a liquid crystal display), a speaker or other audio output device, a haptic feedback device, etc. It should be noted that although... Figure 6One or more user interface elements 640 are shown as separate from the infusion device 602, but in practice, one or more user interface elements 640 may be integrated with the infusion device 602. Furthermore, in some embodiments, one or more user interface elements 640 are integrated with a sensing device 604, in addition to and / or as a substitute for integration with the infusion device 602. The patient can manipulate one or more user interface elements 640 as needed to operate the infusion device 602 to deliver corrective high doses, adjust target values and / or thresholds, modify delivery control schemes or operating modes, etc.
[0103] Still referencing Figure 6 In the illustrated embodiment, the infusion device 602 includes a motor control module 612 coupled to a motor 632 (e.g., motor assembly 407), operable to displace a plunger 617 (e.g., plunger 417) within a reservoir (e.g., reservoir 405) and deliver a desired amount of fluid to the patient's body 601. In this respect, the displacement of plunger 617 results in the delivery of a fluid capable of influencing the patient's physiological state (e.g., insulin) to the patient's body 601 via a fluid delivery path (e.g., via conduit 421 of infusion unit 425). A motor driver module 614 is coupled between the power source 618 and the motor 632. The motor control module 612 is coupled to the motor driver module 614, and the motor control module 612 generates or otherwise provides a command signal that operates the motor driver module 614 to provide current (or power) from the energy source 618 to the motor 632 to displace the plunger 617 in response to a dosage command received from the pump control system 620 indicating the desired amount of fluid to be delivered.
[0104] In an exemplary embodiment, the energy source 618 is implemented as a battery housed within the infusion device 602 (e.g., within the housing 402) that provides direct current (DC) power. In this regard, the motor driver module 614 generally represents a combination of circuitry, hardware, and / or other electrical components configured to convert or otherwise transform the DC power provided by the energy source 618 into an alternating current signal applied to the stator windings of the motor 632, causing current to flow through the stator windings at appropriate phases, generating a stator magnetic field and rotating the rotor of the motor 632. The motor control module 612 is configured to receive or otherwise acquire a command dose from the pump control system 620, convert the command dose into a command translational displacement of the plunger 617, and command, signal, or otherwise operate the motor driver module 614 to rotate the rotor of the motor 632 to produce a certain amount of the command translational displacement of the plunger 617. For example, the motor control module 612 may determine the amount of rotor rotation required to produce the translational displacement of the plunger 617 to achieve the command dose received from the pump control system 620. Based on the rotor's current rotational positioning (or orientation) relative to the stator, indicated by the output of the rotor sensing device 616, the motor control module 612 determines the appropriate sequence of alternating current signals of the corresponding phases to be applied to the stator windings to cause the rotor to rotate a determined amount of rotation from its current positioning (or orientation). In an embodiment where the motor 632 is implemented as a BLDC motor, this alternating current signal causes the phases of the stator windings to commutate at the appropriate orientation of the rotor poles relative to the stator and in the appropriate order to provide a rotating stator magnetic field that rotates the rotor in the desired direction. The motor control module 612 then operates the motor driver module 614 to apply the determined alternating current signal (e.g., a command signal) to the stator windings of the motor 632 to achieve the desired fluid delivery to the patient.
[0105] When the motor control module 612 is operating the motor driver module 614, current flows from the energy source 618 through the stator windings of the motor 632 to generate a stator magnetic field that interacts with the rotor magnetic field. In some embodiments, after the motor control module 612 operates the motor driver module 614 and / or the motor 632 to deliver a commanded dose, the motor control module 612 stops operating the motor driver module 614 and / or the motor 632 until a subsequent dose command is received. In this respect, the motor driver module 614 and the motor 632 enter an idle state, during which the motor driver module 614 effectively disconnects or disconnects the stator windings of the motor 632 from the energy source 618. In other words, when the motor 632 is idle, current does not flow from the energy source 618 through the stator windings of the motor 632, and therefore the motor 632 does not consume power from the energy source 618 in the idle state, thereby improving efficiency.
[0106] According to the implementation scheme, the motor control module 612 can be implemented or realized using a general-purpose processor, microprocessor, controller, microcontroller, state machine, content-addressable memory, application-specific integrated circuit, field-programmable gate array, any suitable programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. In an exemplary implementation scheme, the motor control module 612 includes or otherwise accesses data storage elements or memories, including any kind of random access memory (RAM), read-only memory (ROM), flash memory, registers, hard disk, removable disk, magnetic or optical mass storage, or any other short-term or long-term storage medium or other non-transitory computer-readable medium capable of storing programming instructions that can be executed by the motor control module 612. When read and executed by the motor control module 612, the computer-executable programming instructions cause the motor control module 612 to perform or otherwise support the tasks, operations, functions, and processes described herein.
[0107] It should be understood that, for the purpose of explanation, Figure 6 This is a simplified representation of infusion device 602 and is not intended to limit the subject matter described herein in any way. In this regard, depending on the embodiment, some features and / or functions of sensing device 604 may be implemented by or otherwise integrated into pump control system 620, or vice versa. Similarly, in practice, features and / or functions of motor control module 612 may be implemented by or otherwise integrated into pump control system 620, or vice versa. Furthermore, features and / or functions of pump control system 620 may be implemented by control electronics 424 located in infusion device 602, while in alternative embodiments, pump control system 620 may be implemented by a remote computing device that is physically different from and / or separate from infusion device 602.
[0108] The delivered insulin (including basal and bolus insulin) is expected to maintain glucose levels in diabetic patients within a desired range. Managing a patient's glucose levels can be complicated by variations in individual physiological responses to insulin and different types of food, as well as other potential factors such as changes in the patient's daily activities (e.g., exercise). Therefore, insulin delivery to a patient may require precise control to occur at specific times and in specific amounts, determined based on, for example, the amount of carbohydrates the patient ingests and / or by real-time measurements of glucose levels (e.g., interstitial or blood glucose levels) from a glucose sensor (such as a CGM sensor).
[0109] As described above, fluid delivery devices for automatically or semi-automatically delivering fluids to a patient may include a motor and / or other actuating devices operable to linearly displace a plunger (or stopper) of a fluid reservoir disposed within the fluid delivery device to deliver a dose of fluid, such as insulin, to the patient's body. Fluid delivery devices (such as insulin pumps) may be worn by a user to deliver fluid (e.g., insulin) in a substantially continuous and autonomous manner, for example, overnight while the patient is asleep. The fluid reservoir may be disposable, replaceable, or refillable, while other parts of the fluid delivery device may be reusable. Different fluid reservoirs may have different friction between the plunger and the cylinder and may be filled with different volumes of fluid. The drive systems (such as motors and transmission components) in different fluid delivery devices may also have different performance characteristics. Therefore, when a new or refilled reservoir is placed into a fluid delivery device, it may be necessary to measure the volume of fluid in the reservoir and to calibrate the fluid delivery device to compensate for variations in the drive system and reservoir, such as determining the appropriate drive voltage level and / or drive signal duty cycle and corresponding delivery speed, in order to precisely control the amount of fluid delivered to the user. Furthermore, since many fluid delivery devices (such as insulin pumps) can be portable and wearable and are typically battery-powered, it may be desirable for fluid delivery devices (e.g., insulin pumps) to employ safe, reliable, accurate, power-efficient, and relatively simple and quick calibration and control schemes.
[0110] Insulin pumps utilize motors to control insulin delivery. To precisely control the dosage of insulin therapy and to conserve energy for longer battery life, the motor can be controlled to perform pulsatile operations relative to continuous motion. For example, some insulin pumps may utilize a set of motor stroke sizes (e.g., three different stroke sizes), where each stroke can be used to deliver a set amount of insulin. The amount of insulin in each delivery request can be divided into one or more strokes. In each stroke, the motor can be driven at a constant voltage for a specified amount of time, then allowed to coast to a stop. In some examples, the drive time for each stroke can be adjusted based on feedback from a motor position sensor to compensate for under- or over-delivery that may occur due to variations in fluid back pressure and friction in the drive system, for example. This drive technique can lead to energy inefficiency due to a combination of, for example, short motor on-time (which can result in high peak motor power) and long processor and sensor on-time for each stroke (e.g., to capture long coasting motions). Furthermore, this drive technique can lead to variations in insulin delivery (and thus errors) between strokes due to the indirect relationship between motor drive time and the amount of insulin delivered. In addition, additional force, strain, or pressure sensors (collectively referred to herein as strain sensors) may be required to detect back pressure generated by the fluid in the fluid reservoir in order to detect the initial plunger position (and the amount of insulin in the reservoir) and potential blockages during fluid delivery. Including additional strain sensors in fluid delivery devices can significantly increase design and control complexity, increase costs, and reduce the reliability of the infusion pump due to, for example, sensor fragility.
[0111] According to certain embodiments disclosed herein, the motor of a fluid delivery device can be controlled to perform pulsating motor operation, wherein the set of stroke sizes can include many (e.g., more than 10, more than 20, or more than 30) different stroke sizes, depending on the maximum stroke size used. In one example, each stroke can have at least 4 steps, and can have multiple steps between 4 and 32 or more. The number of strokes and the number of steps in each stroke can be determined based on the total units of fluid to be delivered in each delivery event (e.g., each insulin delivery request). Instead of controlling the delivery volume based on the duration of motor drive, stepwise position control can be used to control the delivery volume more precisely. For example, changes in motor position can be detected by a motor position sensor (e.g., a Hall effect sensor), the time interval between the motor rotating from one position to the next can be measured and used to determine the delivery rate (e.g., in units per minute), and the number of steps the motor has rotated can be used to determine the amount of fluid delivered (e.g., in units). Active motor braking (instead of coasting) can also be used to improve the energy efficiency of the motor, position sensor, and controller. For example, after each stroke, the motor windings can be grounded to stop the motor's rotation.
[0112] Each motor and drive system can be driven at a specific voltage level, which is calibrated during production for a specific stall load. During reservoir setup, friction between the cylinder and plunger (e.g., O-rings on the plunger) of each reservoir can be measured and calibrated, allowing the motor to be driven at the appropriate voltage level and duty cycle to achieve the desired delivery rate. These drive techniques allow for plunger detection and blockage detection to be performed using motor speed (or rotation time and / or delivery rate), which is measured using a motor position sensor also used for other purposes, rather than using additional force, strain, or pressure sensors (such as sensor assembly 410).
[0113] Therefore, the fluid delivery device disclosed herein does not require a pressure sensor, and the drive technology disclosed herein can significantly reduce energy consumption, improve delivery accuracy, and enable the use of a motor position sensor instead of an additional strain sensor to detect plunger movement during reservoir setup and potential blockages during insulin delivery. Consequently, the fluid delivery device can have longer battery life, use smaller batteries, or use more energy for functions other than driving the motor. Improved inter-stroke accuracy leads to more predictable therapy. The ability to detect both plunger movement during reservoir setup and potential blockages during insulin delivery using a motor position sensor instead of an additional pressure sensor results in reduced mechanical design and control complexity, increased product reliability, and lower product costs.
[0114] Figure 7This includes a flowchart 700 illustrating an example of a process for calibrating and operating a fluid delivery device according to certain embodiments. The operations in flowchart 700 can be performed by a controller or processor, such as delivery device 102, insulin delivery subsystem 230, fluid delivery device 300, fluid delivery device 400 (without sensor assembly 510), infusion device 602, etc. Although flowchart 700 may describe the operations as a sequential process, some of these operations may be performed in parallel or concurrently. Furthermore, the order of operations can be rearranged. The process may have additional steps not included in the figure. Some operations may be optional or can be omitted. Some operations may be combined with operations in another box, or may be performed alternatively in another box.
[0115] Flowchart 700 may include manufacturing calibration at block 710, reservoir setup at block 720, and fluid (e.g., insulin) delivery at block 730. During manufacturing calibration at block 710, the test system can apply a known load to the motors and other components of the drive system of an assembled fluid delivery device that may not have a reservoir installed. The motor drive voltage and motor drive duty cycle of the pulse width modulation (PWM) signal used to drive the motor can be varied to maintain a specific delivery rate. The motor drive voltage and motor drive duty cycle that generate the target stall load can be stored as manufacturing motor voltage (MMV) and manufacturing duty cycle (MDC), respectively (e.g., stored in the non-volatile memory of the fluid delivery device or in a database on a server or another computing device). The target stall load can be greater than the back pressure during blockage, for example, greater than about 2.5 psi to 3.5 psi, such as about 4.25 psi. To calibrate the fluid delivery device more accurately, the load and motor drive voltage can be gradually increased until the load reaches the target stall load. Manufacturing Delivery Rate (MDR) can also be measured when the motor is driven by MMV and MDC and no load is applied to the drive system. The Manufacturing Delivery Rate (MDR) can also be stored in the non-volatile memory of the fluid transport device for, for example, reservoir settings (e.g., reservoir friction compensation). The following section discusses, for example... Figure 8 Describe more details about manufacturing calibration.
[0116] During reservoir setup at box 720, after the reservoir has been placed into the chamber or cavity of the fluid delivery device, the motor can be driven at a steady-state speed (rather than in a stroke manner) using the MMV and MDC measured during manufacturing calibration, without any additional load applied to the drive system. While the motor is driven at a steady-state speed, the time of each rotation of the motor (referred to herein as motor rotation time) can be measured using a motor position sensor (e.g., a Hall effect sensor). At box 722, the coefficient of variation of the motor rotation time (or motor speed or delivery rate) can be determined during the first number of rotations and can be used as a baseline coefficient of variation of the motor rotation time to determine the plunger position (and insulin volume) in the reservoir at box 724. The following relates to, for example... Figure 9 More details about the operation in description box 722.
[0117] At box 724, the plunger position can be determined by continuing to drive the motor at a steady-state speed using MMV and MDC without applying additional load, and measuring the motor's rotation time to determine the shift coefficient of variation (FCV) of the motor's rotation time. If the FCV of the motor's rotation time relative to the baseline FCV of the motor's rotation time is above a threshold, the plunger may have been detected. If the FCV of the motor's rotation time relative to the baseline FCV of the motor's rotation time is below a threshold, the plunger may not have been detected, and the motor can continue to be driven at a steady-state speed. The motor's rotation time can be measured for multiple rotations to determine the FCV of the motor's rotation time until the measured FCV of the motor's rotation time relative to the baseline FCV of the motor's rotation time is above a threshold. After determining the plunger position, the volume of fluid in the reservoir can be determined, for example, based on the total number of forward steps the motor has rotated from its initial position. The following section discusses, for example... Figure 10 More details about the operation in description box 724.
[0118] At box 726, after determining the plunger position, the friction between the plunger (or R-ring) and the reservoir cylinder can be determined, and variations in friction can be compensated for by adjusting the motor drive voltage and / or motor drive duty cycle of the PWD signal used to drive the motor. In one example, the motor can be driven with strokes of varying sizes using a PWM signal having MMV and MDC. The instantaneous delivery rate in each stroke can be measured, and the average delivery rate over a first number of strokes can be determined and used as the pre-compensated delivery rate. The motor can continue to be driven in a stroke-based manner, the instantaneous delivery rate in each stroke can continue to be measured, and the average delivery rate over a certain number of strokes can continue to be determined and used as the current delivery rate. If the current delivery rate is equal to or greater than a threshold (e.g., a manufacturing delivery rate measured and stored in the fluid delivery device during manufacturing calibration), the current motor drive voltage and motor drive duty cycle can be used as the calibrated motor drive voltage and motor drive duty cycle for the combination of the fluid delivery device and the specific reservoir. If the current conveying rate is below the threshold, the current motor drive voltage and / or motor drive duty cycle can be adjusted (e.g., increased), and the conveying rate can be measured over a number of strokes as described above until the average conveying rate is equal to or greater than the threshold. The following section discusses, for example... Figure 11 More details about the operation in description box 726.
[0119] At box 728, the coefficient of variation of the delivery rate of the fluid conveying device can be determined during the subsequent multiple strokes. The coefficient of variation of the delivery rate can be saved and used as a baseline coefficient of variation of the delivery rate of the fluid conveying device for blockage detection during fluid delivery. The baseline coefficient of variation of the delivery rate can be determined by driving the motor at various stroke sizes using calibrated motor drive voltage and / or motor drive duty cycle, measuring the delivery rate in each stroke, calculating the average and standard deviation of the delivery rate across multiple strokes, and determining the coefficient of variation based on the average and standard deviation. As mentioned above, the delivery rate can be determined, for example, by detecting changes in the motor's position using a position sensor (e.g., a Hall sensor) and measuring the time taken for the motor to move from one position to another in one step. The following section discusses, for example... Figure 12 More details about the operation in description box 728.
[0120] The operations in boxes 722 to 728 can be performed each time the reservoir is inserted into the fluid delivery device, and can also be performed while flushing the tubing of the infusion set. After calibrating the fluid delivery device and the reservoir, at box 730, the fluid delivery device with the installed reservoir can be used to deliver fluid to the user according to a calibrated motor drive voltage and / or motor drive duty cycle. For example, the motor can be driven with strokes of various step lengths to deliver fluid (e.g., insulin). During fluid delivery, the instantaneous delivery rate can be continuously measured as described above to determine the moving coefficient of variation of the delivery rate, and any blockages that may have occurred can be detected based on changes in the moving coefficient of variation of the delivery rate.
[0121] To deliver a certain amount of fluid over a period of time at box 730, the fluid delivery scheduler can determine parameters at box 732 based on the fluid delivery request, such as the number of delivery events, the delivery volume and number of strokes in each delivery event, the time interval between strokes, and the size of each stroke (e.g., number of steps). Then, at box 734, a motor can be controlled based on the fluid delivery schedule determined at box 732 to deliver fluid in one or more events and deliver one or more strokes in each event. For example, a calibrated motor drive voltage and / or motor drive duty cycle can be used to drive the motor in one or more strokes of various stroke sizes to deliver the requested amount of fluid (e.g., insulin) at the scheduled rate. Fluid delivery may include, for example, basal insulin delivery, regular high-dose delivery, square-wave high-dose delivery, or closed-loop insulin delivery. During fluid delivery, the delivery rate can be continuously measured as described above. The following describes, for example... Figures 13 to 18 More details about the operations in description boxes 732 and 734.
[0122] At box 736, the delivery rate measured during fluid delivery can be used to detect potential blockages in the fluid delivery process. For example, the measured delivery rate can be filtered to retain information about a decrease in delivery rate, and the filtered delivery rate can be used to determine the shift coefficient of variation of the delivery rate during each moving window of the fluid delivery stroke. The change in the shift coefficient of variation of the delivery rate relative to the baseline coefficient of variation of the delivery rate, determined at box 728, can be used to determine whether a blockage has occurred. More details of the operation in box 736 are described below with reference to, for example, Figure 19.
[0123] I. Manufacturing Calibration
[0124] In mass production, due to technological changes, the parameters of manufactured components of fluid transport equipment (such as motors, sliders, sleeves, and other parts of the drive system) may vary from component to component. While variations in some parameters of some components may have a negligible impact on pump function and performance, variations in some parameters of some components and / or components can significantly affect the performance of the fluid transport equipment, such as the accuracy of fluid delivery, the sensitivity and accuracy of plunger detection and blockage detection, etc. For example, since motor rotation time or motor speed (and therefore delivery rate) is used for both reservoir settings (e.g., plunger detection) and blockage detection, it may be desirable to know the relationship between the stall load of the transport system and the motor drive voltage of each fluid transport unit, so that the motor in each fluid transport unit can be driven at the appropriate voltage to determine the motor speed / rotation time and fluid delivery rate. The stall load of the transport system can refer to the load applied axially to the slider that causes the motor to stall. For the same motor drive voltage, the stall load may differ between pumps due to variations in, for example, motor torque constant, gearbox friction, and the efficiency of the fit between the sliding thread and the motor screw. These changes may lead to variations in the sensitivity and accuracy of blockage detection, causing some devices to fail to detect blockages in a timely manner (e.g., missing 5 units of fluid due to blockage). Therefore, it may be desirable to calibrate the relationship between the stall load of the delivery system and the motor drive voltage for each fluid delivery device, which can be performed at the factory before the device is provided to the end user.
[0125] Drive system calibration may have several objectives, including determining and storing the motor drive voltage (called manufacturing motor voltage (MMV)) and motor duty cycle (called manufacturing duty cycle (MDC)) used to generate a target stall load (e.g., approximately 4.25 psi) on each individual pump. The target stall load can be determined as a balance between the expectation of avoiding motor stall during clogging (e.g., where back pressure can be between approximately 2.5 psi and 3.5 psi) and the need to maintain a high level of sensitivity to changes in motor load. If the target stall load is set to a value significantly higher than the load at plunger detection or at the time of clogging, the reduction in motor speed due to plunger detection or clogging may be undetectable within the maximum permissible amount of missed deliveries. Another objective of drive system calibration is to measure the resulting no-load delivery rate (called manufacturing delivery rate (MDR)) when the motor is driven with a determined motor drive voltage MMV and a determined motor duty cycle MDC, while no load is applied to the drive system. The manufacturing delivery rate (MDR) can be used as a reference to compensate for changes in motor speed due to variations in friction between the plunger and the cylinder of the user-installed reservoir.
[0126] Figure 8This includes a flowchart 800 illustrating an example of a manufacturing calibration process for a fluid delivery device according to certain embodiments. Flowchart 800 may be an example of an implementation of the operations in block 710. The operations in flowchart 800 can be performed using, for example, a production tester. In flowchart 800, the motor drive voltage and motor drive duty cycle used to generate the target stall load can be measured at multiple locations. The average or median of the measurements at multiple locations can be used as the manufacturing motor voltage (MMV) and manufacturing duty cycle (MDC). The delivery rate when driving the motor with MMV and MDC without applied load is then measured and used as the manufacturing delivery rate (MDR). Although flowchart 800 may describe the operations as a sequential process, some of these operations may be performed in parallel or concurrently. Furthermore, the order of operations can be rearranged. The process may have additional steps not included in the figure. Some operations may be optional or can be omitted. Some operations may be combined with operations in another block, or may be performed alternatively in another block.
[0127] In the example shown, the operation in flowchart 800 may include setting the slider of the drive system of the fluid delivery device (without a reservoir) to an initial position (e.g., zero total forward drive steps) at block 810. At block 820, the motor may be driven up to the first step with an initial (e.g., default) voltage level and duty cycle to move the slider to a certain position. The motor may be driven in a stroke manner, where each stroke may include multiple steps. At block 830, the motor drive voltage and motor drive duty cycle used to generate the target stall load at that position may be measured by, for example, applying a target load to the slider, increasing the motor drive voltage to achieve a threshold delivery rate, and then gradually decreasing the motor drive voltage and / or motor duty cycle until the motor stalls. The motor drive voltage and motor drive duty cycle at the start of motor stall may be stored. The motor may then be driven up to the second step to move the slider to another position, and the motor drive voltage and motor drive duty cycle used to generate the target stall load at that position may be measured as described above with respect to block 830. The operations at boxes 820 and 830 can be performed multiple times at multiple locations.
[0128] At box 840, the differences between measured motor drive voltages at multiple locations can be determined. If the maximum difference is greater than a threshold, calibration may fail. If the maximum difference is equal to or less than the threshold, the median or average of the measured motor drive voltages can be determined at box 850. At box 860, if the median or average of the measured motor drive voltages is higher than the threshold voltage level, then at box 870, the median or average of the measured motor drive voltages can be stored as the manufacturing motor voltage. The median or average of the measured motor drive duty cycles can also be saved as the manufacturing duty cycle. If the median or average of the measured motor drive voltages is lower than the threshold voltage level, then at box 865, a default manufacturing motor voltage (e.g., the threshold voltage level) can be used as the manufacturing motor voltage. MMV and MDC can be stored in the non-volatile memory of the fluid delivery device and / or can be saved to a database on a server.
[0129] After determining the MMV and MDC for generating the target stall load for the fluid transport device, the motor can be driven with the MMV and MDC without load applied to the slider, and the manufacturing delivery rate (MDR) can be determined at block 880 based on, for example, the time interval for the motor to move from one step position to the next step position or the time for the motor to complete one revolution. The MDR can also be stored in the non-volatile memory of the fluid transport device and / or can be saved to a database on a server. The MDR can be used for, for example, memory compensation as described in detail below.
[0130] II. Storage device setup
[0131] Insulin pumps typically use insulin reservoirs or cartridges to store the insulin to be delivered. Some insulin pumps integrate the reservoir into the pump body and can therefore be discarded after the reservoir is emptied. However, many insulin pumps are reusable, where the insulin reservoir can be replaced (or refilled) by the user. This allows the reservoir to be replaced after the patient has used up all the insulin in the reservoir (e.g., within 3–7 days) or after the reservoir has been in the pump for an extended period, providing continuous insulin delivery and preventing insulin degradation or potential infection. Many other parts of the insulin pump, such as the housing, controller, motor, drivetrain components, user interface, and communication interface, can be reused to reduce overall cost over the long term.
[0132] Many different types of insulin reservoirs or cartridges can be used in insulin pumps. For example, as mentioned above... Figures 5 to 7Some insulin pumps may use a syringe-type reservoir, which may include a hollow plastic tube with an open end, a diaphragm at a closed end, and a plunger (also called a stopper) with a rubber O-ring inside the tube. The plunger may be linearly actuated from the open end by a motor and drivetrain of the insulin pump, and the linear movement of the plunger may displace fluid from the reservoir to induce fluid delivery through a needle piercing the diaphragm (e.g., from an infusion set). The motor may be driven to rotate about an axis, and the drivetrain may convert the rotational motion of the motor into linear motion of the plunger, and may include, for example, a slider for actuating the plunger and a sleeve for linearly moving the slider.
[0133] Different users may use different total daily doses (TDD) of insulin and therefore may require different amounts of insulin within the same time period. Therefore, some reservoirs and fluid delivery devices allow patients to fill reservoirs to any volume that may suit them. Consequently, insulin pumps may need to be able to automatically determine the initial position of the plunger within the reservoir canister and the volume of insulin stored in each reservoir during reservoir setup. Some insulin pumps determine the reservoir filling volume and plunger position within the reservoir by driving the motor forward at high speed and using back pressure measured by a strain sensor. For example, back pressure may increase sharply when the slider reaches the plunger position and may be detected by the strain sensor to indicate plunger detection. As mentioned above, incorporating a strain sensor into the insulin pump can increase mechanical complexity because the entire drive system may need to "float" to allow the strain sensor to detect back pressure generated by the fluid due to pressure applied to the fluid by the slider through the plunger or back pressure caused by blockage. The presence of a strain sensor can also reduce the reliability of the insulin pump due to, for example, the fragility of the sensor and the inability to completely secure the drive system, potentially making the insulin pump more susceptible to damage from shocks and drops. Furthermore, strain sensors with sufficient accuracy and resolution for plunger and blockage detection can be expensive, and thus may significantly increase the cost of insulin pumps.
[0134] According to certain embodiments disclosed herein, plunger detection during reservoir setup can be performed using signals from a motor position sensor (e.g., a Hall effect sensor) that is also used to determine the delivery rate and / or speed of the fluid delivery motor, instead of using a separate strain sensor or other sensors. For example, during reservoir setup, the motor can be driven at a voltage level determined during a factory calibration procedure, and the motor rotational speed or rotational time can be determined using the motor position sensor. When no load is applied to the motor slide, a baseline coefficient of variation (CV) of the motor rotational time (or motor rotational speed) can be determined during the first few rotations of the motor. After establishing the baseline CV of the motor rotational time, subsequent motor speed or rotational time measurements can be filtered using a series of mathematical and statistical filters (e.g., a maximum value filter) to generate a moving coefficient of variation of the motor rotational time. The moving coefficient of variation can be compared to the baseline coefficient of variation to detect a plunger. For example, a plunger can be detected when the moving coefficient of variation exceeds a specified amount from the baseline CV. This allows plunger detection to be performed during reservoir setup without the need for a separate strain sensor or another type of sensor, thereby reducing design and control complexity, improving reliability, and lowering the overall cost of fluid delivery equipment.
[0135] Figure 9 This includes a flowchart 900 illustrating an example of a process for determining the baseline coefficient of variation of motor rotation time in a fluid delivery system without applied load, according to certain embodiments. Flowchart 900 may be an example of an implementation of the operations in block 722. The operations in flowchart 900 can be performed using, for example, a controller or processor of delivery device 102, insulin delivery subsystem 230, fluid delivery device 300, fluid delivery device 400 (without sensor assembly 510), infusion device 602, etc. Although flowchart 900 may describe the operations as a sequential process, some of these operations may be performed in parallel or concurrently. Furthermore, the order of operations may be rearranged. The process may have additional steps not included in the figure. Some operations may be optional or may be omitted. Some operations may be combined with operations in another block, or may be performed alternatively in another block.
[0136] The operations in flowchart 900 may include: after the reservoir is loaded into the fluid delivery device, at block 910, using the manufacturing motor voltage and manufacturing duty cycle determined and stored during manufacturing calibration to stably (rather than in a stroke manner) drive the motor continuously, without applying any additional load to the slider and motor. While the motor is continuously driven, a motor position sensor (e.g., a Hall sensor that provides different output values when the motor is in different positions during a full rotation) may be checked to ensure that the motor position sensor is functioning correctly, such as providing the correct output value and being able to detect changes in motor position. For example, if the output value of the motor position sensor does not change after driving the motor to rotate one step, the motor position sensor may not be functioning correctly, or the motor may not be functioning correctly or may stall. The motor may also be checked to ensure that the motor drive voltage is at the programmed level and the motor drive current is below a threshold. If any of these checks of the motor position sensor and the motor check fail (once or a threshold number), the reservoir setup process may be terminated. The total number of forward drive steps may also be checked against a threshold that corresponds to an empty reservoir. If the total number of forward drive steps exceeds a threshold before the memory setup process is complete, the memory may be drained, and the memory setup process may be terminated. In some implementations, an alarm may be generated if any check fails.
[0137] After the motor has been controlled to rotate stably for a certain number of steps (e.g., a threshold number of steps to skip), the motor rotation time (MRT) can be continuously measured at box 920. For example, the time interval between any two consecutive steps can be measured, or the time taken for the motor to rotate a certain number of steps can be measured. In one example, the motor can be designed to rotate a full circle in 6 steps, and the total time for the motor to rotate 6 steps can be measured or determined and used to calculate the motor rotation time. In some examples, for example, a timer for time measurement can be triggered when the motor position sensor outputs a new value indicating a new position for the motor, and the timer can be stopped when the motor position sensor outputs another value indicating that the motor has reached the next position, so that the timer value corresponds to the time taken for the motor to move from one position to the next.
[0138] At box 930, the measured MRT for each rotation can be saved to a buffer. Motor rotation time can be measured for a specific number of rotations and saved to the buffer until the buffer is determined to be full at box 935. If the buffer is not full, a new MRT can be measured while stabilizing the drive motor, and the new MRT can be saved to the buffer. If the buffer is full, at box 940, the coefficient of variation of the motor rotation time values saved in the buffer can be determined using the motor rotation time values saved in the buffer. The coefficient of variation of the motor rotation time values can be determined by determining the mean and standard deviation of the motor rotation time values, and by defining the coefficient of variation as the value equal to the standard deviation divided by the mean.
[0139] At box 942, if the total number of forward drive steps is less than a threshold number of steps, a baseline coefficient of variation (CV) for the motor rotation time can be determined at box 950 based on the CV of the motor rotation time determined at box 940. For example, the baseline CV of the motor rotation time can be the product of a factor of the motor rotation time determined at box 940 and the CV. In some examples, if the baseline CV of the motor rotation time is less than a threshold, the baseline CV of the motor rotation time can be set to the threshold. If the total number of forward drive steps is greater than the threshold number of steps, the CV of the motor rotation time determined at box 940 can be used to determine whether a plunger of the reservoir has been detected.
[0140] Figure 10 Flowchart 1000 includes an example of a process for detecting a plunger in a reservoir in a fluid delivery system according to certain embodiments. Flowchart 1000 may be an example of an implementation of the operations in block 724. The operations in flowchart 1000 can be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without sensor assembly 510), an infusion device 602, etc. Although flowchart 1000 may describe the operations as a sequential process, some of these operations may be performed in parallel or concurrently. Furthermore, the order of operations may be rearranged. The process may have additional steps not included in the figure. Some operations may be optional or may be omitted.
[0141] The operations in flowchart 1000 may include: after determining the baseline coefficient of variation of the motor rotation time (e.g., as described above regarding...). Figure 9As described in flowchart 900, at block 1010, the motor is continuously driven stably (rather than in a stroke manner) using the manufacturing motor voltage and manufacturing duty cycle determined and stored during manufacturing calibration, without any additional load applied to the motor and slider. While the motor is continuously driven, motor position sensors (e.g., Hall effect sensors) can be checked to ensure they are functioning correctly, such as providing the correct output value and being able to detect changes in motor position. For example, if the output value of the motor position sensor does not change after driving the motor to rotate one step, the motor position sensor may not be functioning correctly, or the motor may not be functioning correctly or may stall. The motor can also be checked to ensure the motor drive voltage is at the programmed level and the motor drive current is below a threshold. If any of these motor position sensor and motor checks fail (once or a threshold number), the memory setup process can be terminated. The total number of forward drive steps can also be checked continuously against a threshold that may correspond to an empty memory. If the current total number of forward drive steps is greater than the threshold before the memory setup process is complete, the memory may be emptied, and the memory setup process can be terminated. In some embodiments, an alarm can be generated if any check fails.
[0142] While controlling the stable rotation of the motor, the motor rotation time (MRT) can be continuously measured at box 1020. For example, the time interval between any two consecutive steps can be measured, or the time taken for the motor to rotate a certain number of steps can be measured. In one example, the motor can be designed to rotate a full revolution in 6 steps, and the total time for the motor to rotate 6 steps can be measured or determined and used to calculate the motor rotation time. In some examples, for example, when the motor position sensor outputs a new value indicating a new position of the motor, or when the output value of the motor position sensor has cycled through values at different positions, indicating that the motor has rotated a full revolution, the time measurement can be triggered. The motor rotation time can be measured for a specific number of revolutions.
[0143] In boxes 1030-1036, a maximum filter can be used to filter the measured MRT for each rotation, and the filtering result can be saved to a buffer. For example, in box 1030, the current MRT can be compared with the previous maximum rotation time (RTM) of the motor rotation time measurement stored in the buffer. If the current MRT is lower than the previous RTM of the motor rotation time measurement stored in the buffer, then in box 1032, the number of consecutive rotations during which no larger RTM occurred can be compared with a threshold. If the number of consecutive rotations during which no larger RTM occurred is lower than the threshold, then in box 1036, the previous RTM can be saved to the buffer. If the number of consecutive rotations during which no larger RTM occurred is greater than the threshold, then in box 1034, the previous RTM can be reduced by a certain value, and if the reduced RTM is lower than the current MRT, then in box 1036, the current MRT can be set to the new RTM and saved to the buffer; otherwise, in box 1036, the reduced RTM can be saved to the buffer.
[0144] If the current MRT is greater than the previous RTM of the motor rotation time measurements stored in the buffer, a new maximum rotation time RTM can be determined at box 1036 based on, for example, a weighted sum of the current MRT and the existing maximum rotation time RTM of the motor rotation time measurements in the buffer. The weights of the current MRT and the existing RTM can be selected to increase or smooth changes in motor rotation time. For example, the weight of the current MRT can be between 0 and 1, where a weight value of 1.0 maximizes the change and a weight value of 0 minimizes the change.
[0145] At box 1038, if the buffer is not full, a new MRT can be measured while the motor is steadily driven, and the new MRT can be processed as described above with respect to boxes 1030 to 1036. If the buffer is full, at box 1040, the rotational time value (e.g., RTM) stored in the buffer can be used to determine the coefficient of variation of the RTM values stored in the buffer. The coefficient of variation of the RTM values can be determined by determining the mean and standard deviation of the RTM values and defining the coefficient of variation as the ratio of the standard deviation to the mean. The buffer may be several hundred in size, such as approximately 100 or 200. The coefficient of variation of the RTM values can be a moving coefficient of variation using a moving window of the past several hundred revolutions of the motor's forward drive. The change in the coefficient of variation of the RTM values relative to the baseline CV of the motor rotation time determined in flowchart 900 can then be determined. For example, the change in the coefficient of variation relative to the baseline CV of the motor rotation time can be expressed as a percentage of the baseline CV of the motor rotation time.
[0146] At box 1042, the change in the coefficient of variation can be compared to a threshold, such as 100% or another value (e.g., 50% or greater). If the change in the coefficient of variation is greater than the threshold, the plunger of the reservoir can be detected, and the motor can be stopped at box 1050. If the change in the coefficient of variation is not greater than the threshold, the plunger of the reservoir may not have been detected yet, and the operations in boxes 1010 to 1042 can be repeated until the change in the coefficient of variation is greater than the threshold.
[0147] It should be noted that even in Figure 10 The example shown uses motor rotation time for plunger detection, but plunger position can also be detected based on other parameters that may be related to motor rotation time, such as motor rotation speed or motor delivery rate. After plunger detection, friction measurements and compensation can be performed on the reservoir to determine the appropriate drive voltage to achieve the desired delivery rate from the reservoir, as described in detail below.
[0148] In reusable insulin pumps using replaceable insulin reservoirs, friction between the plastic cylinder and the plunger (e.g., the O-ring on the plunger) can vary from reservoir to reservoir due to the mass production and low cost of the insulin reservoirs. Variations in friction can make it difficult to accurately and promptly determine whether back pressure is caused by reservoir friction or flow obstruction, and therefore may make it difficult to detect blockages quickly and accurately. Variations in friction can also cause variations in fluid delivery rate at the same motor drive voltage, which can affect the accuracy of the delivered insulin volume.
[0149] According to certain embodiments disclosed herein, variations in friction between the plunger (and O-ring) and the reservoir cylinder can be measured and compensated for during reservoir setup, allowing appropriate corresponding motor drive voltages and duty cycles to be used to drive a particular reservoir for a more constant or consistent delivery rate. This enables more accurate and timely detection of actual blockages based on variations in fluid delivery rate measured by a motor position sensor. In one example, during manufacturing calibration, a reference motor speed (or reference fluid delivery rate) under no-load and calibrated for known loads at motor drive voltage levels and motor drive duty cycles during the manufacturing calibration of each insulin pump can be measured and saved to the insulin pump. After the insulin reservoir is positioned in the insulin pump, the motor can be driven using a series of strokes (e.g., each stroke comprising multiple steps). The controller can obtain data from the motor position sensor to determine the motor speed (or rotation time) or fluid delivery rate during the multiple strokes and compare the measured motor speed or fluid delivery rate with the reference speed or fluid delivery rate. If the measured fluid delivery rate is lower than the reference fluid delivery rate, reservoir friction may cause a decrease in delivery rate, and the motor voltage can be increased to compensate for the decrease in delivery rate. This process can be repeated until the measured delivery rate is equal to or greater than the reference delivery rate. Reservoir friction measurement and compensation can be performed over short strokes while the tubing connecting the reservoir to the tubular system is flushed. The reservoir friction measurement and compensation technology disclosed herein allows the insulin pump to compensate for the unique friction presented by each insulin reservoir and allows for more accurate and timely blockage detection, thereby providing a better user experience and improving clinical outcomes.
[0150] Figure 11 This includes a flowchart 1100 illustrating an example of a process for measuring and compensating for friction between the plunger and cylinder of a fluid reservoir in a fluid delivery system according to certain embodiments. Flowchart 1100 may be an example of an implementation of the operations in block 726. The operations in flowchart 1100 can be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without using sensor assembly 510), an infusion device 602, etc.
[0151] At box 1110, the motor drive voltage and motor drive duty cycle can be set to the MMV and MDC measured during factory calibration, as described above for example. Figure 7 and Figure 8As described above, during manufacturing calibration, MMV and MDC can be stored in non-volatile memory within the fluid delivery device. The motor can be driven in a stroke manner, where each stroke may include multiple steps. In some embodiments, the number of steps in each stroke (e.g., 5 or 7 steps) may differ from the number of steps required for the motor to complete one revolution (e.g., 6 steps). The number of steps in each stroke may be constant or may vary between strokes. The stroke may be similar to a stroke performed during normal fluid delivery.
[0152] Although not in Figure 11 As shown, but in some embodiments, before and / or during the operation in flowchart 1100, the motor may be checked to ensure that the motor drive voltage is at the programmed level and the motor drive current is below a threshold. Motor position sensors (e.g., Hall effect sensors that provide different output values when the motor is in different positions during a full rotation) may be checked to ensure that the motor position sensors are functioning correctly, such as providing the correct output value and being able to detect changes in motor position. For example, if the output value of the motor position sensor does not change after driving the motor to rotate one step, the motor position sensor may not be functioning correctly, or the motor may not be functioning correctly or may stall. If any of these motor position sensor and motor checks fail (once or a threshold number of times), the process in flowchart 1100 may be terminated. In some embodiments, an alarm may be generated if any check fails.
[0153] In box 1120, within each of multiple strokes (e.g., 3-5 strokes), the motor can be driven to rotate multiple steps, and the time intervals between some steps can be measured to determine the current conveying rate of the fluid conveying device. In the example shown, at box 1122, the motor can be driven up to the first step, such as 3 or 4 steps, allowing the motor to have a relatively stable speed. At box 1124, during each step in the second number of steps after the first step (e.g., steps 3-5), the time interval during which the motor moves from one position to the next can be determined. For example, a timer can be used to count the time it takes for the motor position sensor to change its output from one value to another.
[0154] Then, at box 1126, the instantaneous delivery rate of the current stroke can be determined based on the measurement time interval of the second step. For example, the instantaneous delivery rate can be determined based on the amount delivered in each motor step and the time it takes for the motor to rotate from one position to the next in that motor step. In another example, the instantaneous delivery rate can be determined based on the amount delivered in each step and the average time for the motor to rotate one step, which is based on the time taken for the motor to rotate in each step of steps 3-5 of each stroke. At box 1128, the instantaneous delivery rate of the current stroke can be saved to a buffer for friction compensation. After each stroke, the motor can be stopped, for example, by setting all windings of the motor to ground and disabling the motor power supply. In some examples, the motor position sensor can continue to monitor any possible forward or backward rotation steps of the motor, making it possible to track the total number of forward rotation steps in the storage. The operations of boxes 1122 through 1128 can be performed for multiple motor strokes until the buffer is full. As mentioned above, the stroke size can vary to replicate the stroke of normal fluid delivery.
[0155] Once the buffer is full, at box 1130, the pre-compensated delivery rate (PDR) of the fluid delivery device can be determined based on the instantaneous delivery rate stored in the buffer. For example, the pre-compensated delivery rate can be the average of the instantaneous delivery rates stored in the buffer. The pre-compensated delivery rate can indicate the effect of reservoir friction on the delivery rate and can vary from reservoir to reservoir. The PDR can be stored and used to determine the amount of adjustment to the motor drive voltage used for friction compensation.
[0156] At box 1132, the PDR can be compared with the MDR determined during manufacturing calibration. As described above, the MDR can be stored in non-volatile memory within the fluid delivery device during manufacturing calibration. If the PDR is equal to or greater than the MDR, the friction calibration process can be completed as per box 1102, and the MMV and MDC determined during manufacturing calibration can be saved and used for fluid delivery during normal operation. If the PDR is lower than the MDR, it may be necessary to adjust the motor drive voltage and / or duty cycle as described in more detail below.
[0157] At box 1140, the motor drive voltage and / or motor drive duty cycle can be adjusted, for example, by voltage increment steps or based on extrapolation using MDR and PDR. In one example, if the motor drive voltage has been adjusted a few times, a predetermined voltage increment step (e.g., about 100mV) can be added to the current motor drive voltage; if the motor drive voltage has been increased multiple times, but the measured delivery rate is still lower than MDR, the motor drive voltage can be determined by extrapolation based on the amount of delivery rate increase caused by the increase in drive voltage during the previous few adjustment steps and the total difference between PDR and MDR to accelerate the compensation process.
[0158] Following box 1150, in each of multiple strokes (e.g., 3-5 strokes), the motor can be driven to rotate multiple steps by an adjusted drive voltage and / or duty cycle, and the time interval between some steps of the stroke (e.g., steps 3-5) can be measured to determine the current delivery rate of the fluid conveying device. For example, at box 1152, the motor can be driven up to the first step number, such as 3 or 4 steps, so that the motor can have a relatively stable speed. At box 1154, during each step of the second number of steps (e.g., steps 3-5) after the first step number, the time interval during which the motor moves from one position to the next in that step can be determined. For example, a timer can be used to count the time it takes for the motor position sensor to change its output from one value to another. The instantaneous delivery rate of the current stroke can then be determined based on the measured time interval of the second number of steps. For example, the instantaneous delivery rate can be determined based on the amount of fluid conveyed in each step and the average time for the motor to rotate one step, which is based on the time taken for the motor to rotate in each step of steps 3-5 of each stroke. At box 1158, the instantaneous (or current) delivery rate of the current stroke can be saved to a buffer for friction compensation. After each stroke, the motor can be stopped, for example, by setting all windings of the motor to ground. In some examples, the motor position sensor can continue to monitor any possible forward or backward rotation steps of the motor, making it possible to track the total number of forward steps in the register. The operations of boxes 1152 through 1158 can be performed for multiple motor strokes until the buffer is full. In some examples, the stroke size (number of steps) can be different.
[0159] After the buffer is filled, at box 1160, the reservoir-compensated delivery rate (RCR) of the fluid delivery device can be determined based on the instantaneous (or current) delivery rate stored in the buffer. For example, RCR could be the average of the instantaneous delivery rates stored in the buffer. At box 1162, RCR can be compared with the MDR determined during manufacturing calibration. If RCR is equal to or greater than MDR, the friction calibration process can be completed as in box 1102, and the current motor drive voltage and duty cycle can be stored and used to deliver fluid during normal operation. If RCR is still lower than MDR, the operations in boxes 1140 through 1162 can be repeated until RCR is equal to or greater than MDR. As mentioned above, in some examples, extrapolation can be used to determine adjustments to the motor drive voltage and / or motor drive duty cycle to accelerate the calibration process.
[0160] The final motor drive voltage and duty cycle can be stored and used to drive the motor for fluid delivery during normal operation of the fluid delivery device. If the RCR remains below the MDR after a threshold number of motor drive voltage and / or cycle time adjustments (e.g., iterations of the operations in boxes 1140 to 1162), the accumulator calibration may have failed, and an alarm or notification may be generated. After the accumulator calibration is completed, a baseline coefficient of variation of the fluid delivery rate of the fluid delivery device can be determined and used as a reference for blockage detection during normal operation of the fluid delivery device.
[0161] Figure 12 Flowchart 1200 includes an example of a process for determining the baseline coefficient of variation of the delivery rate of a fluid delivery device according to certain embodiments. Flowchart 1200 may be an example of an implementation of the operations in block 728. The baseline coefficient of variation of the delivery rate may be determined based on the delivery rate measured during multiple strokes of each of several different stroke sizes that can be used during normal fluid delivery operation. The operations in flowchart 1200 may be performed using, for example, a controller or processor of delivery device 102, insulin delivery subsystem 230, fluid delivery device 300, fluid delivery device 400 (without sensor assembly 510), infusion device 602, etc. The operations in flowchart 1200 may be performed during reservoir setup, for example, after performing the operations in flowchart 1100.
[0162] In box 1210, the motor drive voltage and duty cycle of the PWM signal for driving the motor of the fluid conveying device can be set to the motor drive voltage and duty cycle learned during memory compensation for driving the motor in strokes of different sizes. Although not in Figure 12 As shown, but in some embodiments, before and / or during the operations in flowchart 1200 (e.g., each stroke), the motor may be checked to ensure that the motor drive voltage is at the programmed level and the motor drive current is below a threshold. The motor position sensor (e.g., a Hall sensor) may also be checked to ensure that the motor position sensor is functioning correctly, such as providing the correct output value and being able to detect changes in motor position. For example, if the output value of the motor position sensor does not change after driving the motor to rotate one step, the motor position sensor may not be functioning correctly, or the motor may not be functioning correctly or may stall. If any of these motor position sensor and motor checks fail (once or a threshold number of times), the process in flowchart 1200 may be terminated. In some embodiments, an alarm may be generated if any check fails.
[0163] At box 1220, the motor can be controlled to rotate several strokes for each of a plurality of different stroke sizes, and the fluid delivery rate can be measured in each stroke. For example... Figure 12 As shown, at box 1220, for each of the multiple stroke sizes, the operations in box 1222 can be performed. The operations in box 1222 may include: for each of the multiple strokes having stroke sizes, driving the motor to a first step number (e.g., 3-4 steps or another number of steps) at box 1224, driving the motor to a second step number (e.g., 2 or more steps) at box 1226 as described above, and using a motor position sensor and a timer to determine the time interval during which the motor moves from one position to the next position in each step of the second step number; determining the instantaneous (or current) delivery rate of the current stroke based on the measured time interval of the second step number at box 1228; and saving the instantaneous delivery rate of the current stroke to a buffer at box 1230. After each stroke, the motor can be stopped, for example, by setting all windings of the motor to ground and disabling the motor power supply. In some examples, the motor position sensor may continue to monitor any possible forward or backward rotation steps of the motor, making it possible to track the total number of forward rotation steps in the memory.
[0164] Under each stroke size, the operations at boxes 1224 to 1230 can be performed multiple times over multiple motor strokes. The motor can then be driven according to another stroke size of the multiple strokes, during which the instantaneous delivery rate for each stroke can be determined. In one example, the motor can be controlled to rotate at four different stroke sizes, where each stroke size can correspond to a different number of steps (e.g., a value between 4 and 32), and for each stroke size, the motor can be driven to deliver fluid for six strokes. Therefore, in this example, the fluid delivery rate can be measured over 24 strokes in box 1220, and the buffer can include 24 instantaneous delivery rates.
[0165] At box 1240, the coefficient of variation (COP) of the delivery rates stored in the buffer can be calculated and used as the baseline COP. The COP can be calculated by calculating the mean and standard deviation of the delivery rates stored in the buffer, and then dividing the standard deviation by the mean. In some examples, if the calculated COP is below a minimum threshold, the minimum threshold can be used as the baseline COP.
[0166] III. Insulin Regulation and Delivery
[0167] Insulin therapy using an insulin pump can include several delivery modes, such as bolus insulin delivery and basal insulin delivery. Bolus insulin can be delivered in larger doses near mealtimes or at any other time when the patient's glucose levels are significantly higher than the desired target. While typical bolus insulin is delivered rapidly and continuously in a series of consecutive strokes, basal insulin delivery and square-wave bolus insulin delivery can be scheduled as a series of strokes over longer time periods, such as 30 minutes or more. Insulin pumps using a limited set of stroke sizes may require complex scheduling protocols for basal delivery and may have higher delivery power consumption because most basal rates may require small strokes per minute or every few minutes to achieve. While the scheduling protocol may ultimately result in the correct amount of insulin being delivered, each particular basal rate may result in different series of strokes and time intervals between strokes, which can be difficult to predict.
[0168] According to certain embodiments disclosed herein, a series of rapid checks can be performed to determine how many delivery events need to be performed for each basal rate (including temporary basal rate) or square-wave bolus rate, and insulin delivery can be evenly distributed across the calculated number of delivery events. This scheduling scheme can produce a uniform and predictable series of basal deliveries and can also significantly reduce the number of deliveries performed for a given basal rate, allowing the delivery motor to operate more efficiently. Square-wave bolus deliveries can also be scheduled and delivered in a similar manner. In each delivery event, insulin can be delivered in one or more strokes, where the stroke size can be more flexible to accommodate different requested amounts. The size of each stroke can be selected to closely match the requested amount and also reduce the number of strokes, thereby reducing the power consumption used for delivery.
[0169] Figure 13 This includes a flowchart 1300 illustrating an example of a process for scheduling and delivering fluid using a fluid delivery system according to certain embodiments. Flowchart 1300 may be an example of an implementation of the operations in block 730. The operations in flowchart 1300 may be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without sensor assembly 510), an infusion device 602, etc. In the example shown, the fluid to be delivered by the fluid delivery device may be insulin, which may be delivered as basal insulin, regular high-dose insulin, square wave high-dose insulin, or insulin dynamically determined in a closed loop based on, for example, measured glucose level data and other data associated with the user of the fluid delivery device.
[0170] like Figure 13As shown, flowchart 1300 may include receiving one or more insulin delivery requests at boxes 1302 (e.g., basic delivery request), 1304 (e.g., square wave high-dose delivery request), 1306 (e.g., regular high-dose delivery request), or 1308 (e.g., closed-loop insulin delivery request). At box 1310, one or more requests may be stored in a delivery request queue. The delivery request queue may include, for example, a first-in, first-out (FIFO) buffer. Requests may be stored in the delivery request queue based on, for example, the order in which one or more requests are received and / or the priority of one or more requests. At box 1320, the requests stored in the delivery request queue may be passed to the delivery scheduler (e.g., implemented using a controller or processor) one at a time. The delivery request queue ensures that the insulin scheduler can receive a single delivery request at a time and hold subsequent requests until a previous request has been completed. This technique minimizes the overall complexity of the delivery algorithm and ensures that a specified delivery rate or volume can be achieved regardless of the number of delivery requests received.
[0171] The delivery scheduler can determine, for example, the number of delivery events per unit time (or the time interval between delivery events), the amount of insulin to be delivered for each event, the number of strokes or steps in each delivery event, the time interval between strokes, and the number of steps in each stroke. Based on the determined delivery scheduling scheme, the motor can be controlled to deliver insulin. At box 1330, the controller can check whether the currently requested delivery has been completed. If the currently requested delivery has not been completed, the controller can wait for the delivery to complete. After the currently requested delivery has been completed, the next request in the delivery request queue can be sent to the delivery scheduler for scheduling and delivery.
[0172] A conveyor scheduler can schedule conveying in response to a conveying request using several input parameters. These input parameters may include, for example, total volume, average conveying rate, conveying quantity per revolution, number of steps per revolution, maximum step interval, maximum stroke size, minimum stroke size, etc. As mentioned above, when a motor is driven at the same voltage level and duty cycle, variations in motor load may cause variations in motor speed, but the amount of fluid conveyed in each motor step may not change with the motor load. A conveyor scheduler can provide incremental motor commutation control without requiring closed-loop speed control. For example, the total conveying quantity can be determined based on the number of forward motor drive steps, and a target conveying rate can be achieved using appropriate stroke intervals and stroke sizes (e.g., the number of steps per stroke) without needing to measure the actual motor rotation speed and compensate for variations that may affect motor speed, such as variations in motor load.
[0173] As described above, the conveying technology disclosed herein utilizes a manufacturing calibration process to determine the appropriate motor drive voltage and duty cycle for the drive system in each fluid conveying device. This ensures that the drive system in each fluid conveying device is sensitive to changes in motor load, and that changes in conveying rate can be correlated with relevant system events such as congestion. If the motor is driven with excessively high drive voltage and / or duty cycle, motor sensitivity may be reduced, and a decrease in conveying rate due to congestion may go undetected during fluid conveying. A specified average conveying rate can be achieved by varying the time interval between conveying strokes, rather than by changing the motor speed. The actual speed or rate of the motor in each stroke is uncontrolled and can vary throughout the duration of the stroke with changes in load. The speed or rate of the motor during normal conveying may also vary from system to system.
[0174] A goal of any fluid delivery technology is accurate fluid delivery volume. Motor control of fluid delivery devices can inevitably introduce errors. Generally, for insulin delivery, under-delivery is safer for the patient (to avoid hypoglycemia) and is easier to correct than over-delivery. Therefore, the techniques disclosed herein can be designed to deliver as close as possible to the requested delivery volume without exceeding it. Due to the limited resolution of the motor rotor encoder (or motor position sensor, such as a Hall effect sensor) and the motor step size, such techniques can result in small under-delivery volumes in each stroke. Under-delivery volumes can be accumulated until they are large enough (e.g., a volume larger than the minimum stroke size) to be added to subsequent delivery events, thereby compensating for the under-delivery.
[0175] In some examples, the conveying technique disclosed herein can divide each conveying stroke into an active drive phase and a braking phase. During the active drive phase, the motor can be driven, for example, using a PWM drive signal with a frequency of approximately 20 kHz, along with a learned motor drive voltage and motor drive duty cycle, to move stepwise in a single instance of continuous motor motion in each stroke. After a specified number of motor steps have been performed, braking can be applied to the motor, during which time the motor windings can be shorted together. During braking, excess motor energy can be dissipated as heat in the motor windings, and thus the motor can stop quickly. Braking helps to minimize the amount of excess conveying (overshoot) during each stroke, but may not eliminate it. However, during, for example, conveying scheduling, the amount of excess conveying that may occur during braking can be taken into account, such that the amount of fluid conveyed during the active drive phase can be adjusted (e.g., reduced) by a corresponding amount to compensate for any excess conveying during braking.
[0176] Furthermore, in the conveying techniques disclosed herein, multiple variable stroke sizes (rather than just a few discrete stroke sizes) can be used for fluid conveying. For example, the conveying technology allows strokes of any stroke size between a specified minimum and maximum stroke size to be executed. The maximum stroke size can be selected such that any blockages can be quickly detected based on changes in the current conveying rate measured during each stroke. Using variable stroke sizes reduces the complexity of smaller conveying requests by enabling them to be completed in a single stroke. Using variable stroke sizes also reduces the energy consumption of the conveying system by enabling larger conveyings to be completed in fewer, larger strokes. Reducing the number of strokes in a conveying request reduces the number of motor starts, which can be the least efficient phase of a motor sequence. Furthermore, by allowing the motor to run for a longer period during a given stroke, the motor can reach a steady-state speed, which can be the most efficient phase of a motor sequence.
[0177] Figure 14 This includes a flowchart 1400 illustrating an example of a process for controlling a fluid delivery system for fluid delivery according to certain embodiments. The operations in flowchart 1400 can be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without sensor assembly 510), an infusion device 602, etc. In the example shown, the fluid to be delivered by the fluid delivery device can be insulin, which can be delivered as basal insulin, regular high-dose insulin, square-wave high-dose insulin, or insulin dynamically determined in a closed loop based on, for example, measured glucose level data and other data associated with the user of the fluid delivery device.
[0178] In the example shown, flowchart 1400 may include, at block 1410, determining the remaining amount of fluid (e.g., insulin) to be delivered to the user in a fluid delivery request (or delivery event). As described above, a fluid delivery request may include, for example, a basic delivery request, a regular high-dose delivery request, a square-wave high-dose delivery request, or a closed-loop delivery request. If a portion of the requested delivery amount has already been delivered, the delivery amount can be subtracted from the requested delivery amount.
[0179] The operation in box 1420 may include determining the stroke size of the next stroke (e.g., the number of steps in the stroke) based on the remaining amount of fluid to be conveyed. The stroke size of the next stroke may also be determined based on the conveying capacity of the minimum stroke size and the conveying capacity of the maximum stroke size. The conveying technology may utilize the variable stroke size and comparison scheme described above to determine and schedule the next stroke. In one example, the remaining amount of fluid to be conveyed may be compared to the conveying capacity of the minimum stroke size. If the remaining amount is less than the conveying capacity of the minimum stroke size, the remaining amount may be added to the accumulated conveying deficit for future conveying, since conveying amounts less than the minimum stroke size may not be performed as independent conveyings. The minimum stroke size is used to perform more accurate blockage detection, as a minimum number of motor steps may be required in each stroke for accurate conveying rate measurement for each stroke. If the remaining amount is greater than the conveying capacity of the minimum stroke size but less than the conveying capacity of the maximum stroke size, the remaining amount may be conveyed in a stroke at a conveying capacity equal to or less than but close to the remaining amount, and that stroke can be conveyed immediately. If the remaining volume is equal to or greater than the delivery volume of the maximum stroke size, the maximum stroke can be delivered immediately, and the delivery volume can be subtracted from the remaining volume. Imposing a maximum stroke size limit allows for faster detection of blockages before a large undelivered volume due to congestion occurs, and also minimizes the risk of patient discomfort due to a large accumulation of insulin under the skin. The same comparison process can then be used to schedule and deliver the remaining portion of the requested delivery volume.
[0180] Based on the stroke size determined at block 1420, the motor can be controlled at block 1430 to deliver fluid. As described above, the motor can be controlled using the motor drive voltage and duty cycle learned through manufacturing calibration and reservoir friction compensation to rotate in multiple consecutive steps in each stroke. The amount of insulin delivered in each step can be approximately constant, but the motor's rotational speed and therefore rotation time in each step may vary due to, for example, variations in the motor's load (e.g., caused by back pressure from the fluid in the reservoir).
[0181] In some examples, during motor rotation, the motor position sensor (e.g., a Hall effect sensor) can be checked at box 1440 to determine whether the motor position sensor output is as expected and whether the output changes to indicate motor rotation. If the motor position sensor output value is not as expected and / or the output value does not change after the motor is driven, a sensor error or motor stall can be detected at box 1450. Upon detecting a sensor error or motor stall, an alarm or notification can be provided to the user, and flowchart 1400 can be terminated.
[0182] If motor movement (rotation) is correctly detected (e.g., the output value of the motor position sensor is the expected value), the current motor speed or current delivery rate of the current stroke can be measured at box 1460 based on, for example, the step interval between two steps of a stroke (e.g., the time interval during which the motor changes from one position to the next in a motor step) and the delivery volume in each step, as described above. Since the motor may not be at a relatively stable speed at the beginning of each stroke, it may not be possible to measure the step interval at the beginning of each stroke. When the motor may be at a relatively stable speed several steps after the motor has started in the current stroke, the step interval can be measured in one or more steps. For example, a timer can be used to measure the step interval to count the time it takes for the output of the motor position sensor to change from one value to the next. The current delivery rate can be determined by dividing the fluid delivery volume during one or more steps by the time interval between one or more steps, and can indicate the fluid delivery volume per unit time (e.g., units of insulin per minute or milliliters per minute). In one example, the current conveying rate can be measured across two or more steps (e.g., steps four and five) based on the sum of the time the motor takes to rotate in each of two or more steps (e.g., the time it takes for the motor to move from position three to position four, and the time it takes for the motor to move from position four to position five), and can be the average conveying rate across two or more steps with the same stroke. In some examples, if the step interval is greater than a threshold time or the motor does not change position after the threshold time, the motor can be stopped or de-energized, and an error message or alarm can be generated.
[0183] At box 1470, the current conveying rate measured for the current stroke can be used in conjunction with the conveying rate measured in the previous stroke to determine whether a blockage has occurred. More details about blockage detection are described below with reference to, for example, Figure 19.
[0184] At box 1480, the total drive steps and the amount of conveyed in the stroke can be determined, and this is used to determine the remaining amount to be conveyed for the current conveying request at box 1410. The operations in flowchart 1400 can be performed iteratively until the remaining amount of the requested conveying is less than the conveying amount of the minimum stroke size.
[0185] Figure 15 This includes a flowchart 1500 illustrating an example of a process for determining the stroke size of the next stroke based on the remaining amount of fluid to be delivered, according to certain embodiments. Flowchart 1500 may be an example of an implementation of block 1420 of flowchart 1400. The operations in flowchart 1500 can be performed using, for example, a controller or processor of delivery device 102, insulin delivery subsystem 230, fluid delivery device 300, fluid delivery device 400 (without sensor assembly 510), infusion device 602, etc.
[0186] The operations in flowchart 1500 may include determining the remaining requested delivery (RDR) amount for the delivery request at block 1510. The delivery request may include, for example, a basic delivery request, a regular high-dose delivery request, or a square-wave high-dose delivery request. The RDR amount can be determined by subtracting, if any, the amount already delivered for the current request from the requested delivery amount.
[0187] The operation at box 1520 may include determining whether the RDR amount is negative, which can indicate over-delivery. If the RDR amount is negative, the total over-delivery amount can be determined at box 1522, and the current delivery request can be indicated as completed at box 1505. If the RDR amount is not negative, at box 1530, the RDR amount can be compared with the delivery amount of the minimum stroke size. If the RDR amount is less than the delivery amount of the minimum stroke size, the total unfulfilled delivery amount of the current request can be determined at box 1532, and the current delivery request can be indicated as completed at box 1505.
[0188] When the RDR is equal to or greater than the minimum stroke size conveying capacity, at box 1540, the RDR can be compared to the maximum stroke size conveying capacity. If the RDR is less than the maximum stroke size conveying capacity, at box 1522, a stroke size within the range of the minimum and maximum stroke sizes can be determined. If the RDR is greater than the maximum stroke size conveying capacity, at box 1550, the RDR can be compared to a value slightly higher than (e.g., above a threshold of less than 5 steps, such as 1 or 2 steps) the maximum stroke size conveying capacity to determine whether the conveying request should be completed in a single stroke or should be divided into two or more strokes. If the RDR is slightly higher than the maximum stroke size conveying capacity, completing the request in a single stroke using a stroke with a larger than the maximum stroke size may be more efficient. If the RDR is significantly higher than the maximum stroke size conveying capacity, the remaining unconveyed quantity may need to be conveyed in two or more strokes, and at box 1560, the stroke size can be set to the maximum stroke size.
[0189] The stroke size determined at boxes 1552 or 1560 can be used to control the motor to deliver fluid in one stroke at box 1570. After the delivery stroke, the operation in flowchart 1500 can be performed again until it is determined, as in box 1505, that the current request has been completed.
[0190] As described above, delivery requests may include, for example, a base delivery request, which can be satisfied using the base delivery techniques disclosed herein. For example, according to the base delivery techniques disclosed herein, a user-inputted base rate (standard or temporary base rate) can be converted into an integer number of equally spaced, equal-volume delivery events to be executed within one hour. A temporary base can be used to temporarily increase or decrease the base rate within a specified time period and can be used when the user is under specific conditions (such as exercise or illness). In one example, a series of three mathematical checks can be used to calculate the optimal number of delivery events per hour based on the requested base rate. The base delivery techniques disclosed herein can attempt to maximize the number of delivery events per hour while ensuring that the minimum volume of each delivery event is equal to or greater than a threshold (e.g., 0.05 units or more). To improve delivery accuracy and reduce overall energy consumption, the base delivery techniques disclosed herein can limit the maximum number of delivery events per hour to, for example, 12 (e.g., one delivery event every 5 minutes). A temporary base can automatically delay the time interval between delivery events by half to minimize delivery stacking when switching between standard and temporary base modes.
[0191] Figure 16 This includes a flowchart 1600 illustrating an example of a process for scheduling and delivering basal insulin using a fluid delivery system according to certain embodiments. The operations in flowchart 1600 can be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without using sensor assembly 510), an infusion device 602, etc.
[0192] The operations in flowchart 1600 may include, at block 1610, receiving a base delivery request including a target base rate, which may be specified in, for example, units per hour. The target base rate may be a standard base rate or a temporary base rate.
[0193] At box 1612, the number of transport events and the transport volume of each transport event within a specific time period (e.g., per hour) can be determined based on the target base rate. For example, the target base rate can be evenly distributed among multiple transport events within that time period, such that the transport volume in each transport event is approximately equal, and the time intervals between transport events are also approximately equal. The number of transport events and the transport volume of each transport event within a time period can be determined based on the minimum transport volume of each transport event and the minimum increment of the transport volume in each transport event. In one example, the minimum transport volume of each transport event can be set to 0.05 units, and the minimum increment of the transport volume in each transport event can be set to 0.025 units. If the target base rate is low, fewer events can be scheduled per hour, such that the transport volume of each transport event is equal to or greater than 0.05 units. If the target base rate is high, more events can be scheduled per hour. Given the constraints on the minimum transport volume of each transport event and the minimum increment of the transport volume in each transport event, the number of transport events and the transport volume of each transport event can be selected such that the target base rate can be achieved with minimal or no under-transportation and no over-transportation. Each transport event can use, for example, [the following information is missing from the original text]. Figure 14 and Figure 15 The described technique is implemented using one or more strokes.
[0194] In one example, when the target base rate is less than 0.1 units / hour, the number of delivery events per hour can be set to one. When the target base rate is between 0.1 and 0.2 units / hour, the number of delivery events per hour can be set to two. When the target base rate is between 0.2 and 0.6 units / hour, the number of delivery events per hour can be set to four. When the target base rate is greater than 0.6 units / hour, the number of delivery events per hour can be set to 12. The delivery volume for each delivery event can then be determined based on the target base rate and the number of delivery events per hour.
[0195] At box 1614, a base transport request can be identified as either a standard base or a temporary base. If the base transport request is a standard base transport request, the event timer value for the standard base transport can be determined at box 1616 based on, for example, the time interval between transport events determined at box 1612 (referred to as the event interval) and the current time. If at box 1620 the event timer value determined at box 1616 is determined to be zero, the event timer can be stopped and reset (to zero), and the requested transport quantity can be set to the transport quantity calculated for each transport event at box 1626. The transport event and event timer can then be started at box 1622. If the event timer value determined at box 1616 is not zero, the event timer may not be reset and can continue counting until the event counter value reaches the calculated time interval between transport events.
[0196] If the base transport request is a temporary base transport request, the event timer value for the temporary base transport can be determined in box 1618 based on the time interval between transport events determined in box 1612. For example, the event timer value can be set to half the time interval between transport events. The event timer can continue counting in box 1622.
[0197] The operation at box 1624 may include determining whether the value of the event timer has reached the calculated event interval. If the value of the event timer is equal to or greater than the calculated event interval, the current delivery event is complete, the event timer can be reset at box 1626, and a new delivery event and event timer can be started at box 1622. If the value of the event timer is less than the calculated event interval, the current delivery event may not have completed, and the next delivery event should not begin. The controller may determine at box 1628 whether to request a new base rate. A new base rate can be requested by, for example, starting / stopping a temporary base rate or changing the active base rate. If no new base rate is requested, the controller may continue to wait for the value of the event timer to reach the calculated event interval. If a new base rate has been requested, the number of delivery events per unit time and the delivery volume of each delivery event can be determined for the new base rate at box 1612, and the new base rate can be scheduled accordingly based on the process in flowchart 1600.
[0198] Figure 17 This includes a flowchart 1700 illustrating an example of a process for scheduling and delivering temporary basal insulin using a fluid delivery system according to certain embodiments. The operations in flowchart 1700 can be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without using sensor assembly 510), an infusion device 602, etc.
[0199] At box 1702, the user's desired temporary base percentage can be received. If the desired temporary base percentage is determined to be zero at box 1710, the minimum permissible duration of the requested base rate and the duration increment above the minimum permissible duration can be set to a first set of values (e.g., 30 minutes and 15 minutes, respectively). If the desired temporary base percentage is determined to be greater than zero at box 1710, the temporary base rate (e.g., in units per hour) can be determined at box 1720 based on the current base rate and the user's desired temporary base percentage (such as the product of the current base rate and the user's desired temporary base percentage). At box 1722, if the temporary base rate determined at box 1720 is lower than the minimum temporary base rate (e.g., approximately 0.05 units / hour), the user's desired temporary base percentage may be invalid. If the temporary base infusion rate determined at box 1720 is equal to or higher than the minimum temporary base infusion rate, the number of temporary base infusion events per unit time (e.g., per hour) can be determined at box 1730 based on the calculated temporary base infusion rate.
[0200] Based on the number of temporary base transport events per unit time, a minimum permissible duration and a duration increment above the minimum permissible duration can be set for scheduling temporary base transport events. For example, if the number of temporary base transport events per unit time (e.g., per hour) determined at box 1740 (as determined at box 1730) is equal to or greater than a first number (e.g., 4), the minimum permissible duration and the duration increment above the minimum permissible duration of the requested base rate can be set to a first set of values (e.g., 30 minutes and 15 minutes, respectively). If the number of temporary base transport events per unit time (e.g., per hour) determined at box 1750 is less than the first number (e.g., 4) but greater than a second number (e.g., 2), the minimum permissible duration and the duration increment above the minimum permissible duration of the requested base rate can be set to a second set of values (e.g., 30 minutes and 30 minutes, respectively). If the number of temporary base transport events per unit time is less than the second number (e.g., 2), then the minimum permissible duration of the requested base rate and the duration increment above the minimum permissible duration can be set to a third set of values (e.g., 60 minutes and 60 minutes respectively). Based on these minimum permissible durations and duration increments of the requested base rate, it can be as described above regarding, for example... Figures 13 to 16 The temporary infrastructure is scheduled and transported as described.
[0201] Square wave high-dose requests can be scheduled and delivered based on, for example, user-inputted square wave high-dose values (e.g., in units of insulin) and durations (e.g., in hours). For example, the square wave high-dose value and duration can be converted into an equivalent hourly delivery rate, which can then be divided into an integer number of equally spaced, equal-volume delivery events to be executed within the requested duration. The techniques disclosed herein attempt to maximize the number of delivery events per hour while ensuring that the minimum delivery amount in each delivery event is equal to or greater than the minimum delivery amount (e.g., 0.05 units or more). To improve delivery accuracy and reduce overall energy consumption, the techniques disclosed herein can limit the maximum number of delivery events per hour to, for example, 12 (or one delivery event every 5 minutes). The minimum delivery amount per delivery event can depend on the capacity of the fluid delivery device. For example, for one type of fluid delivery device, the minimum permissible square wave high-dose value per delivery event could be approximately 0.05 units, the minimum increment of the square wave high-dose value per delivery event could be approximately 0.025 units, the minimum square wave high-dose duration could be approximately 30 minutes, and the minimum duration increment could be approximately 15 minutes. The maximum square wave high dose duration can depend on the expected high dose value and the minimum permissible square wave high dose value (e.g., 0.05 units) in each delivery event.
[0202] Figure 18 This includes a flowchart 1800 illustrating an example of a process for scheduling and delivering large doses of square wave insulin using a fluid delivery system according to certain embodiments. The operations in flowchart 1800 can be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without using sensor assembly 510), an infusion device 602, etc.
[0203] Flowchart 1800 may include receiving a square wave high-dose request including a high-dose value and duration at block 1810, and determining the number of delivery events within the duration and the delivery amount of each delivery event based on the high-dose value and duration at block 1820. For example, the square wave high-dose delivery rate may be calculated based on the high-dose value and duration (e.g., high-dose value divided by duration). The square wave high-dose delivery rate may be uniformly distributed among multiple delivery events within the duration, such that the delivery amount in each delivery event is approximately equal, and the time intervals between delivery events are also approximately equal. The number of delivery events with a time interval and the delivery amount in each delivery event may be determined based on the minimum delivery amount in each delivery event and the minimum increment of the delivery amount in each delivery event. In one example, the minimum delivery amount in each delivery event may be set to 0.05 units, and the minimum increment of the delivery amount in each delivery event may be set to 0.025 units. Considering the limitations of the minimum delivery volume for each delivery event and the minimum increment of delivery volume within each delivery event, the number of delivery events and the delivery volume for each delivery event can be selected to achieve a square wave high-dose delivery rate with minimal or no under-delivery and no over-delivery. Each delivery event can use, for example, [details about the parameters]. Figure 14 and Figure 15 The described technique is implemented using one or more strokes.
[0204] In one example, when the square wave high-dose delivery rate is less than 0.1 units / hour, the number of delivery events per hour can be set to one. When the square wave high-dose delivery rate is between 0.1 and 0.2 units / hour, the number of delivery events per hour can be set to two. When the square wave high-dose delivery rate is between 0.2 and 0.6 units / hour, the number of delivery events per hour can be set to four. When the square wave high-dose delivery rate is greater than 0.6 units / hour, the number of delivery events per hour can be set to 12.
[0205] The operations in block 1830 may include setting the delivery event interval and a timer. The delivery event interval can be determined by uniformly distributing the number of delivery events within an hour, and the delivery amount for each delivery event can then be determined by uniformly distributing the square wave high-dose delivery rate among the number of delivery events per hour. The operations at block 1830 may also include resetting the high-dose timer to zero and setting the initial value of the event interval timer to a value corresponding to the determined delivery event interval. The timer can then be started, and the motor can be driven to deliver the high dose. As described above, each event may include, for example, the delivery rate of the high-dose delivery event. Figure 14 and Figure 15 The described technology determines and delivers one or more strokes.
[0206] When the delivery event and timer are initiated, at box 1840, the controller can check if the high-dose timer has expired. If the high-dose timer has expired, the high-dose time may have lasted for the requested duration, and the square-wave high-dose delivery can be completed at box 1842, where the motor can be stopped and de-energized, and the total delivery volume can be determined. If the high-dose timer has not expired, at box 1850, the controller can continuously check if the current event interval timer has expired. If the current event interval timer has not expired, the event interval time has not been reached, and the controller can continue monitoring the high-dose timer and the event interval timer. If the current event interval timer has expired, the current delivery event is complete, and the next delivery event can begin, thus the event interval timer can be reset, and the total delivery volume can be determined at box 1860. The square-wave high-dose delivery process can continue until the high-dose timer expires.
[0207] Figure 19A Figure 1900 illustrates an example of selecting the number of square wave large dose delivery events based on the total amount of the square wave large dose according to certain embodiments. In Figure 1900, the horizontal axis corresponds to the total amount of the square wave large dose, while the vertical axis corresponds to the number of square wave large dose delivery events. Curve 1910 in Figure 1900 shows the number of square wave large dose delivery events as the total amount of the square wave large dose varies. Figure 19A Illustration 1902 shows a portion of curve 1910 in 1912. Curve 1910 can be used in... Figure 18 Select the number of large-dose square wave delivery events at box 1820. Note that... Figure 19A The examples shown are for illustrative purposes only. In other examples, the minimum volume for each delivery event may be different (e.g., about 0.1 units or more), and / or the number of delivery events may be determined using another function or curve.
[0208] exist Figure 19AIn the examples shown, the number of delivery events for the square wave bolus can be 1, 2, 3, 4, 5, 6, 7, 8, 12, 24, 48, or 96, depending on the total volume of the bolus insulin to be delivered in the square wave bolus. For example, when the total volume of the square wave bolus is no more than 0.4 units, the number of delivery events can be equal to the total volume divided by a floor function of the minimum volume of each delivery event (e.g., 0.05 units). In one example, if the total volume of the square wave bolus is 0.24 units, the number of delivery events can be four. When the total volume of the square wave bolus is between approximately 0.4 and approximately 0.6 units, the number of delivery events can be eight. When the total volume of the square wave bolus is between approximately 0.6 and approximately 1.2 units, the number of delivery events can be 12. When the total volume of the square wave bolus is between approximately 1.2 and approximately 2.4 units, the number of delivery events can be 24. When the total volume of the square wave bolus is between approximately 2.4 and approximately 4.8 units, the number of delivery events can be 48. When the total amount of square wave high dose is between approximately 4.8 and approximately 25 units, the number of delivery events can be 96.
[0209] Figure 19B Figure 1905 includes an example of a delivery mode for delivering a large dose of square wave within a time window, according to some examples. In Figure 1905, the horizontal axis corresponds to the time within the delivery window of the large dose of square wave, while the vertical axis corresponds to the delivery volume. Bar 1920 shows, for example... Figure 18 The delivery time and delivery volume for each delivery event are determined in boxes 1820 and 1830.
[0210] In the example shown, the total volume of the square wave high dose can be approximately 0.2 units, the duration of the square wave high dose can be approximately 1 hour, and the number of delivery events for the square wave high dose can be 4 (e.g., determined based on curve 910). The interval between delivery events can be approximately 15 minutes (1 hour divided by 4), and the delivery volume for each delivery event can be approximately 0.05 units (0.2 units divided by 4). In the example shown, the first delivery event of the square wave high dose can be delayed by half the delivery event interval to ensure that the delivery is centered as close as possible within the high dose time window. Note that some combinations of high dose values and durations may result in a delivery pattern that is slightly off-center within the high dose time window due to integer rounding of the time interval. It should also be noted that... Figure 19B The examples shown are for illustrative purposes only. In other examples, the delivery time and delivery volume for each delivery event may differ. Figure 19B The example shown. For instance, the first delivery event of a large square wave dose can be delayed by a time different from half the delivery event interval.
[0211] IV. Blockage Detection
[0212] Blockages can occur during the delivery of fluids using fluid delivery devices. A blockage can be an obstruction of insulin flow between the pump and the patient's subcutaneous tissue, preventing fluid from reaching the patient's subcutaneous tissue. Blockages can lead to a complete interruption of insulin therapy and therefore pose a significant risk to diabetic patients, as they may experience hyperglycemia if insulin therapy is not resumed in time. If undetected, a blockage can lead to potentially harmful inadequate delivery. To reduce the risk of harm due to blockages, it is desirable to detect them as early as possible. Therefore, fluid delivery devices such as insulin pumps may need to be able to automatically detect flow obstructions caused by blockages in a timely manner during insulin delivery (e.g., within 5 units of missed insulin delivery), thus providing early notification to the patient.
[0213] As mentioned above, some insulin pumps can use force, strain, or pressure sensors to detect back pressure generated by pumping insulin into a clogged infusion set, thereby inferring clogging based on measured changes in back pressure. Also as mentioned above, incorporating strain or pressure sensors into the insulin pump can increase mechanical complexity, as the entire drive system may need to be "floating" to allow the strain sensor to detect back pressure generated by the fluid due to pressure applied to the fluid via the plunger by the slider, or back pressure caused by clogging. The presence of a strain sensor can reduce the reliability of the insulin pump due to, for example, the sensor's fragility and the inability to fully secure the drive system, potentially making the pump more susceptible to damage from shocks and drops. Furthermore, strain sensors with sufficient accuracy and resolution for plunger and clogging detection can be significantly more expensive, and thus can significantly increase the cost of the insulin pump.
[0214] Since changes in motor load can cause changes in motor speed when the motor is driven at the same voltage level and duty cycle, the motor load can be indirectly monitored by changes in motor speed, rotation time, or instantaneous delivery rate (because the amount of fluid delivered in each motor step may not change). Therefore, changes in motor speed, rotation time, or instantaneous delivery rate can be used for blockage detection.
[0215] According to certain embodiments disclosed herein, blockages in a fluid delivery device can be detected based on the instantaneous fluid delivery rate (or alternatively, instantaneous motor speed or rotation time) measured using a motor position sensor (e.g., a Hall effect sensor) of the fluid delivery device, combined with the aforementioned calibration techniques. The calibration techniques can be used to compensate for variations in motor torque constants and drive system friction, which could otherwise cause significant variations in blockage detection sensitivity and prevent the achievement of specified performance targets. In one example, prior to the start of therapy, e.g., immediately after compensating for friction between the plunger and the reservoir cylinder to adjust the fluid delivery rate from the reservoir (e.g., by adjusting the motor drive voltage and / or duty cycle), the motor speed or fluid delivery rate during insulin delivery can be determined based on the motor position measured by the motor position sensor using the adjusted motor drive voltage and / or duty cycle during insulin delivery. The measured motor speed or fluid delivery rate can be used to generate a coefficient of variation of the delivery rate, which can be used as a baseline coefficient of variation (DBR) of the (unfiltered) delivery rate for blockage detection.
[0216] During fluid transport, the motor speed or instantaneous current delivery rate (CDR) can be continuously determined based on the time intervals between changes in motor position (e.g., in the fourth and / or fifth steps of each stroke) measured by a motor position sensor using an adjusted motor drive voltage and / or duty cycle. The measured motor speed or instantaneous current delivery rate (CDR) can be filtered by a series of mathematical and statistical filters and stored in a buffer of a specific size to determine the moving coefficient of variation of the filtered delivery rate stored in the buffer. For example, the CDR measured during fluid transport can first be passed through a minimum filter, which reduces inter-stroke variations while allowing the consistent speed reduction that would occur during congestion to become apparent. The moving standard deviation and moving average of the filtered delivery rate stored in the buffer, referred to herein as the buffered delivery rate (BDR), can be used in real time to calculate the coefficient of variation of the filtered CDR stored in the buffer.
[0217] The moving coefficient of variation (CVO) of the filtered conveyor rate can be compared with the baseline CVO of variation (DBR) of the unfiltered conveyor rate, as determined, for example, at box 1240, for congestion detection. The comparison results can be scored against multiple thresholds, where different thresholds are used to identify the probability that an actual congestion may have occurred. As the probability of congestion increases, the response time for congestion detection may decrease, and fewer conveyor strokes may be required before a congestion notification is generated.
[0218] In one example, a blockage can be declared when the moving coefficient of variation exceeds the baseline coefficient of variation and the moving coefficient of variation continues to increase (e.g., the rate of change of the moving CV is greater than a first threshold) to a specified amount of delivery (e.g., a first threshold number of steps). In some examples, a pre-blockage threshold can be used to detect a pre-blockage condition when the moving coefficient of variation exceeds the baseline coefficient of variation and continues to increase at a lower rate (e.g., the rate of change of the moving CV is greater than a second threshold) to a specified amount of delivery (e.g., a second threshold number of steps). In some examples, after triggering a pre-blockage, the current rate of change of the moving CV can be compared to the previous rate of change of the moving CV, and a blockage can be detected if the current rate of change of the moving CV is greater than the previous rate of change of the moving CV by a threshold and the number of delivery steps during the pre-blockage period of the fluid delivery device is greater than the threshold number. If the number of delivery steps during the pre-blockage period of the fluid delivery device is not greater than the threshold number, no blockage may have occurred. In some examples, the pre-blockage threshold can be automatically adapted to changing motor load conditions during insulin therapy. For example, if a pre-blockage condition is declared but not later declared due to subsequent steps not meeting the pre-blockage condition exceeding the threshold number, the pre-blockage threshold can be increased.
[0219] Figure 20 This includes a flowchart 2000 illustrating an example of a process for detecting blockages during fluid delivery using a fluid delivery system according to certain embodiments. The operations in flowchart 2000 can be performed using, for example, a controller or processor of a delivery device 102, an insulin delivery subsystem 230, a fluid delivery device 300, a fluid delivery device 400 (without using sensor assembly 510), an infusion device 602, etc.
[0220] In the example shown, at block 2010 of flowchart 1200, the controller may receive or otherwise obtain the baseline coefficient of variation (unfiltered) of the delivery rate, such as the baseline coefficient of variation (DBR) of the delivery rate determined at blocks 1230 and 1240 of flowchart 2000. The baseline coefficient of variation (DBR) of the delivery rate can be used as a reference value for blockage detection. At block 2020, the controller may receive or otherwise obtain the current delivery rate (CDR) measured for the current stroke, as described above with respect to, for example, block 1460. The current delivery rate (CDR) can be an instantaneous delivery rate measured in one or more steps of the stroke (e.g., two or more steps, such as steps 4 and 5) during normal operation of the fluid delivery system.
[0221] In boxes 2014 through 2022, the received CDR can be filtered using a minimum filter, and the filtered CDR (e.g., the determined minimum CDR) can be stored in a buffer of a specific size, such as a first-in, first-out (FIFO) buffer. For example, at box 2014, the received CDR can be compared to the minimum of the CDRs previously measured over a certain number of previous strokes (referred to as the minimum congestion speed or OSM). If no previously measured CDR or OSM exists, the received CDR can be set as the OSM and stored in the buffer. If it is determined at box 2014 that the received CDR is lower than the current OSM, then at box 2020, a new OSM can be determined based on the CDR and stored in the buffer. For example, the new OSM can be determined as a weighted sum of the CDR and the existing OSMs of the delivery rate stored in the buffer. The weights of the CDR and the existing OSM can be selected to increase or smooth changes in the delivery rate. For example, the weight of the CDR can be between 0 and 1, where a weight value of 1.0 maximizes the change, and a weight value of 0 minimizes the change. If the received CDR is not lower than the current OSM, then at box 2016, the controller can determine whether the received CDR is equal to or greater than the current OSM within the threshold delivery steps. If the received CDR is not equal to or greater than the current OSM within the threshold delivery steps, then at box 2020, the current OSM (not the received CDR) can be saved to the buffer. If the received CDR is equal to or greater than the current OSM within the threshold delivery steps, then at box 2018, the current OSM can be incremented by one step, and at box 2020, the incremented OSM can be compared with the received CDR to determine the new OSM and delivery rate to be saved to the buffer. For example, if the incremented OSM is greater than the received CDR, then at box 2020, the received CDR can be set as the new OSM and saved to the buffer. If the incremented OSM is equal to or lower than the received CDR, then at box 2020, the incremented OSM can be saved to the buffer and set as the new OSM.
[0222] In some examples, if the buffer is not yet full, the OSM determined for the current stroke as described above can be saved to the buffer multiple times. The number of times the OSM determined for the current stroke is saved to the buffer can be determined based on the size of the current stroke. For example, the number can be the largest integer or a smaller integer than the ratio between the number of steps in the current stroke and the minimum stroke size of the fluid delivery system. In a specific example, if the current stroke includes 12 steps and the minimum stroke size is 5 steps, the OSM determined for the current stroke can be saved to the buffer twice. After the OSM determined for the current stroke has been saved to the buffer once or more, at box 2022, the controller can determine whether the buffer is full. If the buffer is not full, no blockage may have been detected in the current stroke, and the controller can indicate that no blockage has occurred at box 2002 and wait for the next CDR measurement for the next delivery stroke at box 2012. If the buffer is full, the controller can proceed to box 2024.
[0223] At box 2024, the moving coefficient of variation (BDR) of the currently stored filtered conveyor rate (e.g., OSM) can be determined by calculating the coefficient of variation of the mean and standard deviation of the conveyor rates stored in the buffer and dividing the standard deviation by the mean. In some examples, at box 2026, the controller can determine the previous rate of change (PRC) of the moving BDR relative to the baseline coefficient of variation (DBR) of the conveyor rate. The PRC can be the percentage change of the previously moved BDR relative to the baseline coefficient of variation (DBR) of the conveyor rate and can be stored for congestion detection.
[0224] At box 2030, the controller can determine whether the coefficient of variation (BDR) is greater than the baseline coefficient of variation (DBR) for the conveyor rate. If the BDR is greater than the baseline coefficient of variation (DBR) for the conveyor rate, the current rate of change (CRC) of the BDR relative to the baseline coefficient of variation (DBR) for the conveyor rate can be determined at box 2040 (e.g., percentage). At box 2042, the CRC can be compared with the total congestion threshold (GOT). If the current rate of change (CRC) is greater than the total congestion threshold (GOT), at box 2044, the total number of motor steps with a CRC greater than GOT can be determined and compared with the threshold. If the total number of motor steps with a CRC greater than GOT is greater than the threshold, a congestion can be detected and declared at box 2004. If the CRC is greater than GOT, but the total number of motor steps with a CRC greater than GOT is not greater than the threshold, at box 2046, the CRC can be compared with the pre-congestion threshold (POT). The pre-congestion threshold (POT) can be lower than the total congestion threshold (GOT). If the current rate of change CRC is not greater than the total congestion threshold GOT, then at box 2046, CRC can also be compared with the pre-congestion threshold (POT).
[0225] If it is determined at box 2046 that the CRC is equal to or greater than the POT, a pre-blocking flag (POF) can be set at box 2048. At box 2050, the controller can determine whether the difference between the CRC and PRC is greater than a threshold, which can be determined based on, for example, the stroke size of the current stroke. In one example, the threshold can be equal to the product of (1) the conveying volume per motor step, (2) the number of steps in the stroke, and (3) the minimum change between the CRC and PRC to maintain a pre-blocking state. If the difference between the CRC and PRC is greater than the threshold, at box 2052, the controller can determine whether the total number of conveying steps since the pre-blocking flag was set is greater than the threshold. If the total number of conveying steps since the pre-blocking flag was set is greater than the threshold, a blockage can be detected and declared at box 2004. If the total number of conveying steps since the pre-blocking flag was set is not greater than the threshold, a blockage may not have been detected in the current stroke.
[0226] If at box 2030 it is determined that the coefficient of variation (BDR) is not greater than the baseline coefficient of variation (DBR), if at box 2046 the CRC is lower than the point of interest (POT), or if at box 2050 the difference between the CRC and the PRC is not greater than a threshold, the process can proceed to box 2060. At box 2060, the controller can determine whether a pre-blocking flag (POF) is set. If at box 2060 it is determined that the POF is not set, a blockage may not be detected in the current stroke. If the POF is set and at box 2062 it is determined that there may have been enough conveying steps (during which no pre-blocking has been triggered), a blockage may not be detected in the current stroke, the POF can be cleared, and the pre-blocking threshold (POT) can be increased at box 2064, as the current POT may be low and could lead to an erroneous triggering of a pre-blocking condition. If at box 2062 it is determined that there may not have been enough conveying steps (during which no pre-blocking has been triggered), the pre-blocking flag may not be clear, and a blockage may not be detected in the current stroke.
[0227] Operations at blocks 2012 to 2064 can be performed at each delivery stroke based on the current delivery rate measured in one or more steps of each delivery stroke to determine in real time whether a blockage has occurred in the fluid delivery system. The blockage detection technique disclosed herein does not use additional strain sensors or another type of sensor, thus significantly reducing the design and control complexity and cost of fluid delivery systems (e.g., insulin pumps) and improving their reliability. The blockage detection technique disclosed herein can increase blockage detection sensitivity for faster and more accurate blockage detection and also provides increased robustness against erroneous blockages by automatically adapting to changing motor load conditions during insulin therapy. Improved blockage detection performance can improve user experience and clinical outcomes.
[0228] In some cases, during the operation of a fluid delivery system, the ambient temperature, and therefore the operating temperature of the fluid delivery system, may change. This can alter the viscosity of the lubricant in the fluid delivery system, and thus the drive speed and delivery rate of the fluid delivery system. Changes in delivery rate caused by temperature variations (e.g., a temperature drop) can increase the filtered coefficient of variation (BDR) of the delivery rate, and therefore may lead to false blockage detection if the same baseline coefficient of variation (DBR) of the delivery rate is used over the operating temperature range of the fluid delivery system.
[0229] According to certain implementations, the blockage detection technique disclosed herein can use the operating temperature of the fluid delivery system as input to control the detection sensitivity (e.g., a threshold for comparison with the filtered coefficient of variation (BDR) of the delivery rate), thereby avoiding false blockage detections caused by the effect of temperature drops on the delivery rate. In one example, a buffer (e.g., a FIFO) can be used to store multiple temperature values of the fluid delivery system measured for multiple delivery strokes, wherein temperature measurements can be saved to the buffer for each delivery stroke. The maximum temperature value in the buffer can be compared with the current temperature value obtained in the most recent temperature measurement. If the current temperature value is lower than the maximum temperature value by a value greater than a threshold (e.g., 5°C), a temperature flag can be set. The temperature flag can remain set for a specific duration. During this duration, if the fluid delivery system is not in a pre-blockage state (e.g., the pre-blockage flag is not set) and the filtered coefficient of variation (BDR) of the delivery rate reaches the baseline coefficient of variation (DBR) of the delivery rate, the detection sensitivity can be automatically reduced (e.g., by multiplying the baseline coefficient of variation (DBR) of the delivery rate by a desensitization factor greater than one and using the product as a new blockage detection threshold), making false blockage detections less likely or avoidable. Once the coefficient of variation (BDR) of the filtered delivery rate drops below the baseline coefficient of variation (DBR) of the delivery rate, the detection sensitivity can be reset to a normal value (e.g., the desensitization factor can be reset to one).
[0230] Figure 21 Flowchart 2100 is included, illustrating an example of a process for detecting blockages in a fluid delivery system when the operating temperature changes, according to certain embodiments. Flowchart 2100 may be similar to flowchart 2000 and may include some modifications to flowchart 2000. For example, flowchart 2100 may include additional boxes 2110 to 2118 between boxes 2010 and 2012 of flowchart 2000, and boxes 2030 and 2040 of flowchart 2000 may be replaced with boxes 2120 to 2146. Other boxes in flowchart 2100 may be the same as other boxes in flowchart 2000, and therefore may not be required. Figure 21As shown again in the diagram. The operations in flowchart 2100 can be performed using, for example, a controller or processor of delivery device 102, insulin delivery subsystem 230, fluid delivery device 300, fluid delivery device 400 (without sensor assembly 510), infusion device 602, etc.
[0231] In the illustrated example, flowchart 2100 may include block 2110 following block 2010, where the controller may determine the maximum temperature OTM of the temperature measurements stored in the temperature buffer. The temperature buffer may be a FIFO of a specific size (e.g., a circular buffer) to store a specific number of temperature values of the fluid delivery system measured for a specific number of previous delivery strokes. As described above, for each delivery stroke, the measured temperature value of the fluid delivery system may be saved to the temperature buffer. In some examples, the temperature of the fluid delivery system may be measured at specific intervals (e.g., every 5 minutes). If multiple delivery strokes occur within the temperature measurement interval (e.g., a 5-minute period), for example, for delivering a large dose, the same temperature measurement value may be saved to the buffer multiple times for multiple delivery strokes.
[0232] At box 2112, the controller can store the current temperature measurement value PMIC_TEMP (e.g., measured within the temperature measurement interval) of the current stroke in the temperature buffer. At box 2114, the current index TBI of the temperature buffer can be incremented by one. At box 2116, the controller can compare the current index TBI of the temperature buffer with the threshold buffer size TBS (e.g., 5, 10, or larger). If the current index TBI is not less than the threshold buffer size TBS, then at box 2118, the current index TBI can be reset to 0. If the current index TBI is less than the threshold buffer size TBS, the controller can continue with the operation in box 2012 and the subsequent boxes of flowchart 2000 as described above (boxes 2012 to 2026).
[0233] The operations in flowchart 2100 may also include box 2120 following box 2026, where the controller can compare the maximum temperature OTM determined in box 2110 with the current temperature measurement PMIC_TEMP. If the current temperature measurement PMIC_TEMP is lower than the maximum temperature OTM by a value greater than the threshold ODT (e.g., 5°C or higher), the controller can continue the operation at box 2122; otherwise, the controller can continue the operation at box 2128. At box 2122, the controller can check the pre-blockage flag POF to determine whether the fluid delivery system is in a pre-blockage state before the temperature decreases. If the pre-blockage flag POF is true (the fluid delivery system is already in a pre-blockage state), the blockage temperature flag OTF can be left unset, and the controller can continue the operation at box 2136, allowing the blockage detection desensitization used to mitigate the effects of the temperature decrease to be omitted, and potentially real blockages may not be detected due to the desensitization. If the pre-blockage flag PO F is false (the fluid delivery system is not in a pre-blockage state), the blockage temperature flag OTF can be set to true at box 2124, and the desensitization delay counter DDC can be started with an initial value set to zero at box 2126. The controller can then proceed to the operation at box 2130. At box 2128, if the blockage temperature flag OTF is not set to true, the controller can proceed to the operation at box 2136; otherwise, the controller can proceed to the operation at box 2130, where the value of the desensitization delay counter DDC can be calculated (e.g., by incrementing the desensitization delay counter DDC by the calculated stroke size of the current stroke). At box 2132, the calculated value of the desensitization delay counter DDC can be compared to the blockage desensitization delay ODD. If the value of the desensitization delay counter DDC is lower than the blockage desensitization delay ODD, the controller can proceed to the operation at box 2136; otherwise, the blockage desensitization delay ODD may have been reached, and the controller can proceed to the operation at box 2134, where the blockage temperature flag OTF can be reset to false to disable blockage detection desensitization.
[0234] At box 2136, the controller can compare the filtered coefficient of variation (BDR) of the conveyor rate with the baseline coefficient of variation (DBR) of the conveyor rate. If the BDR is not greater than the baseline coefficient of variation (DBR) of the conveyor rate, the temperature multiplication factor (TMF) can be set to one at box 2138, so as not to reduce the blockage detection sensitivity. If the BDR is greater than the baseline coefficient of variation (DBR) of the conveyor rate, the controller can proceed to the operation at box 2140, where the controller can check whether the blockage temperature flag (OTF) is true. If the blockage temperature flag (OTF) is not true, the temperature multiplication factor (TMF) can remain unchanged (e.g., have a value of one). If the blockage temperature flag (OTF) is true, at box 2142, the temperature multiplication factor (TMF) can be set to the blockage desensitization multiplier (ODM) (e.g., greater than one) to desensitize the blockage detection, thereby avoiding false blockage detection caused by a decrease in operating temperature.
[0235] At box 2144, the controller can determine whether the coefficient of variation (BDR) is greater than the product of the baseline coefficient of variation (DBR) for the conveyor rate and the temperature multiplication factor (TMF). If the BDR is greater than the product of the baseline coefficient of variation (DBR) for the conveyor rate and the temperature multiplication factor (TMF), then at box 2046, the current rate of change (CRC) of the BDR relative to the product of the baseline coefficient of variation (DBR) for the conveyor rate and the temperature multiplication factor (TMF) (e.g., percentage) can be determined. The controller can then compare the CRC with the total congestion threshold GOT at block 2042 and perform the operations described above for flowchart 2000 at other blocks. If the coefficient of variation BDR is not greater than the product of the baseline coefficient of variation DBR for the delivery rate and the temperature multiplication factor TMF, the controller can proceed to the operation at block 2060 and the other blocks as described above for flowchart 2000.
[0236] Figure 22 This includes a graph 2200 illustrating examples of parameters used in a process for detecting blockages in a fluid delivery system when the operating temperature changes, according to certain embodiments. Figure 22 In the diagram, the horizontal axis corresponds to the cumulative amount of fluid (e.g., insulin) delivered by the fluid delivery system, the primary vertical axis (on the left) indicates the delivery rate (in units per minute), delivery steps, or the operating temperature of the fluid delivery system, and the secondary vertical axis (on the right) indicates the coefficient of variation of the delivery rate.
[0237] Curve 2210 in graph 2200 indicates the current delivery rate (CDR) of the fluid delivery system over time. Curve 2212 indicates the minimum OSM (e.g., filtered minimum delivery rate) of the current delivery rate (CDR) over a certain number of previous strokes. Curve 2220 indicates the operating temperature of the fluid delivery system over time. Curve 2230 indicates the coefficient of variation (BDR) determined by filtering the current delivery rate (CDR) shown in curve 2210 using the techniques disclosed herein. Curve 2240 indicates the product of the baseline coefficient of variation (DBR) of the aforementioned delivery rate and the temperature multiplication factor (TMF), and curve 2250 indicates the clogging temperature indicator (OTF), as described above regarding... Figure 21 As stated above.
[0238] In the example shown, the operating temperature of the fluid delivery system can increase from approximately 29°C to approximately 43°C, which may lead to an increase in the current delivery rate (CDR). However, the coefficient of variation (BDR) determined by filtering the current delivery rate (CDR) may not change significantly due to the filtering. After the fluid delivery system has delivered approximately 32 units of fluid (e.g., insulin), the operating temperature of the fluid delivery system may decrease from approximately 43°C to approximately 28°C. This may lead to a decrease in the delivery rate of the fluid delivery system, resulting in an increase in the filtered coefficient of variation (BDR) of the delivery rate, and causing the controller of the fluid delivery system to set the clogging temperature flag (OTF) to true, as shown in segment 2252 of curve 2250. When the coefficient of variation (BDR) reaches the baseline coefficient of variation (DBR) of the delivery rate while the clogging temperature flag (OTF) remains true, the temperature multiplication factor (TMF) can be set to a value greater than one (e.g., the clogging desensitization multiplier (ODM)). This allows the product of the baseline coefficient of variation (DBR) of the delivery rate and the temperature multiplication factor (TMF) to increase, as shown in segment 2242 of curve 2240, to desensitize clogging detection. Therefore, the coefficient of variation (BDR) can be below a desensitization threshold equal to the product of the baseline coefficient of variation (DBR) of the conveyor rate and the temperature multiplication factor (TMF) (e.g., the blockage desensitization multiplier (ODM)). Thus, even if the BDR is greater than the baseline DBR of the conveyor rate, a pre-blockage flag may not be set and blockage may not be detected. If the BDR is above the desensitization threshold (e.g., the product of the baseline DBR of the conveyor rate and the blockage desensitization multiplier (ODM)), a pre-blockage flag can be set and / or blockage can be detected. When the BDR drops to the value of the baseline DBR of the conveyor rate, the temperature multiplication factor (TMF) can be reset to one to make blockage detection sensitive again.
[0239] After the fluid delivery system has delivered approximately 40 units of fluid (e.g., insulin), the operating temperature of the fluid delivery system can decrease from approximately 28°C to 10°C. This may cause a further reduction in the delivery rate, resulting in an increase in the filtered coefficient of variation (BDR) of the delivery rate, and causing the fluid delivery system controller to re-set the clogging temperature flag (OTF) to true, as shown in segment 2254 of curve 2250. When the BDR reaches the baseline coefficient of variation (DBR) of the delivery rate while the OTF remains true, the temperature multiplication factor (TMF) can be set to a value greater than one (e.g., the clogging desensitization multiplier (ODM)). This allows the product of the baseline coefficient of variation (DBR) of the delivery rate and the temperature multiplication factor (TMF) to increase, as shown in segment 2244 of curve 2240, to desensitize clogging detection. Therefore, the coefficient of variation (BDR) can be below a desensitization threshold equal to the product of the baseline coefficient of variation (DBR) of the conveyor rate and the temperature multiplication factor (TMF) (e.g., the blockage desensitization multiplier (ODM)). Thus, even if the BDR is greater than the baseline DBR of the conveyor rate, a pre-blockage flag may not be set and blockage may not be detected. If the BDR is above the desensitization threshold (e.g., the product of the baseline DBR of the conveyor rate and the blockage desensitization multiplier (ODM)), a pre-blockage flag can be set and / or blockage can be detected. When the BDR drops to the value of the baseline DBR of the conveyor rate, the temperature multiplication factor (TMF) can be reset to one to make blockage detection sensitive again.
[0240] The aforementioned threshold ODT can be set to, for example, 5°C or another suitable value, which can be determined based on, for example, experimental results. In some examples, the threshold ODT can be, for example, a function of the temperature before the temperature decrease. The aforementioned temperature multiplication factor TMF or blocking desensitization multiplier ODM can be determined based on, for example, experimental results, and can be a constant value or a variable that can vary with the temperature before the temperature decrease, the magnitude of the temperature decrease, etc. Similarly, the blocking desensitization delay ODD can be determined based on, for example, experimental results, and can be a constant value or a variable that can vary with the temperature before the temperature decrease, the magnitude of the temperature decrease, etc.
[0241] The operations in flowcharts 900 to 1800, 2000, and 2100 can be performed using controllers or processors, such as delivery device 102, insulin delivery subsystem 230, fluid delivery system 300, fluid delivery system 400 (without sensor assembly 510), infusion device 602, etc. Although each flowchart in flowcharts 900 to 1800, 2000, and 2100 may describe the operations as a sequential process, some of these operations may be performed in parallel or concurrently. Furthermore, the order of operations can be rearranged. Processes may have additional steps not included in the diagram. Some operations may be optional or can be omitted. Some operations may be combined with operations in another box, or may be performed alternatively in another box.
[0242] Implementations of the methods disclosed herein can be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. For example, operations in the flowchart can be performed by a server, personal computer, mobile device (e.g., smartphone or tablet), medical device (e.g., glucose sensor or insulin delivery device), or a combination thereof. When implemented in software, firmware, middleware, or microcode, program code or code segments for performing associated tasks can be stored in one or more computer-readable media, such as storage media, and can be executed by one or more processors to perform the associated tasks. Computer-readable media can include transient or non-transitory computer-readable media, such as RAM, ROM, EEPROM, flash memory, solid-state drives, hard disk drives, CDs, DVDs, or any other media that can be used to store desired program code in the form of instructions or data structures and is accessible by a computer. One or more processors can include general-purpose microprocessors, application-specific integrated circuits (ASICs), graphics processing units (GPUs), network processing units (NPUs), digital signal processors (DSPs), and field-programmable arrays (FPGAs), etc.
[0243] Figure 23This is a block diagram of an example of an electronic device 2300 that can implement some of the examples disclosed herein. For example, electronic device 2300 may be used to implement delivery device 102, monitoring device 104, computing device 106 and remote / cloud computing system 108, glucose sensor subsystem 210, controller 220, insulin delivery subsystem 230, glucose delivery subsystem 240, glucagon delivery subsystem 250, fluid delivery device 300, fluid delivery device 400 (without sensor assembly 510), infusion device 602, or another device that may include a controller or processor to perform processor-implemented methods, functions, or operations. In the illustrated example, electronic device 2300 may include one or more processors 2310 and memory 2320. Processor 2310 may be configured to execute instructions stored in memory 2320 to perform one or more of the methods described herein and in other applications. Processor 2310 may include, for example, one or more central processing units, microprocessors, microcontrollers, special-purpose processors (e.g., digital signal processors), ASICs, DSPs, FPGAs, or other processors suitable for implementation within portable electronic devices. Processor 2310 can be communicatively coupled to multiple components within electronic device 2300. To achieve this communicative coupling, processor 2310 can communicate with other illustrated components across bus 2340. Bus 2340 can be any subsystem suitable for transmitting data within electronic device 2300. Bus 2340 may include multiple computer buses and additional circuitry for transmitting data.
[0244] Memory 2320 may include one or more transient and / or non-transitory storage devices, such as, for example, static random access memory (SRAM), dynamic random access memory (DRAM), read access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), FLASH-EPROM, secure digital card (SD card), and any other memory chip or cartridge. Such storage devices may be configured to implement any suitable data storage, including but not limited to various file systems, data structures, computer-readable instructions, and program modules. In some embodiments, memory 2320 may be distributed across different hardware modules.
[0245] Memory 2320 may include an operating system 2325 loaded therein. Operating system 2325 is operable to initiate the execution of instructions provided by application modules 2322 to 2324 and / or manage other hardware modules 2370, and to interface with a communication subsystem 2330, which may include one or more wired and / or wireless transceivers. Operating system 2325 may be adapted to perform other operations across components of electronic device 2300, including threading, virtualization, resource management, data storage control, and other similar functionalities. In some embodiments, memory 2320 may store multiple application modules 2322 to 2324, which may include any number of applications. Examples of applications may include an insulin calculator, a blood glucose level monitor or predictor, a glucose level management application, etc. Application modules 2322 to 2324 may include specific instructions to be executed by processor 2310. In some embodiments, certain applications or portions of application modules 2322 to 2324 may be executed by other hardware modules 2370.
[0246] The communication subsystem 2330 may include, for example, infrared communication devices, wireless communication devices, and / or chipsets (such as...) The communication subsystem 2330 may include devices such as IEEE 802.11 devices, Wi-Fi devices, WiMax devices, cellular communication devices, etc., and / or similar communication interfaces. One or more antennas (not shown) may be used for wireless communication as part of the communication subsystem 2330 or as a separate component (such as a wireless charging receiver or near-field communication receiver) coupled to any part of the electronic device 2300. In some embodiments, the communication subsystem 2330 may include circuitry for wired communication technologies such as Ethernet, coaxial communication, and Universal Serial Bus (USB). The communication subsystem 2330 may permit the exchange of data with networks, other computer systems, and / or any other devices. For example, the communication subsystem 2330 may be used for therapy determination, such as receiving a therapeutic fluid (e.g., insulin) delivery from a cloud computing system via an intermediate computing device (e.g., a controller) communicatively coupled to the electronic device 2300, whereby the processor 2310 may send commands to an actuator controller based on the therapy determination to deliver an appropriate amount of therapeutic fluid (e.g., insulin) to a user. In another example, the communication subsystem 2330 can be used to transmit measurement results (e.g., sensor glucose levels) to a computing device (e.g., a smartphone or personal health monitoring device) and / or via the computing device to a remote server, or via the computing device to receive data (e.g., calibration data, configuration data, etc.) from the computing device or the remote server.
[0247] Sensor 2350 may include, for example, a camera, infrared sensor, accelerometer, pressure sensor, temperature sensor, proximity sensor, magnetometer, gyroscope, inertial sensor (e.g., inertial measurement unit (IMU)), ambient light sensor, positioning sensor, depth sensor, posture detector, or any other similar module operable to provide sensory output and / or receive sensory input. In one example, sensor 2350 may be used to implement a meal detection device.
[0248] The input / output user interface 2360 allows a user to send action requests to the electronic device 2300 to perform specific actions and can provide the user with information (e.g., the status of the electronic device 2300, measurement results, warnings, etc.). The input / output user interface 2360 may include one or more input devices, such as a touchscreen, touchpad, microphone, button, dial pad, switch, keyboard, mouse, game controller, or any other suitable device for receiving action requests and transmitting the received action requests to the processor 2310. In some embodiments, the input / output user interface 2360 may include one or more output devices, such as a display, speaker, light-emitting device, and haptic device, to provide feedback or alarms to the user.
[0249] In some embodiments, electronic device 2300 may include a plurality of other hardware modules 2370. Each of the other hardware modules 2370 may be a physical module within electronic device 2300. While each of the other hardware modules 2370 may be permanently configured as a structure, some of the other hardware modules 2370 may be temporarily configured to perform a specific function or be temporarily activated. Examples of other hardware modules 2370 may include, for example, audio output and / or input modules (e.g., microphones or speakers), near field communication (NFC) modules, rechargeable batteries, battery management systems, wired / wireless battery charging systems, and actuator controllers. In some embodiments, one or more functions of the other hardware modules 2370 may be implemented in software.
[0250] In one example, electronic device 2300 may be part of an insulin delivery device (e.g., a pump) that delivers rapid-acting insulin via a tubing configured for fluid connection to a subcutaneously inserted cannula. Electronic device 2300 may deliver two types of doses: a basal dose, which may be delivered in small amounts periodically (e.g., every five minutes) throughout the day and night; and a large dose to cover and / or correct hyperglycemia caused by meals. The insulin delivery device may include a user interface with button elements that can be manipulated to administer large doses of insulin, change therapy settings, change user preferences, and select display features, etc. The insulin delivery device may also include a display device that can be used to present various types of information or data to the user. According to various aspects of this disclosure, a user of the insulin delivery device may use the button elements to input certain event data (e.g., event type, event start time, event details, etc.) and may use the display device to confirm the user's input.
[0251] In various specific implementations, the aforementioned hardware and modules may be implemented on a single device or on multiple devices that can communicate with each other using wired or wireless connections. In alternative configurations, different and / or additional components may be included in the electronic device 2300. Similarly, the functionality of one or more components may be distributed within the component in a manner different from that described above.
[0252] The methods, systems, and apparatus discussed above are examples. Various procedures or components may be appropriately omitted, substituted, or added in different embodiments. For example, in alternative configurations, the described methods may be performed in a different order than described, and / or stages may be added, omitted, and / or combined. Furthermore, features described with respect to certain embodiments may be combined in various other embodiments. Different aspects and elements of embodiments may be combined in similar ways. Moreover, technology is constantly evolving, therefore many elements are examples and the scope of this disclosure is not limited to those specific examples.
[0253] Specific details are provided in the description to offer a thorough understanding of the embodiments. However, embodiments may be practiced without these specific details. For example, well-known circuits, processes, systems, structures, and techniques have been shown without the need for unnecessary detail to avoid obscuring the embodiments. This description provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the invention. Rather, the foregoing description of the embodiments will provide those skilled in the art with an enabling description for implementing various embodiments. Various changes may be made to the function and arrangement of the elements without departing from the spirit and scope of this disclosure.
[0254] Furthermore, some implementations are described as processes depicted as flowcharts or block diagrams. Although each process can be described as a sequential sequence of operations, many operations can be executed in parallel or concurrently. Additionally, the order of operations can be rearranged. Processes may have additional steps not included in the diagram. Furthermore, implementations of these methods can be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments used to perform the associated tasks can be stored in a computer-readable medium such as a storage medium. The processor can execute the associated tasks.
[0255] It will be apparent to those skilled in the art that substantial variations can be made to suit specific requirements. For example, custom or dedicated hardware may be used, and / or specific elements may be implemented in hardware, software (including portable software such as applets), or both. Furthermore, connectivity with other computing devices, such as network input / output devices, may be employed.
[0256] The embodiments disclosed herein are examples of this disclosure and may be embodied in various forms. For example, while some embodiments herein are described as separate embodiments, each of these embodiments may be combined with one or more of the other embodiments herein. The specific structural and functional details disclosed herein should not be construed as limiting, but rather form the basis of the claims and serve as a representative basis for teaching those skilled in the art to apply this disclosure differently with virtually any suitable detailed structure. Throughout the description of the drawings, similar reference numerals may refer to similar elements.
[0257] Any of the techniques, operations, methods, programs, algorithms, or code described herein can be translated into or expressed in a programming language or computer program embodied on a computer, processor, or machine-readable medium. As used herein, the terms "programming language" and "computer program" each include any language used to specify instructions for a computer or processor, and include (but are not limited to) the following languages and their derivatives: assembler, Basic, batch files, BCPL, C, C+, C++, Delphi, Fortran, Java, JavaScript, machine code, operating system command languages, Pascal, Perl, PL1, Python, scripting languages, visual Basic, meta-languages that specify their own programs, and all first-, second-, third-, fourth-, fifth-, or higher-generation computer languages. Databases and other data schemas, as well as any other meta-languages, are also included. No distinction is made between interpreted, compiled languages, or languages that use both compilation and interpretation methods. No distinction is made between compiled and source versions of a program. Therefore, a reference to a program that can exist in more than one state (such as source, compiled, target, or linked) is a reference to any and all such states. A reference to a program can encompass the actual instructions and / or the intent of those instructions.
[0258] It should be understood that the foregoing description is merely illustrative of this disclosure. To the extent possible, any or all aspects detailed herein may be used in conjunction with any or all other aspects detailed herein. Various alternatives and modifications can be devised by those skilled in the art without departing from this disclosure. Therefore, this disclosure is intended to cover all such alternatives, modifications, and variations. The embodiments described with reference to the accompanying drawings are merely to illustrate certain examples of this disclosure. Other elements, steps, methods, and processes that are not materially different from those described above and / or in the appended claims are also intended to be included within the scope of this disclosure. Although several embodiments of this disclosure have been shown in the accompanying drawings, it is not intended to limit this disclosure, as it is intended that this disclosure be as broad as permitted in the art and that this specification should be read in the same manner. Therefore, the foregoing description should not be construed as restrictive but is merely illustrative of particular embodiments. Those skilled in the art can conceive of other modifications within the scope and spirit of the appended claims. Aspects and features of this disclosure may be embodied in various forms. Therefore, the specific structural and functional details disclosed herein should not be construed as limiting, but rather form the basis of the claims and serve as a representative basis for teaching those skilled in the art to apply this disclosure differently with virtually any suitable detailed structure.
[0259] Referring to the accompanying drawings, components that may include memory may include non-transitory machine-readable media. The terms "machine-readable media," "processor-readable media," or "computer-readable media" can refer to any storage medium involved in providing data that enables a machine to operate in a particular manner. In the embodiments provided above, various machine-readable media may involve providing instructions / code to a processing unit and / or other devices for execution. Additionally or alternatively, machine-readable media may be used to store and / or carry such instructions / code. In many embodiments, computer-readable media are physical and / or tangible storage media. Such media can take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Common forms of computer-readable media include, for example, magnetic and / or optical media such as optical discs (CDs) or digital multifunction discs (DVDs), punched cards, paper tape, any other physical media with a perforated pattern, RAM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described below, or any other medium from which a computer can read instructions and / or code. Computer program products may include code and / or machine-executable instructions, which may represent any combination of procedures, functions, subroutines, programs, routines, application programs (Apps), subroutines, modules, software packages, classes, or instructions, data structures, or program statements.
[0260] Those skilled in the art will understand that any of a variety of different techniques and processes can be used to represent the information and signals used to convey the messages described herein. For example, data, instructions, commands, information, signals, bits, symbols, and chips referenced throughout the above description can be represented by voltage, current, electromagnetic waves, magnetic fields or magnetic particles, light fields or light particles, or any combination thereof.
[0261] As used herein, the terms “and” and “or” can have a variety of meanings, which are also expected to depend at least in part on the context in which the terms are used. Generally, when used with a list of related terms (such as A, B, or C), “or” is intended to mean A, B, and C (used herein in an inclusive sense) and A, B, or C (used herein in an exclusive sense). Furthermore, the term “one or more” as used herein can be used to describe any feature, structure, or property of the singular, or to describe some combination of features, structures, or properties. However, it should be noted that this is merely an illustrative example, and the claimed subject matter is not limited to this example. Additionally, when used with a list of related terms (such as A, B, or C), the term “at least one” can be interpreted as meaning A, B, C, or any combination of A, B, and / or C, such as AB, AC, BC, AA, ABC, AAB, AABBCCC, etc.
[0262] Furthermore, while certain embodiments have been described using specific combinations of hardware and software, it should be recognized that other combinations of hardware and software are also possible. Some embodiments may be implemented using only hardware, or only software, or a combination thereof. In one example, the software may be implemented using a computer program product comprising computer program code or instructions executable by one or more processors to perform any or all of the steps, operations, or processes described in this disclosure, wherein the computer program may be stored on a non-transitory computer-readable medium. The various processes described herein may be implemented on the same processor or different processors in any combination.
[0263] When a device, system, component, or module is described as being configured to perform certain operations or functions, such configuration may be achieved, for example, by designing electronic circuits to perform the operations, by programming programmable electronic circuits (such as microprocessors) to perform the operations (such as by executing computer instructions or code), or by a processor or core programmed to execute code or instructions stored on a non-transitory memory medium, or any combination thereof. Processes may communicate using various technologies, including but not limited to conventional technologies for inter-process communication, and different pairs of processes may use different technologies, or the same pair of processes may use different technologies at different times.
[0264] Based on this description, implementations may include different combinations of features. Examples of implementations are described in the following numbered clauses:
[0265] Clause 1. A processor-implemented method comprising: obtaining motor rotation data associated with a motor configured to rotate stably to actuate a drive system for driving a plunger within a reservoir in a fluid delivery device, the motor rotation data indicating time intervals between position changes of the motor; for each of multiple rotations of the motor: determining a measured rotation time of the rotation of the motor based on the motor rotation data; determining a current maximum rotation time of the motor based on the measured rotation time of the motor and a previous maximum rotation time; and storing the current maximum rotation time in a buffer; determining a coefficient of variation of the motor rotation time based on data in the buffer; determining a change in the coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and determining whether the plunger is detected based on a comparison of the change with a threshold.
[0266] Clause 2. The processor-implemented method according to Clause 1, wherein determining the current maximum rotation time of the motor comprises: in response to determining that the measured rotation time is longer than the previous maximum rotation time of the motor, determining the current maximum rotation time of the motor based on a weighted sum of the measured rotation time and the previous maximum rotation time of the motor.
[0267] Clause 3. The processor-implemented method according to Clause 1, wherein determining the current maximum rotation time of the motor comprises: selecting the previous maximum rotation time of the motor as the current maximum rotation time of the motor in response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is less than a threshold number without increasing the maximum rotation time of the motor.
[0268] Clause 4. The processor-implemented method according to Clause 1, wherein determining the current maximum rotation time of the motor comprises: reducing the previous maximum rotation time of the motor by a predetermined value in response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is greater than a threshold number without increasing the maximum rotation time of the motor; and selecting the measured rotation time as the current maximum rotation time of the motor in response to determining that the reduced previous maximum rotation time is shorter than the measured rotation time.
[0269] Clause 5. The processor-implemented method according to Clause 1, wherein determining the current maximum rotation time of the motor comprises: reducing the previous maximum rotation time of the motor by a predetermined value in response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is greater than a threshold number without increasing the maximum rotation time of the motor; and selecting the reduced previous maximum rotation time as the current maximum rotation time of the motor in response to determining that the reduced previous maximum rotation time is longer than the measured rotation time.
[0270] Clause 6. The processor-implemented method according to any one of Clauses 1 to 5, the processor-implemented method further comprising: determining a baseline coefficient of variation of the motor rotation time before the drive system begins to translate the plunger.
[0271] Clause 7. The processor-implemented method according to any one of Clauses 1 to 6, the processor-implemented method further comprising: determining the volume of fluid in the reservoir based on the position of the plunger when the plunger is detected.
[0272] Clause 8. The processor-implemented method according to Clause 7, the processor-implemented method further comprising: determining the position of the plunger when the plunger is detected based on the total number of forward drive steps of the motor.
[0273] Clause 9. A method implemented by a processor according to any one of Clauses 1 to 8, wherein a motor drive voltage level and a motor drive duty cycle are obtained from a non-volatile memory of the fluid transport device; and a pulse width modulation signal for driving the motor is configured based on the motor drive voltage level and the motor drive duty cycle.
[0274] Clause 10. The processor-implemented method according to Clause 9, wherein the motor drive voltage level and the motor drive duty cycle are thresholds for causing the motor to stall under a target load.
[0275] Clause 11. A method implemented by a processor according to any one of Clauses 1 to 10, wherein determining whether the plunger is detected comprises: determining that the plunger is detected in response to determining that the change is greater than the threshold.
[0276] Clause 12. A processor-implemented method according to any one of Clauses 1 to 11, the processor-implemented method further comprising: in response to determining that the change is below the threshold: obtaining additional motor rotation data associated with the motor; for each rotation in one or more rotations of the motor: determining a measured rotation time of the motor rotation based on the additional motor rotation data; determining a current maximum rotation time of the motor based on the measured rotation time of the motor rotation and the previous maximum rotation time of the motor; storing the current maximum rotation time in the buffer; determining a new coefficient of variation of the motor rotation time based on data in the buffer; determining the change of the new coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and issuing a signal that the plunger has been detected in response to determining that the change of the new coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time is greater than the threshold.
[0277] Clause 13. A method implemented by a processor according to any one of Clauses 1 to 12, wherein the buffer includes a first-in-first-out buffer.
[0278] Clause 14. A method implemented by a processor according to any one of Clauses 1 to 13, wherein: each rotation of the motor comprises a plurality of steps, each of the plurality of steps being associated with the same rotation angle and a different corresponding motor position; and each of the time intervals between the changes in the position of the motor is a time interval in which the motor rotates from one motor position to the next motor position.
[0279] Clause 15. A method implemented by a processor according to any one of Clauses 1 to 14, wherein obtaining the motor rotation data comprises: obtaining the output of a motor position sensor configured to detect the position of the motor; obtaining a timer value of a timer when the output of the motor position sensor changes; and determining the time interval between the position changes of the motor based on the output of the motor position sensor and the timer value.
[0280] Clause 16. A method implemented by a processor according to any one of Clauses 1 to 15, wherein: the multiple rotations include more than 100 rotations; and the threshold is greater than 50%.
[0281] Clause 17. A system comprising: one or more processors; and one or more processor-readable storage media storing instructions that, when executed by the one or more processors, cause to perform operations including: obtaining motor rotation data associated with a motor configured to rotate stably to actuate a drive system for driving a plunger in a reservoir in a fluid delivery device, the motor rotation data indicating time intervals between position changes of the motor; for each of multiple rotations of the motor: determining a measured rotation time of the motor rotation based on the motor rotation data; determining a current maximum rotation time of the motor based on the measured rotation time of the motor and a previous maximum rotation time; and storing the current maximum rotation time in a buffer; determining a coefficient of variation of the motor rotation time based on data in the buffer; determining a change in the coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and determining whether the plunger is detected based on a comparison of the change with a threshold.
[0282] Clause 18. The system according to Clause 17, wherein determining the current maximum rotation time of the motor comprises: in response to determining that the measured rotation time is longer than the previous maximum rotation time of the motor, determining the current maximum rotation time of the motor based on a weighted sum of the measured rotation time and the previous maximum rotation time of the motor.
[0283] Clause 19. The system according to Clause 17, wherein determining the current maximum rotation time of the motor comprises: selecting the previous maximum rotation time of the motor as the current maximum rotation time of the motor in response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is less than a threshold number without increasing the maximum rotation time of the motor.
[0284] Clause 20. The system according to Clause 17, wherein determining the current maximum rotation time of the motor comprises: reducing the previous maximum rotation time of the motor by a predetermined value in response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is greater than a threshold number without increasing the maximum rotation time of the motor; and selecting the measured rotation time as the current maximum rotation time of the motor in response to determining that the reduced previous maximum rotation time is shorter than the measured rotation time.
[0285] Clause 21. The system according to Clause 17, wherein determining the current maximum rotation time of the motor comprises: reducing the previous maximum rotation time of the motor by a predetermined value in response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and that the number of rotations is greater than a threshold number without increasing the maximum rotation time of the motor; and selecting the reduced previous maximum rotation time as the current maximum rotation time of the motor in response to determining that the reduced previous maximum rotation time is longer than the measured rotation time.
[0286] Clause 22. The system according to any one of Clauses 17 to 21, wherein said operation further comprises: determining a baseline coefficient of variation of the motor rotation time before the drive system begins to translate the plunger.
[0287] Clause 23. The system according to any one of Clauses 17 to 22, wherein said operation further comprises: determining the volume of fluid in the reservoir based on the position of the plunger when the plunger is detected.
[0288] Clause 24. The system according to any one of Clauses 17 to 23, wherein said operation further comprises: obtaining a motor drive voltage level and a motor drive duty cycle from a non-volatile memory of the fluid transport device; and configuring a pulse width modulation signal for driving the motor based on the motor drive voltage level and the motor drive duty cycle.
[0289] Clause 25. The system according to any one of Clauses 17 to 24, wherein determining whether the plunger is detected comprises: determining that the plunger is detected in response to determining that the change is greater than the threshold.
[0290] Clause 26. The system according to any one of Clauses 17 to 25, wherein the operation further comprises: in response to determining that the change is below the threshold: obtaining additional motor rotation data associated with the motor; for each rotation in one or more rotations of the motor: determining a measured rotation time of the motor rotation based on the additional motor rotation data; determining a current maximum rotation time of the motor based on the measured rotation time of the motor rotation and the previous maximum rotation time of the motor; storing the current maximum rotation time in the buffer; determining a new coefficient of variation of the motor rotation time based on data in the buffer; determining the change of the new coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and issuing a signal that the plunger has been detected in response to determining that the change of the new coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time is greater than the threshold.
[0291] Clause 27. The system according to any one of Clauses 17 to 26, wherein: each rotation of the motor comprises a plurality of steps, each of the plurality of steps being associated with the same rotation angle and a different corresponding motor position; and each of the time intervals between the changes in the position of the motor is the time period in which the motor rotates from one motor position to the next motor position.
[0292] Clause 28. The system according to any one of Clauses 17 to 27, wherein obtaining the motor rotation data comprises: obtaining the output of a motor position sensor configured to detect the position of the motor; obtaining a timer value of a timer when the output of the motor position sensor changes; and determining the time interval between the position changes of the motor based on the output of the motor position sensor and the timer value.
[0293] Clause 29. A fluid delivery system comprising: a reservoir including a plunger and a cylinder for storing fluid; a drive system configured to linearly translate the plunger, the drive system including a motor; a motor position sensor configured to measure the position of the motor; one or more processors electrically coupled to the motor and the motor position sensor; and one or more processor-readable storage media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform an operation including: obtaining motor rotation data associated with the motor; The motor is configured to rotate stably to drive the plunger in the storage, and the motor rotation data indicates the time interval between changes in the position of the motor; for each rotation in multiple rotations of the motor: based on the motor rotation data, a measured rotation time of the motor rotation is determined; based on the measured rotation time of the motor and the previous maximum rotation time, the current maximum rotation time of the motor is determined; and the current maximum rotation time is stored in a buffer; based on the data in the buffer, a coefficient of variation of the motor rotation time is determined; the change of the coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time is determined; and based on a comparison of the change with a threshold, it is determined whether the plunger is detected.
[0294] Clause 30. The fluid delivery system according to Clause 29, wherein the operation further comprises: in response to determining that the change is below the threshold: obtaining additional motor rotation data associated with the motor; for each rotation in one or more rotations of the motor: determining a measured rotation time of the motor rotation based on the additional motor rotation data; determining a current maximum rotation time of the motor based on the measured rotation time of the motor rotation and the previous maximum rotation time of the motor; storing the current maximum rotation time in the buffer; determining a new coefficient of variation of the motor rotation time based on the data in the buffer; determining the change of the new coefficient of variation of the motor rotation time relative to a baseline coefficient of variation of the motor rotation time; and issuing a signal that the plunger has been detected in response to determining that the change of the new coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time is greater than the threshold.
Claims
1. A processor-implemented method, the processor-implemented method comprising: Obtain motor rotation data associated with a motor configured to rotate stably to actuate a drive system for driving a plunger in a reservoir in a fluid delivery device; the motor rotation data indicates the time interval between changes in the position of the motor. For each of the multiple rotations of the motor: Based on the motor rotation data, the measured rotation time of the motor rotation is determined; Based on the measured rotation time and previous maximum rotation time of the motor, the current maximum rotation time of the motor is determined; as well as Store the current maximum rotation time in a buffer; Based on the data in the buffer, the coefficient of variation of the motor rotation time is determined; Determine the change in the coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time; as well as Based on the comparison of the change with a threshold, it is determined whether the plunger was detected.
2. The processor-implemented method according to claim 1, wherein determining the current maximum rotation time of the motor includes: In response to determining that the measured rotation time is longer than the previous maximum rotation time of the motor, the current maximum rotation time of the motor is determined based on a weighted sum of the measured rotation time and the previous maximum rotation time of the motor.
3. The processor-implemented method according to claim 1, wherein determining the current maximum rotation time of the motor includes: In response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is less than a threshold number without increasing the maximum rotation time of the motor, the previous maximum rotation time of the motor is selected as the current maximum rotation time of the motor.
4. The processor-implemented method according to claim 1, wherein determining the current maximum rotation time of the motor includes: In response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is greater than a threshold number without increasing the maximum rotation time of the motor, the previous maximum rotation time of the motor is reduced by a predetermined value; as well as In response to determining that the reduced previous maximum rotation time is shorter than the measured rotation time, the measured rotation time is selected as the current maximum rotation time of the motor.
5. The processor-implemented method according to claim 1, wherein determining the current maximum rotation time of the motor comprises: In response to determining that the measured rotation time is shorter than the previous maximum rotation time of the motor and the number of rotations is greater than a threshold number without increasing the maximum rotation time of the motor, the previous maximum rotation time of the motor is reduced by a predetermined value; as well as In response to determining that the reduced previous maximum rotation time is longer than the measured rotation time, the reduced previous maximum rotation time is selected as the current maximum rotation time of the motor.
6. The processor-implemented method according to claim 1, further comprising: Before the drive system begins to translate the plunger, the baseline coefficient of variation of the motor rotation time is determined.
7. The processor-implemented method according to claim 1, further comprising: The volume of fluid in the reservoir is determined based on the position of the plunger when it is detected.
8. The processor-implemented method according to claim 7, further comprising: The position of the plunger when it is detected is determined based on the total number of forward drive steps of the motor.
9. The processor-implemented method according to claim 1, further comprising: The motor drive voltage level and motor drive duty cycle are obtained from the non-volatile memory of the fluid transport device; as well as Based on the motor drive voltage level and the motor drive duty cycle, a pulse width modulation signal is configured to drive the motor.
10. The processor-implemented method of claim 9, wherein the motor drive voltage level and the motor drive duty cycle are thresholds for causing the motor to stall under a target load.
11. The processor-implemented method of claim 1, wherein determining whether the plunger is detected comprises: In response to determining that the change is greater than the threshold, it is determined that the plunger has been detected.
12. The processor-implemented method according to claim 1, further comprising: In response to determining that the change is below the threshold: Obtain additional motor rotation data associated with the motor; For each rotation in one or more rotations of the motor: Based on the additional motor rotation data, the measured rotation time of the motor rotation is determined; The current maximum rotation time of the motor is determined based on the measured rotation time of the motor and the previous maximum rotation time of the motor; as well as Store the current maximum rotation time in the buffer; Based on the data in the buffer, a new coefficient of variation for the motor rotation time is determined; Determine the change in the new coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time; as well as In response to the determination that the change in the new coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time is greater than the threshold, a signal is issued indicating that the plunger has been detected.
13. The processor-implemented method of claim 1, wherein the buffer includes a first-in-first-out buffer.
14. The processor-implemented method according to claim 1, wherein: Each rotation of the motor comprises multiple steps, each step being associated with the same rotation angle and a different corresponding motor position; and Each of the time intervals between the position changes of the motor is the time period in which the motor rotates from one motor position to the next.
15. The processor-implemented method according to claim 1, wherein obtaining the motor rotation data comprises: Obtain the output of a motor position sensor configured to detect the position of the motor; Obtain the timer value of the timer when the output of the motor position sensor changes; as well as The time interval between the position changes of the motor is determined based on the output of the motor position sensor and the timer value.
16. The processor-implemented method according to claim 1, wherein: The multiple rotations include more than 100 rotations; and The threshold is greater than 50%.
17. A system comprising: One or more processors; and One or more processor-readable storage media storing instructions that, when executed by the one or more processors, cause to perform operations including: Obtain motor rotation data associated with a motor configured to rotate stably to actuate a drive system for driving a plunger in a reservoir in a fluid delivery device; the motor rotation data indicates the time interval between changes in the position of the motor. For each of the multiple rotations of the motor: Based on the motor rotation data, the measured rotation time of the motor rotation is determined; Based on the measured rotation time and previous maximum rotation time of the motor, the current maximum rotation time of the motor is determined; as well as Store the current maximum rotation time in a buffer; Based on the data in the buffer, the coefficient of variation of the motor rotation time is determined; Determine the change in the coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time; as well as Based on the comparison of the change with a threshold, it is determined whether the plunger was detected.
18. The system of claim 17, wherein the operation further comprises: In response to determining that the change is below the threshold: Obtain additional motor rotation data associated with the motor; For each rotation in one or more rotations of the motor: Based on the additional motor rotation data, the measured rotation time of the motor rotation is determined; The current maximum rotation time of the motor is determined based on the measured rotation time of the motor and the previous maximum rotation time of the motor; as well as Store the current maximum rotation time in the buffer; Based on the data in the buffer, a new coefficient of variation for the motor rotation time is determined; Determine the change in the new coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time; as well as In response to the determination that the change in the new coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time is greater than the threshold, a signal is issued indicating that the plunger has been detected.
19. The system of claim 17, wherein obtaining the motor rotation data comprises: Obtain the output of a motor position sensor configured to detect the position of the motor; Obtain the timer value of the timer when the output of the motor position sensor changes; as well as The time interval between the position changes of the motor is determined based on the output of the motor position sensor and the timer value.
20. A fluid transport system, the fluid transport system comprising: A reservoir, the reservoir comprising a plunger and a cylinder for storing fluid; A drive system configured to linearly translate the plunger, the drive system including a motor; A motor position sensor, the motor position sensor being configured to measure the position of the motor; One or more processors, the one or more processors being electrically coupled to the motor and the motor position sensor; and One or more processor-readable storage media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: Obtain motor rotation data associated with the motor, which is configured to rotate stably to drive the plunger of the reservoir, the motor rotation data indicating the time interval between position changes of the motor; For each of the multiple rotations of the motor: Based on the motor rotation data, the measured rotation time of the motor rotation is determined; Based on the measured rotation time and previous maximum rotation time of the motor, the current maximum rotation time of the motor is determined; as well as Store the current maximum rotation time in a buffer; Based on the data in the buffer, the coefficient of variation of the motor rotation time is determined; Determine the change in the coefficient of variation of the motor rotation time relative to the baseline coefficient of variation of the motor rotation time; as well as Based on the comparison of the change with a threshold, it is determined whether the plunger was detected.
Citation Information
Patent Citations
Robotic lawn sprinkler
US5248093A
Redundancy control for a broadcast data transmission system
US5485465A
Methods and apparatuses for detecting occlusions in an ambulatory infusion pump
US7621893B2
Sensor assembly and medical device incorporating same
US8474332B2