Optimization of the Control of a Reactance Circuit for Generating Electromagnetic Pulses
The discrete-time model-based method optimizes pulse system control sequences to achieve precise electromagnetic pulse profiles while ensuring voltage balance and reducing computational complexity and component stress.
Patent Information
- Application Number
- JP2025500863
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-07-11
- Filing Date
- 2023-07-05
- Publication Date
- 2025-07-30
AI Technical Summary
Existing pulse systems face challenges in achieving a target electromagnetic pulse profile due to complex reactance circuit responses and voltage fluctuations, making it difficult to optimize switching sequences and maintain voltage balance.
A method using a discrete-time model to derive an optimal control sequence for a pulse system, which predicts the electrical state and minimizes deviations from the target profile by optimizing a cost function, considering constraints such as voltage balance and switching frequency.
This method ensures high-precision adherence to the target electromagnetic pulse profile, reduces computational complexity, and prevents component damage by optimizing switching sequences and voltage balance.
Smart Images

Figure 2025524608000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the control of a pulse system including a reactance circuit including a pulse coil that generates an electromagnetic pulse.
Background Art
[0002] A pulse system that generates an electromagnetic pulse using a pulse coil may include a switching circuit including an array of switches that switchably connect a capacitive discharge element to supply an input to a reactance circuit including the pulse coil. Such a pulse system may be operated under the control of a control sequence that is a sequence of switching states of the switches over time steps. In a normal configuration, the switching circuit includes a cascade of switching modules, and the switches are arranged to connect each capacitive discharge element across the module outputs connected in cascade to supply a multi-level output voltage.
Summary of the Invention
Problems to be Solved by the Invention
[0003] When controlling such a pulse system, it is an object to satisfy a target profile of the electromagnetic pulse, for example, a target profile of the current flowing through the pulse coil. In practice, it is difficult to achieve this because the output voltage from the capacitive discharge element of the switching circuit changes intermittently with energy transfer, and the response of the reactance circuit to this becomes complicated. The control sequence has a high degree of freedom in the selection and timing of the switching of individual switches, and it is not easy to predict a control system that optimizes the response of a reactance circuit that may include, for example, a complex filter circuit that filters the input to the reactance circuit before application to the pulse coil.
[0004] Furthermore, in some cases, to achieve this purpose, it is necessary to satisfy the desired operating characteristics of the switching circuit, for example, to limit the switching speed of the switches and to maintain the voltage balance of the capacitive discharge elements.
Means for Solving the Problem
[0005] According to a first aspect of the present invention, there is provided a method for deriving an optimal control sequence for a pulse system, the pulse system comprising a reactance circuit including a pulse coil for generating an electromagnetic pulse, and a switching circuit including a plurality of switches arranged to be switchably connected at least one capacitive discharge element for supplying an output voltage as an input to the reactance circuit, the control sequence being a sequence of switching states of the switches over time steps, the method being executed offline before the operation of the pulse system under the control of the derived optimal control sequence, using a discrete-time model of the pulse system configured to predict the electrical state of the pulse system, the method comprising the steps of receiving a target profile of the electromagnetic pulse emitted by the pulse coil, and for each time step of a control sequence taken successively, determining an optimal path of the switching state in a time-step window starting at each time step, the optimal path of the switching state being to optimize a cost function having a deviation cost contribution representing the deviation from the target profile of the electrical state of the pulse system predicted by the discrete-time model in the time-step window, and selecting, as the switching state of the control sequence for each time step, the switching state of the determined path at each time step.
[0006] The advantage of this method is that a systematic method for achieving an electromagnetic pulse that meets the target profile with high precision can be obtained. In particular, as the determined optimal path of the switching state that optimizes a cost function having a deviation cost contribution representing the deviation from the target profile of the electrical state of the pulse system predicted by the discrete-time model, the derived optimal control sequence tends to minimize the deviation and follow the target profile. The method can be easily adapted to any new pulse coil and / or filter by changing the parameters of the discrete-time model without complex readjustment.
[0007] This method of deriving the optimal control sequence can be considered an improved model predictive control (MPC) algorithm and is characterized by its offline nature in a sense. Before operating the pulse system under the control of the derived optimal control sequence, the control sequence is derived for a given target profile. As a result, this method eliminates the computational challenges of a conceptual alternative of performing real-time dynamic control, where the derived control sequence cannot accurately follow the target profile due to being difficult to execute within the range of available computational resources in practice.
[0008] Preferably, the cost function may have an additional cost contribution representing a penalty for undesirable operating characteristics of the switching circuit. Thus, optimizing the cost function also results in optimizing the operating characteristics of the switching circuit by the optimal control sequence. Some specific examples are as follows.
[0009] Preferably, at least one additional cost contribution may include a voltage cost contribution that depends on the voltage of one or more of at least one capacitive discharge element.
[0010] This has the advantage that at least one capacitive discharge element of the switching circuit can be considered when calculating the cost.
[0011] Preferably, the voltage cost contribution represents a penalty for the difference between the voltages of multiple capacitive discharge elements in the window.
[0012] This has the advantage of preventing variations in the capacitive discharge elements, minimizing any deviations, and ensuring that one or more capacitive discharge elements do not have a significantly higher voltage than other capacitive discharge elements.
[0013] Preferably, the voltage cost contribution takes a prohibitively high value when the voltage of the capacitive discharge element exceeds the overcharge threshold.
[0014] This has the advantage of preventing damage to the capacitive discharge element due to high voltage, since the cost function ensures that a path where the voltage exceeds the overcharge threshold is not considered because it is more costly than an alternative path that does not exceed the overcharge threshold.
[0015] Preferably, at least one further cost contribution may include at least one switching state cost contribution that depends on the switching state of the switch.
[0016] This has the advantage that the state of the switching circuit can be taken into account when calculating the cost.
[0017] Preferably, at least one switching state cost contribution includes at least one switching operation cost contribution that represents a penalty for an unwanted switching operation.
[0018] This has the advantage that an alternative path that does not perform the unwanted switching operation is low-cost and thus preferred over the path to be executed, so that its execution can be avoided.
[0019] Preferably, at least one switching operation cost contribution includes one or more of a switching operation cost contribution that represents a penalty for a switching state in which at least one capacitive discharge element is connected to supply the output voltage, a switching operation cost contribution that represents a penalty for a simultaneous change in the switching states of a plurality of switches, and / or a switching operation cost contribution that represents a penalty for a change in the output voltage at each time step.
[0020] These various switching operation costs have the advantage of preventing unnecessary changes in the state of the pulse system, such as the execution of unnecessary switches, and ensuring state changes with a minimum number of switches. The cost makes paths with fewer state changes preferable compared to paths that achieve the same effect but have more system state changes. As a result, since there are fewer state changes in the components and thus less stress on individual components, a more reliable system can be obtained.
[0021] Preferably, at least one switching operation cost contribution includes an equalization cost contribution representing a penalty for unequal switching frequencies of different switches.
[0022] This advantage lies in the fact that when there are switches that are switched more frequently than other switches in the switching circuit, the cost increase allows the switching frequency of the switches to be taken into account. This prevents unequal stress from being applied to the switches in the switching circuit by performing significantly more switches. Since unequal switching can damage components, a more reliable system can be obtained by more evenly distributing the stress.
[0023] Determining the optimal path of the switching state may include steps of searching for possible paths of the switching state in a window by sequentially selecting paths, for the first selected path, accumulating the total value of the cost function for the entire path, for the subsequently selected paths, accumulating the values of the cost function over consecutive time steps of the path, and at each time step before the final time step, comparing the accumulated value of the cost function with the minimum total value of the cost function previously accumulated over the entire path in the search, ending the accumulation if the accumulated value has reached the minimum value, and continuing the accumulation otherwise, and at the end of the search, determining that the path with the minimum total value of the cost function accumulated over the entire path is the optimal path.
[0024] This has the advantage that the algorithm can evaluate the current path compared to the best-known paths discovered so far and reduce the time spent on searching for sub-optimal paths that do not give a more optimal solution. If the current path has a cumulative value greater than the best-known path, since the cumulative cost only increases as the path is advanced, there is no advantage in further exploring the current path. This allows the time to determine the optimal path to be reduced by discarding the path as soon as it becomes clear that it will not lead to the optimal path and immediately starting to explore the next possible path. By storing only the optimal path found so far instead of all the paths explored, the amount of memory required by the algorithm is also reduced.
[0025] Preferably, for each time step of the control sequence following the first one, the step of sequentially selecting a path includes the step of first selecting a path that starts at the overlapping part of the optimal path determined for the previous time step of the control sequence.
[0026] This has the advantage of ensuring that the first selected path is likely to be a feasible solution, reducing the number of branch evaluations and shortening the time required to find the optimal path. Since the overlapping part of the optimal path was found to have the minimum cost value at the previous time step, paths including this at this time step are also likely to have a low cost value. That is, since the first selected path for this time step is likely to have a low cost value, a large number of possible paths are discarded early in the search process. These paths require less effort in the search and an approximate feasible solution can be obtained quickly. This reduces the exploration of the search space, thus shortening the time required to find the optimal path.
[0027] Preferably, in the early stage of the search, the step of sequentially selecting a path includes the step of selecting paths corresponding to various values of the output voltage.
[0028] This has the advantage that all possible levels of the output voltage are surely considered early in the search process. That is, most of the behaviors are quickly searched to identify the best behavior, and thus the quasi-optimal cost can also be identified. As a result, the time taken to search for system behaviors that are not valid at the current time step is reduced, and an approximate path with a cost close to the optimum can be found more quickly, so that more search space can be discarded and the required computational amount is reduced.
[0029] Preferably, the discrete-time model of the pulse system is a transformation of the continuous-time model of the pulse system.
[0030] This has the advantage that the discrete-time model can provide accurate results for a computationally efficient single fixed time step, so it is more computationally efficient than the continuous-time model.
[0031] Preferably, the discrete-time model is a discrete-time state-space model.
[0032] This has the advantage that the state of the system can be accurately tracked and modeled over each time step.
[0033] Preferably, the control sequence is a sequence of the switching states of the switch over time steps with a blanking interval inserted between switchings of the switch, and the discrete-time model of the pulse system models the insertion of the blanking interval.
[0034] Control sequences that include blanking intervals have the advantage of protecting the components of the switching circuit. If an appropriate blanking interval is not inserted, problematic combinations of switches can turn on simultaneously and damage the circuit. Inserting a blanking interval means that it is guaranteed that the first switch turns off before the second switch turns on, preventing both switches from turning on simultaneously and damaging the circuit. A model of a pulse system that includes the insertion of a blanking interval enables a more accurate model and thus a more accurate solution.
[0035] Preferably, the method includes adjusting the target profile to limit the magnitude of the rate of change of the target profile before determining the path of the switching state for each time step.
[0036] In certain scenarios, the method cannot efficiently prune the search space. This occurs when the cost increases rapidly deep into the search space, meaning that most of the branches before that point are low-cost and are not pruned. This requires exploring more paths before discarding them, resulting in a large computational cost for the MPC algorithm to reach the optimal path. The advantage of performing the above adjustment is that by limiting the magnitude of the rate of change, the cost approaches the final cost earlier in the path. That is, by being able to identify and discard non-optimal paths earlier, the computational cost of finding the optimal path can be reduced.
[0037] Preferably, the target profile is the target profile of the current flowing through the pulse coil, and the electrical state of the pulse system predicted by the discrete-time model includes the current flowing through the pulse coil.
[0038] This has the advantage that the system can accurately model the impact of the target profile on the system.
[0039] Preferably, the step of adjusting the target profile includes predicting the output voltage at each time step from the target profile using a model of the transfer of the energy stored in at least one capacitive discharge element to a reactance circuit, and applying a predetermined limit equal to the product of the length of the time step and the quotient of the predicted output voltage at each time step divided by the inductance of the reactance circuit, or a predetermined ratio of that product, to the change in current at each time step.
[0040] This ensures that the target profile does not include step changes that lead to a rate of change greater than the theoretical maximum achievable by the circuit, which can increase the cost early in the search space and thus lead to the identification of the optimal path with less computational effort.
[0041] Preferably, the step of adjusting the target profile includes applying a predetermined limit equal to the product of the length of the time step and the quotient of the initial output voltage divided by the inductance of the reactance circuit, or a predetermined ratio of that product, to the change in current at each time step.
[0042] This has the advantage that the calculated first rate limit criterion can be iteratively improved to provide a second rate limit criterion that takes into account the voltage change due to the discharge of at least one capacitive discharge element over time. This leads to a more accurate value of the rate of change.
[0043] Preferably, the reactance circuit further includes a filter circuit arranged to filter the input to the reactance circuit before application to the pulse coil.
[0044] This has the advantage that unwanted high-frequency components of the voltage applied to the pulse coil can be removed.
[0045] The present invention is applicable to any type of reactance circuit including a pulse coil that generates an electromagnetic pulse. This is particularly applicable to a reactance circuit that is a transcranial magnetic stimulation (TMS) circuit, in which case the electromagnetic pulse is a transcranial magnetic stimulation pulse. Other applications include pulsed power systems such as particle accelerators, fusion reactors, and magnetic emission systems.
[0046] The switching circuit can include a plurality of capacitive discharge elements, and the output voltage is a multi-level output voltage. This is advantageous in many applications where it is desired to perform fine control over a wide voltage range greater than the normal voltage of a single capacitive discharge element.
[0047] The switching circuit can include a plurality of switching modules, each switching module including a capacitive discharge element and a switch arranged to connect the capacitive discharge element across the module output, and the switching module outputs are cascaded to supply a multi-level output voltage.
[0048] Such a cascade of switching modules is a convenient way to structure the switching circuit since the individual switching modules can each be similarly controlled and operated. For example, the switching state of a switching module can represent the switching state of the switches within each switching module.
[0049] Preferably, the switches of each switching module can be arranged in a bridge configuration.
[0050] This has the advantage that the switching module can take on a plurality of different states and can switch between those states.
[0051] Preferably, the switching module has a switching state including a forward switching state in which a capacitive discharge element is connected in the forward direction between both ends of the module output, a reverse switching state in which the capacitive discharge element is connected in the reverse direction between both ends of the module output, and at least one bypass switching state in which the module output is not connected between both ends of the module output.
[0052] This has the advantage that each module can have flexibility in the switching state it can take, and the values that the switching circuit can output can be varied.
[0053] According to a second aspect of the present invention, there is provided a method of operating a pulse system including a reactance circuit including a pulse coil that generates an electromagnetic pulse and a switching circuit including a plurality of switches arranged to switchably connect at least one capacitive discharge element as an input to the reactance circuit to supply an output voltage, the method comprising: deriving an optimal control sequence of the pulse system, which is a sequence of switching states of the switches over time steps, by the method according to the first aspect of the present invention; and operating the pulse system under the control of the derived optimal control sequence.
[0054] According to still another aspect of the present invention, there is provided a computer program executable by a computer device and configured to cause the computer device to perform the method according to the first aspect when executed, a computer-readable storage medium storing the computer program, and a computer device configured to perform the method according to the first aspect.
[0055] Next, embodiments of the present invention will be described by way of non-limiting examples with reference to the accompanying drawings.
Brief Description of the Drawings
[0056]
Figure 1a
Figure 1b
Figure 2
Figure 3
Figure 4a
Figure 4b
Figure 4c
Figure 5a
Figure 5b
Figure 5c
Figure 6a
Figure 6b
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Mode for Carrying Out the Invention
[0057] FIG. 1a shows a pulse system 1 comprising a switching circuit 20, a filter circuit 30, and a pulse coil 40. These components of the pulse system 1 are arranged as follows with reference to FIG. 1b which shows respective embodiments of the blocks shown in FIG. 1a.
[0058] The pulse coil 40, represented by inductance L in FIG. 1b, generates an electromagnetic pulse as a result of current i o flowing through the pulse coil 40.
[0059] The filter circuit 30 is arranged to filter an input having an input voltage v d before being applied to the pulse coil 40. In the example of FIG. 1b, the filter circuit 30 takes the form of a damped second-order low-pass filter circuit and includes i) an inductance L f 31 in series with the pulse coil 40, and ii) a series arrangement of a capacitance C f 33 and a damping resistor R f 32 in parallel with the pulse coil 40. However, this form of the filter circuit 30 is not limiting, and generally the filter circuit 30 can take any suitable form.
[0060] The filter circuit 30 and the pulse coil 30 together form a reactance circuit 41 to which an input having an input voltage v d is applied. The reactance circuit 41 can be a transcranial magnetic stimulation (TMS) circuit, and the pulse coil 40 generates an electromagnetic pulse that is a TMS pulse. In that case, the pulse coil 40 and the filter circuit 30 may be suitable for generating TMS pulses for clinical applications of TMS. However, the techniques described herein can more generally be applied to any other type of reactance circuit, such as those of particle accelerators, nuclear fusion reactors, magnetic emission systems, etc.
[0061] The switching circuit 20 drives the reactance circuit 41 by generating a multi-level output voltage of the switching circuit 20 supplied as an input to the reactance circuit 41. The switching circuit 20 includes a plurality of switching modules 10. In this example, three switching modules 10 are shown as an example in FIG. 1b, but generally any number of switching modules 10 can be provided.
[0062] Each switching module 10 has the arrangement shown in FIG. 1b as described below. Each switching module 10 includes a capacitive discharge element 15 and a bridge configuration of switching elements 11 to 14 that can switchably connect the capacitive discharge element 15 across both ends of the module output 16 of the switching module 10. The switching elements 11 to 14 act as switches. In this example, the switching elements 11 to 14 are shown as an example in FIG. 1b as N-channel MOSFET (metal-oxide-semiconductor field-effect transistor) devices including body diodes, but generally the switching elements 11 to 14 can include any suitable type of semiconductor switch, for example, an insulated-gate bipolar transistor (IGBT) as an alternative. Similarly, the individual switching elements 11 to 14 can be implemented by a plurality of parallel switches to increase the effective conduction capacitance.
[0063] In this example, the bridge configuration of the switching elements 11 to 14 is a full bridge (or H bridge) as an example, but generally other bridge configurations of switches may be applied.
[0064] Each capacitive discharge element 15 is also connected to a capacitor charging circuit 17 that charges the capacitive discharge element 15 between pulses or groups of pulses.
[0065] The arrangement of the switching modules 10 is a cascade that supplies the output voltage of the switching circuit 20, which is used as the input to the reactor circuit 41 by cascading the module outputs 16, as a multi-level voltage. In this example, the cascade of the switching modules 10 is shown in FIG. 1 as a simple cascade in which the module outputs 16 are connected in series, but generally any cascade configuration of the switching modules 10 can be applied.
[0066] Generally, the multi-level output voltage of the switching circuit 20 can be a unipolar or bipolar output voltage, as is known in cascaded switching modules 10.
[0067] As a result of the bridge configuration of the switching elements 11 to 14, each of the switching modules 10 has a switching state representing the switching states of the individual switching elements 11 to 14 of each switching module 10. That is, each switching state of the switching module 10 corresponds to a different combination of the switching states of the switching elements 11 to 14. In this example, the switching state of the switching module 10 includes a forward switching state in which the switching elements 11 to 14 connect the capacitive discharge element 15 in the forward direction between both ends of the module output 16 due to the switching states of the switching elements 11 to 14, a reverse switching state in which the switching elements 11 to 14 connect the capacitive discharge element 15 in the reverse direction between both ends of the module output 16 due to the switching states of the switching elements 11 to 14, and at least one bypass switching state in which the switching elements 11 to 14 do not connect the capacitive discharge element 15 between both ends of the module output 16 due to the switching states of the switching elements 11 to 14.
[0068] Since the switching states of the switching elements 11 to 14 can be selected and controlled by selecting and controlling the switching state of the switching module 10, such an arrangement of the cascaded switching modules 10 is convenient and simplifies the control and operation of the switching circuit 20. However, generally, the switching circuit 20 can have any arrangement of switches that switchably connect capacitive discharge elements to supply a multi-level output voltage.
[0069] In this example, a cascade of switching modules 10 is used to switchably connect a plurality of capacitive discharge elements to supply a multi-level output voltage of the switching circuit 20. However, more generally, the switching circuit 20 can include a single capacitive discharge element and supply a single-level (bipolar or unipolar) output voltage.
[0070] The control sequence 50 of the pulse system 1 defines the sequence of the switching states of the individual switching modules 10 over time, and thus the input to the reactance circuit 41. Therefore, the control sequence 50 is selected such that the electromagnetic pulse generated by the pulse coil 40 takes a predetermined form that can be represented by the target profile 310.
[0071] A conventional method of creating the control sequence 50 is the use of carrier - based pulse - width modulation (PWM) that compares a target pulse system output voltage profile with a triangular - wave carrier signal. When the ratio of the frequency of the carrier signal to the signal frequency of the target profile 310 is large (20 or more), high - fidelity output is achieved, and the voltage fluctuations of the capacitive discharge element 15 over time are negligible. In high - power pulse - load applications, the drawbacks of carrier - based PWM are significant. First, the assumption that the voltage fluctuations of the capacitive discharge element 15 over time are negligible is usually not valid for pulse - power systems. Since the voltage of the capacitive discharge element 15 can be significantly (e.g., by 1 / 2) decreased over the pulse width so that a small capacitance value can be used, the cost and physical size are reduced. Second, the practical limit of the maximum switching frequency of high - power IGBTs is limited (about 20 kHz). In a high - power pulse system where the frequency of the target profile 310 is in the range of 2 kHz to 5 kHz, the ratio of the frequency of the carrier signal to the signal frequency of the target profile 310 is smaller than the minimum recommended value of 20 for PWM. As a combined effect, when creating the control sequence 50 using the carrier - based PWM method, the output pulses deviate significantly from the target profile 310.
[0072] The method described in this specification aims to overcome these problems and provides a method for deriving a control sequence optimized to faithfully follow the electromagnetic pulses generated during the application of the control sequence by the target profile 310. When using the MPC method to create the control sequence 50, these problems are mitigated by treating the creation as an optimization problem at each time step. By feeding back the calculated voltage of the capacitive discharge element 15 and other circuit states at each time step, the MPC method determines the next switching state and generates the target output pulse. This leads to five important advantages compared to carrier - based PWM.
[0073] 1. It can follow the target profile 310 in any circuit state. Usually, the state selected is the current of the pulse coil 40. In contrast, the carrier-based PWM method indirectly controls the current of the pulse coil 40 by controlling the voltage v d generated by the switching circuit 20.
[0074] 2. The non-ideal operation of the pulse system 1 is essentially compensated. For example, it is the effect of the blanking interval and the forward voltage drop of the switching elements 11, 12, 13, 14 of the switching circuit 20. This is very difficult to achieve with the carrier-based PWM method.
[0075] 3. The voltage fluctuations of the capacitive discharge element 15 over the pulse width are essentially compensated. In contrast, the carrier-based PWM method requires an additional feedback system to compensate for the voltage fluctuations of the capacitive discharge element 15.
[0076] 4. Using the MPC framework, it is conceptually simple to extend the operation to complex systems such as a system including a filter circuit 30 between the switching circuit 20 and the pulse coil 40. That is, for example, the current of the pulse coil 40 can be accurately made to follow the target profile 310 despite the action of the filter circuit 30. This is very difficult to achieve with the carrier-based PWM method.
[0077] 5. Compared with what the carrier-based PWM method requires, fewer switches are needed to achieve a given quality of the output (the deviation of the selected circuit state from the target profile 310).
[0078] However, MPC has a significantly higher computational cost than carrier-based PWM. This is due to the use of optimization, as the search space for possible solutions is large. All these solutions must be considered and explored to obtain the optimal control sequence 50, which requires a significant amount of computation. This makes the application of online methods difficult. Conceptually it is possible, but in practice, the limitation of available computational power makes it difficult to execute the method, resulting in inaccurate tracking of the target profile in reality.
[0079] However, pulse power applications such as TMS are characterized by short discrete and aperiodic outputs, so it has been recognized that the MPC method can be applied offline. Therefore, in the technology described herein, after the control sequence is derived offline, the pulse system 1 operates under the control of the derived optimal control sequence. Offline MPC pre-computes the control sequence 50 required to generate the target output pulse. When generating pulses by the pulse system 1, an appropriate control sequence 50 is selected from a pre-computed library and supplied to the pulse system 1. This method can be performed as follows.
[0080] To assist understanding, first refer to FIG. 2 showing a plot on the same timeline regarding an example of the deviation of an electromagnetic pulse from a target profile. The first plot shows the target profile r (current in this example) and the output current i of the electromagnetic pulse generated by the pulse system 1 for which the control sequence was created by the MPC algorithm o and. The second plot shows the voltage v cm w between the capacitive discharge elements 15 of the switching module 10. The third plot shows the derived control sequence 50 including the switching states that change at each of the switching modules 10. The fourth plot shows the combined input voltage v d to the reactance circuit 41. Clearly, even as the voltage of the capacitive discharge element 15 decreases over time, the output pulse current follows its target profile throughout the pulse width.
[0081] A method for deriving the optimal control sequence 50 of the pulse system 1 is shown in FIG. 3 and will be described in detail below.
[0082] FIG. 3 shows a method including steps executed by a computer device. In this figure, the steps of the method are executed by the functional blocks of the computer device. The functional blocks process data representing various information to be described in detail below.
[0083] The computer device can be implemented as a computer device that executes a computer program. In this case, the computer program is executable by the computer device and is configured to cause the computer device to perform a method including the steps of the functional blocks when executed. Such a computer device can be any type of computer system, but is usually a conventional configuration. The computer program can be described in any suitable programming language.
[0084] The computer program can be stored in a computer-readable storage medium, and the computer-readable storage medium can be any type, for example, a recording medium that can be inserted into a drive of a computing system and magnetically, optically, or magneto-optically store information, a fixed recording medium of a computer system such as a hard drive, or computer memory.
[0085] The method shown in FIG. 3 has the following three steps.
[0086] In step S1, the target profile 310 of the electromagnetic pulse emitted by the pulse coil 40 is received. This method also uses circuit parameters 330 (for example, various inductances, capacitances, resistance values, and initial voltages and currents, blanking time, etc.) and MPC parameters 360 (for example, window length, cost weighting, etc.). However, these parameters need to be received only once and do not need to be re-entered every time a new target profile 310 is provided.
[0087] In step S2, before determining the path of the switching state for each time step, if necessary, the target profile 310 is adjusted to limit the magnitude of the rate of change of the target profile 310. This step will be described in detail below.
[0088] In step S3, the MPC algorithm determines an optimal control sequence 370 that is a sequence of switching states over a continuous time step over the operating period corresponding to the target profile 310.
[0089] This method is executed offline before the operation of the pulse system 1 under the control of the derived optimal control sequence 370. That is, the control sequence can be prepared in advance, and the pulse system 1 is not affected by the time it takes to reach the optimal control sequence.
[0090] In the example described in more detail below, the target profile 310 is the target profile 310 of the current flowing through the pulse coil 40. More generally, the target profile 310 can be the target profile 310 of any electrical parameter of the electromagnetic pulse.
[0091] The method of determining the control sequence 50 performed in step S3 will be described in detail next.
[0092] For reference, the parameters of the electrical state of the pulse system 1 used in the following description will be described next with reference to FIGS. 4a to 4c. In the pulse system 1, the four switching elements 11 to 14 of each switching module 10 are denoted as Q1w to Q4w, and the capacitive discharge element 15 that stores energy has a capacitance C m and a voltage v cm w. The constraint on the switching module 10 is that both of the left switching elements 11, 12 and / or both of the right switching elements 13, 14 cannot be switched on simultaneously, thereby avoiding a short circuit of the capacitive discharge element 15. As a result, in this example, the switching state u of the switching module 10w has three possible values reflecting three possible states of its output voltage v om w. These three states are also shown in Fig. 4c. In this example, the output voltage v of the switching circuit 20, which is the input to the reactance circuit 41 d is the sum of these output voltages v om w.
[0093] As shown in Fig. 4b, for a system having N m switching modules 10, the following switching vector can be defined.
[0094]
Number
[0095] This can take N different combinations due to the three distinct states to which each switching module 10 can transition. Thus, a switching matrix U of size N b = 3 N m can be defined, each column of which is a switching vector for "branch" b m × N b , j ∈ {0…N j -1}. This switching matrix stores all possible branches for that number of switching modules 10. For example, if there are three switching modules 10, the switching matrix size is 3 × 27, the total number of switching vectors or "branches" is 27, and each branch has three elements representing the three states of the switching module 10. The following pseudocode is used to select a specific branch using a function called lookup(). b -1}. This switching matrix stores all possible branches for that number of switching modules 10. For example, if there are three switching modules 10, the switching matrix size is 3 × 27, the total number of switching vectors or "branches" is 27, and each branch has three elements representing the three states of the switching module 10. The following pseudocode is used to select a specific branch using a function called lookup().
[0096]
Number
[0097] The task of the MPC algorithm is to limit, as constraints, in particular the number of switching instances of the switching module 10 and the voltage deviation of the capacitive discharge element 15, while outputting the current i passing through the pulse coil 40 o [y] is the user-defined target profile 310i ref [y] to follow the branch b[y] (and thus u[y], where u = [u0...u N m-1]) of the optimal sequence. Here, y ∈ {0...N r -1}, and N r is the number of samples of the target profile 310.
[0098] The determination of the control sequence 50 predicts the electrical state of the pulse system 1 using a discrete-time model of the pulse system. The electrical state includes the current i flowing through the pulse coil 40 o , the voltage v of the capacitive discharge element 15 with respect to each switching module 10 cm w, and other electrical parameters of the variable pulse system 1 during operation, such as the current and voltage with respect to the components of the pulse system 1.
[0099] Next, an example of a discrete-time model will be described with reference to FIGS. 5a to 5c showing the equivalent circuit diagram or circuit state of the pulse system 1. In this example, the discrete-time model is a discrete-time state space model, but generally any other type of discrete-time model can be used.
[0100] The discrete-time model of the pulse system 1 is a transformation of the continuous-time model of the pulse system 1. Mathematically, x[k]=A n,T x[k - 1], and wherein
[0101]
Equation
[0102] is, and T is the step time. For n ≥ 1, A~ nis the continuous-time linear state transition matrix of the circuit, as shown in Fig. 5a where the switching circuit 20 is replaced by a single equivalent capacitor C.
[0103]
Number
[0104] where n is the number of non-zero state switching modules 10. T is the sampling time of the continuous-discrete conversion, and k is the k-th time step of the discrete-time model of the system.
[0105] The circuit state vector x is the current i flowing through the pulse coil 40 o , the voltage v across the capacitor of the filter circuit 20 f , the output current i of the switching circuit 20 om , and the voltage v across the capacitive discharge element 15 of each switching module 10 cm w of the output voltage v of the module 10 derived from om the sum of the voltages v across the equivalent capacitor C corresponding to the switching circuit 20 derived as C including.
[0106]
Number
[0107] There are also A [[ID=A]] 0,T and A [[ID=B]] -1,T models corresponding to the "all switching modules 10 in the zero state" shown in Fig. 5b and the "switching modules 10 in the blanking interval state" shown in Fig. 5c respectively. These are low-dimensional models.
[0108]
Number
[0109] When n ≤ 0, the output voltage v om w of the switching module 10 is conserved (vC [k]=v C [k - 1]).
[0110] When n = -1, the output current i of the switching module 10 om is maintained at zero (this can occur during the blanking interval).
[0111] When T is constant (for example, T = T s wherein, T s is a constant sampling time), A n,T is constant. That is, A n,T matrix can be pre - calculated at the start of the algorithm (no need for recalculation at each step). This is advantageous because the calculation of the matrix exponential is costly.
[0112] However, the above - mentioned model does not capture the blanking interval effect of the switching circuit 20. Inserting a blanking interval between the switching of the switches of each leg of the switching module 10 is necessary to avoid the possibility of damage to the switching module 10. This blanking interval is shown in the second and third waveforms of FIG. 6b described below. This causes the output voltage v om w of the switching module 10 to deviate from the ideal case. This may result in the instantaneous output current of the switching module 10 depending on the output voltage v om w of the switching module. Depending on whether the output current i om of the switching module 10 exceeds zero during the blanking interval, two scenarios described below can be considered.
[0113] Next, the circuit modeling of the blanking interval effect will be described with reference to FIGS. 6a and 6b. FIG. 6a shows an individual switching module 10 and corresponds to FIG. 4a. FIG. 6b shows the waveforms related to the switching module 10, where the first waveform is the switching state u, the second and third waveforms are the states of the left - hand switching elements 11 and 12 marked as Q1 and Q2, and the fourth and fifth waveforms are the output currents i of the switching module 10 for scenarios 1 and 2 described belowom and the output voltage v om is as follows.
[0114] Scenario 1 is as follows. The output current i of the switching module 10 om does not become zero during the blanking interval, so the management of the blanking interval is simple. The step is divided into two consecutive sub-steps, one with a length of T d , and the other with a length of T r = T s - T d . Therefore, two sets of state space matrices A n,T d and A n,T r are required.
[0115] Scenario 2 is as follows.
[0116] The output current i of the switching module 10 om becomes zero during the blanking interval. The time it takes to become zero varies according to the circuit behavior and can take any value T a ∈(0, T d ). In this scenario, the following two tasks must be performed.
[0117] 1. For example, for i s (t) in the time interval t ∈ (kT s , kT d + T om ), use the bisection method to find T a .
[0118] 2. Divide the step into three consecutive sub-steps T a , T z = T d - T a , and T r = T s - T d .
[0119] What is required for this is 1. Since it is necessary to perform it for each bisection step, the computational cost is very high. The matrix exponential A for a given step n,Ta and A n,T direct calculation of z, or 2.A n,gT d / N pre - calculation of g, where g ∈ {1...N g}[where N g is large enough to obtain a good approximation of time T a . That is, all A matrices can be pre - calculated, which greatly speeds up the operations.
[0120] The following pseudo - code models the insertion of blanking intervals into the discrete - time model of the pulse system 1 using a function called deadtime().
[0121]
Number
[0122] A method for updating electrical parameters over a single time step considering the different scenarios described above is explained here. This method includes two functions, step() and substep(), as shown in Figures 7 and 8 respectively. The step() function determines the blanking - interval effect scenario occurring in the switching module 10 at the current time step using the aforementioned lookup() and deadtime() functions 730. Based on this determination, if it is determined that there is a blanking - interval effect, the substep() function is called with appropriate input arguments (750).
[0123] In step 810, the substep() function takes as input the previous circuit state, the previous capacitor voltage of the switching module 10, the switching state at this time step, the time - step width, and the number of non - zero - state switching modules 10, and in step 850, returns as output the new circuit state and the new capacitor voltage of the switching module 10. This starts by calculating the voltage of the equivalent capacitor of the switching circuit 20 at the previous time step in step 820, and then, in step 830, determining the appropriate A n,TAdvance the circuit model to the current time step using matrices. Similarly, in step 840, update the capacitor voltage of the switching module 10 using the new switching state. Finally, in step 850, the step() function outputs the new circuit state and the new capacitor voltage of the switching module 10 at the k-th time step.
[0124] By repeating the step() method shown in FIG. 7 over successive time steps, the electrical state of the pulse system 1 can be iteratively predicted over the period of the target profile 310.
[0125] The cost function will now be described.
[0126] The determination of the control sequence 50 determines the optimal path of the switching state in the time step window using the electrical state of the pulse system 1 predicted by the discrete-time model. In particular, the optimal path is the path through the switching states of the switching module 10 over a series of time steps, and is the path that minimizes the cost function. The cost function is selected to optimize the desired characteristics of the control sequence 50 determined for a given target profile 310. The cost function provides a value representing the cost of the current path, and this value can be used to compare possible paths with each other. This value is calculated based on the desired behavior of the circuit and / or the predicted behavior of the system.
[0127] The cost function may include the following cost contributions. These cost contributions are defined for any particular path through the switching states of the switching module 10. For any path, each cost contribution takes on a value at each time step, and these can be summed to derive a total value of the cost contribution. This cost can then be used to evaluate the cost of a particular path compared to other possible paths.
[0128] The cost contributions can be functions of the target profile 310 and / or variables that depend on the path.
[0129] Such variables may include variables representing electrical parameters of the electrical state of the pulse system 1 along the switching state path. For example, such a variable may represent the voltage of the capacitive discharge element 15 of the switching module 10.
[0130] Such variables may include variables representing the switching state of the switching module 10, such as the value of u w .
[0131] When using multiple cost contributions, the cost contributions are summed (or more generally combined in some other way) for each path to provide a total value of the cost function, which may also be referred to as the "cost" of the path.
[0132] In any case, the cost function has a deviation cost contribution representing the deviation from the target profile 310 of the electrical state of the pulse system predicted by the discrete-time model in the time step window. Thereby, a control sequence 50 that tends to reduce such deviations in optimization is sought.
[0133] For example, in a TMS application, the cost contribution for the deviation of the current i o of the pulse coil 40 from a reference r is c r = α r (r - i o ) 2 defined, where α r is the weighting of this cost contribution.
[0134] Furthermore, the cost function may have an additional cost contribution representing a penalty for undesirable operating characteristics of the switching module 10. Such additional cost contributions may optimize the performance of the pulse system 1 or protect the components of the system from damage and undesirable stress. Thereby, a control sequence 50 that tends to improve the operating characteristics in optimization is sought. Some examples are as follows.
[0135] The cost function may include another cost contribution that is a voltage cost contribution dependent on the voltage of the capacitive discharge element 15 of the switching module 10. Such a voltage cost contribution may take a prohibited value when the voltage of the capacitive discharge element 15 exceeds an overcharge threshold, and otherwise may represent a penalty for the difference between the voltages of the capacitive discharge element 15 of the switching module 10 within the window. Thereby, optimization is encouraged to select a control sequence 50 that has similar voltage values for all of the capacitive discharge elements 15 and prevents values that would damage the capacitive discharge elements 15.
[0136] As an example, in a TMS application, the cost contributions for overcharge and variation of the capacitor voltage are defined as follows.
[0137] [Number]
[0138] where α v is the weighting of this cost contribution, v cm is the module capacitor voltage vector, and V cm,max is the maximum allowable voltage of the capacitive discharge element 15. Thereby, overvoltage faults of the capacitor are prevented, and it is ensured that the switching module 10 of the pulse system 1 is not subjected to uneven stress.
[0139] The cost function may include another cost contribution that is at least one switching state cost contribution dependent on the switching state of the switching module 10. Some examples of switching state cost contributions are as follows.
[0140] In one type of example, the switching state cost contribution may include at least one switching operation cost contribution that represents a penalty for an undesirable switching operation. This encourages optimization to prefer the execution of desirable switching operations, thereby improving the performance of the system, preventing the possibility of damage to circuit components that may occur by repeatedly switching unwanted switches, and reducing stress. Some examples of switching operation cost contributions are as follows.
[0141] An example of the switching operation cost contribution for Pulse System 1 is a switching operation cost contribution that represents a penalty for the switching state of connecting a capacitive discharge element 15 between both ends of the output of the switching module 10, and is defined as follows.
[0142]
Number
[0143] In the formula, α0 is the weighting of this cost contribution. Thereby, by setting the switching module 10 to the default zero, the stress on the switching module 10 is minimized. This is advantageous because optimization prefers a configuration where the two switching modules are in the zero state compared to a situation where the two switching modules are in exactly opposite states. Thereby, excessive stress on the capacitive discharge element 15 is prevented.
[0144] Another example of the switching operation cost contribution for the TMS system is a switching operation cost contribution that represents a penalty for the simultaneous change of the switching states of a plurality of switching modules 10, and is defined as follows.
[0145]
Number
[0146] In the formula, α qThis is the weighting of this cost contribution. By including this in the cost, costs are imposed on unnecessary switches to suppress their occurrence, minimizing the switching stress on the switching module 10 of the TMS system.
[0147] Another example of the cost contribution of the switching operation to the TMS system is the switching operation cost contribution representing the penalty for the change in the output voltage at each time step, which is defined as follows.
[0148]
Number
[0149] where α δ is the weighting of this cost contribution. By including this in the cost, large step changes in the output voltage at a single time step that can cause significant stress on the filter circuit 20 and lead to EMS problems are minimized.
[0150] In another type of example, the switching state cost contribution may include an equalization cost contribution representing the penalty for the unequal number of switching times of different switching modules 10.
[0151] For example, in the TMS system, using the switching count vector s, the switching module 10 with the most switching times can be identified as follows.
[0152]
Number
[0153] At any time step, the switching module(s) 10 that have been switched the most so far have β w = 1 for w ∈ {0...Nm - 1}. If this switching module(s) 10 is switched at this step, the following penalty occurs.
[0154] [Number]
[0155] where α s is the weighting of this cost contribution. By including this in the cost, instead of repeating the switching of a single switching module 10, an equal distribution of the switching of all available switching modules 10 is promoted, ensuring that uneven stress is not applied to the switching modules 10 of the pulse system 1.
[0156] The following pseudocode shows how the total cost contribution c is derived using the function cost(). This function involves summing all the selected cost contributions. The following function includes a specific combination of cost contributions, but any possible combination of the mentioned cost contributions can be used.
[0157] [Number]
[0158] Next, the MPC function is described with reference to FIG. 9.
[0159] In step 920, the mpc() function takes as input the next N h (the length of the MPC window) time steps' reference, the previous circuit state, the previous capacitor voltage of the switching module 10, the switching counter, the previous branch, and the cumulative cost boundary c * and, in step 990, returns as output the minimum cost path and its corresponding cost.
[0160] The process, in step 930, has the local cost accumulator variable c kStart by initializing to zero, initializing the current branch p to zero, and initializing the time step k to 1. Subsequently, enter the iterative search loop. At step 940, the circuit state and the capacitor voltage of the switching module 10 are updated using the step() function. At step 950, the cost associated with that step is calculated using the cost() function. Subsequently, at step 960, increment the time step k of that window. If k is still less than the window length, return to step 940.
[0161] For each time step of the continuous control sequence 50 taken, determine the optimal path of the switching states in the time step window (defined by N h ) starting at each time step. This is done by performing a search of the possible paths of the switching states in the window by sequentially selecting paths.
[0162] After evaluating the path, at step 980, determine the next path (or partial path) to be evaluated using the (p,k)=next(p,k) function. This function increments the branch number at position k and, in case of overflow, performs a carry to the next higher position and resets the upper k positions to 0. This function returns the incremented position k. For example, p =
[0101] , k = 3 → p =
[0102] , k = 3 p =
[0102] , k = 3 → p =
[0110] , k = 2 p =
[0122] , k = 2 → p =
[0200] , k = 1 p =
[0222] , k = 3 → p =
[0000] , k = 0 If the returned k is zero, the last path has been evaluated and the search ends; otherwise, the next branch of that path is evaluated.
[0163] For the first selected path, the mpc() function accumulates the total value of the cost function for the entire path, while for the subsequently selected paths, the local cost accumulator c kUse it to accumulate the values of the cost function over consecutive time steps of the path. At each time step before the final time step, the local cumulative value c of the cost function k is compared with the global minimum value c of the cost function accumulated over the entire path in the search. If the local cumulative value reaches the minimum value, the accumulation ends; otherwise, the accumulation continues. If a path with a lower cost (i.e., c * <c k and k = N * ) is found, then at step 970, this cost and path are recorded. When the search is complete, the mpc() function reaches step 990 and determines that the path with the minimum total value of the cost function accumulated over the entire path is the optimal path. At each time step, the first branch of the determined path is selected as the switching state of the control sequence 50 at each time step. h )
[0164] An example of the search tree of one switching module 10 is shown in FIG. 10. Here, x[0], v cm [0] are the circuit state and the capacitor voltage of the switching module 10 at the end of the final time step respectively, and p0 is the last branch taken. The search tree shown in FIG. 10 shows all possible paths that can be created over the next three time steps. According to the previous description, the branch b j (here, in the case of the pulse system 1 with one switching module 10, j ∈
[0012] ) represents the applied switching sequence, and the path is described by a series of branches. For example, as shown in FIG. 10,
[0165]
Number
[0166] or simply p =
[0102] .
[0167] The mpc() function evaluates the costs of all possible paths using a depth - first approach as shown below. p =
[0000] p =
[0001] p =
[0002] p =
[0010] … p =
[0222]
[0168] When searching for a full - sized tree, this can be computationally expensive. To overcome this, at any point during the evaluation of a path, if the local cumulative cost c k exceeds the global minimum cost c * that has been obtained so far, since the cost of each step can only be zero or positive and can only increase from that point on, the mpc() function does not evaluate any further sub - paths. Thus, using the local cost accumulator c k and the branch increment function next(), the mpc() search algorithm effectively "prunes" the tree to minimize the amount of the search space that is actually explored, reducing the computational complexity. Using this technique, usually most of the search space can be pruned, significantly reducing the time and effort required to find the optimal solution.
[0169] The computational complexity can be reduced as follows.
[0170] Since the MPC algorithm is an iterative search process, if the entire tree is searched at each time step, causing the algorithm to perform a large number of evaluations, the computational complexity can become extremely high. Since most paths are unlikely to provide a solution close to the optimal one, they are costly, meaning that if the algorithm can obtain a good approximation of the minimum cumulative cost c * early, it can avoid evaluating most of the tree, reducing the number of evaluations required. The following two techniques can achieve this.
[0171] 1. The MPC algorithm first evaluates paths with a high probability of low cost. For each time step of the control sequence 50 following the first one, the step of sequentially selecting paths includes the step of first selecting a path that starts at the overlapping part of the optimal path determined in the previous time step of the control sequence 50. Since the overlapping part was part of the previous optimal path, a path that includes it at the current time step is likely to provide a good approximation of a new optimal path because most of the path remains the same. This results in only N b evaluations being performed for the last entry of the new path. This is not useful for the first time step, but it results in a very large (about 20 times) speedup for subsequent time steps.
[0172] 2. The MPC algorithm uses branch mapping such that, in the early stages of exploration, the step of sequentially selecting paths includes the step of selecting paths corresponding to various values of the output voltage of the cascade connection. Thus, the entire range of possible system behaviors is explored early, and a sub-optimal cost is identified. That is, in contrast to high-cost system behaviors being fully explored before the exploration of other possible system behaviors, behaviors leading to low-cost paths are explored relatively quickly. This enables the discovery of a reasonable approximation and its use for pruning the search space. For example, in a TMS system, the mapping of b to the underlying switching matrix U is selected such that the initial members of b correspond to various converter output voltages. For example, v c (b) = v cm [0 1 -1 2 -2 3 -3 …] Applying this method shortens the execution time by about 30% (assuming the first method is also implemented).
[0173] Next, a method for adjusting the target profile 310 executed in step S2 will be described in detail.
[0174] Combining two methods for reducing the computational complexity as described above yields excellent results for a smoothly varying target profile 310. However, the target profile 310 supplied by the user may include a large rate of change (e.g., a step change) that significantly slows down the MPC algorithm, since the target profile 310 requires a very large number of path evaluations near the step. This is because the cumulative cost only exceeds the global minimum cost after approaching the end of the tree. Thus, if the cost increases very rapidly near the end of the window (due to the next step change), the MPC algorithm cannot effectively "prune" the tree, even though many parts of the shallow part of the tree have low cost. The rapid increase in cost near the end of the window causes the cumulative cost c * to increase, so the algorithm has to explore deeply before discarding a path and its corresponding sub-paths. That is, most of the tree will be explored, and the pruning technique has only a limited impact on the required computational complexity. This problem is illustrated in FIG. 11 showing the cost for tree levels, which particularly shows an example where most of the cost is in the deep part of the tree because a large step change in cost occurs in the deep part of the tree.
[0175] The solution to this problem is to adjust the target profile 310 so as to limit the magnitude of the rate of change of the target profile 310 before determining the path of the switching state for each time step, whereby much of the change and the associated cost increase occur early in the search tree. That is, the effect of a large rate of change is reduced, and the search space can be pruned more effectively.
[0176] For example, in the case of a TMS system, the user supplies the target profile 310 in the form of a reference sequence i of coil current that may have a large step change ref . The method of adjusting the target profile 310 is such that for the current change Δi at each time step max1 , with respect to the length of the time step T s and the initial equivalent capacitor voltage v C [0], the coil inductance L and the filter inductance L fincluding a step of applying a predetermined limit equal to the product of the quotient divided by the sum of and a predetermined ratio of the product. Therefore, in the sampled domain, the first rate limit criterion i ref1 is generated by applying the "theoretical maximum" change in current per one step as follows.
[0177]
Number
[0178] This ignores the dynamics of the filter circuit 20. Here, C is an "equivalent capacitor" that emulates all the capacitive discharge elements 15 of the switching module 10 of the series switching circuit.
[0179]
Number
[0180] However, the problem with the first rate limit criterion is that as the capacitive discharge element 15 discharges, the equivalent capacitor voltage v C [y] decreases. That is, the achievable maximum rate of change of the coil current decreases over time. If this is not taken into account, the "theoretical maximum value" becomes non-representative as the number of time steps increases.
[0181] Under the assumption that the MPC algorithm maintains a good capacitor voltage balance, the equivalent capacitor voltage at each time step can be predicted from the target profile 310 using a model of the transfer of the energy stored in the equivalent capacitance to the pulse coil 40.
[0182]
Number
[0183]
Number
[0184] The capacitor energy and voltage decrease as follows.
[0185]
Number
[0186] Therefore, a method for further adjusting the target profile 310 includes applying a predetermined limit equal to the product of the quotient of the current change Δi at each time step and the length of the time step T, divided by the sum of the coil inductance L and the filter inductance L, and a predetermined ratio of that product, with respect to the predicted equivalent capacitor voltage v[y] at each time step. max2 with respect to the time step T s and the predicted equivalent capacitor voltage v c [y] at each time step, divided by the sum of the coil inductance L and the filter inductance L f and a predetermined ratio of that product.
[0187]
Number
[0188] Apply this to the first rate limit criterion i ref1 to generate a second rate limit criterion r. This is what is used as the target profile 310 in the MPC algorithm.
[0189] This second rate limit algorithm can be run again (multiple times) by replacing i ref1 with r to iteratively account for changes to the criterion. However, in practice, only a single pass may be sufficient.
[0190] Combining the first and second rate limit steps helps reduce the computational effort by avoiding a deep search into the window. The rate limit process never reduces the output capacity of the system because the limits applied are above the maximum rate that the physical circuit can achieve. The overall is shown in Figure 12 and will be described next.
[0191] The entire algorithm is shown in Figure 12 and will be described next. This is a combination of all three steps (S1, S2, S3) shown in and described above with reference to Figure 3.
[0192] The algorithm starts by receiving input from the user in the form of the discretized target profile 310 (coil current reference of the TMS system), the initial capacitor voltage of the switching module 10, and all circuit parameters (e.g., various inductances, capacitances, resistance values, initial voltages and currents, blanking intervals, etc.) and MPC parameters (e.g., window length, cost weighting, etc.) at step 1205, and uses this to calculate and store all A n,T matrices at step 1210.
[0193] Next, at steps 1215 and 1220, two rate-limiting paths are applied to the target profile 310 to obtain the reference r, and then its end is padded with N h zeros.
[0194] At step 1230, the initial branch is taken as the zero output voltage branch b corresponding to u = 0, and the initial cumulative cost c z is taken as infinite. When the circuit state and the switching counter are initialized to zero, the algorithm enters an iterative loop, and at each time step, at step 1235, the mpc() function finds the minimum cost path along the MPC window, and at step 1240, the step() function advances the circuit state by one time step using the first branch of the first cost path. * Therefore, for each time step of the control sequence 50 following the first one, step 1250 of sequentially selecting a path is the optimal path p determined at the previous time step of the control sequence 50.
[0195] * *Including the step of first selecting a path starting with the overlapping part. After evaluating each loop for each discrete time step (sample) of the target profile 310, the algorithm is terminated at step 1245, and a sequence of switching states including the minimum cost branch for each time step is returned at step 1260.
Claims
1. A method for deriving an optimal control sequence for a pulse system, the pulse system comprising a reactance circuit including a pulse coil for generating an electromagnetic pulse, and a switching circuit including a plurality of switches arranged to switchably connect at least one capacitive discharge element to supply an output voltage as an input to the reactance circuit, the control sequence being a sequence of switching states of the switches over time steps, the method being executed offline before operation of the pulse system under the control of the derived optimal control sequence, and using a discrete-time model of the pulse system configured to predict the electrical state of the pulse system, wherein: receiving a target profile of the electromagnetic pulse emitted by the pulse coil; for each time step of the control sequence taken in succession; determining an optimal path of switching states in a time step window starting at each time step, the optimal path of switching states optimizing a cost function having a deviation cost contribution representing a deviation from the target profile of the electrical state of the pulse system predicted by the discrete-time model in the time step window; selecting, as the switching state of the control sequence for each time step, the switching state of the determined path at each time step; A method comprising.
2. The method according to claim 1, wherein the step of determining the optimal path of switching states comprises: performing a search for possible paths of switching states in the window by sequentially selecting paths; for the first selected path, accumulating the total value of the cost function over the entire path; for a subsequently selected path, accumulating the values of the cost function over successive time steps of the path; at each time step before the final time step, comparing the accumulated value of the cost function with the minimum total value of the cost function accumulated over the entire path in the search previously; ending the accumulation if the accumulated value has reached the minimum value, and continuing the accumulation otherwise; at the end of the search, determining that the path having the minimum total value of the cost function accumulated over the entire path is the optimal path. A method comprising... **Claim 3** In the method according to claim 2, for each time step of the control sequence following the first one, the step of sequentially selecting the paths includes the step of first selecting a path starting from an overlapping part of the optimal path determined for the previous time step of the control sequence. **Claim 4** In the method according to claim 2 or 3, in an early stage of the search, the step of sequentially selecting the paths includes the step of selecting paths corresponding to various values of the output voltage. **Claim 5** In the method according to any one of claims 1 to 4, the cost function further has at least one additional cost contribution representing a penalty for undesirable operating characteristics of the switching circuit. **Claim 6** In the method according to claim 5, the at least one additional cost contribution includes a voltage cost contribution that depends on the voltage of the at least one capacitive discharge element. **Claim 7** In the method according to claim 6, the voltage cost contribution represents a penalty for the difference between the voltages of the capacitive discharge elements. **Claim 8** In the method according to claim 6 or 7, the voltage cost contribution takes a prohibited value when the voltage of the capacitive discharge element exceeds an overcharge threshold. **Claim 9** In the method according to any one of claims 1 to 8, the at least one additional cost contribution includes at least one switching state cost contribution that depends on the switching state of the switch. **Claim 10** In the method according to claim 9, the at least one switching state cost contribution includes at least one switching operation cost contribution representing a penalty for an undesirable switching operation. **Claim 11** In the method according to claim 10, the at least one switching operation cost contribution is a switching operation cost contribution representing a penalty for the switching state of connecting the at least one capacitive discharge element to supply the output voltage, a switching operation cost contribution representing a penalty for the simultaneous change of the switching states of a plurality of switches, and / or a switching operation cost contribution representing a penalty for the change of the output voltage at each time step and includes one or more of them. **Claim 12** The method according to any one of claims 9 to 11, wherein the at least one switching operation cost contribution includes an equalization cost contribution representing a penalty for unequal switching counts of different switches.
13. The method according to any one of claims 1 to 12, wherein the discrete-time model of the pulse system is a transformation of the continuous-time model of the pulse system.
14. The method according to any one of claims 1 to 13, wherein the discrete-time model is a discrete-time state space model.
15. The method according to any one of claims 1 to 14, wherein the control sequence is a sequence of switching states of the switch over time steps with a blanking interval inserted between switchings of the switch, and the discrete-time model of the pulse system is a method of modeling the insertion of the blanking interval.
16. The method according to any one of claims 1 to 15, comprising the step of adjusting the target profile so as to limit the magnitude of the rate of change of the target profile before determining the path of the switching state for each time step.
17. The method according to any one of claims 1 to 15, wherein the target profile is a target profile of the current flowing through the pulse coil, and the electrical state of the pulse system predicted by the discrete-time model includes the current flowing through the pulse coil.
18. The method according to claim 17, comprising the step of adjusting the target profile so as to limit the magnitude of the rate of change of the current of the target profile before determining the path of the switching state for each time step.
19. The method according to claim 18, wherein the method of adjusting the target profile includes applying a predetermined limit equal to the product of the length of the time step and the quotient of the initial output voltage divided by the inductance of the reactance circuit or a predetermined ratio of the product for the current change at each time step.
20. The method according to claim 18 or 19, wherein the step of adjusting the target profile includes predicting the output voltage for each time step from the target profile using a model of the transfer of the energy stored in the at least one capacitive discharge element to the reactance circuit, Applying a predetermined limit equal to the product of the length of the time step and the quotient of the predicted output voltage of each time step divided by the inductance of the reactance circuit, or a predetermined ratio of the product, to the current change of each time step A method comprising. **Claim 21** The method according to any one of claims 1 to 20, wherein the electrical state of the pulse system predicted by the discrete-time model includes variable electrical parameters of the reactance circuit. **Claim 22** The method according to any one of claims 1 to 21, wherein the electrical state of the pulse system predicted by the discrete-time model includes the voltage of the at least one capacitive discharge element. **Claim 23** The method according to any one of claims 1 to 22, wherein the reactance circuit further includes a filter circuit arranged to filter the input to the reactance circuit before application to the pulse coil. **Claim 24** The method according to any one of claims 1 to 23, wherein the at least one capacitive discharge element includes a plurality of capacitive discharge elements, and the output voltage is a multi-level output voltage. **Claim 25** The method according to claim 24, wherein the switching circuit includes a plurality of switching modules, each switching module includes a capacitive discharge element and a switch arranged to connect the capacitive discharge element between both ends of the module output, and the switching module outputs are cascade-connected to supply the multi-level output voltage. **Claim 26** The method according to claim 25, wherein the switches of each switching module are arranged in a bridge configuration. **Claim 27** The method according to claim 25 or 26, wherein the switching module has a switching state including a forward switching state in which the capacitive discharge element is connected in the forward direction between both ends of the module output, a reverse switching state in which the capacitive discharge element is connected in the reverse direction between both ends of the module output, and at least one bypass switching state in which the capacitive discharge element is not connected between both ends of the module output. **Claim 28** The method according to any one of claims 1 to 27, wherein the reactance circuit is a transcranial magnetic stimulation circuit and the electromagnetic pulse is a transcranial magnetic stimulation pulse. **Claim 29** A method of operating a pulse system comprising a reactance circuit including a pulse coil for generating an electromagnetic pulse and a switching circuit including a plurality of switches arranged to switchably connect at least one capacitive discharge element to supply an output voltage as an input to the reactance circuit, comprising: Deriving an optimal control sequence of the pulse system, which is a sequence of switching states of the switches over steps, according to the method of any one of claims 1 to 28; Operating the pulse system under the control of the derived optimal control sequence A method comprising.
30. A computer program executable by a computer device and configured to cause the computer device to perform the method of any one of claims 1 to 28 when executed.
31. A computer-readable storage medium storing the computer program according to claim 30.
32. A computer device configured to perform the method of any one of claims 1 to 28.