Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AMBULATORY INFUSION DEVICE DRIVE CONTROL AND BLOCKAGE DETECTION
Document Type and Number:
WIPO Patent Application WO/2019/025591
Kind Code:
A1
Abstract:
Disclosed is a method for controlling operation of an ambulatory infusion device drive (2),the ambulatory infusion device drive (2) including a spindle drive (2) with a stepper motor (21) and a rotary encoder (23) in operative coupling with the drive member, the method including repeatedly executing a drive control sequence, the drive control sequence comprising: a) actuating the stepper motor (21) to execute a requested steps number in the current drive control sequence; b) receiving a drive member position, the drive member position being indicative of an actual position of a drive member following the actuation; c) computing, from the drive member position and the requested steps number, a missed steps number as deviation between the requested steps number and an executed steps number in the current drive control sequence; d ) determine, based on a statistical evaluation of a time-distribution of the missed steps number over a history of drive control sequences, if the drive (2) is blocked. The method further including generating an blockage alarm signal if it is determined that the drive is blocked.

Inventors:
POETSCHKE, Markus (Sandhofer Strasse 116, Mannheim, 68305, DE)
Application Number:
EP2018/071135
Publication Date:
February 07, 2019
Filing Date:
August 03, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ROCHE DIABETES CARE GMBH (Sandhofer Strasse 116, Mannheim, 68305, DE)
F. HOFFMANN-LA ROCHE AG (Grenzacherstrasse 124, 4070 Basel, 4070, CH)
ROCHE DIABETES CARE, INC. (9115 Hague Road, Indianapolis, IN, 46250, US)
International Classes:
H02P8/34; A61M5/168; A61M5/172
Domestic Patent References:
WO2012140052A12012-10-18
WO2015036359A12015-03-19
Foreign References:
US20160266555A12016-09-15
US20120192951A12012-08-02
US20150018758A12015-01-15
EP3172441A12017-05-31
Other References:
EXXELIA: "AE11 - absolute optical encoder", May 2016 (2016-05-01), XP055517951, Retrieved from the Internet [retrieved on 20181022]
Attorney, Agent or Firm:
RENTSCH PARTNER AG (Bellerivestrasse 203, Postfach, 8034 Zürich, 8034, CH)
Download PDF:
Claims:
Claims

1 . Drive control unit ( 1 1 ) for an ambulatory infusion device drive ( 2 ) , the ambulatory infusion device drive ( 2 ) comprising a stepper motor ( 21 ), wherein the ambulatory infusion device drive ( 2 ) is configured to repeatedly execute a drive control sequence, the drive control sequence comprising the steps of: a) actuating the stepper motor ( 21 ) to a execute a requested steps number in a current drive control sequence; b) receiving a drive member position, the drive member position being indicative of an actual position of a drive member following the actuation; c) computing, from the drive member position and the requested steps number, a missed steps number as deviation between the requested steps number and an executed steps number in the current drive control sequence; d ) determining, based on a statistical evaluation of a time-distribution of the missed steps number over a history of drive control sequences, if the ambulatory infusion device drive ( 2 ) is blocked; wherein the drive control unit ( 1 1 ) is further configured, if it is determined that the ambulatory infusion device drive ( 2 ) is blocked, to generate a blockage alarm signal.

2. Drive control unit ( 1 1 ) according to claim 1 , wherein the history of drive control sequences is time-limited.

3. Drive control unit ( 1 1 ) according to either of the preceding claims, wherein the drive control unit ( 1 1 ) stores score values for pairs of executed steps numbers and missed steps numbers, wherein the method includes retrieving a score value as determined by the executed steps number and missed steps number, computing a score sum of score values for a pre-determined number of past and preferably consecutive successive sequences, and comparing the score sum with a score sum threshold.

4. Drive control unit ( 1 1 ) according to either of the preceding claims, wherein the method includes determining if an estimator for a threshold quantile of a distribution of the missed-steps number over a limited history exceeds a predetermined missed steps threshold.

5. Drive control unit ( 1 1 ) according to either of the preceding claims, wherein the drive member position is an absolute rotatory position of the drive member.

6. Drive control unit ( 1 1 ) according to either of the preceding claims, wherein the method includes determining if the current drive control sequence has been correctly executed and increasing or decreasing a counter value based on the comparison, and determining if the ambulatory infusion device drive ( 2 ) is blocked includes comparing the counter value with a counter value threshold.

7. Drive control unit ( 1 1 ) according to either of the preceding claims, wherein the method includes: d') determining if the missed steps number exceeds a first missed steps threshold, and d' 1 ) if the if the missed steps number does not exceed the first missed steps threshold, decrease a score value by a score decrease value, d'2 ) or, alternatively, if the missed steps number does exceed the first missed steps threshold, increase the score value by a score increase value; wherein determining if the ambulatory infusion device drive ( 2 ) is blocked includes determining if the score value exceeds a score value threshold.

8. Drive control unit ( 1 1 ) according to claim 7, wherein the score increase value may be either of a first score increase value and a second score increase value and the drive control unit ( 1 1 ) is configured, in step (d'2 ) , to determine if the missed steps number exceeds a second missed steps threshold, and d'2a ) if the missed steps value exceeds the second missed steps threshold, increase the score value by the second score increase value, d'2b) or, alternatively, if the missed steps value does not exceed the second missed steps threshold, increase the score value by the first score increase value.

9. Drive control unit ( 1 1 ) according to claim 8, wherein the method includes the steps of computing, based on a distribution of the missed steps number, a first rate of first order events and a second rate of second order events, wherein a first order event is characterized by the missed steps number of a drive control sequence exceeding the first missed steps threshold and a second order event is characterized by the missed steps number of a drive control sequence exceeding the second missed steps threshold different from the first missed steps threshold, and the method further includes computing a weighted sum of first order events and second order events, wherein determining if the ambulatory infusion device drive ( 2 ) is blocked includes comparing the weighted sum with a weighted sum threshold.

1 0. Drive control unit ( 1 1 ) according to either of claims 1 to 6 , wherein the method includes the steps of computing, based on a distribution of the missed steps number, a first rate of first order events and a second rate of second order events, wherein a first order event is characterized by the missed steps number of a drive control sequence exceeding a first missed steps threshold and a second order event is characterized by the missed steps number of a drive control sequence exceeding a second missed steps threshold different from the first missed steps threshold, and the method further includes computing a weighted sum of first order events and second order events, wherein determining if the ambulatory infusion device drive ( 2 ) is blocked includes comparing the weighted sum with a weighted sum threshold.

Drive control unit ( 1 1 ) for an ambulatory infusion device drive ( 2 ), wherein the drive control unit ( 1 1 ) includes a position determination unit ( 1 2 ) wherein the position determination unit ( 1 2 ) is configured to:

A) receive an encoder signal from an encoder ( 23 ) in operative coupling with the drive member, the encoder signal being indicative of a movement of the drive member;

B) determine, based on the encoder signal, the drive member position, wherein the encoder signal is a periodic binary signal, wherein the position determination unit ( 1 2 ) includes a shifting register, wherein the position determination unit ( 1 2 ) is configured to:

B 1 ) receive the encoder signal and enter the encoder signal to the shifting register;

