Methods and systems for programming closed-loop neuromodulation

The method optimizes closed-loop neuromodulation by adjusting stimulus parameters based on patient characteristics and posture, addressing electrode migration and energy efficiency issues, ensuring consistent therapeutic efficacy and comfort across varying postures.

WO2025175339A1PCT designated stage Publication Date: 2025-08-28SALUDA MEDICAL PTY LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/AU2025/050132
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-19
Filing Date
2025-02-19
Publication Date
2025-08-28

AI Technical Summary

Technical Problem

Existing neuromodulation devices face challenges in maintaining optimal neural recruitment and energy efficiency due to electrode migration, postural changes, and patient variability, leading to ineffective or uncomfortable therapy, and require personalized parameter settings for effective closed-loop control.

Method used

A method for programming closed-loop neural stimulation devices that adjusts stimulus parameters based on patient characteristics and posture changes, using a feedback controller to maintain neural response intensity at a target value, optimizing performance across various postures by determining loop parameters at an extremum of an objective function subject to constraints.

Benefits of technology

Ensures consistent therapeutic efficacy and comfort by maintaining stimulus intensity within a therapeutic range, reducing power consumption, and adapting to patient-specific variations, thereby enhancing the effectiveness and longevity of neuromodulation therapy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure AU2025050132_28082025_PF_FP_ABST
    Figure AU2025050132_28082025_PF_FP_ABST
Patent Text Reader

Abstract

A neural stimulation system provides a neural stimulus according to stimulus parameters; measures an intensity of an evoked neural response; determines a feedback variable from the measured intensity; and adjusts, using a feedback controller, based on one or more loop parameters, the stimulus parameters so as to maintain the feedback variable at or near a target value. The system fixes one or more performance indicators of the device at respective predetermined values; measures one or more characteristics of the patient, and determines a loop parameter of the one or more loop parameters from the one or more measured patient characteristics and the one or more predetermined values of respective performance indicators. The determining may find the values of the loop parameters at an extremum of an objective function of the loop parameters subject to respective constraints on the loop parameter values and one or more performance indicators of the device.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND SYSTEMS FOR PROGRAMMING CLOSED-LOOP NEUROMODULATION

[0001] The present application claims priority from Australian Provisional Patent Application No 2024900399 filed on 19 February 2024, the contents of which are incorporated herein by reference in their entirety.TECHNICAL FIELD

[0002] The present invention relates to closed-loop neuromodulation and in particular to programming a feedback loop for closed-loop neuromodulation.BACKGROUND OF THE INVENTION

[0003] There are a range of situations in which it is desirable to apply neural stimuli in order to alter neural function, a process known as neuromodulation. For example, neuromodulation is used to treat a variety of disorders including chronic neuropathic pain, movement disorders, and voiding disorders. A neuromodulation device applies an electrical pulse (stimulus) to neural tissue (fibres, or neurons) in order to generate a therapeutic effect. In general, the electrical stimulus generated by a neuromodulation device evokes a neural response known as an action potential in a neural fibre which then has either inhibitory or excitatory effects on neural networks. Inhibitory effects can be used to modulate an undesired process such as the transmission of pain, or excitatory effects may be used to cause a desired effect such as the contraction of a muscle.

