Patent Description:
A wide variety of medical devices have been developed for medical use, for example, for use in accessing body cavities and interacting with fluids and structures in body cavities. Some of these devices may include guidewires, catheters, pumps, motors, controllers, filters, grinders, needles, valves, and delivery devices and/or systems used for delivering such devices. These devices are manufactured by any one of a variety of different manufacturing methods and may be used according to any one of a variety of methods. Of the known medical devices and methods, each has certain advantages and disadvantages.

<CIT> discloses a rotational atherectomy device including a drive shaft rotatably extending through an outer tubular member to rotate a cutting member positioned at a distal end thereof.

<CIT> relates generally to intravascular catheters, particularly catheters having a rotating tip, useful in removing in occlusions from a vessel, such as an artery or vein.

<CIT> is directed to apparatus for controlling the rotational speed of a pneumatic dental handpiece by detecting and monitoring a periodic mechanical function produced by the handpiece.

<CIT> relates to a method and driver for the controlled, reversible drilling of an occlusion in a body lumen, such as a calcific occlusion in a blood vessel.

This disclosure provides, design, material, manufacturing method, and use alternatives for medical devices and systems. In a first aspect and in accordance with the present invention, an atherectomy control system includes a drive mechanism, a position sensor configured to sense a rotational position of the drive mechanism, an input/output port, a microcontroller in communication with the position sensor and the input/output port, and wherein the microcontroller is configured to determine a speed of the drive mechanism based on received indications of the rotational position of the drive mechanism; and determine a control signal for adjusting the speed of the drive mechanism based on the determined speed of the drive mechanism and output the determined control signal via the input/output port. The microcontroller is configured to predict a stall of the drive mechanism will occur within a predetermined time period after a current time. The microcontroller is configured to predict the stall of the drive mechanism will occur within the predetermined time period when a trend value based on the determined speed of the drive mechanism reaches or goes beyond a threshold value. The trend value is a difference between a currently determined speed of the drive mechanism and a speed of the drive mechanism at a time that is the predetermined time period before a time at which the currently determined speed of the drive mechanism was taken.

In addition and in a second aspect, the drive mechanism of the control system may be a turbine.

In addition and in a third aspect, the control system may further include a computing device in communication with the microcontroller and configured to receive the determined speed from the microcontroller, and wherein the computing device may be configured to monitor operation of the drive mechanism based on the determined speed of the drive mechanism received over time.

In addition and in a fourth aspect, the control system may include data related to the received determined speed of the drive mechanism being password protected at the computing device.

In addition and in a fifth aspect, the control system may include an analog-to-digital converter configured to convert analog indications of rotational positions of the drive mechanism to digital indications of the rotational positions of the drive mechanism.

In addition and in a sixth aspect, the microcontroller may be configured to determine the control signal by comparing the determined speed of the drive mechanism to a speed set point.

In addition and in a seventh aspect the drive mechanism may have a first mode and a second mode, and the microcontroller may be configured to adjust the determined control signal based on whether the drive mechanism is in the first mode or the second mode.

In addition and in an eighth aspect, the drive mechanism may operate in the first mode upon start-up and the drive mechanism operates in the second mode starting at a predetermined time after start-up.

In addition and in a ninth aspect, the microcontroller is configured to predict a time until the predicted stall of the drive mechanism will occur.

In addition or alternative and in a tenth aspect, an atherectomy system may include an advancer assembly configured to operably connect to an elongate member, the advancer assembly configured to control a longitudinal position of the elongate member, the advancer assembly comprising a drive mechanism configured to operably connect to the elongate member and adjust a rotational position of the elongate member, a control console in communication with the advancer assembly, the control console comprising an input/output port and a microcontroller configured to determine a speed of the drive mechanism, determine a control signal for adjusting the speed of the drive mechanism, and output the control signal, via the input/output port, to adjust the speed of the drive mechanism.

In addition or alternative and in an eleventh aspect, the system may include a computing device in communication with the control console for receiving drive mechanism speed data from the control console, the computing device is configured to monitor operation of the drive mechanism over time based on the received drive mechanism speed data.

In addition or alternative and in a twelfth aspect, the microcontroller may be configured to identify an initial control signal and adjust the control signal based on whether the drive mechanism is in a startup mode or a steady state mode.

In addition or alternative and in a thirteenth aspect, the microcontroller may be configured to determine when a stall of the drive mechanism will occur.

The above summary of some embodiments is not intended to describe each disclosed embodiment or every implementation of the present invention.

The invention may be more completely understood in consideration of the following detailed description of various embodiments of the invention in connection with the accompanying drawings, in which:.

Additionally, when particular features, structures, and/or characteristics are described in connection with one embodiment, it should be understood that such features, structures, and/or characteristics may also be used in connection with other embodiments whether or not explicitly described unless clearly stated to the contrary.