B2 ) determine a cyclic drive member position from a pre-computed reconstruction lookup table, the reconstruction lookup table comprising pairs of shift register values and associated cyclic drive member positions;

B3 ) determine a reconstructed drive member position from the cyclic drive member position and at least one previous reconstructed drive member position.

1 2. Drive control unit ( 1 1 ) according to claim 1 1 , wherein the position determination unit ( 1 2 ) is configured to determine the drive member position from the reconstructed drive member position and at least one previous reconstructed drive member position by way of moving average computation.

1 3. Drive control unit ( 1 1 ) according to either of claim 1 1 or claim 1 2, wherein the position determination unit ( 1 2 ) is configured to determine if the shifting register value is invalid , to increase, in case of the shifting register value being invalid and invalid values counter and to generate an alarm signal if the invalid values counter exceeds an invalid values threshold.

14. Method for controlling operation of an ambulatory infusion device drive ( 2 ),the ambulatory infusion device drive ( 2 ) including a spindle drive with a stepper motor ( 21 ) , a drive member and a rotary encoder ( 23 ) in operative coupling with the drive member, the method including repeatedly executing a drive control sequence, the drive control sequence comprising: a) actuating the stepper motor ( 21 ) to execute a requested steps number in a current drive control sequence; b) receiving a drive member position, the drive member position being indicative of an actual position of a drive member following the actuation; c) computing, from the drive member position and the requested steps number, a missed steps number as deviation between the requested steps number and an executed steps number in the current drive control sequence; d ) determining, based on a statistical evaluation of a time-distribution of the missed steps number over a history of drive control sequences, if the ambulatory infusion device drive ( 2 ) is blocked; the method further including generating a blockage alarm signal if it is determined that the ambulatory infusion device drive ( 2 ) is blocked.

Computer program product including a non-transient computer readable medium having stored therein computer program code configured to direct a processor to execute a method according to 1 4 and/or to act as drive control unit ( 1 1 ) according to either of claims 1 to 1 3.

Description:
Ambulatory infusion device drive control and blockage detection

Technical field

The present disclosure is in the field of ambulatory infusion devices with a drive. More particularly, it is related to the detection of a blocked drive. The disclosure is further related to determining a drive member position of a drive based on an encoder signal.

Background, prior art

Ambulatory infusion devices are well known in the art for example in the therapy of Diabetes Mellitus by Continuous Subcutaneous Insulin I nfusion (CSI I ) as well as in pain therapy or cancer therapy and are available from a number of suppliers. Throughout this document, a design that is particularly suited for CSI I is generally assumed for exemplary purposes.

Ambulatory infusion devices that are used for CSI I are designed to be carried by a Person with Diabetes ( PwD), also referred to as "user", generally continuously night and day. The devices are designed to be carried concealed from view, e. g . with a belt clip or in a trousers' pocket, and /or may be designed to be alternatively carried directly attached to the body via an adhesive pad. Ambulatory infusion devices are designed to infuse liquid drug, in particular insulin, in at least two ways. First, they are designed to infuse liquid drug substantially continuously according to a typically pre-programmed and time variable basal infusion schedule autonomously, i. e. without requiring particular user interactions or operations. Second, they are designed to infuse larger drug boli on demand, for example to compensate for the intake of carbohydrates as well as to correct undesired high blood glucose values. To control these and optional further functions, ambulatory infusion devices comprise an electronics control unit, typically based on one or more microprocessors respectively microcontrollers. Throughout this document, the expressions "ambulatory infusion device" respectively "ambulatory infusion system" refer to a device respectively system with at least the before-described basic functionality. The infusion that is carried out with such devices is in any case a metered infusion of controlled volumes. According to a classic and well-established design, ambulatory infusion devices or systems are typically of the syringe-driver type where liquid drug is infused out of a liquid drug cartridge by way of controlled and incremental displacement of a cartridge piston. For displacing the cartridge piston, a spindle drive with an electric motor is provided. Typical cartridge volumes are in a range of typically e. g. 1 ml to 3 ml and store liquid drug, in particular insulin, for a number of days up to a week or more. A number of drawbacks of such devices are known in the art. In particular, they have a limited precision because they involve delivering very small drug amounts, typically in the nanoliter range, out of a drug cartridge having an overall drug volume in the millilitre range.

The drive may use different types of actuators, such as standard DC motors, brushless DC motors or stepper motors. Stepper motors are generally suited because they are comparatively simple to control or actuate and have a defined step-angle that is associated with a well-defined incremental displacement of the cartridge piston and accord ingly the metering and infusion of a well-defined incremental drug amount.

Summary of disclosure A serious issue with ambulatory infusion devices are potential occlusions or blockages of the infusion cannula or tubing. Such occlusion results in the drive being mechanically blocked. A blocked drive may also occur for other reasons, such as mechanical defect or due to dirt. Throughout this document, the general expressions "blocked" or blockage are used for such situation. In practice, however, the expressions "occluded" and "occlusion" as most common cause for a blocked drive are used in a largely synonymous way.

Due to a number of reasons, related in particular to the small involved liquid volumes and inherent elasticity, a blocked drive is often hard to detect. Detection, however, is important and should be as early as possible, since a blocked drive results in the drug infusion being interrupted, resulting in severe and potentially fatal medical complications.

For detecting a blocked drive and in particular an occlusion, different approaches have been proposed and implemented for different drive systems, such as motor current measurement for DC motors, the monitoring of the motor axis rotation, and the measurement of an axial reaction force that steeply increases in case of an occlusion.

However, these approaches do not always lead to fully sufficient results and/or require a comparatively complex and costly desig n, e. g. for realizing a reaction force measurement.

The WO 201 5/036359 A1 discloses an apparatus for automatic ejection of a fluid. The apparatus has a control unit which is configured to control the apparatus as a function of an actuation step failure number, the actuation step failure number being the number of failed drive train actuation steps since the last successful drive train actuation step.

It is an overall objective of the present invention to improve the situation regard ing the detection of blockages and occlusions in particular where a stepper motor is used as actuator. In particular, it is an objective to provide a detection of blockages and occlusions with a sufficiently short detection time, while allowing a comparatively simple and cost- efficient design. Further, the risk of false alarms, which are known to be cumbersome and annoying for the user, is favourably small. The overall objective is achieved in a general way by the subject matter of the independent claims. Exemplary and favourable embodiments are defined by the dependent claims as well as the overall disclosure of the present document.

According to a first aspect, the overall objective is achieved by a drive control unit for an ambulatory infusion device drive. The ambulatory infusion device drive includes a stepper motor, wherein the drive is configured to repeatedly execute a drive control sequence, the drive control sequence comprising the steps of:

a) actuating the stepper motor to a execute a requested steps number in the current drive control sequence;

b) receiving a drive member position, the drive member position being indicative of an actual position of a d rive member following the actuation;

c) computing, from the drive member position and the requested steps number, a missed steps number as deviation between the requested steps number and an executed steps number in the current drive control sequence;

d ) determining, based on a statistical evaluation of a time-distribution of the missed steps number over a history of drive control sequences, if the drive is blocked.

The drive control unit is further configured, if it is determined that the drive is blocked, to generate a blockage alarm signal.