[0004] When used to relieve neuropathic pain originating in the trunk and limbs, the electrical pulse is applied to the dorsal column (DC) of the spinal cord, a procedure referred to as spinal cord stimulation (SCS). Such a device typically comprises an implanted electrical pulse generator, and a power source such as a battery that may be transcutaneously rechargeable by wireless means, such as inductive transfer. An electrode array is connected to the pulse generator, and is implanted adjacent the target neural fibre(s) in the spinal cord, typically in the dorsal epidural space above the dorsal column. An electrical pulse of sufficient intensity applied to the target neural fibres by a stimulus electrode causes the depolarisation of neurons in the fibres, which in turn generates an action potential in the fibres. Action potentials propagate along the fibres in an orthodromic direction (in afferent fibres this means towards the head, or rostral) and in an antidromic direction (in afferent fibres this means towards the cauda, or caudal). Action potentials propagating along A[3 (A-beta) fibres that are stimulated in this way may inhibit the transmission of pain from a region of the body innervated by the target neural fibres (the dermatome) to the brain. To sustain the pain relief effects, stimuli are applied repeatedly, for example at a stimulus frequency in the range of 30 Hz - 100 Hz.

[0005] For effective and comfortable neuromodulation, it is necessary to maintain stimulus intensity above a recruitment threshold. Stimuli below the recruitment threshold will fail to recruit sufficient neurons to generate action potentials with a therapeutic effect. In some neuromodulation applications, response from a single class of fibre is desired, but the stimulus waveforms employed can evoke action potentials in other classes of fibres which cause unwanted side effects. In pain relief, it is therefore desirable to apply stimuli with intensity below a discomfort threshold, above which uncomfortable or painful percepts arise due to over-recruitment of A[3 fibres or recruitment of undesired fibre classes. When recruitment is too large, A[3 fibres produce uncomfortable sensations. Stimulation at high intensity may even recruit A8 (A-delta) fibres, which are sensory nerve fibres associated with acute pain, cold and heat sensation. It is therefore desirable to maintain stimulus intensity within a therapeutic range between the recruitment threshold and the discomfort threshold.

[0006] The task of maintaining appropriate neural recruitment is made more difficult by electrode migration (change in position over time) or postural changes of the implant recipient (patient), either of which can significantly alter the neural recruitment arising from a given stimulus, and therefore the therapeutic range. There is room in the epidural space for the electrode array to move, and such array movement from migration or posture change alters the electrode-to-cord distance and thus the recruitment efficacy of a given stimulus. Moreover, the spinal cord itself moves within the cerebrospinal fluid (CSF) with respect to the dura. During postural changes, the amount of CSF or the distance between the spinal cord and the electrode can change significantly. This effect is so large that postural changes alone can cause a previously comfortable and effective stimulus regime to become either ineffectual or painful.

[0007] Another control problem facing neuromodulation devices of all types is achieving neural recruitment at a sufficient level for therapeutic effect, but at minimal expenditure of energy. The power consumption of the stimulation paradigm has a direct effect on battery requirements which in turn affects the device’s physical size and lifetime. For rechargeable devices, increased power consumption results in more frequent charging and, given that batteries only permit a limited number of charging cycles, this ultimately reduces the implanted lifetime of the device.

[0008] Attempts have been made to address such problems by way of feedback or closed-loop control, such as using the methods set forth in International Patent Publication No. WO2012 / 155188 by the present applicant, the content of which is incorporated herein by reference. Feedback control seeks to compensate for relative nerve / electrode movement by controlling the intensity of the delivered stimuli so as to maintain neural recruitment at or near a target value. The intensity of a neural response evoked by a stimulus may be used as a feedback variable representative of the amount of neural recruitment. A signal representative of the neural response may be sensed by a measurementelectrode in electrical communication with the recruited neural fibres, and processed to obtain the feedback variable. Based on the response intensity, the intensity of the applied stimulus may be adjusted to bring the response intensity closer to the target value.

[0009] It is therefore desirable to accurately measure the intensity and other characteristics of a neural response evoked by the stimulus. The action potentials generated by the depolarisation of a large number of fibres by a stimulus sum to form a measurable signal known as an evoked compound action potential (ECAP). Accordingly, an ECAP is the sum of responses from a large number of single fibre action potentials. The ECAP generated from the depolarisation of a group of similar fibres may be sensed by a measurement electrode as a positive peak potential, then a negative peak, followed by a second positive peak. This morphology is caused by the region of activation passing the measurement electrode as the action potentials propagate along the individual fibres.

[0010] Approaches proposed for obtaining a neural response measurement are described by the present applicant in International Patent Publication No. WO2012 / 155183, the content of which is incorporated herein by reference.

[0011] Closed-loop neural stimulation therapy is governed by a number of parameters to which values must be assigned to implement the therapy The effectiveness of the therapy depends in large measure on the suitability of the assigned parameter values to the patient undergoing the therapy. As patients vary significantly in their physiological characteristics, a “one-size-fits-all” approach to parameter value assignment is likely to result in ineffective therapy for a large proportion of patients. An important preliminary task, once a neuromodulation device has been implanted in a patient, is therefore to assign values to the therapy parameters that maximise the effectiveness of the therapy the device will deliver to that particular patient. This task is known as programming or fitting the device. Programming generally involves applying certain test stimuli via the device, recording responses, and based on the recorded responses, inferring or calculating the most effective parameter values for the patient. The resulting parameter values are then formed into a “program” that may be loaded to the device to govern subsequent therapy. Some of the recorded responses may be neural responses evoked by the test stimuli, which provide an objective source of information that may be analysed.

[0012] Programming a closed-loop neural stimulation (CLNS) system means choosing values for the parameters that specifically affect the characteristics and performance of the feedback loop in order to optimise that performance. However, there are multiple dimensions by which loop performance may be characterised. Some characteristics of the feedback loop (dimensions of loop performance) are:Responsiveness to changes in target (generally referred to as loop speed)• Robustness to disturbances such as sudden posture change or heartbeat (related to loop speed)• Patient sensation of variability in their stimulus intensity• Loop stability (related to robustness to disturbances)• Power consumption

[0013] Some of these characteristics are in tension. For example, increasing loop speed may increase the variability of the patient’s sensation and make the loop less stable. Thus sensation may be reduced at the expense of greater power consumption.

[0014] Further complicating the task of feedback loop programming is the fact that different postures result in different patient characteristics, for example sensitivity and threshold (defined below). Sensitivity in particular is a key determinant of multiple dimensions of loop performance, so tuning the loop parameters for “optimal” performance in any single posture is likely to result in sub-optimal performance, perhaps massively so, in other postures.

[0015] Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present Background is solely for the purpose of providing a context for the present technology. It is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present technology as it existed before the priority date of each claim of this application.SUMMARY OF THE INVENTION

[0016] The present invention seeks to provide methods for programming closed-loop neural stimulation therapy devices, which will overcome or substantially ameliorate at least some of the deficiencies of the prior art, or at least provide an alternative.

[0017] Disclosed herein are methods for programming a closed-loop neural stimulation therapy device that choose a combination of loop parameters, given the patient’s key characteristics and their variation across postures, that achieves an acceptable compromise across all dimensions of performance in all postures. Generally, the disclosed methods measure a characteristic of the patient, constrain one or more loop parameters or indicators of loop performance of the device to predetermined values or ranges based on the measured patient characteristic, and determine values for the remaining loop parameters so as to satisfy the constraints. In some implementations, the disclosed methods determine values for the plurality of loop parameters by finding the values of the loop parameters at an extremum of an objective function of the loop parameters subject to the respective constraints on the loop parameter values and the loop performance indicators of the device.

[0018] According to a first aspect of the present technology, there is provided a neural stimulation system comprising a device for controllably delivering neural stimuli, and a processor. The devicecomprises: a plurality of electrodes including one or more stimulus electrodes and one or more measurement electrodes; a stimulus source configured to provide neural stimuli to be delivered via the one or more stimulus electrodes to a neural pathway of a patient in order to evoke neural responses from the neural pathway; measurement circuitry configured to capture signal windows from signals sensed on the neural pathway via the one or more measurement electrodes subsequent to respective neural stimuli; and a control unit. The control unit is configured to: control the stimulus source to provide a neural stimulus according to one or more stimulus parameters; measure an intensity of an evoked neural response in a captured signal window subsequent to the neural stimulus; determine a feedback variable from the measured intensity of the evoked neural response; and adjust, using a feedback controller, based on one or more loop parameters, the one or more stimulus parameters so as to maintain the feedback variable at or near a target value. The processor is configured to: fix one or more performance indicators of the device at respective predetermined values; measure one or more characteristics of the patient, and determine a loop parameter of the one or more loop parameters from the one or more measured patient characteristics and the one or more predetermined values of respective performance indicators.

[0019] According to a second aspect of the present technology, there is provided an automated method of programming a closed-loop neural stimulation device, the device comprising a control unit configured to adjust, using a feedback controller and one or more loop parameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value, the method comprising: fixing one or more performance indicators of the closed-loop neural stimulation device at respective predetermined values; measuring one or more characteristics of a patient; and determining a loop parameter of the one or more loop parameters from the one or more measured patient characteristics and the one or more predetermined values of respective performance indicators.

[0020] According to a third aspect of the present technology, there is provided a neural stimulation system comprising: a closed-loop neural stimulation device for controllably delivering neural stimuli, the device comprising a control unit configured to adjust, using a feedback controller and one or more loop parameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value; and a processor configured to:fix one or more performance indicators of the closed-loop neural stimulation device at respective predetermined values; measure one or more characteristics of a patient; and determine a loop parameter of the one or more loop parameters from the one or more measured patient characteristics and the one or more predetermined values of respective performance indicators.

[0021] In some embodiments of the first to third aspects of the present technology the loop parameter is measurement noise, in such embodiments the one or more performance indicators may be jitteriness and cutoff frequency. The processor may be configured to determine the measurement noise by: determining a loop gain from the predetermined value of the cutoff frequency; and determining the measurement noise from the one or more measured patient characteristics, the predetermined value of the jitteriness, and the loop gain. The processor may be further configured to determine a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

[0022] In some embodiments of the first to third aspects of the present technology the loop parameter is loop gain. In such embodiments the performance indicator may be cutoff frequency The processor may be configured to determine the loop gain by: determining an initial loop gain from the predetermined value of the cutoff frequency; determining a divisor from a loop frequency; and determining the loop gain by dividing the initial loop gain by the divisor. The processor may be configured to determine the divisor according to a stepped function of the loop frequency. The processor may be further configured to determine a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

[0023] In some embodiments of the first to third aspects of the present technology the loop parameter is loop frequency. In such embodiments the one or more performance indicators may be loop gain and cutoff frequency. The processor may be configured to determine the loop frequency by: determining a normalised cutoff frequency from the predetermined value of the loop gain; and determining the loop frequency from the normalised cutoff frequency and the predetermined value of the cutoff frequency. The processor may be further configured to increase the loop frequency while maintaining the cutoff frequency at its predetermined value. The processor may be further configured to determine a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

[0024] According to a fourth aspect of the present technology, there is provided a neural stimulation system comprising: a closed-loop neural stimulation device for controllably delivering neural stimuli,and a processor. The device comprises: a stimulus source configured to provide neural stimuli to be delivered via one or more stimulus electrodes to a neural pathway of a patient, the neural stimuli being configured to evoke neural responses from the neural pathway; measurement circuitry configured to capture signal windows from signals sensed on the neural pathway by one or more measurement electrodes subsequent to respective neural stimuli; and a control unit. The control unit is configured to: control the stimulus source to provide a neural stimulus according to one or more stimulus parameters; measure an intensity of an evoked neural response in a captured signal window subsequent to the neural stimulus; determine a feedback variable from the measured intensity of the evoked neural response; and adjust, using a feedback controller, based on one or more loop parameters, the one or more stimulus parameters so as to maintain the feedback variable at or near a target value. The processor is configured to: measure one or more characteristics of the patient, and determine values for the one or more loop parameters from the one or more measured patient characteristics. The determining finds the values for the one or more loop parameters at an extremum of an objective function of the loop parameters subject to respective constraints on the loop parameter values and one or more performance indicators of the device.

[0025] According to a fifth aspect of the present technology, there is provided an automated method of programming a closed-loop neural stimulation device, the device comprising a control unit configured to adjust, using a feedback controller and one or more loop parameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value, the method comprising: measuring one or more characteristics of a patient; and determining one or more loop parameter values of the closed-loop neural stimulation device from the one or more measured patient characteristics, wherein the determining finds the values for the one or more loop parameters at an extremum of an objective function of the loop parameters subject to respective constraints on the loop parameter values and one or more performance indicators of the closed-loop neural stimulation device.

[0026] According to a sixth aspect of the present technology, there is provided a neural stimulation system comprising: a closed-loop neural stimulation device for controllably delivering neural stimuli, the device comprising a control unit configured to adjust, using a feedback controller and one or more loop parameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value; and a processor configured to: measure one or more characteristics of a patient; and determine values for the one or more loop parameters from the one or more measured patient characteristics, wherein the determining finds the values for the one or more loop parameters at an extremum of an objective function of the loop parameterssubject to respective constraints on the loop parameter values and one or more performance indicators of the closed-loop neural stimulation device.

[0027] In some embodiments of the fourth to sixth aspects of the present technology, one of the one or more performance indicators is cutoff frequency, and the corresponding constraint is a predetermined fixed value. Additionally or alternatively, one of the one or more performance indicators is jitteriness, and the corresponding constraint is a predetermined fixed value. In such embodiments one of the one or more performance indicators may be loop gain, and the corresponding constraint may be a predetermined fixed value.

[0028] In some embodiments of the fourth to sixth aspects of the present technology, the constraints on the one or more performance indicators are range constraints. In such embodiments, the processor is further configured to determine one or more of the range constraints on the performance indicators based on the measured patient characteristics. The performance indicators may be jitteriness and pulsingness.

[0029] In some embodiments of the fourth to sixth aspects of the present technology, the constraints on the one or more loop parameters are range constraints. In such embodiments the processor may be further configured to determine one or more of the range constraints on the loop parameters based on the measured patient characteristics. The one or more loop parameters may comprise loop gain.

[0030] In some embodiments of the fourth to sixth aspects of the present technology, the objective function is a measure of power consumption, and the extremum is a minimum of the objective function.

[0031] The present technology has been developed primarily for use in or with neuromodulation of the spinal cord and will be described hereinafter mostly with reference to this application. However, it will be appreciated that the present technology is not limited to this particular field of use, and may be applied in other neuromodulation contexts, including but not limited to sacral nerve stimulation, pudendal nerve stimulation, deep brain stimulation, stimulation of other parts of the peripheral and central nervous system. It will further be appreciated that the present technology may be applied for treatment of conditions other than chronic pain, including but not limited to movement disorders, Crohn’s disease, rheumatoid arthritis, diabetes, Reynaud’s phenomenon, pelvic floor disorders, chronic inflammatory conditions, migraine, stroke, or depression.BRIEF DESCRIPTION OF THE DRAWINGS

[0032] Notwithstanding any other implementations which may fall within the scope of the present invention, one or more implementations of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:

[0033] Fig. 1 schematically illustrates an implanted spinal cord stimulator, according to one implementation of the present technology;

[0034] Fig. 2 is a block diagram of the stimulator of Fig. 1;

[0035] Fig. 3 is a schematic illustrating interaction of the implanted stimulator of Fig. 1 with a nerve;

[0036] Fig. 4a illustrates an idealised activation plot for one posture of a patient undergoing neural stimulation;

[0037] Fig. 4b illustrates the variation in the activation plots with changing posture of the patient;

[0038] Fig. 5 is a schematic illustrating elements and inputs of a closed-loop neural stimulation (CLNS) system, according to one implementation of the present technology;

[0039] Fig. 6 illustrates the typical form of an electrically evoked compound action potential (ECAP) of a healthy subject;

[0040] Fig. 7 is a block diagram of a neural stimulation therapy system including the implanted stimulator of Fig. 1 according to one implementation of the present technology;

[0041] Fig. 8 is a discrete-time model of the CLNS system of Fig. 5;

[0042] Fig. 9a is a pole-zero (z-plane) diagram of the relationship between loop gain, the pole of the transfer function, and the normalised cutoff frequency in the model of Fig 8;

[0043] Fig. 9b is a pole-zero diagram illustrating the range of values taken by the pole of Fig. 9a as posture changes between extremes;

[0044] Fig. 10 is a graph showing curves of jitteriness versus loop gain at different values of measurement signal-to-noise ratio;

[0045] Fig. 11 is a flowchart illustrating a method of loop programming according to aspects of the present technology;

[0046] Fig. 12 contains a graph showing the loop gain determined and clamped to a range at various values of SNR, with jitteriness fixed at a predetermined value;

[0047] Fig. 13 is a graph containing curves showing by how much the SNR needs to be increased to maintain the jitteriness and achieve several predetermined values of loop gain, as a function of stimulus frequency;

[0048] Fig. 14 is a flowchart illustrating a method of loop programming according to further aspects of the present technology; and

[0049] Fig. 15 is a flowchart illustrating a method of loop programming according to a further aspect of the present technology.DETAILED DESCRIPTION OF THE PRESENT TECHNOLOGY

[0050] Fig. 1 schematically illustrates an implanted spinal cord stimulator 100 in a patient 108, according to one implementation of the present technology. Stimulator 100 comprises an electronics module 110 housed within a conductive case, implanted at a suitable location. In one implementation, stimulator 100 is implanted in the patient’s lower abdominal area or posterior superior gluteal region. In other implementations, the electronics module 110 is implanted in other locations, such as in a flank or sub-clavicularly. The electronics module 110 is configured to electrically connect to an electrode assembly, typically comprising an electrode array 150 implanted within the epidural space and connected to the module 110 by a suitable lead. The electrode array 150 may comprise one or more electrodes such as electrode pads on a paddle lead, circular (e.g., ring) electrodes surrounding the body of a percutaneous lead, conformable electrodes, cuff electrodes, segmented electrodes, or any other type of electrodes capable of forming unipolar, bipolar or multipolar electrode configurations for stimulation and measurement. The electrodes may pierce or affix directly to the tissue itself.

[0051] Numerous aspects of the operation of implanted stimulator 100 may be programmable by an external computing device 192, which may be operable by a user such as a clinician or the patient 108. Moreover, implanted stimulator 100 serves a data gathering role, with gathered data being communicated to external device 192 via a transcutaneous communications channel 190. Communications channel 190 may be active on a substantially continuous basis, at periodic intervals, at non-periodic intervals, or upon request from the external device 192. External device 192 may thus provide a clinical interface configured to program the implanted stimulator 100 and recover data stored on the implanted stimulator 100. This configuration is achieved by program instructions collectively referred to as the Clinical Programming Application (CPA) and stored in an instruction memory of the clinical interface.

[0052] Fig. 2 is a block diagram of the stimulator 100. Electronics module 110 contains a battery 112 and a telemetry module 114. In implementations of the present technology, any suitable type of transcutaneous communications channel 190, such as infrared (IR), radiofrequency (RF), capacitive or inductive transfer, may be used by telemetry module 114 to transfer power or data to and from the electronics module 110 via communications channel 190. Module controller 116 has an associated memory 118 storing one or more of clinical data 120, clinical settings 121, control programs 122, and the like. Controller 116 is configured by control programs 122, sometimes referred to as firmware, to control a pulse generator 124 to generate stimuli, such as in the form of electrical pulses, in accordance with the clinical settings 121. Electrode selection module 126 switches the generatedpulses to the selected electrode(s) of electrode array 150, for delivery of the pulses to the tissue surrounding the selected electrode(s). Measurement circuitry 128, which may comprise an amplifier or an analog-to-digital converter (ADC), is configured to process signals comprising neural responses sensed by measurement electrode(s) of the electrode array 150 as selected by electrode selection module 126.

[0053] Fig. 3 is a schematic illustrating interaction of the implanted stimulator 100 with a bundle of target nerve fibres 180 in the patient 108. In the implementation illustrated in Fig. 3 the target fibres 180 may be located in the spinal cord, however in alternative implementations the stimulator 100 may be positioned adjacent any target neural tissue including a peripheral nerve, visceral nerve, sacral nerve, parasympathetic nerve or a brain structure. Electrode selection module 126 selects a stimulus electrode 2 of electrode array 150 through which to deliver a pulse from the pulse generator 124 to surrounding neural tissue including target fibres 180. A pulse may comprise one or more phases, e.g. a monophasic pulse comprises one phase, and a biphasic stimulus pulse 160 comprises two phases. Electrode selection module 126 also selects a return electrode 4 of the electrode array 150 for stimulus current return in each phase, to maintain a zero net charge transfer. An electrode may act as both a stimulus electrode and a return electrode over a complete multiphasic stimulus pulse. The use of two electrodes in this manner for delivering and returning current in each stimulus phase is referred to as bipolar stimulation. Alternative implementations may apply other forms of bipolar stimulation, or may use a greater number of stimulus or return electrodes. By contrast, in monopolar stimulation, current is returned through the conductive case of the stimulator 100, which may therefore be configured and function as an electrode though it is not physically part of the electrode array 150. The set of stimulus electrodes and return electrodes is referred to as the stimulus electrode configuration. Electrode selection module 126 is illustrated as connecting to a ground 130 of the pulse generator 124 to enable stimulus current return via the return electrode 4. However, other connections for current return may be used in other implementations.

[0054] Delivery of an appropriate stimulus via electrodes 2 and 4 to the target fibres 180 evokes a neural response 170 comprising an evoked compound action potential (ECAP) which will propagate along the target fibres 180 as illustrated at a rate known as the conduction velocity. The ECAP may be evoked for therapeutic purposes, which in the case of a spinal cord stimulator for chronic pain may be to create paresthesia at a desired location. To this end, the electrodes 2 and 4 are used to deliver stimuli periodically at any therapeutically suitable stimulus frequency, for example 30 Hz, although other frequencies may be used including frequencies as high as the kHz range. In alternative implementations, stimuli may be delivered in a non-periodic manner such as in bursts, or sporadically, as appropriate for the patient 108. To program the stimulator 100 to the patient 108, a clinician maycause the stimulator 100 to deliver stimuli of various configurations which seek to produce a sensation that may be experienced by the patient as paresthesia. When a stimulus electrode configuration is found which evokes paresthesia in a location and of a size which is congruent with the area of the patient’s body affected by pain and of a quality that is comfortable for the patient, the clinician or the patient nominates that configuration for ongoing use. The therapy parameters may be loaded into the memory 118 of the stimulator 100 as the clinical settings 121.

[0055] Fig. 6 illustrates the typical form of an ECAP 600 of a healthy subject, as sensed by a single measurement electrode referenced to the system ground 130. The shape and duration of the single- ended ECAP 600 shown in Fig. 6 is predictable because it is a result of the ion currents produced by the ensemble of fibres depolarising and generating action potentials (APs) in response to stimulation. The evoked action potentials (EAPs) generated synchronously among a large number of fibres sum to form the ECAP 600. The ECAP 600 generated from the synchronous depolarisation of a group of similar fibres comprises a positive peak Pl, then a negative peak Nl, followed by a second positive peak P2. This shape is caused by the region of activation passing the measurement electrode as the action potentials propagate along the individual fibres.

[0056] The ECAP may be recorded differentially using two measurement electrodes, as illustrated in Fig. 3. Differential ECAP measurements are less subject to common-mode noise on the surrounding tissue than single-ended ECAP measurements. Depending on the polarity of recording, a differential ECAP may take an inverse form to that shown in Fig. 6, i.e. a form having two negative peaks Nl and N2, and one positive peak Pl. Alternatively, depending on the distance between the two measurement electrodes, a differential ECAP may resemble the time derivative of the ECAP 600, or more generally the difference between the ECAP 600 and a time-delayed copy thereof.

[0057] The ECAP 600 may be characterised by any suitable character! stic(s) of which some are indicated in Fig. 6. The amplitude of the positive peakPl is Ap and occurs at time Tpi. The amplitude of the positive peak P2 is Api and occurs at time Tpi. The amplitude of the negative peak Pl is Am and occurs at time Tm. The peak-to-peak amplitude is Apt + Am. A recorded ECAP will typically have a maximum peak-to-peak amplitude in the range of microvolts and a duration of 2 to 3 ms.

[0058] The stimulator 100 is further configured to measure the intensity of ECAPs 170 propagating along target fibres 180, whether such ECAPs are evoked by the stimulus from electrodes 2 and 4, or otherwise evoked. To this end, any electrodes of the array 150 may be selected by the electrode selection module 126 to serve as recording electrode 6 and reference electrode 8, whereby the electrode selection module 126 selectively connects the chosen electrodes to the inputs of the measurement circuitry 128. Thus, signals sensed by the measurement electrodes 6 and 8 subsequent to the respective stimuli are passed to the measurement circuitry 128, which may comprise adifferential amplifier and an analog-to-digital converter (ADC), as illustrated in Fig. 3. The recording electrode and the reference electrode are referred to as the measurement electrode configuration. The measurement circuitry 128 for example may operate in accordance with the teachings of the above- mentioned International Patent Publication No. WO2012 / 155183.

[0059] Signals sensed by the measurement electrodes 6, 8 and processed by measurement circuitry 128 are further processed by an ECAP detector implemented within controller 116, configured by control programs 122, to obtain information regarding the effect of the applied stimulus upon the target fibres 180. In some implementations, the sensed signals are processed by the ECAP detector in a manner which measures and stores one or more characteristics from each evoked neural response or group of evoked neural responses contained in the sensed signal. In one such implementation, the characteristics comprise a peak-to-peak ECAP amplitude in microvolts (pV). For example, the sensed signals may be processed by the ECAP detector to determine the peak-to-peak ECAP amplitude in accordance with the teachings of International Patent Publication No. WO2015 / 074121 by the present applicant, the contents of which are incorporated herein by reference. Alternative implementations of the ECAP detector may measure and store an alternative characteristic from the neural response, or may measure and store two or more characteristics from the neural response.

[0060] Stimulator 100 applies stimuli over a potentially long period such as days, weeks, or months and during this time may store characteristics of neural responses, clinical settings, target response intensity, and other operational parameters in memory 118. To effect suitable SCS therapy, stimulator 100 may deliver tens, hundreds or even thousands of stimuli per second, for many hours each day. Each neural response or group of responses generates one or more characteristics such as a measure of the intensity of the neural response. Stimulator 100 thus may produce such data at a rate of tens or hundreds of Hz, or even kHz, and over the course of hours or days this process results in large amounts of clinical data 120 which may be stored in the memory 118. Memory 118 is however necessarily of limited capacity and care is thus required to select compact data forms for storage into the memory 118, to ensure that the memory 118 is not exhausted before such time that the data is expected to be retrieved wirelessly by external device 192, which may occur only once or twice a day, or less.

[0061] An activation plot, or growth curve, is an approximation to the relationship between stimulus intensity (e.g. an amplitude of the current pulse 160) and intensity of neural response 170 evoked by the stimulus (e.g. an ECAP amplitude). Fig. 4a illustrates an idealised activation plot 402 for one posture of the patient 108. The activation plot 402 shows a linearly increasing ECAP amplitude for stimulus intensity values above a threshold 404 referred to as the ECAP threshold. The ECAP threshold exists because of the binary nature of fibre recruitment; if the field strength is too low, nofibres will be recruited. However, once the field strength exceeds a threshold, fibres begin to be recruited, and their individual evoked action potentials are independent of the strength of the field. The ECAP threshold 404 therefore reflects the field strength at which significant numbers of fibres begin to be recruited, and the increase in response intensity with stimulus intensity above the ECAP threshold reflects increasing numbers of fibres being recruited. Below the ECAP threshold 404, the ECAP amplitude may be taken to be zero. Above the ECAP threshold 404, the activation plot 402 has a positive, approximately constant slope indicating a linear relationship between stimulus intensity and the ECAP amplitude. Such a relationship may be modelled in piecewise linear form as:

[0062] where 5 is the stimulus intensity, y is the ECAP amplitude, T is the ECAP threshold and P is the slope of the activation plot (referred to herein as the patient sensitivity) above the ECAP threshold T. The sensitivity 5 and the ECAP threshold T are the key parameters of the activation plot 402.

[0063] Fig. 4a also illustrates a discomfort threshold 408, which is a stimulus intensity above which the patient 108 experiences uncomfortable or painful stimulation. Fig. 4a also illustrates a perception threshold 410. The perception threshold 410 corresponds to an ECAP amplitude that is barely perceptible by the patient. There are a number of factors which can influence the position of the perception threshold 410, including the posture of the patient. Perception threshold 410 may correspond to a stimulus intensity that is greater than the ECAP threshold 404, as illustrated in Fig. 4a, if patient 108 does not perceive low levels of neural activation. Conversely, the perception threshold 410 may correspond to a stimulus intensity that is less than the ECAP threshold 404, if the patient has a high perception sensitivity to lower levels of neural activation than can be detected in an ECAP, or if the signal-to-noise ratio of the ECAP is low.

[0064] For effective and comfortable operation of an implantable neuromodulation device such as the stimulator 100, it is desirable to maintain stimulus intensity within a therapeutic range. A stimulus intensity within a therapeutic range 412 is above the ECAP threshold 404 and below the discomfort threshold 408. In principle, it would be straightforward to measure these limits and ensure that stimulus intensity, which may be closely controlled, always falls within the therapeutic range 412. However, the activation plot, and therefore the therapeutic range 412, varies with the posture of the patient 108.

[0065] Fig. 4b illustrates the variation in the activation plots with changing posture of the patient. A change in posture of the patient may cause a change in impedance of the electrode-tissue interface or a change in the distance between electrodes and the spinal cord. Electrode-to-cord distance is therefore loosely referred to throughout the present disclosure as posture though the two terms arenot strictly synonymous. While the activation plots for only three postures, 502, 504 and 506, are shown in Fig. 4b, the activation plot for any given posture can lie between or outside the activation plots shown, on a continuously varying basis depending on posture. Consequently, as the patient’s posture changes, the ECAP threshold changes, as indicated by the ECAP thresholds 508, 510, and 512 for the respective activation plots 502, 504, and 506. Additionally, as the patient’s posture changes, the patient sensitivity also changes, as indicated by the varying slopes of activation plots 502, 504, and 506. In general, as the distance between the stimulus electrodes and the spinal cord increases, the ECAP threshold increases and the sensitivity decreases. The activation plots 502, 504, and 506 therefore correspond to increasing distance between stimulus electrodes and spinal cord, and decreasing patient sensitivity.

[0066] To keep the applied stimulus intensity within the therapeutic range as patient posture varies, in some implementations an implantable neuromodulation device such as the stimulator 100 may adjust the applied stimulus intensity based on a feedback variable that is determined from one or more measured ECAP characteristics. In one implementation, the device may adjust the stimulus intensity to maintain the measured ECAP amplitude at a target response intensity. For example, the device may calculate an error between a target ECAP amplitude and a measured ECAP amplitude, and adjust the applied stimulus intensity to reduce the error as much as possible, such as by adding the scaled error to the current stimulus intensity. A neuromodulation device that operates by adjusting the applied stimulus intensity based on a measured ECAP characteristic is said to be operating in closed- loop mode and will also be referred to as a closed-loop neural stimulation (CLNS) device. By adjusting the applied stimulus intensity to maintain the measured ECAP amplitude at or near an appropriate target response intensity, such as a target ECAP amplitude 520 illustrated in Fig. 4b, a CLNS device will generally keep the stimulus intensity within the therapeutic range as patient posture varies.

[0067] A CLNS device comprises a stimulator that takes a stimulus intensity value and converts it into a neural stimulus comprising a sequence of electrical pulses according to a predefined stimulation pattern. The stimulation pattern is parametrised by multiple stimulus parameters including stimulus amplitude, pulse width, number of phases, order of phases, number of stimulus electrode poles (two for bipolar, three for tripolar etc.), and stimulus rate or frequency. At least one of the stimulus parameters, for example the stimulus amplitude, is controlled by the feedback loop.

[0068] In an example CLNS system, the user sets a target response intensity, and the CLNS device performs proportional-integral-differential (PID) control. In some implementations, the differential contribution is disregarded and the CLNS device uses a first order integrating feedback loop. The stimulator produces stimulus in accordance with a stimulus intensity parameter, which evokes aneural response in the patient. The intensity of an evoked neural response (e.g. an ECAP) is measured by the CLNS device and compared to the target response intensity.

[0069] The measured neural response intensity, and its deviation from the target response intensity, is used by the feedback loop to determine possible adjustments to the stimulus intensity parameter to maintain the neural response at or near the target response intensity. If the target response intensity is properly chosen, the patient receives consistently comfortable and therapeutic stimulation through posture changes and other perturbations to the stimulus / response behaviour.

[0070] Fig. 5 is a schematic illustrating elements and inputs of a closed-loop neural stimulation (CLNS) system 300, according to one implementation of the present technology. The system 300 comprises a stimulator 312 which converts a stimulus intensity parameter (for example a stimulus current amplitude) s, in concert with a set of predefined stimulus parameters, to a neural stimulus comprising a sequence of electrical pulses on the stimulus electrodes (not shown in Fig. 5). According to one implementation, the predefined stimulus parameters comprise the number and order of phases, the number of stimulus electrode poles, the pulse width, and the stimulus rate or frequency.

[0071] The generated stimulus crosses from the electrodes to the spinal cord, which is represented in Fig. 5 by the dashed box 308. The box 309 represents the evocation of a neural response y by the stimulus as described above. The box 311 represents the evocation of an artefact signal a, which is dependent on stimulus intensity and other stimulus parameters, as well as the electrical environment of the measurement electrodes. Various sources of measurement noise m, as well as the artefact a, may add to the evoked response y at the summing element 313 to form the sensed signal r, including: electrical noise from external sources such as 50 Hz mains power; electrical disturbances produced by the body such as neural responses evoked not by the device but by other causes such as peripheral sensory input; EEG; EMG; and electrical noise from measurement circuitry 318.

[0072] The neural recruitment arising from the stimulus is affected by mechanical changes, including posture changes, walking, breathing, heartbeat and so on. Mechanical changes may cause impedance changes, or changes in the location and orientation of the nerve fibres relative to the electrode array(s). As described above, the intensity of the evoked response provides a measure of the recruitment of the fibres being stimulated. In general, the more intense the stimulus, the more recruitment and the more intense the evoked response. An evoked response typically has a maximum amplitude in the range of microvolts, whereas the voltage resulting from the stimulus applied to evoke the response is typically several volts.

[0073] Measurement circuitry 318, which may be identified with measurement circuitry 128, amplifies the sensed signal r (potentially including evoked neural response, artefact, and measurement noise), and samples the amplified sensed signal r to capture a “signal window” 319comprising a predetermined number of samples of the amplified sensed signal r. The ECAP detector 320 processes the signal window 319 and outputs a measured neural response intensity d. In one implementation, the neural response intensity comprises a peak-to-peak ECAP amplitude. The measured response intensity d (an example of a feedback variable) is input into the feedback controller 310. The feedback controller 310 comprises a comparator 324 that compares the measured response intensity d to a target ECAP amplitude as set by the target ECAP controller 304 and provides an indication of the difference between the measured response intensity d and the target ECAP amplitude. This difference is the error value, e.

[0074] The feedback controller 310 calculates an adjusted stimulus intensity parameter, s, with the aim of maintaining a measured response intensity d equal to the target ECAP amplitude. Accordingly, the feedback controller 310 adjusts the stimulus intensity parameter 5 to minimise the error value, e. In one implementation, the controller 310 utilises a first order integrating function, using a gain element 336 and an integrator 338, in order to provide suitable adjustment to the stimulus intensity parameter 5. According to such an implementation, the current stimulus intensity parameter 5 may be determined by the feedback controller 310 as s = f Gedt (2)

[0075] where G is the gain of the gain element 336 (the controller gain). This relation may also be represented as6s = Ge (3)

[0076] where 6.y is an adjustment to the current stimulus intensity parameter ,y.

[0077] A target ECAP amplitude is input to the feedback controller 310 via the target ECAP controller 304. In one implementation, the target ECAP controller 304 provides an indication of a specific target ECAP amplitude. In another implementation, the target ECAP controller 304 provides an indication to increase or to decrease the present target ECAP amplitude. The target ECAP controller 304 may comprise an input into the CLNS system 300, via which the patient or clinician can input a target ECAP amplitude, or indication thereof. The target ECAP controller 304 may comprise memory in which the target ECAP amplitude is stored, and from which the target ECAP amplitude is provided to the feedback controller 310.

[0078] A clinical settings controller 302 provides clinical settings to the system 300, including the feedback controller 310 and the stimulus parameters for the stimulator 312 that are not under the control of the feedback controller 310. The clinical settings controller 302 may comprise an input into the CLNS system 300, via which the patient or clinician can adjust the clinical settings. The clinical settings controller 302 may comprise memory in which the clinical settings are stored, and are provided to components of the system 300.

[0079] In some implementations, two clocks (not shown) are used, being a stimulus clock operating at the stimulus frequency (e.g. 60 Hz) and a sample clock for sampling the sensed signal r (for example, operating at a sampling frequency of 16 kHz). As the ECAP detector 320 is linear, only the stimulus clock affects the dynamics of the CLNS system 300. On the next stimulus clock cycle, the stimulator 312 outputs a stimulus in accordance with the adjusted stimulus intensity s. Accordingly, there is a delay of one stimulus clock cycle before the stimulus intensity is updated in light of the error value e.

[0080] Fig. 7 is a block diagram of a neural stimulation system 700. The neural stimulation system 700 is centred on a neuromodulation device 710. In one example, the neuromodulation device 710 may be implemented as the stimulator 100 of Fig. 1, implanted within a patient (not shown). The neuromodulation device 710 is connected wirelessly to a remote controller (RC) 720. The remote controller 720 is a portable computing device that provides the patient with control of their stimulation in the home environment by allowing control of the functionality of the neuromodulation device 710, including one or more of the following functions: enabling or disabling stimulation; adjustment of stimulus intensity or target response intensity; and selection of a stimulation control program from the control programs stored on the neuromodulation device 710.

[0081] The charger 750 is configured to recharge a rechargeable power source of the neuromodulation device 710. The recharging is illustrated as wireless in Fig. 7 but may be wired in alternative implementations.

[0082] The neuromodulation device 710 is wirelessly connected to a Clinical System Transceiver (CST) 730. The wireless connection may be implemented as the transcutaneous communications channel 190 of Fig. 1. The CST 730 acts as an intermediary between the neuromodulation device 710 and the Clinical Interface (CI) 740, to which the CST 730 is connected. A wired connection is shown in Fig. 7, but in other implementations, the connection between the CST 730 and the CI 740 is wireless.

[0083] The CI 740 may be implemented as the external computing device 192 of Fig. 1. The CI 740 is configured to program the neuromodulation device 710 and recover data stored on the neuromodulation device 710. This configuration is achieved by program instructions collectively referred to as the Clinical Programming Application (CPA) and stored in an instruction memory of the CI 740.Assisted Programming System

[0084] As mentioned above, obtaining patient feedback about their sensations is important during programming of closed-loop neural stimulation therapy, but mediation by trained clinical engineers is expensive and time-consuming. It would therefore be advantageous if patients could program theirown implantable device themselves, or with some assistance from a clinician. However, interfaces for current programming systems are non-intuitive and generally unsuitable for direct use by patients because of their technical nature. There is therefore a need for a CPA to be as intuitive for nontechnical users as possible while avoiding discomfort to the patient. Implementations of an Assisted Programming System (APS) according to the present technology are generally configured to meet this need.

[0085] In some implementations, the APS comprises two elements: the Assisted Programming Module (APM), which forms part of the CPA, and the Assisted Programming Firmware (APF), which forms part of the control programs 122 executed by the controller 116 of the electronics module 110. The data obtained from the patient is analysed by the APM to determine the clinical settings for the neural stimulation therapy to be delivered by the stimulator 100. The APF is configured to complement the operation of the APM by responding to commands issued by the APM via the CST 730 to the stimulator 100 to deliver specified stimuli to the patient, and by returning, via the CST 730, measurements of neural responses to the delivered stimuli.

[0086] In other implementations, all the processing of the APS according to the present technology is done by the APF. In other words, the data obtained from the patient is not passed to the APM, but is analysed by the controller 116 of the device 710, configured by the APF, to determine the clinical settings for the neural stimulation therapy to be delivered by the stimulator 100.

[0087] In implementations of the APS in which the APM analyses the data from the patient, the APS instructs the device 710 to capture and return signal windows to the CI 740 via the CST 730. In such implementations, the device 710 captures the signal windows using the measurement circuitry 128 and bypasses the ECAP detector 320, storing the data representing the raw signal windows temporarily in memory 118 before transmitting the data representing the captured signal windows to the APS for analysis.

[0088] Following the programming, the APS may load the determined program onto the device 710 to govern subsequent neural stimulation therapy. In one implementation, the program comprises clinical settings 121, also referred to as therapy parameters, that are input to the neuromodulation device 710 by, or stored in, the clinical settings controller 302. The patient may subsequently control the device 710 to deliver the therapy according to the determined program using the remote controller 720 as described above. The determined program may also, or alternatively, be loaded into the CPA for validation and modification. Validation and modification of the determined program may also be carried out by the APS itself.Modelling a CLNS system

[0089] Fig. 8 is a discrete-time model 800 of the CLNS system 300 of Fig. 5, with like labels indicating like elements. The integrator 338 has been replaced by a discrete integrator 838 such that the feedback controller 310 implements Equation (2) from stimulus to stimulus. The dashed box 308 representing the neural tissue of the patient 108 has been replaced by a box 808 that combines the patient sensitivity P, the measurement circuitry 318, and the ECAP detector 320, to produce the neural response intensity y. The noise m is added to the neural response intensity y at the summing element 313 to produce a noisy measurement y ' of the neural response intensity. After passing through a delay element 835, the noisy measurement y’ is passed to the feedback controller 310. The stimulus intensity x provided by the feedback controller 310 is the excess of absolute stimulus intensity s over the ECAP threshold T in a reference posture (i.e. x = s — T).

[0090] Changes in posture have both static and dynamic effects on the CLNS system 300 of Fig. 5. The dynamic effects are modelled in the model 800 by the disturbance d, an unknown, posturedependent stimulus intensity added via the summing element 811 to the supra-threshold stimulus intensity x provided by the feedback controller 310. The disturbance d models changes in the ECAP threshold T induced by changes in posture from the reference posture.

[0091] The feedback loop of the CLNS system model 800 of Fig. 8 may be treated as a linear, timeinvariant discrete-time control system in which adjustments to the stimulus intensity x are made at a loop frequency fsthat is equal to the stimulus frequency. Under this assumption, it may be shown that the transfer function from measurement noise m to ECAP amplitude y is a low-pass filter with a zero at z = 0 and a pole at z = 1-GP, where G is the controller gain and P is the patient sensitivity in the reference posture. The transfer function from the target ECAP amplitude u to the ECAP amplitude y is also low-pass, with a pole at 1-GP. It is convenient to write the product of G and P as the loop gam g:9 = GP (4)

[0092] The gain of each transfer function decreases with frequency, reaching a -3 dB point at a cutoff or corner frequency fc, which may be computed as 3-Cg+i)2cos a> = — - - - (5)2(1-5)

[0093] where co is the normalised cutoff frequency, that is, the cutoff frequency fc normalised by the loop frequency fsand converted to radians:

[0094] Inverting equation (5) yields

[0095] Fig. 9a is pole-zero (z-plane) diagram 900 of the relationship between loop gain g, the pole 910 of the transfer function on the real axis at z = l-g, and the normalised cutoff frequency co. The normalised cutoff frequency co is the argument of the point 920 on the unit circle whose distance from the pole 910 is [2g. As the loop gain g gets smaller, the pole 910 moves to the right along the real axis towards z = 1 and the normalised cutoff frequency co gets smaller.

[0096] The loop gain g plays a critical role in the dynamics of the feedback loop. The higher the value of loop gain g, the faster the ECAP amplitude y responds to changes in target u, so g is sometimes loosely referred to as loop speed and is itself a dimension of loop performance. However, the loop becomes unstable when the pole moves outside the unit circle, that is, when loop gain g exceeds 2. An unstable loop responds to a step change in target or other disturbance with infinitely increasing oscillations. Between g = 1 and g = 2, the pole is in the left half of the z-plane and the loop is marginally stable, responding to a step change with decaying oscillations known as “ringing”. When g = 1, the pole is at the origin and the loop is “critically stable” or “critically damped”. A critically stable loop responds to a step change with the fastest possible speed without ringing. Stability is therefore a dimension of loop performance that is directly related to loop gain g.

[0097] An additional dimension of loop performance is patient sensation of measurement noise m. The higher the loop speed, the more measurement noise is passed to the stimulus intensity s, and therefore to the ECAP amplitude y, which the patient may perceive as a “jittery” sensation. At unity loop gain (g = 1), the loop becomes a “pass-through” that has no filtering effect on measurement noise. At higher-than-unity loop gains, the loop actually amplifies measurement noise. One measure of the amount of noise the patient will feel is “jitteriness” R, defined as the ratio of stimulus intensity noise standard deviation cn to therapeutic range As. It may be shown that jitteriness R may be approximated using the loop gain g according to the following equation:

[0098] where SNR is the signal-to-noise ratio of the measurement noise, which is defined herein as the target ECAP amplitude u at the middle of the therapeutic range (halfway between the ECAP threshold and the discomfort threshold), divided by the standard deviationof the measurement noise m. The standard deviationof the measurement noise m may be treated as a loop parameter of the CLNS system, since it may in some implementations be adjustable during programming, e.g. by adjusting the bias currents of the measurement amplifier. Such adjustments may decrease the measurement noise m, but at the expense of the overall power consumption of the CLNS system.

[0099] Fig. 10 is a graph 1000 showing curves, from the curve 1010 showing the case for 3dB SNR to the curve 1080 showing the case for 18 dB SNR, of jitteriness R versus loop gain g at different values of SNR computed according to Equation (8). It may be seen that at lower values of SNR (i.e. relatively high measurement noise), such as the curve 1010, jitteriness R increases more rapidly as a function of loop gain. The dashed line 1020 indicates the value of jitteriness R at which there will be frequent overstimulation events due to the noise on the stimulus intensity. That value, which may be taken as an upper limit Rmax on tolerable jitteriness, may be determined as the value of R at which three times the stimulus intensity noise standard deviation <v equals half of the therapeutic range Av„ As3aS. = — 2I E RMAX =7=6 )

[0100] Alternatively, the maximum jitteriness tolerable by the patient Rmax may be a measurable patient characteristic. In one example, Rmax may be measured by increasing the controller gain G (thereby increasing loop gain g) until the patient expresses discomfort with the jitteriness and applying equation (8) to the final value of loop gain and the SNR. In another example, Rmax may be measured by intentionally adding noise to the measured ECAP amplitude d (thereby decreasing SNR) until the patient expresses discomfort with the jitteriness and applying equation (8) to the value of loop gain and the final value of SNR. This measurement of Rmax, as for other measurements of patient characteristics, may be done on an individual or population basis.

[0101] In one example of loop programming, jitteriness R may be set to a predetermined value such as Rmax and equation (8) or the curves in the graph 1000 may be used with the measured SNR to determine the required loop gain g to achieve the predetermined value of R. The choice of controller gain G effectively sets an operating point 1030 on the curve corresponding to the current value of SNR and the current posture.

[0102] A periodic change to the electrode-to-cord distance, such as that induced by heartbeat, may be modelled by a periodic disturbance time series d. It may be shown using the model 800 that the transfer function from the disturbance d to the ECAP amplitude y is a high-pass filter with a cutoff frequency equal to the noise-filtering cutoff frequency fc. Heartbeat may therefore be perceived by the patient as periodic variations (“pulsing”) in evoked response intensity, to the extent that such variations are within the passband of the high-pass filter. The cutoff frequency fc is therefore a key intermediate variable affecting two dimensions of performance in opposite directions: sensations of noise (jitteriness) and sensations of pulsing (“pulsingness”) due to heartbeat. If the cutoff frequency fc is high, there will be little sensation of pulsing, but a higher sensation of noise. If the cutoff frequency fc is low, there will be less sensation of noise, but a higher sensation of pulsing. In oneexample of loop programming, setting a cutoff frequency fcat a predetermined compromise value, for example 3 Hz, achieves a good tradeoff between sensation of noise and sensation of pulsing due to heartbeat.

[0103] Again, psychophysical testing can indicate the threshold and maximum comfort level of pulsingness and may be performed on an individual or population basis. These values can then inform loop settings.

[0104] According to equation (6), as loop frequency fsis decreased without any change to loop gain g (and therefore to normalised cutoff frequency ®), cutoff frequency fc also decreases in proportion to the decrease i ly / l As mentioned above, this increases the “pulsing” sensation. However, decreasing loop frequency fs also generally decreases power consumption, another dimension of loop performance. Loop frequency fsis therefore an important loop parameter in its own right.

[0105] “Pulsingness” is a loop performance indicator that may be quantified as the amplitude Ay of variation in the evoked response intensity y due to heartbeat. A relation may be derived from the model 800 between the pulsingness Ay, the loop gain g, the patient’s heart rate / / , and the “openloop” pulsingness Ayo (the amplitude of variation in y due to heartbeat with a fixed stimulus intensity s). Generally, the higher the loop gain g, the lower the pulsingness Ay of the loop, since a faster loop is better able to track variations in the distance-related disturbance d. The maximum pulsingness tolerable by the patient A ,„„A is a patient characteristic, and may be measured by decreasing the controller gain G until the patient expresses discomfort with the pulsingness, and measuring the amplitude of oscillation of the ECAP amplitude at the heartbeat frequency.

[0106] The frequency domain effects of posture change are modelled in the model 800 of Fig. 8 by changes in the value P of the “patient box” 808. As illustrated in Fig. 4b, changes in posture change the sensitivity P and hence the loop gain g. The pole of the transfer function may therefore be thought of as moving in a range along the real axis as posture changes. This is illustrated in the pole-zero plot 950 in Fig. 9b, which contains a range 960 of values taken by the pole at l-g as posture changes between its extremes. The largest value of loop gain (most sensitive posture) corresponds to the left end 970 of the pole range 960, where the normalised cutoff frequency co is highest (with value ©most), and the loop is fastest and most jittery. The smallest value of loop gain (least sensitive posture) corresponds to the right end 980 of the pole range 960, where the normalised cutoff frequency co is lowest (with value ©least), and the loop is slowest and least jittery. Likewise, in the graph 1000, and illustrated for the jitteriness curve 1070 corresponding to SNR = 6dB, the operating point moves along its corresponding jitteriness curve in a range 1040 between its value 1050 in the least sensitive posture, where jitteriness is minimum, and its value 1060 in the most sensitive posture, wherejitteriness is maximum. As loop frequency decreases, the range 1040 moves to the right, up the jitteriness curve.

[0107] As measurements of sensitivity are typically made with the patient in a reference posture that is less sensitive, such as sitting, the increase in sensitivity due to posture change needs to be taken into account when setting loop parameter values, lest the loop become unstable or excessively jittery in the most sensitive posture.

[0108] Summing up, the model 800 of the CLNS system 800 has:• patient characteristics: sensitivity P and therapeutic range As, both of which vary over postures and may therefore be measured at one or more postures; maximum jitteriness Rmax, maximum pulsingness Ay max• loop parameters: loop frequency fs, controller gain G• performance indicators: jitteriness R• intermediate loop parameters that may also be thought of as performance indicators: cutoff frequency fc, and loop gain g (or equivalently, normalised cutoff frequency co)

[0109] Measurement noise standard deviation <5m(or equivalently, SNR) may be treated as a loop parameter if adjustable during programming; otherwise, it may be treated as a measurable patient characteristic.

[0110] These quantities are related by equations (5) to (8).Loop programming methods

[0111] Disclosed below according to various aspects of the present technology are methods of programming a CLNS device such as the stimulator 100. The methods of loop programming according to some aspects of the present technology generally follow the method 1100 illustrated in the flowchart of Fig. 11. At step 1110, the method fixes at least one selected performance indicator at a predetermined value. At step 1120, the method measures at least one patient characteristic in at least one posture. At step 1130, the method determines at least one loop parameter from the predetermined performance indicator value and the measured patient characteristic. Any loop parameter not determined by step 1130 may be chosen arbitrarily within certain range constraints prior to or subsequent to step 1130. In some examples, the range constraints may be as follows:• controller gain G > 0• Loop frequency fs < 100 Hz for power consumption reasons, and > 10 Hz to ensure continuity of therapy• loop gain g < 1 in the most sensitive posture to prevent marginal loop instability• cutoff frequency fc > 1 Hz to ensure sufficient loop speed to track posture changes• SNR > 0 dB so as not to overtax the ECAP detector

[0112] The methods of loop programming according to various aspects of the present technology may be executed by the APS described above, by some combination of the APM and the APF.

[0113] According to a first aspect of the present technology, the performance indicators fixed at predetermined values (step 1110) are loop gain g and cutoff frequency fc. In one example, loop gain g is set to a value that puts the pole well within the stable region of the unit circle, such as 0.5. Cutoff frequency fc is set to a value sufficiently high to allow the loop to respond acceptably fast to posture changes, such as 3 Hz. Patient sensitivity P is then measured (step 1120) with the patient in a reference posture such as the most sensitive posture. The programming method according to this aspect then uses equations (5) and (6) to determine (step 1130) the loop frequency fsfrom the loop gain g and the cutoff frequency / c. The programming method also uses equation (4) to determine (step 1130) the controller gain G from the loop gain g and the patient sensitivity P. Methods according to this aspect yield the minimum loop frequency «, and therefore the lowest power consumption, that provides acceptable loop stability and speed.

[0114] The loop may then be tried out with the determined loop parameters. If the patient finds the resulting sensation of noise unacceptably high in the most sensitive posture, the loop frequency fi may be increased (increasing the power consumption) while maintaining the same cutoff frequency fc. This adjustment will have the effect of decreasing the loop gain g, moving the pole range 960 to the right, which should decrease the sensation of noise in all postures. Equivalently, the operating point of the loop will move to the left along one of the curves in the graph 1000, decreasing the jitteriness in all postures.

[0115] Alternately, if population statistics of the threshold and comfort levels for jitteriness and pulsingness are known, then values may be calculated without having to ask each patient.

[0116] According to a second aspect of the present technology, the performance indicator fixed at a predetermined value (step 1110) is cutoff frequency fc. The predetermined value is sufficiently high to allow the loop to respond acceptably fast to posture changes, such as 3 Hz. Patient sensitivity P is measured (step 1120) with the patient in the least sensitive posture. The programming method according to this aspect then uses equations (5) and (6) to determine (step 1130) loop gain g given an arbitrary reasonable choice of loop frequency fs. The programming method then uses equation (4) to determine the controller gain G from the loop gain g and the measured patient sensitivity P. However, if the SNR is low, this basic method can result in an increase in jitteriness to an unacceptable level when the patient assumes the most sensitive posture, pushing the most-sensitive operating point 1060 to the right on a curve in the graph 1000 (i.e. the pole to the left in the plot 950) so that the dashed line 1020 is crossed. In other words, the operating point 1030 may rise too far on the jitteriness axisas sensitivity P (and therefore loop gain g) reaches its maximum. This effect of posture change is particularly noteworthy at low values of loop frequency fs, since the operating point starts further to the right on the curve 1010 at low values of loop frequency fs.

[0117] To address this effect, the method according to the second aspect may divide the loop gain g determined from equations (5) and (6) at step 1120 by a divisor whose value is greater than one to obtain a reduced loop gain g’ in the least sensitive posture:d°)

[0118] The programming method then uses equation (4) to determine the controller gain G from the reduced loop gain g’ and the patient sensitivity P. The effect of the divisor is to reduce the loop gain in the least sensitive posture, thereby pushing the range 1040 to the left along the jitteriness curve, so that in the most sensitive posture the jitteriness remains acceptably low. In methods according to the second aspect, the divisor <|) generally decreases as loop frequency f increases according to a function (fs).