Cardiovascular disease and peripheral arterial disease may arise from accumulation of atheromatous material on the inner walls of vascular lumens, resulting in a condition known as atherosclerosis. Atheromatous and other vascular deposits may restrict blood blow and can cause ischemia in a heart of a patient, vasculature of a patient's legs, a patient's carotid artery, etc. Such ischemia may lead to pain, swelling, wounds that will not heal, amputation, stroke, myocardial infarction, heart attack, and/or other conditions.

Atheromatous deposits may have widely varying properties, with some deposits being relatively soft and others being fibrous and/or calcified. In the latter case, the deposits may be referred to as plaque. Atherosclerosis occurs naturally as a result of aging, but may also be aggravated by factors such as diet, hypertension, heredity, vascular injury, and the like. Atherosclerosis may be treated in a variety of ways, including drugs, bypass surgery, and/or a variety of catheter-based approaches that may rely on intravascular widening or removal of the atheromatous or other material occluding the blood vessel. Atherectomy is a catheter-based intervention that may be used to treat atherosclerosis.

Atherectomy is an interventional medical procedure performed to restore a flow of blood through a portion of a patient's vasculature that has been blocked by plaque or other material. In an atherectomy procedure, a device on an end of a drive shaft is used to engage and/or remove (e.g., abrade, grind, cut shave, etc.) plaque or other material from a patient's vessel (e.g., artery or vein). In some cases, the device on an end of the drive shaft may be abrasive and/or may otherwise be configured to remove plaque from a vessel wall or other obstruction in a vessel when the device is rotating and engages the plaque or other obstruction.

<FIG> depicts an atherectomy system <NUM>. The atherectomy system <NUM> may include a drive assembly <NUM> and a control unit <NUM> (e.g., a controller or control console). Although the drive assembly <NUM> and the control unit <NUM> are depicted in <FIG> as separate components of the atherectomy system <NUM>, the control unit <NUM> may be incorporated into drive assembly <NUM>.

The drive assembly <NUM> may include, among other elements, an advancer assembly <NUM>, a drive shaft <NUM> (e.g., a flexible drive shaft or other drive shaft), a rotational device <NUM> (e.g., a rotational tip or other rotational device), and an elongated member <NUM> having a first end (e.g., a proximal end), a second end (e.g., a distal end), and a lumen extending from the first end to the second end for receiving the drive shaft <NUM>. In some cases, the elongated member <NUM> may be an elongated tubular member. The rotational device <NUM> may have a rough or sharp surface, such that it is configured to grind, abrade, cut, shave, etc. plaque from a vessel wall or other obstruction in a vessel when it is rotated.

The advancer assembly <NUM> may include an advancer knob <NUM> and may house a drive mechanism (e.g., where the drive mechanism is shown in <FIG> and may be a turbine, an electric motor, pneumatic motor, and/or one or more other suitable drive mechanisms) in communication with the advancer knob <NUM> and the drive shaft <NUM>. The advancer knob <NUM> may be configured to advance along a longitudinal path to longitudinally advance the drive mechanism and the rotational device <NUM>. The drive mechanism may be coupled to the drive shaft <NUM> in a suitable manner including, but not limited to a weld connection, a clamping connection, an adhesive connection, a threaded connection, and/or other suitable connection configured to withstand high rotational speeds and forces. As the drive shaft <NUM> may rotate over a wide range of speeds (e.g., at speeds of between zero (<NUM>) rotations per minute (RPM) and <NUM>,<NUM> RPM or higher in a clockwise and/or counterclockwise direction), the coupling between the drive mechanism and the drive shaft <NUM> may be configured to withstand such rotational speed and associated forces.

In some cases, the drive mechanism may be in communication with the control unit <NUM>. When in communication with the control unit <NUM>, the drive mechanism may be in direct communication with the control unit (e.g., directly connected via wiring) or indirect communication (e.g., indirectly connected via multiple wiring connections and/or one or more devices). In one example of indirect communication between a drive mechanism and the control unit <NUM> may include a drive mechanism (e.g., a turbine or pneumatic motor) powered by compressed air, where the control unit <NUM> may activate a compressed fluid flow from a cylinder <NUM> or other component to the drive mechanism (e.g., activate a valve of the control unit <NUM> or otherwise activate the compressed fluid flow), which may result in rotation of the drive mechanism and the drive shaft <NUM>.

The drive shaft <NUM> may be formed from one or more of a variety of materials. For example, the drive shaft <NUM> may be formed from one or more of a variety of materials including steel, stainless steel, and/or other suitable materials.

The drive shaft <NUM> may have a suitable diameter and/or length for traversing vasculature of a patient. In some cases, the drive shaft <NUM> may have a diameter in a range from about <NUM> centimeters (cm) or smaller to about <NUM> or larger and a working length in a range from about ten (<NUM>) cm or shorter to about three hundred (<NUM>) cm or longer. Altenatively, the drive shaft <NUM> may have a different suitable diameter and/or different suitable length.

The rotational device <NUM> may have an outer perimeter which is equal to or larger than a distal diameter of the drive shaft <NUM> and the elongated member <NUM>. The rotational device <NUM> may have a symmetric design so that it penetrates equally well in both rotational directions, but this is not required and the rotational device <NUM> may be configured to penetrate in only one direction. The diameter of the drive shaft <NUM> may depend on the dimension of the lumen of the elongated member <NUM> and/or one or more other factors.