According to a further aspect, the overall objective is achieved by a method for controlling operation of an ambulatory infusion device drive. The ambulatory infusion device drive may include a spindle drive with a stepper motor and a rotary encoder in operative coupling with the drive member. The method may further include repeatedly executing a drive control sequence, the drive control sequence comprising: a) actuating the stepper motor to execute a requested steps number in the current drive control sequence;

b) receiving a drive member position, the drive member position being indicative of an actual position of a drive member following the actuation;

c) computing, from the drive member position and the requested steps number, a missed steps number as deviation between the requested steps number and an executed steps number in the current drive control sequence;

d ) determining, based on a statistical evaluation of a time-distribution of the missed steps number over a history of drive control sequences, if the drive is blocked.

The method may further include generating a blockage alarm signal if it is determined that the drive is blocked.

It is noted that the amount of drug that is infused in step (a) of the drive control sequence is defined by the requested steps number. This requested steps number serves as input value for the method as defined by the generally pre-programmed basal infusion regime in accordance with a doctor ' s prescription and /or a bolus infusion requested by the user in a specific situation. The amount of drug that is infused and the therapy that is received by the user are accordingly independent from and do not depend on any steps of the method. Consequently, the method does also not affect the doctor ' s and user ' s liberty regarding the drug infusion. The method is implemented via design of the drive control unit of an ambulatory infusion device, typically based on corresponding software respectively firmware code.

According to a still further aspect, the overall objective is achieved by a computer program product. The computer program product includes a non-transient computer readable medium having stored therein computer program code configured to direct a processor to execute a method according to any embodiment as disclosed before and /or further below. The code may further control a processor to act as drive control unit according to any embodiment as discussed before and /or further below.

According to a still further aspect, the overall objective is achieved by an ambulatory infusion device. The ambulatory infusion device includes a drive and a drive control unit according to either embodiment as disclosed. Further aspects of an ambulatory infusion device in accordance with the present disclosure are discussed further below in the context of exemplary embodiments.

It is to be understood that disclosed methods, devices and computer prog ram products mirror each other and have special corresponding features. Therefore, particular embodiments of a device, in particular a drive control unit, also disclose a corresponding method embodiment or vice versa, even where not explicitly mentioned.

The requested steps number in a drive control sequence is the number of motor steps that shall be executed continuously and in an uninterrupted sequence. The stepper motor may be actuated differently for the different steps. I n particular the sequence may have an initial acceleration phase, followed by a steady-state phase, followed by a deceleration phase. The time duration of a single step and according ly the time per step for which the single stator coils of the stepper motor are powered may in particular be longer in the acceleration and/or deceleration phase as compared to the steady-state phase and may further vary over the acceleration and /or deceleration phase.

Typically, the maximum number of motor steps in a drive control sequence is limited. By way of example, the maximum number of motor steps in a drive control sequence is 1 8, with the duration of such sequence being about 20 milliseconds. Other values and in particular more or less steps, however, may be used as well.

In particular for a single incremental basal infusion, a drive control sequence may have only a small number of motor steps, potentially only a single motor step. For larger incremental basal infusions (at a higher basal infusion rate) , as well as for the infusion of on -demand boli and for the initial filling ( priming ) of an infusion line and/or infusion cannula, the control unit is generally configured to control the execution of a number of drive control sequences after each other in accordance with the volume to be infused, with the single drive control sequences being separated by a pause for battery recovery purposes. The drive member position is an absolute position of the drive member. The drive member is an element of the drive which position is determined.

The drive member position may be an absolute rotatory position of the drive member. Here and in the following, it is mostly assumed that the drive member is given by the motor axis of the stepper motor and the drive member position is its rotatory position. Alternatively, however, the drive member may also be the rotatory position of another drive element, such as the axis of a reduction gear. Alternatively, the drive member may be a plunger rod as last element (output element of the drive) that is designed to engage a drug reservoir piston and is linearly displaced as the drive is actuated. For such embodiments, the drive member position may be a displacement position relative to a reference position. For the drive member position being a rotatory position, it is measured as angle from an initialization point in time. The initialization point in time may, e. g. , be determined by the time where the drug reservoir is replaced and a fresh drug reservoir is initialized for subsequent use. A rotatory drive member position may according ly have values corresponding to an angle of more than 360°, generally 360° times the number of revolutions of the drive member, e. g, the motor axis. Here, it is generally assumed that the drive member position is given as angel. It may, however, also be expressed as multiple of the step angle of the stepper motor. The drive member position is determined at the end respectively following the execution of a drive control sequence.

For determining the drive member position, a position sensor is provided as part of or in operative coupling with the drive control unit. For the drive member position being an absolute displacement position respectively linear position as mentioned before, the position sensor may be a linear encoder or other type of linear position sensor as generally known in the art. For the drive member position being a rotatory position, the position sensor may be a rotatory position sensor, in particular a rotatory encoder.

The missed steps number is the difference between the number of steps that the stepper motor is commanded and actuated to execute and the number of steps that is actually executed in a particular drive control sequence. While some missed steps are generally acceptable and known to occur during regular operation even if no occlusion or other fault condition is present, an excessive missed steps number and in particular an increase of the missed steps number over time respectively an accumulation of missed steps is indicative of a fluidic occlusion or of the drive being mechanically blocked for other reasons.

Via the statistical evaluation of the time-distribution of the missed steps number over a history of drive control sequences, an increase respectively accumulation of missed steps is determined. The statistical evaluation is favourably designed such that an actual drive blockage respectively occlusion is safely detected at an early point in time, while showing a low risk of false alarms. While the former is a strict requirement in order to prevent medical complications resulting from interrupted drug infusion, the latter is highly desirable from an application point of view. False alarms are known to be very annoying and inconvenient. Further, they often result in the user unnecessarily replacing the infusion line, cannula and /or further disposables, thereby increasing the therapy costs.

In some embodiments, the history of drive control sequences is time-limited. In an exemplary embodiment, the length of the history that is statistically evaluated is limited to the last ten drive control sequences. Other values, however, may be used as well.

In some embodiments, the drive control unit stores score values for pairs of executed steps numbers and a missed steps numbers. The method includes the steps of determining an executed steps number of executed steps in the current drive control sequence, retrieving a score value as determined by the executed steps number and missed steps number, computing a score sum of score values for a pre-determined number of past and preferably consecutive successive sequences, and comparing the score sum with a score sum threshold. It is determined that the drive is blocked if a pre-determined score sum threshold is reached respectively exceeded .

The score values are favourably pre-computed and stored by a memory, typically a nonvolatile memory or permanent memory, of the d rive control unit. In some embod iments, the score values are stored by way of a lookup table respectively matrix. Ideally, the executed steps number corresponds to the requested steps number. It may, however, also be larger or smaller than the requested steps number, resulting from missed steps, as well as over- or undershoots of the drive member and noise of the drive position determination respectively encoder signal. The score values are favourably determined such that high score values are assigned to a high missed steps number. Alternatively to explicitly storing the ind ividual score values, the score values may be computed from a formula in dependence of the executed steps number and missed steps number. In some embodiments, the method includes determining if an estimator for a threshold quantile of a distribution of the missed-steps number over a limited history exceeds a predetermined missed steps threshold. The method may include determining that the drive is blocked if said threshold quantile respectively its estimator reaches respectively exceeds the missed steps threshold. By way of example, the threshold quantile may be the upper 25 % percentile. As a general rule, the sensitivity of the method for detecting a blockage increases with the threshold quantile increasing and the missed steps threshold decreasing. Further, the sensitivity is dependent on the history length that is considered and increases with decreasing time span. The history length is to be understood as covering a limited number of previous drive control sequences.