[0119] In one implementation, the divisor <|) is assigned a value of 3 if the loop frequency fsis less than 30 Hz, or is assigned a value of 2 if the loop frequency fs is greater than or equal to 30 Hz. In other words, the function (fi) follows a single step down from 3 to 2 as loop frequency fsincreases from below 30 Hz to above 30 Hz.

[0120] In other implementations, the function (fs) follows a series of steps down in value as loop frequency fs increases.

[0121] In yet other implementations, the function ( i) is monotonically decreasing with loop frequency fs.

[0122] According to a third aspect of the present technology, the performance indicator fixed at a predetermined value (step 1110) is jitteriness R. The measured patient characteristics (step 1120) are the SNR, the therapeutic range As, and the patient sensitivity P in the least sensitive posture. The programming method according to this aspect then uses an inverted form of the jitteriness equation (8) to determine (step 1130) the loop gain g from the measured SNR and therapeutic range As, and the predetermined value of jitteriness R. The inverted form of equation (8) is:

[0123] However, the undiscriminating use of equation (11) may result in unstable values of g, particularly in more sensitive postures. In addition, the cutoff frequency fcresulting from g and an arbitrary reasonable choice of loop frequency fs may be either too low (loop too slow) or too high. The programming method according to this aspect therefore “clamps” the value of g obtained fromequation (11) to a clamped value g’ within a reasonable range, equal to [0.15, 0.5] in one implementation. The clamping of the loop gain g to the reasonable range mitigates the risk of loop instability if the patient assumes the most sensitive posture. The programming method then uses equation (4) to determine (step 1130) the controller gain G from the clamped loop gain g’ and the patient sensitivity P