The rotational device <NUM> may be coupled to the drive shaft <NUM>. Where the drive shaft <NUM> has a first end portion (e.g., a proximal end portion) and a second end portion (e.g., a distal end portion), the rotational device <NUM> may be coupled to the drive shaft <NUM> at or near the second end portion. In some cases, the rotational device <NUM> may be located at or adjacent a terminal end of the second end portion of the drive shaft <NUM>.

The rotational device <NUM> may be coupled to the drive shaft <NUM> in any manner. For example, the rotational device <NUM> may be coupled to the drive shaft <NUM> with an adhesive connection, a threaded connection, a weld connection, a clamping connection, and/or other suitable connection configured to withstand high rotational speeds and forces. Similar to as discussed above with respect to the connection between the drive shaft <NUM> and the drive mechanism, as the drive shaft <NUM> and/or the rotational device <NUM> may rotate at speeds between zero (<NUM>) RPM and <NUM>,<NUM> RPM or higher in a clockwise and/or counter clockwise direction, the coupling between the drive shaft <NUM> and the rotational device <NUM> may be configured to withstand such rotational speeds and associated forces.

The drive assembly <NUM> and the control unit <NUM> may be in communication and may be located in or may have a same housing and/or located in or have separate housings (e.g., an advancer assembly housing <NUM> and a control unit housing <NUM>, respectively, or other housings). Whether in the same housing or in separate housings, the drive assembly <NUM> and the control unit <NUM> may be in communication through a wired (e.g., via one or more electrical lines <NUM>) and/or a wireless connection. Wired connections may be made via one or more communication protocols including, but not limited to, USB, Ethernet, SPI, UART, HDMI, and/or any other suitable common or proprietary wired protocol, as desired. Wireless connections may be made via one or more communication protocols including, but not limited to, cellular communication, ZigBee, Bluetooth, WiFi, IrDA, dedicated short range communication (DSRC), EnOcean, and/or any other suitable common or proprietary wireless protocol, as desired.

Although not shown in <FIG>, the drive assembly <NUM> may include and/or enclose one or more operational features in addition to those discussed above and/or as alternatives to those discussed above. For example, among other features, the drive assembly <NUM> may include a start/stop button, rubber feet, mode selection buttons, a mode start/stop button, control electronics, drive circuitry, etc..

The control unit <NUM>, which may be separate from the drive assembly <NUM> (e.g., as shown in <FIG>) or may be included in the drive assembly <NUM>, may include several features. For example, as shown in <FIG>, the control unit <NUM> may include a display <NUM> and a control knob <NUM> (e.g., a drive mechanism speed (e.g., RPM or other speed) adjustment knob or other control knob). Additionally or alternatively, the control unit <NUM> may include one or more other features for controlling the drive mechanism and/or other features of the drive assembly <NUM> (e.g., one or more drive mechanism states) including, but not limited to, a processor, memory, input/output devices, a speaker, volume control buttons, on/off power supply switch, drive mechanism activation switch, a timer, a clock, and/or one or more other features.

The display <NUM> may be or may include any suitable type of display panel using any suitable display panel technology. For example, the display <NUM> may include one or more of the following types of display panels: Eidophor, Electroluminescent display (ELD), Electronic paper (E Ink, Gyricon), Light emitting diode display (LED), Cathode ray tube (CRT) (Monoscope), Liquid-crystal display (LCD) (TFT, LED, Blue Phase, IPS), Plasma display panel (PDP) (ALiS), Digital Light Processing (DLP), Liquid crystal on silicon (LCoS), Organic light-emitting diode (OLED) (AMOLED), Organic light-emitting transistor (OLET), Surface-conduction electron-emitter display (SED), Field emission display (FED), Laser TV (Quantum dot, Liquid crystal), MEMS display (IMoD, TMOS, DMS), Quantum dot display (QD-LED), Ferro liquid display (FLD), Thick-film dielectric electroluminescent technology (TDEL), Telescopic pixel display (TPD), Laser Phosphor Display (LPD), or other type of display panel. The display <NUM> may include a touch sensitive screen for receiving input, but this is not required.

The control knob <NUM> may be any suitable type of control knob. As depicted in <FIG>, the control knob <NUM> may be a physical control knob that is adjusted (e.g., rotated or otherwise translated) to adjust a control feature (e.g., speed of rotation of the drive mechanism or other control feature). Alternatively or in addition, the control knob <NUM> may be a virtual control knob that may be adjusted by interacting with a touch sensitive surface.