In a basic implementation, this type of embodiment may be implemented as follows: A list of the missed steps number is maintained for a pre-determined number of consecutive drive control sequences, with the list being sorted according to the missed steps number. In each drive control sequence, the missed steps number for this drive control sequence is added to the sorted list. At the same time, a value is deleted from the list, such that the number of list entries stays constant, e. g. 7. In each drive control sequence, the deleted value is either of the lowest value (stored as lowest-ranking list element element) or the highest value (stored as highest-ranking list element) of the stored passed missed steps numbers. Deleting of lowest and highest value, however, is not carried out in strictly alternating order, but according to a pre-determined proportion. That is, the lowest value may be deleted in each of a drive control sequences, and deleting the highest value in each of b drive control sequences. Deleting of the lowest value in a drive control sequences and deleting of the highest value in b drive control sequences may be carried out in sequential order, i. e. , the lowest value is deleted for a number of a consecutive, drive control sequences, followed by deleting the highest value for a consecutive number of b drive control sequences, and so forth. Alternatively, however, deleting of the lowest value and deleting of the highest value may be carried out according to a different pattern, that results in a desired ratio for deleting the lowest and highest value, respectively. It is found that the value that is stored as middle-ranking element converges to a percentile value that is determined by the relation of a and b after a number of drive control sequences respectively iterations in a satisfying manner. By way of example, the middle-ranking element (for example the element having rank 4 for a list of seven values) converges towards the upper 25 % percentile for a— 1 and b— 3.

In some embodiments, the method includes the step of computing, based on the distribution of the missed steps number, a first rate of first order events and a second rate of second order events. A first order event is characterized by the missed steps number of a drive control sequence exceeding a first missed steps threshold. A second order event is characterized by the missed steps number of a drive control sequence exceeding a second missed steps threshold different from the first missed steps threshold. The method further includes computing a weighted sum of first order events and second order events. Determining if the drive is blocked includes comparing the weighted sum with a weighted sum threshold. It may be determined that the drive is blocked if the weighted sum reaches respectively exceeds the weighted sum threshold. It is noted that this type of embodiment is not limited to a first order and a second order, but may be extended events of order m = 1 ... M, for any desired natural number for M. For the m-th order event, a corresponding m-th rate is computed and a corresponding m-th missed steps threshold is defined . The weighted sum is computed over all M orders.

In a basic implementation, this type of embodiment may be implemented as follows. For each occurrence of a first order event, the time of occurrence is entered to a first shifting register, in particular a First-In- First-Out ( FI FO) shifting register. Similarly, for each occurrence of a second order event, the time of occurrence is entered to a separate second shifting register. As time of occurrence, no absolute time is favourably stored, but the value i of a drive control sequence counter, the drive control sequence counter being incremented with each drive control sequence, following an initialization at an initialization point in time, as explained before. Without loss of generality, it is assumed that the first missed steps threshold S j is smaller than the second missed steps threshold MS 2 , for example MS! = 3 and MS 2 = 7. With i as value of the drive control sequence counter at the present point in time, I as value of the drive control sequence counter for the oldest first order event as stored in the first shifting register, I 2 as value of the drive control sequence counter for the oldest second order event as stored by the second shifting register, and L 1 ( L 2 as length of the first respectively second shifting register, the first rate r of first order events may be computed as

Similarly, the second rate r 2 of second order events may be computed as

The weighed sum WS may be computed as

WS = W 1 - r i + W 2 - r 2 l

with W 1 ( W 2 being pre-determined weighting factors.

In some embodiments, the method includes determining if the current drive control sequence has been correctly executed. The method further includes increasing or decreasing a counter value based the comparison. Determining if the drive is blocked includes comparing the counter value with a counter value threshold. Comparison is to be understood as determination whether the current drive control sequence has been correctly executed. In some embodiments, the method includes:

d') determining if the missed steps number exceeds a first missed steps threshold, and d' 1 ) if the if the missed steps number does not exceed the first missed steps threshold, decrease a score value by a score decrease value,

d'2 ) or, alternatively, if the missed steps number does exceed the first missed steps threshold, increase the score value by a score increase value.

It may be determined that the drive is blocked if the if the score value reaches respectively exceeds a score value threshold. This type of embodiment combines the properties and advantages of before-described embodiments in a particularly efficient implementation.

In some embodiments, the drive control unit is configured, in step (d' 1 ), to set the score value to zero if decreasing the score value by the score decrease value would result in the score value being negative. Step (d' 1 ) is carried out if the first missed steps threshold is not exceeded in the current drive control sequence, indicating that the current drive control sequence has been executed. Setting the score value to zero as indicated above, rather than allowing negative score values, ensures that a long sequence of correctly executed drive control sequences does not result in the built-up of a buffer which would unduly delay or prevent the detection of a later occlusion.

In some embodiments, the score increase value may be either of a first score increase value and a second score increase value. The drive control unit may be configured, in step (d'2 ), to determine if the missed steps number exceeds a second missed steps threshold, and d'2a ) if the missed steps value exceeds the second missed steps threshold, increase the score value by the second score increase value,

d'2b) or, alternatively, if the missed steps value does not exceed the second missed steps threshold, increase the score value by the first score increase value. The first missed steps threshold and the second missed steps threshold may be predetermined, with the second missed steps threshold being different from the first missed steps threshold. The second missed steps threshold may in particular be larger than the first missed steps threshold. The here described approach with a first missed steps threshold and a second missed steps threshold may be generalized for a larger number of missed steps thresholds in an analogue way using, e. g. a third missed steps threshold, a fourth missed steps threshold and so forth.

In some embodiments, the d rive control unit is configured to determine at least one of the missed steps number being below a negative missed steps threshold and/or the missed steps number being below a positive missed steps threshold, and to generate an alarm signal in the affirmative case. Via these steps, a plausibility for the executed steps number may implemented . It is determined if the executed steps number is in a reasonable range or whether the executed steps number is prima facie incorrect. The alarm signal may be different from the blockage alarm system and be indicative for a general drive respectively device fault. The steps may be executed for each drive control sequence, e. g. following the computation of the missed steps number.

In some embodiments, the drive control unit is configured to compute an accumulated missed steps number over a number of consecutive drive actuations, and to generate an alarm signal if the accumulated missed steps number exceeds an accumulated missed steps threshold. Via these steps, another plausibility check for the executed steps number is implemented. The steps may be executed for each drive control sequence, e. g. before or after the before described plausibility check.

A position sensor or encoder that is used for determining the drive potion as mentioned before may either be an absolute or an incremental encoder. An absolute encoder provides a signal that directly corresponds to the absolute linear or rotatory position of the drive member. Its sensor may directly be used as drive member position. An incremental encoder, e. g. a magnetic or optical incremental encoder, provides a periodic encoder sig nal upon the drive member moving . For a rotatory encoder, the period of the periodic encoder signal may be 360°, corresponding to a full rotation, or may be higher, i. e. have more than one cycle per full rotation. For the case of an exemplary ambulatory infusion device as used as CSCI I , the drive member position as rotatory poison of the motor axis may cover, e. g. between 500 and 1 000 full rotations in typical examples. In any case, for an incremental encoder, the drive member position as absolute position needs to be computed respectively reconstructed from the encoder signal. It is noted that the expression "absolute position" refers to a position in relation to a reference position. Such reference position, however, is not necessarily pre-defined and determined by the mechanical design . Instead, any desired position may in principle serve as reference position. By way of example, the reference position is a position of the drive member when switching the ambulatory infusion device into an active operation mode (frequently also referred to as "RU N" mode) , when basal infusion is carried out.

In some embodiments, the d rive control unit includes a position determination unit. The position determination unit may be config ured to

A) receive an encoder signal from an encoder in operative coupling with the drive member, the encoder signal being indicative of a movement of the drive member; B) determine, from the encoder signal, the drive member position.