[0124] Fig. 12 contains a graph 1200 showing the loop gain g’ determined from equation (11) and clamped to the range [0.15, 0.5] at various values of SNR, with jitteriness R fixed at a predetermined value of 0.03. The right axis shows the resulting values of cutoff frequency fc at a loop frequency of 30 Hz. It may be seen that the clamping of the loop gain g also clamps the cutoff frequency fc to the range [0.75 Hz, 3.5 Hz] at this loop frequency.

[0125] According to a fourth aspect of the present technology, the performance indicators fixed at predetermined values (step 1110) are jitteriness R, set to a value that is acceptable, such as 0.16, and cutoff frequency fc, set to a value sufficiently high to allow the loop to respond acceptably fast to posture changes, such as 3 Hz. The measured patient characteristics (step 1120) are the patient sensitivity P and the therapeutic range As in the most sensitive posture. One programming method according to this aspect uses equations (5) and (6) to determine (step 1130) the loop gain g from the cutoff frequency fc and an arbitrary reasonable choice of loop frequency fs. The method then inverts the jitteriness equation (8) to determine (step 1130) the required SNR from the determined loop gain g, the therapeutic range As, and the predetermined value of jitteriness R. The programming method then uses equation (4) to determine the controller gain G from the loop gain g and the patient sensitivity P. This programming method yields the minimum SNR needed to provide acceptable jitteriness and loop speed.