As depicted in <FIG>, the control unit <NUM> may include one or more ports including, but not limited to, a fiber optic port <NUM>, an electrical port <NUM>, a fluid port <NUM>, and/or one or more other ports. The fiber optic port <NUM> may be configured to receive a fiber optic connector <NUM> of a fiber optic line <NUM>, where the fiber optic line <NUM> may be connected to and/or may be part of a position sensor configured to optically sense a position of the drive mechanism. Additionally or alternatively, other types of position sensors may be utilized that have different types of connections to the control unit <NUM>. The electrical port <NUM> may be configured to receive an electrical connector <NUM> of the electrical line <NUM>, where the electrical line <NUM> may be connected to and/or may be part of control electronics at the drive assembly <NUM>. In some cases, the electrical line <NUM> may be directly connected to a main PCB of the drive assembly <NUM> and may be utilized to power an electrical assembly of the drive assembly <NUM>. The fluid port <NUM> may be configured to receive a fluid line connector <NUM> of a fluid line <NUM>, where the fluid line <NUM> may be in communication with the drive mechanism to power the drive mechanism. In instances when the drive mechanism is an electrical motor or a non-pneumatic drive mechanism, the fluid port <NUM>, the fluid line connector <NUM>, and/or the fluid line <NUM> may be omitted, but this is not required.

<FIG> depicts a schematic box diagram of the atherectomy system <NUM> having a drive mechanism <NUM> and position sensor <NUM> in communication with the control unit <NUM> and a host <NUM> in communication with the control unit <NUM>. The host <NUM> may be one or more of a laptop computer, a desktop computer, tablet computer, a remote server, smartphone, and/or other computing device. The host <NUM> may be in wired and/or wireless communication with the control unit <NUM>, where the wired or wireless communication may include one or more of the communication protocols discussed herein.

In operation, the position sensor <NUM> senses a rotational position of the drive mechanism <NUM> and sends an indication of the sensed rotational position of the drive mechanism <NUM> to the control unit <NUM> (e.g., send an optical pulse or other indication over the fiber optic line <NUM> or other line). The control unit <NUM> then uses the indications of the sensed rotational position of the drive mechanism <NUM> to determine a speed (RPMs) of the drive mechanism <NUM> and outputs the determined speed of the drive mechanism <NUM> to the host <NUM> for monitoring and/or analysis of the drive mechanism <NUM>.

In some cases, the control unit <NUM> (e.g., firmware therein) may sample speed data (e.g., rotational speed, lateral speed, longitudinal speed, etc.) and/or other data at predetermined intervals and send the data to the host <NUM>. Example predetermined intervals may include, but are not limited to, <NUM> millisecond (ms), <NUM>, <NUM>, <NUM>, and/or other suitable intervals. Alternatively or in addition, the control unit <NUM> may sample speed data and/or other data upon request from the host <NUM> and/or other input requesting data.

The host <NUM> may be configured to receive data (e.g., operational data that may include, but is not limited to, speed data, on/off data, stall data, data as a function of time, etc.) from the control unit <NUM>. For example, the host <NUM> may perform analyses on the speed of the drive mechanism <NUM> and/or other data related to the operation of the drive mechanism <NUM> and monitor initial overshoot of the drive mechanism (e.g., actual speed versus a setpoint speed upon startup of the drive mechanism), steady state oscillation of the drive mechanism <NUM>, speed changes over run time of the drive mechanism <NUM>, and/or other operations of the drive mechanism <NUM>. In some cases, the host <NUM> may plot speed versus time on a graph and/or provide other graphical depictions of the received data.

In some cases, the data transmitted from the control unit <NUM> to the host <NUM> may be password protected to establish and/or ensure a high level of data security. A password protection protocol may provide one, two, or more levels of data access at the host <NUM>. An example password protection protocol providing two levels of data access may include a read mode for data access and a read/write mode for data access. Read mode may provide read-only access to the data and may allow a user to view data, but not to interact with the data. Read/write mode may provide read-write access to the data and may allow a user to view data and interact with the data (e.g., change the analyses that are run on the data, add notes to the data, change how data is gathered, etc.). In some cases, read mode or access of the password protection protocol may be accessed after entering or providing a primary or base password. Read/write mode may be accessed after entering or providing a primary or base password and a secondary password. Alternatively, a user's password may automatically give them access to either read mode or read/write mode and only a single password is needed. Although not required in all instances, when the password is provided to the host <NUM> (e.g., via a keyboard, touch screen, biometric sensing, and/or one or more other input interface), the host <NUM> may be required by the password protocol to complete an initial handshake with the control unit <NUM> before receiving access to one or both of the read mode and read/write mode.

In one example configuration, the indication of the sensed rotational position of the drive mechanism <NUM> may be light pulses and the control unit <NUM> may include components configured to convert the pulses into analog voltage pulses (e.g., analog indications of rotational positions of the drive mechanism <NUM>). The control unit <NUM> may include a controller <NUM>, an analog-to-digital (A/D) converter <NUM>, and one or more input/output ports <NUM>. The A/D converter <NUM> may convert the analog voltage pulses to a digital voltage signal (e.g., digital indications of the rotational positions of the drive mechanism <NUM>) and firmware <NUM> of the controller <NUM> may be configured to sample voltage from the A/D converter <NUM> at predetermined intervals or upon request from a computing device (e.g., the host <NUM>). In some cases, the indications of speed from the position sensor <NUM> and/or the output data to the host <NUM> may pass through the input/output port <NUM>.