It is noted that the drive member position unit and its embodiments as well as methods for determining a drive position, where not stated differently, are generally independent form other aspects of the present disclosure, in particular the detection of a blocked drive and may be generally used in the context of an ambulatory system control as well as further applications. In dependence of the encoder design, an encoder raw signal that is provided by the encoder may be of different types and shapes. I n some embodiments in particular of an optical encoder, the encoder raw signal may be a pulsed or square signal of high edge steepness. Form the encoder raw signal, a binary encoder signal may be generated by way of a Schmitt trigger in hardware or software/computer code. In some embodiments that are also generally assumed in the following, the encoder signal has period of ideally 1 80°.

In some embodiments of a position determination unit, the encoder signal is a periodic binary signal. The position determination unit may include a shifting register. The position determination unit may be configured to:

B 1 ) receive the encoder signal and enter the encoder signal to the shifting register; B2 ) determine a cyclic drive member position from a pre-computed reconstruction lookup table, the reconstruction lookup table comprising a pairs of shift register values and associated cyclic drive member positions;

B3 ) determine a reconstructed drive member position from the cyclic drive member position and at least one previous reconstructed d rive member position.

When actuating the stepper motor to execute a drive control sequence with a number of motor steps as explained before, a position determination is favourably carried out for each motor step. In some embodiments, the position determination may be carried out as a whole for each motor step during the actuation. In view of real-time computation constraints and for the sake of computational efficiency, however, the encoder signal may be continuously fed into a buffer memory, with the position determination being carried out for all motor steps at the end of the drive control sequence.

The expression "cyclic drive member position" refers to a position of the drive member, in particular rotary position of the drive member, that is obtained from the encoder signal and the reconstruction lookup table. The cyclic drive member position is periodic with the same period as the encoder signal. For the here-assumed exemplary design, the cyclic drive member position is accordingly periodic with a period of 1 80° and unique for each position within a period.

For this type of embodiment, the encoder signal is entered respectively feed into the shifting register, in particular a FI FO reg ister, as series of "0" values and " 1 " values. The number of consecutive "0" respectively " 1 " values depends, in addition to the encoder design, on the sampling frequency of the binary encoder signal in relation to the rotational speed. For exemplary purposes, it is assumed that the encoder signal is fed into the shifting register as Least Significant Bit ( LSB ) and shifting is carried out toward the Most Significant Bit ( MSB) . The sampling frequency is selected such that more than one "0" value respectively " 1 "value generally occurs in sequence. In an exemplary desig n that is also generally assumed in the following, the encoder signal is periodic with a period of 1 80°, and the sampling is carried out with one sample for each motor step, e. g. 1 0 samples per period. Ideally, the encoder signal would accord ingly, for a continuous actuation of the drive, consist of sequences of 5 consecutive "high" respectively " 1 " values, followed by 5 consecutive "low" respectively "0" values, and so forth, with each series of consecutive " 1 " values respectively "0" values corresponding to a rotational angle of 90°.

In practice, however, this is not the case for a number of reasons. First, some "jitter" is typically present when generating the binary signal by way of a Schmitt trigger as explained before and the number of "0" values and " 1 " values also depends on the (generally not identical ) threshold voltages of the raw signal for the rising and falling flange, respectively . Further, the beginning and ending of a drive actuation is connected with uncertainty regarding the rotatory position of the d rive member. Further, some amount of missing steps is known and acceptable to occur. The length of the shifting register is favorable longer than the number of consecutive "0" values and " 1 " values to be expected, but may be shorter than the total number of samples for a period . In an exemplary implementation, the length of the shifting register is 8, corresponding to 1 byte. The reconstruction lookup table is determined based on the before-mentioned encoder signal, further taking into account the before- mentioned uncertainties and deviations from the ideal behavior.

The reconstruction lookup table may be determined by way of reference measurements where the encoder and an additional reference encoder that provides a reference position signal are synchronously evaluated. Further, different reconstruction lookup tables as explained before may be combined to form the reconstruction lookup table. Further, the reconstruction lookup table may be optimized numerically by minimizing an error, e. g. a sum of squares residuum, between the reconstructed encoder angle and the reference position signal.

As mentioned before, the cyclic drive member position is periodic with a period corresponding to the encoder signal, e. g. 1 80° in an exemplary embodiment. The reconstructed drive member position, in contrast, is an absolute position

For n being an index value for the executed motor steps, indicating the current drive control sequence, the reconstructed drive member position θ η as ( rotatory) position may be computed in step B3 as

θ η = - 90° + mod(T - - 90°, 180°) ( 1 ),

with T as cyclic drive member position and 0 n--1 as reconstructed drive member position for the preceding motor step. For the more general case of the cyclic drive member position being periodic with a period per, the following general formula may be applied:

( 1 a) In some embod iments, the reconstructed drive member position is directly used as drive member position at the end of each drive control sequence. In further embodiments, the position determination unit is configured to determine, in each drive control sequence, the drive member position from the reconstructed drive member position as explained before and at least one previous reconstructed drive member position by way of moving average computation.

In an embodiment, the position determination unit is configured to determine if the shifting register value is invalid, to increase, in case of the shifting register value being invalid an invalid values counter and to generate an alarm signal if the invalid values counter exceeds an invalid values threshold.

Resulting from the encoder signal as explained before, not all possible values of the shifting register (with the expression "value" referring to a bit pattern) are meaningful. Non- meaningful values are referred to as "invalid". By way of example and for the before discussed exemplary design, a pattern "01 01 01 01 " (with the MSB being leftmost and the LSB being rightmost) is invalid , since it cannot arise from a sequence of "0" values and " 1 " values as generated by the encoder. While sporadic invalid values may occur, an excessive occurrence is indicative of a device fault or generally a hazardous situation.

Brief description of the figures

Fig. 1 shows an ambulatory infusion device with an ambulatory infusion device drive unit in a schematic functional view.

Fig.2 shows an exemplary operational flow for detecting a blockage or occlusion; shows an exemplary operational flow for determining a drive member position. Exemplary Embodiments

In the following, reference is first made to Fig. 1 . Figure 1 shows an ambulatory infusion device 1 00 in accordance with the present disclosure together with associated elements in a schematic functional view. The ambulatory infusion device 1 00 includes a control unit 1 and a drive 2.