[0126] In an optional further step, the actual SNR may be measured. The amount of improvement in SNR needed to provide acceptable predetermined values of jitteriness and loop speed may be determined as the ratio of the needed SNR to the measured SNR, or their difference if measured in dB. For example, if the measured SNR is 5 and the needed SNR to provide acceptable predetermined values of jitteriness and loop speed is 10, the ratio of improvement needed in SNR (i.e. reduction in measurement noise standard deviation offl) is 2.

[0127] In some implementations, the measurement noise standard deviation (jmmay be decreased (and hence the SNR increased) at the expense of greater power consumption as described above by adjusting the measurement amplifier bias currents. In other implementations, such adjustments may not be under the programmatic control of the APS, but are more in the nature of design constraints for the measurement circuitry 128. An alternative method of decreasing the measurement noisestandard deviation o,„ that is under programmatic control is suitable for implementations of the CLNS system 300 that use a Kalman filter as part of the ECAP detector 320. Such an implementation is described in International Patent Publication no. WO2024243648 by the present applicant, the entire contents of which are herein incorporated by reference. A parameter of the Kalman filter that may be adjusted by the APS as part of a loop programming method in order to adjust the measurement noise standard deviation G,, is the varianceof the process noise, which is the sole non-zero entry in the process noise covariance matrix Q.

[0128] In an alternative loop programming method according to the fourth aspect, the performance indicator fixed at a predetermined value (step 1110) is jitteriness R, set to a value that is acceptable, such as 0.16. The cutoff frequency fc is initially fixed (step 1110) at a value sufficiently high to allow the loop to respond acceptably fast to posture changes, such as 3 Hz. The measured patient characteristics (step 1120) are the patient sensitivity P in the most sensitive posture, and the SNR. The alternative loop programming method according to this aspect uses equations (5) and (6) to determine (step 1130) the initial loop gain g from the initially fixed cutoff frequency fc and an arbitrary reasonable choice of loop frequency fs. The alternative loop programming method then sets the loop gain to a predetermined value go providing desired loop speed, such as go = 1 for critical stability. The alternative loop programming method then determines (step 1130) an amount of improvement from the measured SNR value (from step 1120) to the value of SNR needed to achieve the predetermined value go of loop gain while keeping the same values of loop frequency fs and jitteriness R. It may be shown from the jitteriness equation (8) that the amount of needed improvement to the SNR may be determined as follows:SNRnee(je'go (2- g)(12) Rmeasured g(2-go)

[0129] The SNR may be improved by the amount determined according to equation (12) as described above. The programming method then uses equation (4) to determine the controller gain G from the predetermined loop gain go and the patient sensitivity P.

[0130] Fig. 13 is a graph 1300 containing curves, e.g. the curve 1310, computed from equation (12), showing the amount of SNR improvement to maintain the jitteriness R as a function of loop frequency fs for several predetermined values of loop gain go (namely 0.4, 0.7, and 1), starting from a cutoff frequency value fc of 2 Hz. For example, achieving a cutoff frequency fc of 2 Hz at a loop frequency fsof 50 Hz requires loop gain g of 0.221. The value of curve 1310 (which corresponds to go = 0.4) at fs = 50 Hz shows that increasing loop gain from 0.221 to 0.4 while maintaining constant jitteriness R requires a 3 dB decrease in measurement noise (i.e. a 3 dB increase in SNR). Likewise, achieving a cutoff frequency fc of 2 Hz at a loop frequency fs of 100 Hz requires loop gain g of 0.118. The valueof curve 1320 (which corresponds to go = 1.0) at i = 100 Hz shows that increasing loop gain from 0.118 to 1.0 while maintaining constant jitteriness R requires a 12 dB decrease in measurement noise (i.e. a 12 dB increase in SNR).

[0131] Some aspects of the present technology do not fix performance indicators at predetermined values as in step 1110. Instead, such aspects constrain one or more performance indicators according to a range constraint. In some such aspects, the range constraints are dependent on measured patient characteristics that may be from individual patients or from population measurements.

[0132] Fig. 14 is a flow chart illustrating a method 1400 of loop programming according to such aspects of the present technology. The method 1400 starts at step 1410, which measures at least one patient characteristic in at least one posture. The next step 1420 determines range constraints on one or more performance indicators, possibly based on the patient characteristic(s) measured at step 1410. Step 1430 then determines one or more loop parameters subject to the range constraint(s) determined at step 1420.

[0133] According to a fifth aspect of the present technology, the measured patient characteristics (step 1410) are the patient sensitivities Pmax and Pmin in the most and least sensitive postures, respectively. The patient sensitivity P is set to a value intermediate between Pmax and Pmi , such as the average of Pmax and Pmin. A range constraint is determined for the loop gain g (step 1420), namely, that g < P I Pmax. The loop gain g is then determined (step 1430) so as to yield an acceptable tradeoff between excessive jitteriness and excessive pulsingness, subject to the range constraint on the loop gain g from step 1420. The method according to the fifth aspect also uses equation (4) to determine (step 1430) the controller gain G from the determined loop gain g and the intermediate patient sensitivity P. The range constraint on the loop gain g determined at step 1420 ensures that in the most sensitive posture, when the patient sensitivity is equal to Pmax, the loop gain g remains less than 1, so the loop does not become unstable.

[0134] According to a sixth aspect of the present technology, the measured patient characteristics (step 1410) are the patient sensitivity P in the most sensitive posture, the SNR, the maximum tolerable jitteriness Rmax, and the maximum tolerable pulsingness Aymax. A range constraint is determined for the jitteriness R (step 1420), namely that R < Rmax, and for the pulsingness Ay, namely that Ay < Aymax. The loop gain g is then determined (step 1430) subject to the range constraints on the jitteriness and the pulsingness. The method according to the sixth aspect also uses equation (4) to determine (step 1430) the controller gain G from the determined loop gain g and the measured patient sensitivity P.

[0135] To implement aspects involving range constraints such as the fifth and sixth aspects described above, the APS may use exhaustive search to determine the loop parameter, checking each valuewithin a reasonable range (such as cutoff frequency fc> 1 Hz to or 0 < g < 1) to see whether the range constraints on performance indicators are satisfied and if not, trialling another value within the range.

[0136] Alternatively, the APS may use a nonlinear programming algorithm to determine the loop parameter value(s) at an extremum of a predefined objective function subject to the range constraints on performance indicators (whose values depend nonlinearly on the loop parameters and the patient characteristics, which in turn vary with posture) and range constraints on loop parameters such as those listed above. The nonlinear programming algorithm may find a combination of loop parameter values at an extremum of such an objective function such that the above constraints are satisfied across all postures. An example of such a nonlinear programming algorithm is sequential quadratic programming. In one implementation, the objective function is a measure of power consumption, which is in general dependent on all of the loop parameters as well as other predetermined stimulus parameters. The nonlinear programming algorithm may find a combination of loop parameter values that minimises the measure of power consumption such that the above constraints are satisfied across all postures.

[0137] Fig. 15 is a flowchart illustrating a method 1500 of loop programming using nonlinear programming. The method 1500 starts at step 1510, which determines an objective function. At step 1520, the method 1500 measures at least one patient characteristic in at least one posture. At step 1450, the method 1500 determines loop parameter values at an extremum of the determined objective function using the measured patient character! stic(s), subject to the given constraints on the loop parameter values and the performance indicators.

[0138] Each of the first four aspects according to the present technology (implementable according to the method 1100 as described above) may also be implemented using the nonlinear programmingbased method 1500 of Fig. 15. The fixing of the performance indicator at a predetermined value (step 1110) is equivalent to imposing a “value” constraint on that performance indicator (as opposed to the “range” constraints listed above). Step 1530 determines the loop parameter value(s) subject to both the value and the range constraints. The following are the constraints for each of the first four aspects that may be observed by the nonlinear programming-based method at step 1530:• First aspect: value constraints (predetermined fixed values) for cutoff frequency fc and loop gain g,' range constraints on SNR, loop frequency fs, and jitteriness R as above• Second aspect: value constraint (predetermined fixed value) for cutoff frequencyrange constraints on SNR, loop gain g, loop frequency fs, and jitteriness R as above• Third aspect: value constraint (predetermined fixed value) for jitteriness R, range constraints on SNR, loop gain g, loop frequency fs, and cutoff frequency fc as above• Fourth aspect: value constraints (predetermined fixed values) for jitteriness R and cutoff frequency fc, range constraints on SNR, loop gain g, and loop frequency fsas above

[0139] Unlike in the method 1100, when using the method 1500 there is no need for the arbitrary choice of any loop parameter value not determined by step 1130.INTERPRETATION

[0140] The technology disclosed herein may be implemented in hardware (e.g., using digital signal processors, application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs)), or in software (e.g., using instructions tangibly stored on non-transitory computer-readable media for causing a data processing system to perform the steps described herein), or in a combination of hardware and software. The disclosed technology can also be implemented as computer-readable code on a computer-readable medium. The computer-readable medium can include any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer-readable medium include read-only memory ("ROM"), random-access memory ("RAM"), magnetic tape, optical data storage devices, flash storage devices, or any other suitable storage devices. The computer-readable medium can also be distributed over network-coupled computer systems so that the computer-readable code is stored or executed in a distributed fashion. The present technology is not limited to any particular programming language or operating system.Wireless

[0141] In the context of the present disclosure, the term “wireless” and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a non-solid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not. In the context of the present disclosure, the term “wired” and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated signals propagating through a conductive medium. The term does not imply that the associated devices are coupled by electrically conductive wires.

[0142] Wireless communication standards that can be accommodated include IEEE 802.11 wireless LANs and links, Bluetooth, and wireless Ethernet. The technology disclosed herein may be implemented using devices conforming to other network standards and for other applications, including, for example other WLAN standards and other wireless standards such as MICS.Processes

[0143] Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing”, “computing”, “comparing”, “estimating”, “calculating”, “determining”, “analysing” or the like, refer to the action or processes of a computer or computing system, or similar electronic computing device, that manipulate or transform data represented as physical, such as electronic, quantities into other data similarly represented as physical quantities, or to otherwise execute a predefined procedure suitable to effect the described actions.Processor

[0144] In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data, e.g., from registers or memory, to transform that electronic data into other electronic data that, e.g., may be stored in registers or memory. A “computer” or a “computing device” or a “computing machine” or a “computing platform” may include one or more processors.

[0145] The methods described herein are, in one embodiment, performable by one or more processors that accept computer-readable (also called machine-readable) code containing a set of instructions that when executed by one or more of the processors cause the one or more processors to carry out at least one of the methods described herein. Any processor capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken are included within the meaning of the term “processor”. Thus, one example is a typical processing system that includes one or more processors. The processing system further may include a memory subsystem including main RAM or a static RAM, or ROM.Networked or Multiple Processors

[0146] In alternative embodiments, the one or more processors operate as respective standalone device(s) or may be connected, e.g., networked to other processor(s), in a networked deployment. The one or more processors may operate in the capacity of a server or a client machine in serverclient network environment, or as a peer machine in a peer-to-peer or distributed network environment. The one or more processors may form a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.

[0147] Note that while some diagram(s) only show(s) a single processor and a single memory that carries the computer-readable code, those in the art will understand that many of the components described above are included, but not explicitly shown or described in order not to obscure the inventive aspect. For example, while only a single machine may be illustrated, the term “machine”shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methods discussed herein.Additional Implementations

[0148] Thus, one implementation of each of the methods described herein is in the form of a computer-readable medium carrying a set of instructions, e.g., a computer program that are for execution on one or more processors. Thus, as will be appreciated by those skilled in the art, aspects of the present technology may be implemented as a method, an apparatus such as a special purpose apparatus, an apparatus such as a data processing system, or a computer-readable medium. The computer-readable medium carries computer-readable code including a set of instructions that when executed on one or more processors cause the processor or processors to implement a method. Accordingly, aspects of the present technology may take the form of a method, an entirely hardware implementation, an entirely software implementation or an implementation combining software and hardware aspects. Furthermore, the present technology may take the form of a carrier medium (e.g., a computer program product) carrying computer-readable program code embodied in the medium. Carrier Medium

[0149] The software may further be transmitted or received over a network via a network interface device. While the carrier medium is shown in an example embodiment to be a single medium, the term “carrier medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) that store the one or more sets of instructions. A carrier medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media.Means For Carrying out a Method or Function