The controller <NUM> may be or may include a microcontroller. Additionally or alternatively, the controller may include one or more of an application specific integrated circuit (ASIC) and/or an application specific standard product (ASSP). Although not shown, the controller <NUM> may include a processor and memory, where the processor may be operably coupled to the memory. The memory may be used to store any desired information, such as control algorithms, set points, predetermined time intervals for sampling data, schedules, reference schedules, times, diagnostic limits, such as, for example, speed limits, RPM limits, torque limits, and the like. The memory may include any of one or more suitable types of storage devices including, but not limited to, RAM, ROM, EPROM, flash memory, a hard drive, and/or the like. The memory may include the firmware <NUM>, which may be accessed by the processor. In some cases, the control unit <NUM> may store information within the memory, and the processor of the controller <NUM> may subsequently retrieve the stored information from the memory to effect operation of the atherectomy device and/or for analysis (e.g., for analysis by the host <NUM>). The processor and/or the memory may include and/or be in communication with a timer.

<FIG> depicts a block diagram of the controller <NUM> and firmware modules in the firmware <NUM>. As depicted in <FIG>, a position indicator signal <NUM> for indicating a position of the drive mechanism <NUM> may be received at the controller <NUM> and the firmware modules may utilize the position indicator signal <NUM> to develop control signals <NUM> for controlling operation (e.g., rotation) of the drive mechanism <NUM>.

The firmware <NUM> may include a variety of firmware modules. As shown in <FIG>, the firmware <NUM> may include a speed feedback module <NUM>, a speed compensation module <NUM>, and a damping control module <NUM>. In some cases, the damping control module <NUM> may include an initial overshoot control <NUM>, a steady state control <NUM>, a stall predictor control <NUM>, and/or one or more other components. In some cases, one or more of the initial overshoot control <NUM>, the steady state control <NUM>, and the stall predictor control <NUM> may be separate from the damping control module <NUM>. Alternatively or in addition to the control modules and components depicted in <FIG>, other firmware modules and/or components may be utilized as desired. The modules <NUM>, <NUM>, <NUM>, of the firmware <NUM> are describe in greater detail below with respect to the methods of <FIG>.

<FIG> depicts a method <NUM> of controlling a speed of the drive mechanism <NUM>. In the method <NUM>, an indication of a position of the drive mechanism <NUM> may be received <NUM> (e.g., from the A/D converter <NUM> and/or other component of the control unit <NUM>) and a speed (e.g., RPM or other measurement of speed) of the drive mechanism <NUM> may be determined <NUM>. For example, the speed feedback module <NUM> may be configured to utilize digital indications (e.g., pulses or other indications) of the position of the drive mechanism <NUM> outputted from the A/D converter <NUM> to determine a speed (e.g., in RPMs or other measurement of speed) and provide the determined speed to the speed compensation module <NUM>. In such cases, the firmware <NUM> may store the output from the A/D converter <NUM> and the speed feedback module <NUM> may be configured to sample that stored output from the A/D converter <NUM> to calculate a speed of the drive mechanism <NUM>. Alternatively or in addition, the output from the A/D converter <NUM> may be provided directly to the speed feedback module <NUM> for calculating the speed of the drive mechanism <NUM> and/or for other purposes.

In some cases, the speed feedback module <NUM> may sample indications of the drive mechanism position (e.g., stored output from the A/D converter <NUM>, direct output from the A/D converter <NUM>, and/or other indications of the drive mechanism position) and determine a speed of the drive mechanism <NUM> at predetermined intervals. Example predetermined intervals may be ten (<NUM>) ms, twenty-five (<NUM>) ms, fifty (<NUM>) ms, one hundred (<NUM>) ms, five hundred (<NUM>) ms, second, and/or one or more other suitable intervals. When the indications of the drive mechanism position are pulses, the speed feedback module <NUM> may determine a number of pulses that occurred during the predetermined interval (e.g., the number of pulses since a last time a sample was taken).

To determine <NUM> the speed of the drive mechanism <NUM> from the received indications of the drive mechanism position, the speed feedback module <NUM> may enter the indications of the drive mechanism position into an equation that is used to calculate the speed of the drive mechanism <NUM>. In one example of when the indications of the drive mechanism position are pulses, the indications of the drive mechanism position are sampled every fifty (<NUM>) ms, and the speed is determined in RPM, the following equation may be utilized: <MAT>.

The term PulseCounti is the number of indications of a drive mechanism position (e.g., pulses or other indications) received during a predetermined interval, i. Alternatively, the speed of the drive mechanism <NUM> may be determined in one or more other suitable manners, which may be dependent on sampling rate (e.g., the predetermined interval or other interval), type of position measurement of the drive mechanism, and/or one or more other factors.