The control unit 1 is generally realized by electronic circuitry and is typically based on one or more processors, such as microcomputers and/or microcontrollers, and may further include peripheral components as well as safety circuitry as generally known in the art.

The one or more processors are configured to execute and operate in accordance with computer program code that is stored as software and/or firmware. The control unit 1 is configured to control overall operation of the ambulatory device 1 00, in particular for basal drug infusion and/or on-demand bolus infusion as explained above. The control unit 1 includes a drive control unit 1 1 and the drive control unit 1 1 includes a position determination unit 1 2 in accordance with the present disclosure. The control unit 1 further includes an alarming device 1 3 in operative coupling with the drive control unit 1 1 , the alarming device 1 3 including one or more of an acoustic or tactile indicator.

The ambulatory infusion device 1 00 further includes a drive unit 2 that is designed to couple, in an operational config uration, with a drug reservoir 3. The drive unit 2 includes a rotatory stepper motor 21 that is controlled and actuated by the drive control unit 1 1 . The stepper motor 2 1 acts on a gear unit 22, and the gear unit 22 acts, in an operational configuration, on a cartridge piston that is sealing and sliding received in a cartridge body of a drug cartridge 3 , the drug cartridge 3 forming a liquid drug reservoir. The gear unit 22 may include one or more reduction gears. For transforming the rotatory motor that is generated by the stepper motor 21 into a linear d isplacement of the cartridge piston, a spindle drive unit with a threaded spindle is provided. This overall arrangement of the drive forms a so-called syringe driver.

From the cartridge 3 , drug is infused into the body of a user respectively patient 900 via an infusion line 890 in controlled and metered way, in accordance with the displacement of the cartridge piston.

In an embodiment, the ambulatory infusion device 1 00 is a compact device with a favourably watertight housing, which is designed to further receive the cartridge 3 in a cartridge compartment. In such embodiment, the housing is favourably sized and shaped to be carried, e. g . with a belt clip or in a trousers' pocket. Here, the infusion line 890 typically includes a catheter tubing of, e. g. 0.5 m to 1 .5 m length with an infusion cannula. Typically, the ambulatory infusion device is designed for an application time of several years.

In an alternative design , the ambulatory infusion device, in particular the control unit 1 and the drive unit 2, are designed to removable engage a disposable cradle device, the disposable cradle device being designed to be attached to the user's skin via an adhesive pad. Further, cartridge 3 of such embodiment may be designed to reliably engage the ambulatory infusion device 1 00 in a side-by-side configuration and to be coupled to the crad le device together with the ambulatory infusion device 1 00. U pon coupling, the operatively coupling between the gear unit 22 and the cartridge piston is established. The threaded spindle of the spindle drive may be integral part of the cartridge 3 and the drive nut may be part of the gear unit 22, or vice versa, with a releasable coupling between them. For such embodiment, the infusion line 890 may be reduced to an infusion cannula that directly projects from the skin-contacting surface of the cradle device. In such embodiment, the ambulatory infusion device 1 00 may have an application time of several weeks to several years, while the crad le device and the cartridge 3 may have a typical lifetime in a range of a number of days up to, e. g. , two weeks. The ambulatory infusion device 1 00 is accordingly used with a number of cradle devices and reservoirs in sequence and is accordingly designed to be attached and detached without damage. In a further design, the ambulatory infusion device 1 00 and the reservoir 3 are designed as common device that is favourably sealed in a water-tight manner and designed to be directly ad hesively attached to the body. For such design, the whole device is designed for a limited application time of a number of days up to a few weeks and to be subsequently discarded. A power source, typically in form of a rechargeable or non-rechargeable battery, may be part of the ambulatory infusion device 1 00 or be formed as common unit with the cartridge 3. The ambulatory infusion device 1 00 may further include other components such as a user interface, a display, a data communication unit etc. , as generally known in the art. The ambulatory infusion device 1 00 may further be designed to exchange data with and be remotely controlled by a separate remote control device or diabetes management device. Such device may, among others, be used for programming the basal infusion schedule and requesting the infusion of on-demand drug boli.

In the following , reference is additionally made to Fig. 2. Fig. 2 shows the operational flow of an exemplary method in accordance with the present disclosure, as executed by the drive control unit 1 1 .

The operations as shown in Fig. 2 are executed as part of each drive control sequence for an incremental basal infusion or as part of an on-demand-bolus infusion. It is noted that in particular an on-demand-bolus infusion is realized by a number of drive control sequences that are executed one after the other, until the total requested bolus amount is infused. It is assumed that the drive 2 has been actuated to execute a requested steps number RS at respectively prior to starting step S and the actuation of the stepper motor 21 is finished for the current drive control sequence. The current drive control sequence is referred to with index i, the directly preceding drive control seq uence with i— 1, and so forth.

In subsequent step S01 , the drive member position is determined by the position determination unit 1 2. The drive member is the motor axis and the drive member position is its rotational angle φ as absolute rotational angle starting form an initialization as explained above. The value range of the drive member position φ is accordingly m 360°, with m as number of revolutions for emptying the cartridge 3. The position determination unit 1 2 determines the rotational angle φ as drive member position based on the signal received from the encoder 1 2 and a reconstruction lookup table as described above in the general description.

In subsequent step S02, the missed steps number 5 έ for the current drive control sequence is computed for the current drive control sequence as difference between the requested steps number RS and the executed steps number. The executed steps number may be computed from the difference of the drive member position for the current and the preceding sequence, φί— φι-ί - In this implementation, the missed steps number is a rotational angle. By dividing it by the step angle of, e. g. 1 8°, it may be computed as absolute number. Here and in the following, however, it is, as the requested steps number RS, considered as rotational angle.

In subsequent step S03 , a plausibility check is carried out in which the missed steps number MSi for the current drive control sequence is compared against a negative missed steps threshold and a positive missed steps threshold, and the operational flow branches in dependence of the result. The negative missed steps threshold may be a fixed value of, e. g. , -72°, and the positive missed steps threshold may be the requested steps number plus a fixed value, e. g. RS + 12°. If the missed steps number MSi is smaller than the negative missed steps threshold or larger than the positive missed steps threshold, the operational flow proceeds with step S04 where an alarm signal is generated and alarming device 1 3 is activated to provide an error alarm, and the operational flow terminates (step E) .

If the missed steps number MSi ' s found fine in step S03 , the operational flow proceeds with step S05 where a further plausibility check is carried out. An accumulated missed steps number over a history of consecutive drive control sequences is computed. For an exemplary history length of 50, the accumulated missed steps number AMS may accordingly be computed as AMS = MSi + 5 ί _ 1 -I— MS i→9 . In step S05, the accumulated missed steps threshold AMS is compared against an accumulated missed steps threshold, and the operational flow branches in dependence of the result. If the accumulated missed steps number AMS reaches respectively exceeds the accumulated missed steps threshold, the operational flow proceeds with step S06 where an alarm signal is generated and alarming device 1 3 is activated, similar to step S04, to provide an error alarm, and the operational flow terminates (step E). The accumulated missed steps threshold may be static, i. e. a fixed and pre-determined value, or may be dynamically adapted. I n an exemplary embodiment where the missed steps threshold is dynamically adapted, it may, for example, be computed as 20% of the accumulated requested steps number RS, i. e. as 0.2 * (RS t + RS^ H— RSi- 49 ) for an exemplary history length of 50. Other values may be used as well. It is noted that the steps S03 /S04 and /or S05/S06 are not essential and may be omitted in a basic embodiment.