[0150] Furthermore, some of the implementations are described herein as a method or combination of elements of a method that can be implemented by a processor of a processor device, computer system, or by other means of carrying out the function. Thus, a processor with the necessary instructions for carrying out such a method or element of a method forms a means for carrying out the method or element of a method. Furthermore, an element described herein of an apparatus is an example of a means for carrying out the function performed by the element.

[0151] Those of skill would further appreciate that the various illustrative logical blocks, modules, and algorithm steps described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software running on a special purpose machine that is programmed to carry out the operations described in the present disclosure, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described above generally in terms of theirfunctionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the exemplary implementations.Implementations

[0152] Reference throughout the present disclosure to “one implementation” or “an implementation” means that a particular feature, structure or characteristic described in connection with the implementation is included in at least one implementation of the present technology. Thus, appearances of the phrases “in one implementation” or “in an implementation” in various places throughout the present disclosure are not necessarily all referring to the same implementation, but may refer to different implementations. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more implementations.

[0153] Similarly, it should be appreciated that in the above description of example implementations of the present technology, various features are sometimes grouped together in a single implementation, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects may lie in less than all features of a single foregoing disclosed implementation. Thus, the claims following the Detailed Description of the Present Technology are hereby expressly incorporated into this Detailed Description of the Present Technology, with each claim standing on its own as a separate implementation of the present technology.