The method <NUM> of <FIG> may include receiving <NUM> a set point for a speed of the drive mechanism <NUM> (e.g., via the control knob <NUM> of the control unit <NUM> or in another suitable manner) and the calculated speed of the drive mechanism <NUM> may be compared to the received set point to determine <NUM> a control signal configured to control a speed of the drive mechanism <NUM>. For example, the calculated RPM or other measurement of speed may be provided to the speed compensation module <NUM> for comparison to the received set point speed and determining <NUM> a control signal <NUM> based on the comparison. When a speed of the drive mechanism <NUM> is pneumatically controlled, the control signal <NUM> may be a control signal (e.g., a voltage adjustment control signal or other control signal) to a valve that adjusts fluid provided to power the drive mechanism <NUM>. When a speed of the drive mechanism <NUM> electrically controlled, the control signal <NUM> may be a control signal that adjusts an amount of current or voltage to the drive mechanism <NUM>. Further, other suitable types of control signals <NUM> are contemplated that are generally configured to directly or indirectly affect a speed of the drive mechanism <NUM>.

When speed of the drive mechanism <NUM> is measured in RPM, the follow equation may be utilized to determine the control signal <NUM> for adjusting a speed of the drive mechanism <NUM>: <MAT> where: <MAT> RPM is the calculated RPM from equation (<NUM>), GAIN is a configurable gain identified during calibration of the drive mechanism <NUM>, and SET_RPM is an RPM set point as determined by a user of the atherectomy system <NUM>.

Once calculated or otherwise determined <NUM>, the control signal <NUM> (e.g., Speed Control Signal or other control signal) may be outputted <NUM> to adjust and/or maintain a speed of the drive mechanism <NUM>. In some cases, the calculated or determined control signal <NUM> may be outputted to a valve controlling a fluid of fluid to the drive mechanism <NUM> or directly to a drive mechanism to adjust a voltage or a current to the drive mechanism <NUM>.

In some cases, the control signal <NUM> may be modified and/or determined by the damping control module <NUM> or other module or component of the firmware <NUM>. In one example, the control signal may be modified and/or determined by following the method <NUM> depicted in <FIG>, where the damping control module <NUM> may be configured to determine a control signal to adjust a speed to of the drive mechanism <NUM> during an in initial speed (e.g., RPM or other speed) overshoot, at steady state speed (e.g., RPM or other speed) oscillation, and/or at one or more other times during operation of the drive mechanism <NUM>.

The method <NUM> may include determining <NUM> an initial control signal for controlling a speed of the drive mechanism <NUM>. In some cases, the initial control signal for controlling the speed of the drive mechanism <NUM> may be determined <NUM> according to equation (<NUM>), but this is not required. The method <NUM> may further include determining <NUM> whether a predetermined period of time has elapsed. If the predetermined period of time has not elapsed, the method <NUM> may include adjusting <NUM> the initial control signal according to a first mode of operation (e.g., using the initial overshoot control <NUM>, as discussed in greater detail below) to identify a determined control signal (e.g., the determined control signal <NUM> or other determined control signal). The determined control signal may be outputted <NUM> to a further component of the atherectomy system <NUM> to control a speed of the drive mechanism <NUM>, as discussed herein. If the predetermined period of time has elapsed, the method <NUM> may include adjusting <NUM> the initial control signal according to a second mode of operation (e.g., using the steady state control <NUM>, as discussed in greater detail below) to identify the determined controller signal (e.g., the determined control signal <NUM> or other determined control signal). The determined control signal may be outputted <NUM> to a further component of the atherectomy system <NUM> to control a speed of the drive mechanism, as discussed herein.

For use in the method <NUM> and/or other methods, the damping control module <NUM> may include the initial overshoot control <NUM> configured to calculate a control signal <NUM> according to an initial equation during a period of time associated with an initial speed overshoot mode of the drive mechanism <NUM> (e.g., according to the first mode of operation) and the steady state control <NUM> configured to calculate a control signal <NUM> according to a different equation for a steady state speed oscillation mode of the drive mechanism <NUM> (e.g., according to the second mode of operation) after the period of time associated with the initial speed overshoot mode has elapsed. Further, as an alternative to using different equations for determining the control signals <NUM> in the initial speed overshoot mode and the steady state speed oscillation mode, a single, time-dependent equation may be utilized or more than two equations may be utilized to determine the control signals <NUM> when in the initial speed overshoot mode and the steady state speed oscillation mode.

The period of time associated with the initial speed overshoot mode may be a suitable period of time upon startup of the drive mechanism <NUM> prior to the drive mechanism <NUM> reaching steady state operation relative to startup conditions. Example periods of time include, but are not limited to, five hundred (<NUM>) ms, one (<NUM>) second, two (<NUM>) seconds, and/or other periods of time.

Adjustments <NUM> to a control signal with the initial overshoot control <NUM> may depend on a flow cap equation, as follows: <MAT>.

RPM_Y_INTERCEPT is the value from equation (<NUM>), DAC_COUNT_SET_RPM is a digital to analog converter count for SET_RPM, and DampFactor is a configurable factor determined during calibration of the drive mechanism <NUM>. The damping control module <NUM> may then compare a DAMP_FLOWCAP value from equation (<NUM>) to a RPM_Y_INTERCEPT value from equation (<NUM>).