If the accumulated missed steps number AMS is found fine in step S05 , the operational flow proceeds with step S07. In step S07 and the following steps, the core steps of a method for detecting a blocked drive according to the exemplary embodiment are carried out.

In step S07, the missed steps number Μ5 έ is compared with a pre-determined first missed steps threshold C_FT1, and the operational flow branches in dependence of the result. If the missed steps number MS t does not exceed the first missed steps threshold C_FT1, the operational flow proceeds with step S08.

In step S08, a score value OD is compared with a first occlusion weight C_W1 that corresponds to a score decrease value, and the operational flow branches in dependence in the result. If the score value OD equals or is larger than the first occlusion weight C_W1, the operational flow proceeds with step S09 where the score value OD is decreased by the first occlusion weight C W1. Otherwise, the score value OD is set to zero in Step S 1 0. Via these steps, the score value OD is generally decreased by the first occlusion weight C_ W1, but does not become negative. In both cases, the operational flow subsequently terminates for the current drive control sequence (step E) . If it is determined in step S07 that the missed steps number 5 έ exceeds the first missed steps threshold C_FT\, the operational flow proceeds, following step S07, with step S 1 1 . In step S 1 1 , the missed steps number MSi is compared with a second missed steps threshold C_FT2 that is higher than the first missed steps threshold C_FT1 , and the operational flow again branches in dependence of the result. If the missed steps number MSi does not exceed the second missed steps threshold C_FT2, the operational flow proceeds with step S 1 2 where the score value OD is increased by a second occlusion weight C_W2 that corresponds to a first score increase value. If the missed steps number MSi does exceed the second missed steps threshold C_FT2 , the operational flow proceeds with step S 1 3 where the score value OD is increased by a larger third occlusion weight C_W3 that corresponds to a second score increase value and is larger than the second occlusion weight C_W2 .

In both cases, the operational flow subsequently proceeds with step S 1 4 where the score value OD is compared with a score value threshold C_OD and the operational flow branches in dependence of the result.

If the score value OD exceeds the score value threshold C_OD , the operational flow proceeds with step S 1 4 where a blockage alarm is generated and the alarming device 1 3 is activated to provide a blockage or occlusion alarm, and the operational flow terminates (step E) . Otherwise, the operational flow directly terminates, following step S 1 4, for the current drive control sequence.

As mentioned before, the procedure according to Fig. 2 is generally executed for each drive control sequence. If, however, an alarm is generated (steps, S04, S06, S 1 5 ) , no further drive control sequences are executed. I nstead, the control unit 1 controls the ambulatory infusion device 1 00 to switch into an error mode where all infusion is stopped.

In the following , reference is additionally made to Fig. 3. Fig. 3 shows the operational flow of an exemplary method for determining the drive member position respectively rotational angle φ of the motor axis as explained before. The method is carried out by the position determination unit 1 2, respectively the drive control unit 1 1 . The method is carried out following each actuation of the stepper motor 21 to execute a motor step, starting with S.

In step R01 , the encoder signal PI from rotatory encoder 23 is read as binary signal, having either of a "0" value or " 1 " value. In subsequent step R02, it is determined whether the signal as read in step R01 equals its direct predecessor and the operational flow branches in dependence of the result.

In the affirmative, case, the operational flow proceeds with step R03 where an equal value counter c_ER is incremented by 1 . In subsequent step R04, the equal value counter c_ER is compared with a pre-determined equal value counter threshold C_ER and the operational flow branches in dependence of the result. In the affirmative case, the operational flow proceeds with step R05 where an alarm signal is generated and alarming device 1 3 is activated to provide an error alarm, and the operational flow terminates (step E). Here, number of consecutive "0" values or " 1 " values is higher than what is possible according to the device design, thereby indicating a device malfunction and/or a yet undetected blockage/occlusion. If the test is negative in step R04, the operational flow proceeds with step R07 as explained further below.

If the test is negative in step R02, i. e. the read signal is different from its predecessor, the operational flow proceeds with step R06 where the equal value counter c_ER is set to zero respectively reset and the operational flow also proceeds with step R07.

In step R07, a counter c_T for the total number of read ings of the encoder signal PI is incremented by one. Further in step R07, a consecutive high counter c_H is incremented by the value of the encoder signal PI, i. e. is incremented by 1 if the encoder signal PI is a " 1 " value, and remains unchanged otherwise. The consecutive high counter c_H counts the number of consecutive " 1 " values of the encoder signal PI for purposes as explained further below.

Following R07, the operational flow proceeds with step R08 where the counter c_T is compared with a pre-determined encoder readings threshold C_T and the operational flow branches in dependence of the result. If the counter c_T equals the encoder readings threshold C_T , the operational flow proceeds with step R09. In step R09, a sum HC of " 1 " values over a moving window of past encoder readings is computed, with the window length being determined by the consecutive high counter c_H.

Following step R09, the operational flow proceeds with step R 1 0, where the sum HC as determined in step R09 is compared with a pre-determined lower threshold value C_LH and a pre-determined upper threshold value C_LH. If the sum HC is within the range as defined by the lower threshold value C_LH and an upper threshold value C_LH , the operational flow proceeds with step R 1 1 where the consecutive high counter c_H and the counter c T are set to zero respectively reset.

In combination, steps R08, R09, R 1 0 and R 1 1 implement a statistical tests that checks if the high and low counts of the recent past differ significantly from the theoretical ratio. Principally this could be achieved with a moving sum or moving average filter. However, when a large history size (e.g. 1 000 data points) is considered, such straight-forward approach requires a substantial amount of memory and is disadvantageous for implementation in the drive control unit. I n the implementation of steps R08 to R 1 1 as explained before, the considered history is clustered in several sub groups (e.g. size 1 00 data points) and the averages / moving sums are calculated for each of these clusters. Subsequently, the moving averages / moving sums over the results for the subgroups is calculated. This approach results in a drastic reduction in the memory consumption, while preserving the original intention.

If the sum HC is not within the range as defined by the lower threshold value C_LH and an upper threshold value C_LH, the operational flow proceeds with step R 1 2 where an alarm signal is generated and alarming device 1 3 is activated to provide an error alarm, and the operational flow terminates (step E). Steps of R07, R08, R09 , R 1 0, R 1 1 , R 1 2, in combination, asses the number of " 1 " readings in groups of a size as determined by the readings threshold C T . An alarm is provided if this value not in a plausible range as defined by the lower threshold value C_LH and an upper threshold value C_LH. A non -plausible value may occur in case of a yet undetected blockage/occlusion, or in case the encoder signal PI is systematically corrupted. Steps R07 - R 1 2 are related to a plausibility check respectively statistical test whether the distribution of "0" readings and " 1 " readings of the encoder signal over a time-limited history of motor steps can be assumed to follow an equal distribution which should be ideally the case. It is noted that for a different encoder design and considering the generation of the binary signal via a Schmitt trigger, the distribution of "0" values and " 1 " values may be systematically non-equal, and the algorithm may be modified accordingly.