[0154] Furthermore, while some implementations described herein include some, but not other features included in other implementations, combinations of features of different implementations are meant to be within the scope of the present technology, and form different implementations of the present technology, as would be understood by those in the art. For example, in the following claims, any of the claimed implementations can generally be used in any combination.

[0155] As used herein in the specification and claims, including as used in the examples and unless otherwise expressly specified, all numbers may be read as if prefaced by the word "about" or "approximately," even if the term does not expressly appear. The phrase "about" or "approximately" may be used when describing magnitude or position to indicate that the value or position described is within a reasonable expected range of values or positions. For example, a numeric value may havea value that is + / - 0.1% of the stated value (or range of values), + / - 1% of the stated value (or range of values), + / - 2% of the stated value (or range of values), + / - 5% of the stated value (or range of values), + / - 10% of the stated value (or range of values), etc. Any numerical values given herein should also be understood to include about or approximately that value, unless the context indicates otherwise. For example, if the value "10" is disclosed, then "about 10" is also disclosed. Any numerical range recited herein is intended to include all sub-ranges subsumed therein. It is also understood that each value between two particular values is also disclosed. For example, if 10 and 15 are disclosed, then 11, 12, 13, and 14 are also disclosed.Different Instances of Objects

[0156] As used herein, unless otherwise specified the use of the ordinal adjectives “first”, “second”, “third”, etc., to describe a common object, merely indicates that different instances of like objects are being referred to, and is not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.Specific Details

[0157] In the description provided herein, numerous specific details are set forth. However, it is understood that implementations of the present technology may be practiced without these specific details. In other instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of the present technology.Terminology

[0158] Throughout the present disclosure, the terms "a" and "an" mean "one or more", unless expressly specified otherwise.

[0159] Throughout the present disclosure, the word "comprise", or variations such as "comprises" or "comprising", will be understood to imply the inclusion of a stated element, integer, or step, or group of elements, integers, or steps, but not the exclusion of any other element, integer, or step, or group of elements, integers, or steps.

[0160] Throughout the present disclosure, a statement that an element may be “at least one of’ or “one or more of’ a list of options is to be understood to mean that the element may be any one of the listed options, or may be any combination of two or more of the listed options.

[0161] Throughout the present disclosure, the word “or” is to be read inclusively rather than exclusively, except where otherwise indicated.

[0162] Neither the title nor any abstract of the present disclosure should be taken as limiting in any way the scope of the claimed invention.

[0163] Where the preamble of a claim recites a purpose, benefit or possible use of the claimed invention, it does not necessarily limit the claimed invention to having only that purpose, benefit or possible use.

[0164] In the present specification, terms such as "part", "component", "means", "section", or "segment" may refer to singular or plural items and are terms intended to refer to a set of properties, functions, or characteristics performed by one or more items having one or more parts. It is envisaged that where a "part", "component", "means", "section", "segment", or similar term is described as consisting of a single item, then a functionally equivalent object consisting of multiple items is considered to fall within the scope of the term; and similarly, where a "part", "component", "means", "section", "segment", or similar term is described as consisting of multiple items, a functionally equivalent object consisting of a single item is considered to fall within the scope of the term. The intended interpretation of such terms described in this paragraph should apply unless the contrary is expressly stated or the context requires otherwise.

[0165] The term "connected" or a similar term, should not be interpreted as being limited to direct connections only. Thus, the scope of the expression “an item A connected to an item B” should not be limited to items or systems wherein an output of item A is directly connected to an input of item B. It means that there exists a path between an output of A and an input of B which may be a path including other items or means. "Connected", or a similar term, may mean either that two or more elements are in direct physical or causal contact, or that two or more elements are not in direct contact with each other yet still co-operate or interact with each other.

[0166] It will be appreciated by persons skilled in the art that numerous variations or modifications may be made to the present technology as shown in the specific implementations without departing from the spirit or scope of the invention as broadly described. For example, any formulas given above are merely representative of procedures that may be used. Functionality may be added or deleted from the block diagrams and operations may be interchanged among functional blocks. Steps may be added or deleted to methods described within the scope of the present technology. The disclosed implementations are, therefore, to be considered in all respects as illustrative and not limiting or restrictive.

[0167] The features described in relation to one or more aspects of the present technology are to be understood as applicable to other aspects of the present technology. More generally, combinations of the steps in the method(s) of the present technology or the features of the system(s) or device(s) of the present technology described elsewhere in the present disclosure, including in the claims, are to be understood as falling within the scope of the disclosure of the present disclosure.INDUSTRIAL APPLICABILITY