If the RPM_Y_INTERCEPT value is equal to or less than the DAMP_FLOWCAP value, then the damping control module <NUM> may not modify the Speed Control Signal determined in equation (<NUM>). If the RPM_Y_INTERCEPT value is greater than the DAMP_FLOWCAP value, then the damping control module <NUM> may adjust the Speed Control signal of equation (<NUM>) to determine a dampened control signal <NUM> for initial overshoot, (Speed Control Signal)dio, as follows: <MAT> where the Speed Control Signal is determined from equation (<NUM>), the DAMP_FLOWCAP is determined from equation (<NUM>) and the RPM_Y_INTERCEPT is determined from equation (<NUM>).

Adjustments <NUM> to a control signal with steady state control <NUM> during operation of the drive mechanism <NUM> in the steady state speed oscillation mode may be based on a rate of change between a current determined speed of the drive mechanism <NUM> and a previous determined speed of the drive mechanism <NUM>. An example rate of change equation is as follows: <MAT>.

The Current Speed may be the RPM value determined from equation <NUM> at an interval i, and the Previous Speed may be the RPM value determined from equation <NUM> at an interval i-n, where n is a number of intervals previous to the current interval, i. In some cases, the Previous Speed may be an average of, or other suitable statistic of, speeds determined using equation (<NUM>) for a set of previous intervals.

Using the Rate of Change value calculated from equation (<NUM>), the damping control module may determine a dampened rate of change as follows: <MAT>.

A value for Rate of Change may be determined from equation (<NUM>) and the (DampFactor)ss may be a fixed value assigned by the firmware <NUM>. Based on the DAMP_RATE_OF_CHANGE value, the damping control module <NUM> may adjust the Speed Control signal of equation (<NUM>) to determine a dampened control signal for steady state, (Speed Control Signal)dss, and maintain a stable speed after initial startup of the drive mechanism <NUM>, as follows: <MAT> where the Speed Control Signal is determined from equation (<NUM>) and the DAMP_RATE_OF_CHANGE is determined from equation (<NUM>).

As depicted in <FIG>, the firmware <NUM> of the controller <NUM> includes a stall predictor control <NUM>. In some cases, the stall predictor control <NUM> may be in and/or part of the damping control module <NUM> and/or separate from the damping control module <NUM>. The stall predictor control <NUM> is configured to predict that a stall of the drive mechanism <NUM> is going to occur and/or when the stall is going to occur. In accordance with the present invention, the stall predictor control <NUM> is configured to follow a method <NUM> of determining if and when a stall will occur, as depicted in <FIG>.

As shown in <FIG>, the method <NUM> includes comparing <NUM> a determined speed (RPM or other measurement of speed) of a drive mechanism <NUM> at a first time to a determined speed of the drive mechanism <NUM> at a second time. In some cases, the determined speeds at the first time and the second time may be determined according to equation (<NUM>) discussed above. Alternatively or in addition, speeds of the drive mechanism <NUM> may be determined in one or more other manners.

The first time and the second time at which the speed of the drive mechanism <NUM> are determined may be any suitable times during operation of the drive mechanism <NUM>. In one example, the first time may be a current time such that the speed of the drive mechanism <NUM> determined at the first time is a current speed of the drive mechanism <NUM>. In the example, the second time may be a period of time before the current time such that the speed of the drive mechanism <NUM> determined at the second time is a previous speed of the drive mechanism <NUM>. An equation for comparing the speed of the drive mechanism <NUM> at a first time to a speed of the drive mechanism <NUM> at a second time is as follows: <MAT> where RPMi is a speed of the drive mechanism <NUM> at a current time, i, RPMi-t is a speed of the drive mechanism <NUM> at a time of a predetermined period of time, t, before a current time, i, and RPM deviation (e.g., RPM deviation trend value) is a difference between the speed of the drive mechanism <NUM> at the predetermined period of time before a current time and the speed of the drive mechanism <NUM> at the current time. The speed at the predetermined period of time before a current time may be a single speed at the predetermined time before the current time, an average of a plurality of speeds at each of several intervals of periods of time prior to the current time, and/or other statistic related to speeds determined at times prior to the current time.

The period of time before the current time may be a predetermined period of time. Example predetermined periods of time may include fifty (<NUM>) ms, one hundred (<NUM>) ms, five hundred (<NUM>) ms, one (<NUM>) second, two (<NUM>) seconds, and/or other suitable predetermined period of time greater than and, optionally, a multiple of a period of time between determinations of a speed of the drive mechanism <NUM>.

In the method <NUM>, the difference (e.g., RPM deviation or RPM deviation trend value) between the speed of the drive mechanism <NUM> at the current time and the speed of the drive mechanism <NUM> at a predetermined period of time before the current time is compared to a threshold value. A determination <NUM> then is made as to whether the difference between the speed of the drive mechanism <NUM> at the first time and the speed of the drive mechanism <NUM> at the second time reaches or goes beyond a threshold. If the difference between the speed of the drive mechanism <NUM> at the first time and the speed of the drive mechanism <NUM> at the second time does not reach or go beyond the threshold, the stall predictor control <NUM> may determine <NUM> that no stall will occur between a current time and a time at which the next stall prediction is made (e.g., over a future time period equal to or substantially equal to the predetermined period of time). If the difference between the speed of the drive mechanism <NUM> at the first time and the speed of the drive mechanism <NUM> at the second time does reach or go beyond the threshold, the stall predictor control <NUM> may determine <NUM> that a stall will occur between a current time and a time at which the next stall prediction is made (e.g., over a future time period equal to or substantially equal to the predetermined period of time).