It is noted that the steps that are related to the assessment detection of the consecutive number of equal encoder signal PI readings as well as the distribution "0" readings and " 1 " readings" are additional safety measures and may in principle be omitted in a basic embodiment.

In step R 1 3 , the binary encoder signal PI is fed as LSB into a 1 -byte shifting register of the position determination unit 1 2. In subsequent step R 1 4, a cyclic drive member position T is determined from the value of the shifting register and a pre-computed reconstruction lookup table as explained in the general description. An exemplary lookup table that may be used in the present context is provided as Annex I .

In subsequent step R 1 5, it is determined whether the value of the shifting register is valid. If this is not the case, the operational flow proceeds with step R 1 6 where an invalid values counter cJEE is incremented by 1 and the operational flow proceeds with step R 1 7. In step R 1 7 it is determined whether the invalid values counter cJEE exceeds an invalid values threshold CJEE. If this is the case, the operational flow proceeds with step R 1 8 where an alarm signal is generated and alarming device 1 3 is activated to provide an error alarm, and the operational flow terminates (step E). Otherwise, the operational flow proceeds with step R 1 9 where a reconstructed drive member position θ η is set to its predecessor θ η -χ as determined for the preceding motor step.

If the value of the shifting reg ister is determined to be valid in step R 1 5, the operational flow proceeds with step R20 where the reconstructed drive member position θ η is determined according to Eqn. 1 of the general description. In subsequent step R2 1 , the drive member position φ η for the current motor step is finally computed as moving average over the present a number of, e. g. the last four or five previous reconstructed drive member positions.

ANNEX I

Cyclic drive Cyclic drive

Bit pattern ( EB) member position Bit pattern ( EB ) member position

(T) (T)

00000000 164,77 00100000 167,11

00000001 141,82 00100001 CJET

00000010 171,90 00100010 CJET

00000011 157,44 00100011 117,34

00000100 158,91 00100100 116,13

00000101 141,95 00100101 CJET

00000110 160,36 00100110 116,72

00000111 162,27 00100111 116,89

00001000 165,40 00101000 CJET

00001001 152,59 00101001 CJET

00001010 CJET 00101010 CJET

00001011 146,69 00101011 CJET

00001100 150,98 00101100 CJET

00001101 149,45 00101101 CJET

00001110 143,50 00101110 166,78

00001111 150,31 00101111 170,44

00010000 172,92 00110000 154,73

00010001 CJET 00110001 CJET

00010010 137,12 00110010 138,26

00010011 137,65 00110011 113,40

00010100 CJET 00110100 CJET

00010101 CJET 00110101 CJET

00010110 CJET 00110110 CJET

00010111 160,72 00110111 166,96

00011000 152,06 00111000 151,39

00011001 153,18 00111001 CJET

00011010 CJET 00111010 135,35

00011011 165,32 00111011 124,09

00011100 160,17 00111100 116,58

00011101 132,90 00111101 108,07

00011110 134,76 00111110 114,82

00011111 135,29 00111111 118,89 Cyclic drive Cyclic drive

Bit pattern ( EB) member position Bit pattern ( EB ) member position

(T) (T)

01000000 166,76 01100000 151,11

01000001 170,12 01100001 0,47

01000010 CJET 01100010 CJET

01000011 CJET 01100011 CJET

01000100 CJET 01100100 110,36

01000101 CJET 01100101 CJET

01000110 98,55 01100110 97,06

01000111 CJET 01100111 CJET

01001000 97,20 01101000 CJET

01001001 CJET 01101001 CJET

01001010 CJET 01101010 CJET

01001011 CJET 01101011 CJET

01001100 97,98 01101100 CJET

01001101 CJET 01101101 CJET

01001110 CJET 01101110 172,35

01001111 98,37 01101111 174,30

01010000 CJET 01110000 161,44

01010001 CJET 01110001 179,27

01010010 CJET 01110010 179,57

01010011 CJET 01110011 178,64

01010100 CJET 01110100 106,46

01010101 CJET 01110101 CJET

01010110 CJET 01110110 CJET

01010111 CJET 01110111 97,97

01011000 CJET 01111000 97,98

01011001 CJET 01111001 91,43

01011010 CJET 01111010 CJET

01011011 CJET 01111011 94,15

01011100 0,04 01111100 96,61

01011101 179,27 01111101 106,05

01011110 CJET 01111110 105,29

01011111 163,02 01111111 102,10 Cyclic drive Cyclic drive

Bit pattern ( EB) member position Bit pattern ( EB ) member position

(T) (T)

10000000 16,06 10100000 89,41

10000001 17,77 10100001 CJET

10000010 CJET 10100010 CJET

10000011 7,29 10100011 CJET

10000100 CJET 10100100 CJET

10000101 CJET 10100101 CJET

10000110 CJET 10100110 CJET

10000111 8,47 10100111 CJET

10001000 85,49 10101000 CJET

10001001 CJET 10101001 CJET

10001010 CJET 10101010 CJET

10001011 CJET 10101011 CJET

10001100 85,11 10101100 CJET

10001101 CJET 10101101 CJET

10001110 CJET 10101110 CJET

10001111 9,07 10101111 CJET

10010000 9,15 10110000 CJET

10010001 89,23 10110001 CJET

10010010 CJET 10110010 CJET

10010011 CJET 10110011 CJET

10010100 CJET 10110100 CJET

10010101 CJET 10110101 CJET

10010110 CJET 10110110 CJET

10010111 9,82 10110111 CJET

10011000 3,92 10111000 3,98

10011001 90,03 10111001 4,91

10011010 CJET 10111010 CJET

10011011 8,65 10111011 3,91

10011100 CJET 10111100 25,92

10011101 CJET 10111101 CJET

10011110 CJET 10111110 89,60

10011111 6,34 10111111 13,69 Cyclic drive Cyclic drive

Bit pattern ( EB) member position Bit pattern ( EB ) member position

(T) (T)

11000000 33,77 11100000 43,70

11000001 25,79 11100001 44,72

11000010 CJET 11100010 77,66

11000011 26,69 11100011 29,15

11000100 89,50 11100100 53,59

11000101 CJET 11100101 45,22

11000110 CJET 11100110 49,02

11000111 26,41 11100111 50,16

11001000 37,07 11101000 82,34

11001001 CJET 11101001 CJET

11001010 CJET 11101010 CJET

11001011 30,93 11101011 CJET

11001100 31,74 11101100 CJET

11001101 30,67 11101101 CJET

11001110 CJET 11101110 43,46

11001111 34,53 11101111 72,19

11010000 71,89 11110000 61,65

11010001 CJET 11110001 34,61

11010010 CJET 11110010 60,29

11010011 CJET 11110011 57,49

11010100 CJET 11110100 CJET

11010101 CJET 11110101 CJET

11010110 CJET 11110110 CJET

11010111 CJET 11110111 71,04

11011000 CJET 11111000 69,11

11011001 CJET 11111001 70,00

11011010 CJET 11111010 CJET

11011011 CJET 11111011 87,24

11011100 22,73 11111100 37,54

11011101 8,98 11111101 87,93

11011110 51,71 11111110 44,34

11011111 77,64 11111111 74,01




 
Previous Patent: DISPLAY FOR A VEHICLE WINDSCREEN

Next Patent: MODULAR BAR SYSTEM