[0168] It is apparent from the above that the arrangements described are applicable to the health care industries.LABEL LIST stimulator 100 perception threshold 410 patient 108 therapeutic range 412 electronics module 110 activation plot 502 battery 112 activation plot 504 telemetry module 114 activation plot 506 controller 116 ECAP threshold 508 memory 118 ECAP threshold 510 clinical data 120 ECAP threshold 512 clinical settings 121 target ECAP amplitude 520 control programs 122 ECAP 600 pulse generator 124 neural stimulation system 700 module 126 device 710 measurement circuitry 128 remote controller 720 ground 130 CST 730 array 150 CI 740 stimulus pulse 160 charger 750ECAPs 170 CLNS system model 800 target fibres 180 box 808 communications channel 190 summing element 811 external computing device 192 delay element 835CLNS system 300 di screte integrator 838 clinical settings controller 302 diagram 900 target ECAP controller 304 pole 910 box 308 point 920 box 309 plot 950 controller 310 pole range 960 box 311 left end 970 stimulator 312 right end 980 summing element 313 graph 1000 measurement circuitry 318 curve 1010 signal window 319 dashed line 1020ECAP detector 320 operating point 1030 comparator 324 range 1040 gain element 336 value 1050 integrator 338 operating point 1060 activation plot 402 curve 1070ECAP threshold 404 curve 1080 discomfort threshold 408 method 1100step 1110 step 1420 step 1120 step 1430 step 1130 step 1450 graph 1200 method 1500 graph 1300 step 1510 curve 1310 step 1520 curve 1320 step 1530 method 1400 step 1410

Claims

CLAIMS:

1. A neural stimulation system comprising: a device for controllably delivering neural stimuli, the device comprising: a stimulus source configured to provide neural stimuli to be delivered via one or more stimulus electrodes to a neural pathway of a patient, the neural stimuli being configured to evoke neural responses from the neural pathway; measurement circuitry configured to capture signal windows from signals sensed on the neural pathway by one or more measurement electrodes subsequent to respective neural stimuli; and a control unit configured to: control the stimulus source to provide a neural stimulus according to one or more stimulus parameters; measure an intensity of an evoked neural response in a captured signal window subsequent to the neural stimulus; determine a feedback variable from the measured intensity of the evoked neural response; and adjust, using a feedback controller, based on one or more loop parameters, the one or more stimulus parameters so as to maintain the feedback variable at or near a target value; and a processor configured to: fix one or more performance indicators of the device at respective predetermined values; measure one or more characteristics of the patient; and determine a loop parameter of the one or more loop parameters from the one or more measured patient characteristics and the one or more predetermined values of respective performance indicators.

2. The system of claim 1, wherein the loop parameter is measurement noise.

3. The system of claim 2, wherein the one or more performance indicators are jitteriness and cutoff frequency.

4. The system of claim 3, wherein the processor is configured to determine the measurement noise by: determining a loop gain from the predetermined value of the cutoff frequency; anddetermining the measurement noise from the one or more measured patient characteristics, the predetermined value of the jitteriness, and the loop gain.

5. The system of claim 4, wherein the processor is further configured to determine a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

6. The system of claim 1, wherein the loop parameter is loop gain.

7. The system of claim 6, wherein the performance indicator is cutoff frequency.

8. The system of claim 7, wherein the processor is configured to determine the loop gain by: determining an initial loop gain from the predetermined value of the cutoff frequency; determining a divisor from a loop frequency; and determining the loop gain by dividing the initial loop gain by the divisor.

9. The system of claim 8, wherein the processor is configured to determine the divisor according to a stepped function of the loop frequency.

10. The system of any one of claims 6 to 9, wherein the processor is further configured to determine a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

11. The system of claim 1, wherein the loop parameter is loop frequency.

12. The system of claim 11, wherein the one or more performance indicators are loop gain and cutoff frequency.

13. The system of claim 12, wherein the processor is configured to determine the loop frequency by: determining a normalised cutoff frequency from the predetermined value of the loop gain; and determining the loop frequency from the normalised cutoff frequency and the predetermined value of the cutoff frequency.

14. The system of claim 13, wherein the processor is further configured to increase the loop frequency while maintaining the cutoff frequency at its predetermined value.

15. The system of any one of claims 12 to 14, wherein the processor is further configured to determine a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

16. An automated method of programming a closed-loop neural stimulation device, the device comprising a control unit configured to adjust, using a feedback controller and one or more loopparameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value, the method comprising: fixing one or more performance indicators of the closed-loop neural stimulation device at respective predetermined values; measuring one or more characteristics of a patient; and determining a loop parameter of the one or more loop parameters from the one or more measured patient characteristics and the one or more predetermined values of respective performance indicators.

17. The method of claim 16, wherein the loop parameter is measurement noise.

18. The method of claim 17, wherein the one or more performance indicators are jitteriness and cutoff frequency.

19. The method of claim 18, wherein determining the measurement noise comprises: determining a loop gain from the predetermined value of the cutoff frequency; and determining the measurement noise from the one or more measured patient characteristics, the predetermined value of the jitteriness, and the loop gain.

20. The method of claim 19, further comprising determining a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

21. The method of claim 16, wherein the loop parameter is loop gain.

22. The method of claim 21, wherein the performance indicator is cutoff frequency.

23. The method of claim 22, wherein determining the loop gain comprises: determining an initial loop gain from the predetermined value of the cutoff frequency; determining a divisor from a loop frequency; and determining the loop gain by dividing the initial loop gain by the divisor.

24. The method of claim 23, wherein the divisor is determined according to a stepped function of the loop frequency.

25. The method of any one of claims 21 to 24, further comprising determining a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

26. The method of claim 16, wherein the loop parameter is loop frequency.

27. The method of claim 26, wherein the one or more performance indicators are loop gain and cutoff frequency.

28. The method of claim 27, wherein determining the loop frequency comprises:determining a normalised cutoff frequency from the predetermined value of the loop gain; and determining the loop frequency from the normalised cutoff frequency and the predetermined value of the cutoff frequency.

29. The method of claim 28, further comprising increasing the loop frequency while maintaining the cutoff frequency at its predetermined value.

30. The method of any one of claims 27 to 29, further comprising determining a further loop parameter of the one or more loop parameters from the loop gain and the one or more measured patient characteristics, wherein the further loop parameter is a controller gain.

31. A neural stimulation system comprising: a closed-loop neural stimulation device for controllably delivering neural stimuli, the device comprising a control unit configured to adjust, using a feedback controller and one or more loop parameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value; and a processor configured to: fix one or more performance indicators of the closed-loop neural stimulation device at respective predetermined values; measure one or more characteristics of a patient; and determine a loop parameter of the one or more loop parameters from the one or more measured patient characteristics and the one or more predetermined values of respective performance indicators.

32. A neural stimulation system comprising: a device for controllably delivering neural stimuli, the device comprising: a stimulus source configured to provide neural stimuli to be delivered via one or more stimulus electrodes to a neural pathway of a patient, the neural stimuli being configured to evoke neural responses from the neural pathway; measurement circuitry configured to capture signal windows from signals sensed on the neural pathway by one or more measurement electrodes subsequent to respective neural stimuli; and a control unit configured to: control the stimulus source to provide a neural stimulus according to one or more stimulus parameters; measure an intensity of an evoked neural response in a captured signal window subsequent to the neural stimulus;determine a feedback variable from the measured intensity of the evoked neural response; and adjust, using a feedback controller, based on one or more loop parameters, the one or more stimulus parameters so as to maintain the feedback variable at or near a target value; and a processor configured to: measure one or more characteristics of the patient; and determine values for the one or more loop parameters from the one or more measured patient characteristics, wherein the determining finds the values for the one or more loop parameters at an extremum of an objective function of the loop parameters subject to respective constraints on the loop parameter values and one or more performance indicators of the device.

33. The system of claim 32, wherein one of the one or more performance indicators is cutoff frequency, and the corresponding constraint is a predetermined fixed value.

34. The system of claim 33, wherein one of the one or more performance indicators is loop gain, and the corresponding constraint is a predetermined fixed value.

35. The system of claim 32, wherein one of the one or more performance indicators is jitteriness, and the corresponding constraint is a predetermined fixed value.

36. The system of claim 35, wherein one of the one or more performance indicators is cutoff frequency, and the corresponding constraint is a predetermined fixed value.

37. The system of any one of claims 32 to 36, wherein the constraints on the one or more performance indicators are range constraints.

38. The system of claim 37, wherein the processor is further configured to determine one or more of the range constraints on the performance indicators based on the measured patient characteristics.

39. The system of claim 38, wherein the performance indicators are jitteriness and pulsingness.

40. The system of any one of claims 32 to 39, wherein the constraints on the one or more loop parameters are range constraints.

41. The system of claim 40, wherein the processor is further configured to determine one or more of the range constraints on the loop parameters based on the measured patient characteristics.

42. The system of claim 41, wherein the one or more loop parameters comprise loop gain.

43. The system of any one of claims 32 to 42, wherein the objective function is a measure of power consumption, and the extremum is a minimum of the objective function.

44. An automated method of programming a closed-loop neural stimulation device, the device comprising a control unit configured to adjust, using a feedback controller and one or more loop parameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value, the method comprising: measuring one or more characteristics of a patient; and determining one or more loop parameter values of the closed-loop neural stimulation device from the one or more measured patient characteristics, wherein the determining finds the values for the one or more loop parameters at an extremum of an objective function of the loop parameters subject to respective constraints on the loop parameter values and one or more performance indicators of the closed-loop neural stimulation device.

45. The method of claim 44, wherein one of the one or more performance indicators is cutoff frequency, and the corresponding constraint is a predetermined fixed value.

46. The method of claim 45, wherein one of the one or more performance indicators is loop gain, and the corresponding constraint is a predetermined fixed value.

47. The method of claim 44, wherein one of the one or more performance indicators is jitteriness, and the corresponding constraint is a predetermined fixed value.

48. The method of claim 47, wherein one of the one or more performance indicators is cutoff frequency, and the corresponding constraint is a predetermined fixed value.

49. The method of any one of claims 44 to 48, wherein the constraints on the one or more performance indicators are range constraints.

50. The method of claim 49, further comprising determining one or more of the range constraints on the performance indicators based on the measured patient characteristics.

51. The method of claim 50, wherein the performance indicators are jitteriness and pulsingness.

52. The method of any one of claims 44 to 51, wherein the constraints on the one or more loop parameters are range constraints.

53. The method of claim 52, further comprising determining one or more of the range constraints on the loop parameters based on the measured patient characteristics.

54. The method of claim 53, wherein the one or more loop parameters comprise loop gain.

55. The method of any one of claims 44 to 54, wherein the objective function is a measure of power consumption, and the extremum is a minimum of the objective function.

56. A neural stimulation system comprising: a closed-loop neural stimulation device for controllably delivering neural stimuli, the device comprising a control unit configured to adjust, using a feedback controller and one or more loop parameters, one or more stimulus parameters of delivered neural stimuli so as to maintain a measured neural response intensity at or near a target value; and a processor configured to: measure one or more characteristics of a patient; and determine values for the one or more loop parameters from the one or more measured patient characteristics, wherein the determining finds the values for the one or more loop parameters at an extremum of an objective function of the loop parameters subject to respective constraints on the loop parameter values and one or more performance indicators of the closed-loop neural stimulation device.

Citation Information

Patent Citations

  • Adaptation of Neurostimulation Therapy to Age-Related Physiological Changes

    US20230014405A1

  • Programming Closed-Loop Neural Stimulation Therapy

    US20230277850A1

  • Improved Neurostimulation Therapy Monitoring

    US20240017072A1

  • Characterisation of neurostimulation therapeutic efficacy

    WO2020087135A1

  • Improved programming of neuromodulation therapy

    WO2023035043A1