The threshold value may be any suitable threshold value. In one example and when using equation (<NUM>), the threshold value may be equal to zero (<NUM>), may be a number less than zero (<NUM>) and/or one or more other suitable values indicative of when a stall may be expected to occur.

When the stall predictor control <NUM> makes a determination <NUM>, <NUM>, the controller <NUM> may take one or more action to indicate the determination. In some cases, the one or more actions may be to enable or disable a stall indicator on a display screen (e.g., the display <NUM>), enable or disable a light, enable or disable a sound, enable or disable a control signal for controlling the drive mechanism <NUM> to address the predicted stall or no-stall, and/or take one or more other actions or inactions.

When it has been predicted that a stall will occur, the method <NUM> may include determining <NUM> when the stall is predicted to occur. In some cases, a time at which the stall is predicted may be determined from the following equation: <MAT> where the predetermined period of time is a time between the first time at which the speed of the drive mechanism <NUM> may be determined and the second time at which the speed of the drive mechanism <NUM> may be determined, RPM deviation is a difference between the speed of the drive mechanism <NUM> determined at the current time and the speed of the drive mechanism <NUM> determined at the predetermined time before the current time (e.g., as determined form equation (<NUM>)), RPMi is a speed of the drive mechanism <NUM> at the current time, i, and RPMstall is a threshold speed level at which the drive mechanism <NUM> is considered to be stalled.

Example threshold speed levels (e.g., RPMstall) may include, but are not limited to, may be zero (<NUM>) RPM, one hundred (<NUM>) RPM, five hundred (<NUM>) RPM, one thousand (<NUM>,<NUM>) RPM, <NUM>,<NUM> RPM, <NUM>,<NUM> RPM, or other suitable threshold value. Additionally or alternatively, the threshold speed value may be a percentage of a set point speed or other motor parameter or state. In some case, the threshold speed value at which a stall may be considered to occur may be greater than zero (<NUM>) to facilitate recognizing a stall prior to the stall actually occurring.

Once the time at which the stall is predicted to occur has been determined (e.g., using the Predicted Stall Time from equation (<NUM>)), the controller <NUM> may take one or more actions. For example, the controller <NUM> may display on the display <NUM> the predicted time at which a stall may occur, sound an alarm, audibly indicate the predicted time at which a stall may occur, change operation of the drive mechanism in accordance with a control program, send an alert to the host <NUM>, send an alert to a remote device or mobile device, and/or take one or more other actions.

Although not necessarily depicted in the FIGs. , the methods described herein (e.g., methods <NUM>, <NUM>, <NUM>, and/or other methods) may include one or more steps other than those steps described herein and/or the described steps may be performed in one or more other orders, as desired unless an expressly indicated otherwise. Moreover, the methods described herein may be repeated during operation of the atherectomy system <NUM> upon request or initiation, continuously, continuously at predetermined intervals, and/or at other times.

Those skilled in the art will recognize that the present disclosure may be manifested in a variety of forms other than the specific embodiments described and contemplated herein. For instance, as described herein, various embodiments include one or more modules described as performing various functions. However, other embodiments may include additional modules that split the described functions up over more modules than that described herein. Additionally, other embodiments may consolidate the described functions into fewer modules.

Claim 1:
An atherectomy control system (<NUM>) comprising:
a drive mechanism (<NUM>);
a position sensor (<NUM>) configured to sense a rotational position of the drive mechanism (<NUM>);
an input/output port (<NUM>);
a microcontroller (<NUM>) in communication with the position sensor (<NUM>) and the input/output port (<NUM>); and
wherein:
the microcontroller (<NUM>) is configured to determine a speed of the drive mechanism (<NUM>) based on received indications of the rotational position of the drive mechanism (<NUM>);
determine a control signal (<NUM>) for adjusting the speed of the drive mechanism (<NUM>) based on the determined speed of the drive mechanism (<NUM>) and output the determined control signal (<NUM>) via the input/output port (<NUM>); characterized in that:
the microcontroller (<NUM>) is configured to predict that a stall of the drive mechanism (<NUM>) will occur within a predetermined time period after a current time;
the microcontroller (<NUM>) is configured to predict the stall of the drive mechanism (<NUM>) will occur within the predetermined time period when a trend value based on the determined speed of the drive mechanism (<NUM>) reaches or goes beyond a threshold value; and
the trend value is a difference between a currently determined speed of the drive mechanism (<NUM>) and a speed of the drive mechanism (<NUM>) at a time that is the predetermined time period before a time at which the currently determined speed of the drive mechanism (<NUM>) was taken.