WO2016202623A1 - Fpga-based model predictive control - Google Patents
Fpga-based model predictive control Download PDFInfo
- Publication number
- WO2016202623A1 WO2016202623A1 PCT/EP2016/062807 EP2016062807W WO2016202623A1 WO 2016202623 A1 WO2016202623 A1 WO 2016202623A1 EP 2016062807 W EP2016062807 W EP 2016062807W WO 2016202623 A1 WO2016202623 A1 WO 2016202623A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- switch position
- block
- next switch
- possible next
- explorer
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M7/00—Conversion of ac power input into dc power output; Conversion of dc power input into ac power output
- H02M7/42—Conversion of dc power input into ac power output without possibility of reversal
- H02M7/44—Conversion of dc power input into ac power output without possibility of reversal by static converters
- H02M7/48—Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode
- H02M7/483—Converters with outputs that each can have more than two voltages levels
- H02M7/487—Neutral point clamped inverters
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
- G05B13/048—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M7/00—Conversion of ac power input into dc power output; Conversion of dc power input into ac power output
- H02M7/42—Conversion of dc power input into ac power output without possibility of reversal
- H02M7/44—Conversion of dc power input into ac power output without possibility of reversal by static converters
- H02M7/48—Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode
- H02M7/483—Converters with outputs that each can have more than two voltages levels
- H02M7/4837—Flying capacitor converters
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/42—Servomotor, servo controller kind till VSS
- G05B2219/42058—General predictive controller GPC
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M1/00—Details of apparatus for conversion
- H02M1/0095—Hybrid converter topologies, e.g. NPC mixed with flying capacitor, thyristor converter mixed with MMC or charge pump mixed with buck
Definitions
- the invention relates to the field of model predictive control or electrical converters.
- the invention relates to an FPGAfor controlling an electrical converter and to an electrical converter comprising a controller with such an FPGA.
- Electrical converters for converting an input voltage into an output voltage of different frequency and/or different voltage magnitude comprise controllable semiconductors which are switched by a control method to achieve the desired output voltage.
- One such control method is model predictive control, in which the switch position of the switches is determined by solving an optimization problem that is based on a physical model of the converter and optionally a connected load.
- the model is usually stated in discrete-time differential equations.
- such type of control method is usually computational demanding and the control hardware has to be fast to solve the specific model predictive control problem within the short time available before the next switch position is needed.
- WO 2009/080 407 A1 proposes a method for operating an electrical machine, in which a model predictive control method is performed by an FPGA (field programmable gate array) interconnected with a DSP (digital signal processor) to reduce the computation time of the method.
- FPGA field programmable gate array
- DSP digital signal processor
- WO 2013/1 10 532 A1 relates to a model predictive control method for an electrical converter, which is parallelized and executed in a multi-core processor to avoid an FPGA-based solution.
- WO 2014/006200 A1 discloses a FPGA for controlling an electrical converter.
- An aspect of the invention relates to an FPGA for controlling an electrical converter.
- the FPGA may be a component of a controller of the electrical converter, which receives measured or estimated system variables such as input currents and/or output currents and/or voltages and/or fluxes and/or speeds and/or frequencies, and which determines switch positions for semiconductor switches of the electrical converter with the aid of a model predictive control method.
- the FPGA comprises an enumeration block, a plurality of explorer blocks and an arbiter block.
- enumeration block a plurality of explorer blocks
- arbiter block an arbiter block
- the enumeration block is adapted for generating possible next switch positions for semiconductor switches of the electrical converter based on an actual applied switch position.
- a switch position of the electrical converter may comprise all of the individual switch positions (such as on/off) of the semiconductor switches.
- the actual applied switch position may be the actual switching state of the semiconductor switches and, for example, may be provided by the FPGA during the previous control cycle at the previous time step.
- the explorer blocks are used for calculating a cost value for each of the possible next switch positions based on model predictive control. This calculation may be performed in parallel in different explorer blocks for different possible next switch positions.
- Each explorer block is adapted for calculating a cost value for a possible next switch position of the semiconductor switches by: receiving a possible next switch position from the arbiter block; calculating system variables at future time instants from system variables at the current time instant of the electrical converter based on the possible next switch position, wherein the system variables at future time instants are calculated from the system variables at the current time instant with differential equations modelling the electrical converter and the load; and determining a cost value from the system variables at future time instants by evaluating a cost function with the system variables at future time instants.
- the system variables may be interpreted as the state of the electrical converter and the load, and, for example, may comprise input currents and/or voltages, output currents and/or voltages, physical properties of a load connected to the electrical converter, such as currents, voltages, fluxes, torque, speed, frequency, etc.
- the explorer block calculates the future behavior of the system variables (i.e. the system variables at future time instants) by the use of discrete-time differential equations. These equations model the electrical converter and optionally a load supplied by the electrical converter.
- the evolution of the system variables at future time instants may be determined for a maximal prediction horizon of a predefined length.
- a cost value is determined from the system variables at future time instants with a cost function, which, for example, encodes switching losses of the electrical converter and/or a switching frequency and/or penalizes a deviation of a capacitor voltage from a desired voltage and/or penalizes a deviation of a load current from a reference current, etc.
- a cost function which, for example, encodes switching losses of the electrical converter and/or a switching frequency and/or penalizes a deviation of a capacitor voltage from a desired voltage and/or penalizes a deviation of a load current from a reference current, etc.
- the arbiter block is used for distributing the possible next switch position determined by the enumeration block to the explorer blocks and for finding the possible next switch position with the best (usually lowest) cost value. This possible next switch position is then applied to the semiconductor switches of the electrical converter.
- the arbiter block is adapted for selecting the next switch position to be applied to the electrical converter from the possible next switch position by: receiving possible next switch position from the enumeration block; selecting a non-operating explorer block and sending a received possible next switch position to the non-operating explorer block; receiving a cost value for the respective possible next switch position from a finished explorer block (which then becomes a non-operating explorer block); when all possible next switch positions received from the enumeration block have been processed, selecting the next switch position as the possible next switch position with the best (for example lowest) cost value.
- the enumeration block determines all possible next switch positions, which are then sent to the arbiter block. Whenever the arbiter block receives a new possible next switch position (that may need to be valid), it looks for a non-operating explorer block, sends this possible next switch position to this explorer block, which then calculates the respective cost value. Meanwhile, the arbiter block may receive further possible next switch positions and may distribute them to further non-operating explorer blocks. Thus, the enumeration block, the arbiter block and the explorer blocks may operate in parallel.
- an enumeration block When an enumeration block is ready, it sends the cost value to the arbiter block, which then may save it together with the corresponding possible next switch position as a potential next switch position, when the cost value is better than a previously saved cost value.
- each explorer block is further adapted for determining a time interval (such as a number of time steps or sampling intervals) for the possible next switch position at which at least one of the calculated system variables at future time instants has a deviation from a reference for the system variable, which is bigger than a predefined deviation for the system variable.
- This time interval may be interpreted as a prediction horizon of a possible next switch position.
- the explorer block may calculate the deviation of the system variable at future time instants (which may be predicted up to a maximal prediction horizon) from the reference.
- its prediction horizon is set to the future time instant after which it leaves the bounds.
- This may be imagined as a trajectory of the system variable at the future time instants leaving a band enclosing the reference, with this band having a width that is based on the predefined deviation.
- the prediction horizon of the possible next switch position may be the minimal prediction horizon of all system variables at future time instants.
- the cost function depends on the inverse of the prediction horizon of the possible next switch position.
- the cost function may be weighted with the number of switching transitions. In such a way, the cost value for a possible next switch position with a long horizon is usually better than the cost value of one with a short horizon.
- the FPGA will select switch positions for which it is likely that there are no switching transitions for the next time steps/sampling intervals.
- a prediction horizon for a future system variable is determined via a linear extrapolation, in which the future system variable at a future time instant (for example the maximal prediction horizon) is calculated from the system variable at the current time instant.
- the prediction horizon is determined based on an intersection point of the linearly extrapolated system variable between the current time instant and the future time instant with a maximal possible deviation from a reference of the system variable.
- the intersection point is determined iteratively by a binary search method.
- the intersection point may be found by dividing a search interval into two new search intervals and by proceeding with the interval containing the intersection point. This interval may be determined by comparing the value of the future system variable, which may be determined by interpolation with a boundary value.
- a binary search the computational costs of a division may be avoided.
- the cost function is only evaluated, when the prediction horizon is longer than one time step (or sampling interval).
- the cost value is determined based on a predicted violation of the bounds, which is the difference between the predicted system variable and the violated bound.
- the arbiter block chooses the possible next switch position with the lowest violations of the bounds. This may be achieved by calculating a cost value based on the degree of the violation of a system variable at the next time step of its bound for possible next switch positions. This cost value should be rather high compared to cost values determined from the cost function.
- the cost function is only evaluated, when the prediction horizon is longer than a given number of time steps.
- the cost function is based on a number of switching transitions between the actual applied switch position and the possible next switch position.
- the FPGA selects switch positions with a low number of switching transitions, which also results in lower switching losses.
- the cost function is based on the switching losses that are predicted to occur when switching from the actual applied switch position to the possible next switch position.
- the switching losses often depend on the switching transition, the commutated phase current and the DC link voltage. Assuming that the DC link voltage is effectively constant, the switching losses can be predicted based on the commutated phase current and the switching transition.
- This information can be stored in a look-up table. In such a way, the FPGA selects switch positions that result in lower switching losses.
- the enumeration block comprises a look-up table providing a possible next switch position based on the actual applied switch position. It may be possible that the set of possible next switch positions is dependent on the actual applied switch position. The look-up table may provide these sets indexed by an actual applied switch position.
- the electrical converter has more than one phase, there may be one lookup table that may be used for each phase of the electrical converter.
- the enumeration block is adapted for determining, whether a possible next switch position is valid with respect to actual applied switch position and/or constraints on the system variables at the current time instant. For example, there may be constraints on the possible next switch positions based on a sign of an actual current.
- the enumeration block may determine, whether a possible next switch position is valid and may provide this information to the arbiter block. The arbiter block then only sends valid possible next switch positions to an explorer block.
- the arbiter block is adapted for: sending the actual applied switch position to an explorer block for determining, whether the actual applied switch position has a prediction horizon longer than one time step; and selecting the actual applied switch position as the next switch position, when the prediction horizon is longer than the next time instant.
- the arbiter then sends the possible next switch position to the explorer block, only when the prediction horizon of the actual applied switch position is shorter than the next time step.
- the arbiter may check, whether it is possible to keep the actual applied switch position. This may be the case, when the prediction horizon of the actual applied switch position is longer than one time step/sampling interval. In this situation it is not necessary to switch at all, resulting in no switching losses, which is desirable.
- the FPGA further comprises a pre-computation block adapted for calculating commonly used values and predictions from the system variables at the current time instant, wherein the commonly used values and predictions are used by the explorer blocks during the calculation of the system variables at future time instants.
- these variables may comprise currents and/or voltages in the abc coordinate system, predicted reference currents and/or voltages, predicted rotor flux variables, and/or error currents with respect to a reference current.
- the number of explorer blocks is smaller than a maximal number of possible next switch positions.
- the arbiter block may have to wait for explorer blocks to finish before a further switch position can be evaluated by the enumeration block.
- the number of explorer blocks may be selected based on the time an explorer block requires to evaluate a possible next switch position, and the maximal number of possible next switch positions to be evaluated during one cycle of the controller. In such a way, the capacity of the available logic blocks of the FPGA may be used in an optimal way.
- a next switch position by predicting the number of time steps a next switch position can be applied before one of the system variables violates a bound, by predicting the cost value associated with this next switch position and choosing the next switch position with the best (i.e. usually lowest) cost value, a sequence of future switch positions is established from the current time step until the time step at which the first system variable violates a bound. Out of this sequence of future switch positions, only the first element, i.e. the switch position at the current time step, is applied to the converter, in order to apply closed-loop feedback. At the next time-step, new measurements and/or estimates are obtained and the optimization problem described above is solved again, albeit it over a shifted horizon.
- This policy is referred to as receding horizon control and is a distinguishing feature of model predictive control.
- model predictive control combines (open-loop) constrained optimal control with the receding horizon policy that provides feedback and closes the control loop.
- a further aspect of the invention relates to an electrical converter system, which comprises an electrical converter comprising a plurality of semiconductor switches for converting a DC or AC input voltage into a DC or AC output voltage of a different frequency, and a controller with an FPGA applying the next switch position determined by the FPGA to the semiconductor switches based on measurements and/or estimates of voltages and/or currents in the electrical converter provided to the FPGA.
- This FPGA may be designed as described above and in the following.
- the semiconductor switches may be IGBTs or thyristors, which are switched on and off by gate signals from the controller based on the next switch position.
- the converter may be a DC-DC, AC-DC, DC-AC or AC-AC converter. It may comprise one or more phases and/or may have two or more output levels. It may be a direct converter or an indirect converter with a DC link.
- the electrical converter may be an active neutral point clamped voltage source inverter with five output levels.
- the load may be an electrical machine, such as a three-phase induction machine or a three- phase synchronous machine.
- the load may be a grid or a point of common coupling or a transformer connected to such a point of common coupling.
- Fig. 1 schematically shows a converter system according to an embodiment of the invention.
- Fig. 2 schematically shows an FPGA according to an embodiment of the invention.
- Fig. 3 schematically shows a component of the FPGA of Fig. 2.
- Fig. 4 schematically shows a further component of the FPGA of Fig. 2.
- Fig. 5 schematically shows a further component of the FPGA of Fig. 2.
- Fig. 6 schematically shows a further component of the FPGA of Fig. 2.
- Fig. 7 shows a diagram illustrating a binary search performed in the FPGA of Fig. 2.
- Fig. 1 shows an electrical converter system 10 comprising an electrical converter 12 with three phase legs 14.
- Each of the phase legs 14 comprises a five-level active neutral point clamped inverter 16, which is adapted to convert the DC voltage of a DC link 18 into a phase voltage of a three-phase system with the current i s ,abc.
- the inverter comprises eight semiconductor switches (here transistors with anti-parallel diodes) S1 to S8, which may be either opened “0" or closed “1 ".
- the semiconductor switches S1 to S8 may encompass multiple series-connected semiconductor switches.
- the converter system 10 furthermore comprises a controller 20 with an FPGA 22, which will be described below, and a load 24, such as an electrical machine.
- the model of the converter 12 may be formulated in the orthogonal ⁇ frame or in the three- phase abc frame with the per unit system.
- K is set in such a way that the -axis and the a-axis are ali ned.
- the state of the converter 12 corresponds to its actual applied switch position s a ,s b ,s c e ⁇ 0,1,...,7 ⁇ , its neutral point potential v n and its three phase capacitors voltages
- the continuous-time model is discretized with forward Euler discretization and the sampling interval T S ⁇
- the discrete-time representation is denoted with the variable k e M.
- the discrete-time equation of the phase capacitor voltage dynamic is given by
- Vphxik + 1) v p k) + ⁇ ⁇ (i SiX (k),s x (k)),x e ⁇ a, b, c ⁇ (2)
- ⁇ ⁇ 3 ⁇ 4 and ⁇ 3 ⁇ 4 denote scalar functions with the phase currents and switch positions as arguments at time step k.
- An implementation of the controller 20 may use a sampling interval of 25/JS or 50/JS, for example.
- the electrical machine 24 may be a squirrel-cage induction machine.
- the state-space model of a squirrel-cage induction machine in the ⁇ reference frame is described in the following.
- x m i a p Wra ⁇
- the model inputs are the rotor's angular velocity o r and the inverter switch position s a bc.
- v(s a bc(k)) maps the inverter switch position into the three-phase abc voltage applied to the stator windings of the machine.
- the constants in matrix A are summarized in the following table:
- the T s pco r term is a quadratic correction term to compensate for the error introduced by the forward Euler discretization method. It has been numerically derived by comparing forward Euler with exact Euler discretization. It is a machine-dependent parameter. Forward Euler has been chosen as a discretization method because it provides sufficient accuracy and avoids the computationally expensive exponentiation of the exact Euler approach.
- the selection of the switch position may be stated as a discrete optimization problem.
- the objective is to minimize the switching frequency (and/or the switching power losses) of the converter 12 while constraining its phase capacitor voltages, the neutral point potential and the stator current error with respect to a reference.
- the components of the state vector may be interpreted as system variables.
- system variables may be either measured or determined for the current time instant (system variables at the current time instant) and/or they may be predicted or calculated for future time instants (system variables at future time instants).
- the input vector is defined as the switch position Sahc It is assumed that the rotor and stator speed o r and ( O s respectively vary slowly, allowing one to consider them to beconstant within the prediction horizon.
- the current is directly controlled by explicitly bounding it in the optimization problem statement.
- TDD Total Harmonic Distortion
- V I k,..., k + N
- the last term in the cost function is used to reduce the likelihood of deadlocks. Indeed, when the neutral point potential deviates too much from zero, the risk of deadlocks may increase quickly.
- a deadlock occurs when no switching sequence S(/ ) exists that meets (5e).
- the weight ⁇ ⁇ is used to fine tune the deadlock avoidance.
- the two first constraints (5b), (5c) define the state evolution of the system 10 (the converter and the electrical machine) as explained before.
- the sampled system state x(/ ) and the actual switch position s(/ - 1 ) of the converter 12 are used as a starting point for the predictions.
- the third constraint (5d) builds the output vector from a subset of the system vector and the appropriate transformation.
- the fourth constraint (5e) bounds the output vector y(/) around its reference y * (/).
- the reference y * (/) is time varying for the phase capacitor voltages and the stator current. Hence, they are also an input to the optimization problem.
- y err determines the width of the error bounds around the references.
- S(l) is the set of allowed switch positions at time instant /.
- the optimization problem may become computationally intractable as N increases. This is because at each time step a large number of new switch positions is available that needs to be evaluated by the algorithm.
- Several heuristics may allow one to limit the computational burden without significantly impacting the performance. The following concepts have been implemented in the FPGA 22 to increase its performance and to reduce the computational burden:
- a switching transition should be triggered only when at least one of the output variables exceeds its bound or is predicted to exceed its bound within the sampling interval. That is, at time-step k, if the output vector is predicted to remain within its bounds
- ⁇ y err when applying the previously applied switch position again, then maintain the previous switch position and set s(/ ) s(/ -1 ). Thus it is possible to minimize the switching frequency (and thus the switching losses) by delaying switching as much as possible.
- a switching sequence may be interpreted as a succession of switching decisions at discrete time- steps.
- the switching horizon is a string composed of "E" (extension) steps and “S” (switching) steps.
- the extension step maintains the previous switch position until a bound is violated.
- the trajectory of the system output vector y is predicted by (2), (3) and (4).
- the controller 20 may proceed to a switching step. That is, the controller 20 needs to enumerate all the admissible switching transitions from the no longer feasible switch position to a new candidate switch position.
- An example, which will be explained in more detail below, is the "SE" string.
- the controller 20 first enumerates all valid switch positions s(k) as new switching sequences and then extends each of them until they hit their respective boundaries.
- Commonly used switching horizons include SE, SSE, SESE, SSESE and so on.
- SSESE for example, implies that switching is considered at time steps k and k+ * ⁇ , followed by an extension step, another switching transition and a second extension step.
- One approach is to predict the system evolution by incrementally evaluating the system model at each time step. The advantage of doing so is the high accuracy of the procedure. However, it is computationally expensive to evaluate it when the prediction horizons are long.
- An alternative is, for a given switch position, to evaluate the system model at several points in time, such as k, k + I, k + 21, where / is a positive integer, and to then approximate the underlying function by quadratic or linear interpolation. This method requires far less computations and is sufficiently accurate for the prediction horizons typically observed.
- Fig. 2 shows an overview of the blocks of the FPGA 22.
- the "SE" prediction horizon is implemented in the FPGA 22.
- the FPGA 22 must first enumerate all possible next switch positions at time step / and then extend each of them.
- the architecture of the FPGA 22 is based on dynamic scheduling.
- the FPGA 22 comprises a central scheduler block 26 that samples the system state x(/ ) into registers and also enumerates and distributes possible next switch positions s new to a number of n explorer blocks 28.
- the scheduler block comprises a pre-computation block 30, which pre-computes values that, for example, are needed in the explorer blocks 28, an enumeration block 32, which generates the possible next switch positions s new and an arbiter block 34, which distributes the possible next switch positions s new to the explorer blocks 28.
- the system state x(/ ) together with a switching sequence may be defined as a node in the solution space to be explored.
- the explorer blocks 28 evaluate these nodes, by assessing their prediction horizon N through an extension step performed by an extension block 36 and then evaluate their cost value J in a cost evaluation block 38.
- the exploration Once the exploration has completed its computations for a node, it is returned to the scheduler 26, in particular to the arbiter block 34. Only the switch position of the node with the lowest cost value J * is maintained by the arbiter block 34. At the end of the enumeration and evaluation process, the scheduler returns the best switch position s(/ ) to the external system.
- Arbiter 34 2 1 64 -34/n
- the total hardware cost of the FPGA 22 depends on the number n of explorer blocks 28 instantiated.
- the worst case execution time in FPGA cycles is linearly dependent on the number of explorer blocks 28: 13+34+64 ⁇ 34/n cycles.
- the FPGA 22 will first pre-compute the model, operate the lazy evaluation and then evaluate all the possible nodes through the n explorer blocks 28.
- the explorer blocks 28 are expensive in terms of area usage. This is mainly due to the complexity involved in the extension step as explained below.
- Scheduler block model pre-computation
- Fig. 3 shows the pre-computation block 30.
- the FPGA 22 can spare execution time by pre- computing some elements in common to all explorer blocks 28 with the pre-computation block 30.
- the discrete state-space model of formulas (5b) and (5c) is divided into two parts. The part in common for all explorer blocks 28 is computed in the pre-computation block 30. The part of the model specific to each node is evaluated by the explorer blocks 28 themselves.
- the input to the pre-computation block 30 is the system state x(/ ), the stator and rotor rotational speeds co s ⁇ k), co r ⁇ k) and the current reference i s a p ⁇ k) at time instant k.
- the following equations describe how the output variables of the pre-computation block 30 are computed.
- the stator current reference i s a p is rotated forward with the stator frequency co s .
- h is the identity matrix of size two.
- the s abc ⁇ + ⁇ ) part of the current error is common to the explorer blocks 28.
- the second part of the equation relates to the possible next switch position s(k) specific to the node. Hence this part is computed in the explorer blocks 28.
- the first part of the equation is computed in block 30. It may be called open-loop current error at time step k+l. It is computed in ⁇ and then transformed into abc coordinates: (g)
- the second equation to be pre-computed is the stator current error at time step k:
- the third and last variable to be pre-computed is the stator current at time step k in abc coordinates:
- the second way to leverage centralization is achieved by the scheduler 26, which manages enumeration and distribution of possible next switch positions s new . This is done with the help of the two blocks 32, 34 operating in parallel.
- the enumeration block 32 enumerates and filters the allowed switch positions s new .
- the enumeration block 32 takes as input the actual applied switch position s(/ -1 ) of the converter 12. With this information, it is possible to enumerate all the admissible next switch positions S x (k) for each phase leg 14 separately. Thus, each phase leg 14 has a set of possible next switch positions S x (k) z ⁇ 0,1,...7 ⁇ , ⁇ G ⁇ i,b,c ⁇ . These sets are stored in look-up tables 40 and selected depending on s x (/ -1 ). By construction of the converter 12, none of the sets has more than four elements. The elements in the sets of each phases are then combined in combination block
- a constraint detector block 44 which may be implemented as a combinatorial circuit, detects any invalid transition given the previous information.
- the constraint detector block 44 outputs a corresponding binary value "valid".
- the enumeration block 32 is managed by a finite state machine, which increments the counter controlling an enumeration multiplexer until a valid possible next switch position s new is detected by the constraint detector block 44.
- the finite state machine starts searching when the "next" signal is asserted.
- Fig. 5 shows the relationship between the enumeration block 32 and the arbiter block 34.
- the arbiter block 34 arbitrates the exploration of the enumerated switch positions s new .
- the arbiter block 34 sequentially distributes the enumerated switch positions s new to the explorer blocks 28, gathers their results and maintains the best switch position s(k) according to its cost J * .
- the arbiter block comprises two finite state machines 46, 48 running in parallel.
- the first finite state machine 46 operates in two stages. In a first stage, the finite state machine 46 makes a "lazy evaluation" by sending s(/ -1 ) to an explorer block 28 as a possible next switch position s new (k) to be extended. If the prediction horizon N of this possible next switch position is greater or equal to one sampling interval, the arbiter block 34 stops and returns s(/ -1 ) as the next switch position s(k) for the new time instant. Otherwise, the second stage of the finite state machine 46 starts.
- Explorer block Fig. 6 shows one explorer block 28.
- An explorer block 28 can be considered as a computation unit.
- the explorer block 28 is composed of the two blocks
- the extension block 36 first computes the prediction horizon N. Then, the cost evaluation block 38 applies the cost function J on the explored node. To optimize hardware usage, the two blocks 36, 38 may share 4 common multipliers.
- the extension block 36 goes through several steps. It first evaluates the system state evolution at time step k + 1 by computing the stator current error (8) and the inverter voltages (2) and (3). After this step, the explorer knows the system output y at time steps k and k + I. Thus, it can now build a linear approximation of the system evolution:
- Fig. 7 shows the linear approximation of one variable as dashed line. Now that the model is fully available, the extension step can evaluate the time step N when one of the 7 components first hits its boundary:
- the output vector y is composed of the current error ⁇ s abc and the inverter voltages v n , v phflbc .
- the variables s abc and ⁇ ⁇ are bounded by constant values, while the capacitor voltages v pn ,abc might have time-varying boundaries that depend on ⁇ ⁇ .
- v P h and _ ph are parameters that are provided as input. The upper or lower bounds are enforced depending on the signs of the individual component slopes cy.
- the output vector y is composed of 7 components with each one having their own linear model to be evaluated.
- One possibility is to use (14) for evaluating the prediction horizon M of each component.
- an integer divider may be rather expensive in terms of area and computation delay.
- Another possibility is to use a binary search method, which exploits the shared multipliers and requires only two more adders.
- the binary search which is described with respect to Fig. 7, first evaluates the linear function at Nmax, which may be a predefined prediction horizon. If the result is within the bound yi,bnd, N max is returned as the prediction horizon ⁇ /,. Otherwise the search starts within the interval between the actual time instant k and k+N max .
- the binary search divides the time interval into two subintervals and continues with the subinterval that comprises the point at which the bound equals the linearly approximated output variable.
- the time interval is less than N m m, the computation is aborted and the prediction horizon ⁇ /, for the variable indexed with / ' is set to 0, wherein N m m is a minimal horizon length as explained below.
- the binary search has the advantage that it relies only on one multiplier and two adders to compute (14) because it evaluates the linear model (12) at different points in time instead of using a division.
- the binary search reduces the size of its search interval by two at each iteration. In theory, the worst case of the number of iterations required is 0 ⁇ log2(N max )).
- the binary search may furthermore use upper and lower bounds to reduce the computation time.
- an upper bound N max on the interval to be explored can be imposed.
- N max may be set to the current shortest prediction horizon among the components y that have already been evaluated. If the evaluated component y has a horizon of M > N max , then the binary search on y stops since the /th component is not critical (i.e. the violation of its bound is predicted to occur after another component violates its bound). Before any evaluation, N max may be initialized to 32, for example, thus providing real time guarantees even in the worst case.
- the binary search method is used to find ⁇ .
- N t Ni[m] , with ⁇ [1 ] being the least significant bit.
- Let a, b, c, and s be temporary variables to be used in the binary search procedure.
- the m-th bit of s is denoted by s[m], with s[l] being the least significant bit.
- a is used as a candidate solution
- b is used as a lower bound of the solution
- c is used to store the results of a division by 2 (implemented as a right shift)
- s is an upper bound of the solution.
- M log 2 1 iterations, described below.
- the standard solution for the problem (13) would involve a numeric long division to solve (14).
- the division requires X iterative steps, where X is the number of bits of the numerator, and therefore is performed over at least X FPGA clock cycles.
- the proposed method presents the advantage that fewer clock cycles are necessary to obtain the result.
- the proposed algorithm takes at most log 2 1 iterations to execute. Since log 2 1 ⁇ X, fewer iterations are required in the proposed method.
- the algorithm features an early detection of when a solution for the problem does not exist in the cases that the upper bound of the solution s is lesser than N min . Fewer clock cycles means that the solution for the problem (13) is found faster.
- the cost value J may be computed by the cost evaluation block 38 in two different ways.
- the explorer block 28 provides the switch position s(/ ) that was investigated together with its prediction horizon N and the related cost value J. While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive; the invention is not limited to the disclosed embodiments. Other variations to the disclosed embodiments can be understood and effected by those skilled in the art and practising the claimed invention, from a study of the drawings, the disclosure, and the appended claims.
- the word “comprising” does not exclude other elements or steps, and the indefinite article "a” or “an” does not exclude a plurality.
- a single processor or controller or other unit may fulfil the functions of several items recited in the claims.
- the mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. Any reference signs in the claims should not be construed as limiting the scope. LIST OF REFERENCE SYMBOLS
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Inverter Devices (AREA)
Abstract
An FPGA (22) for controlling an electrical converter (12) comprises an enumeration block (32) adapted for generating possible next switch positions (s
new
(k)) for semiconductor switches of the electrical converter (12) based on an actual applied switch position (s(k-1)); a plurality of explorer blocks (28), each explorer block (28) adapted for calculating a cost value (J) for a possible next switch position of the semiconductor switches by: receiving a possible next switch position (s
new
(k)); calculating system variables at future time instants from system variables at a current time instant of the electrical converter (12) and the load (24) based on the possible next switch position, wherein the system variables at future time instants are calculated from the system variables at the current time instant with differential equations modelling the electrical converter (12) and the load (24); determining a cost value (J) from the system variables at future time instants by evaluating a cost function with the system variables at future time instants; an arbiter block (34) for selecting the next switch position (s(k)) to be applied to the electrical converter (12) from the possible next switch positions by: receiving possible next switch positions (s
new
(k)) from the enumeration block (32); selecting a non-operating explorer block (28) and sending a received possible next switch position to the non-operating explorer block; receiving a cost value (J) for the respective possible next switch position from a finished explorer block; when all possible next switch positions received from the enumeration block (32) have been processed, selecting the next switch position (s(k)) as the possible next switch position (s
new
(k)) with the lowest cost value (J). Each explorer block (28) is further adapted for determining a prediction horizon (N) for the possible next switch position (snew(k)) at which at least one of the calculated system variables at future time instants has a deviation from a reference for the system variable, which is bigger than a predefined deviation for the system variable. A prediction horizon (N) for a system variable at future time instants is determined via a linear extrapolation, in which the system variable at the future time instants is calculated from the system variable at the current time instant, and the prediction horizon (N) is determined based on an intersection point of the linearly extrapolated system variable between the current time instant and the future time instant with a maximal possible deviation from a reference of the system variable. Moreover, the intersection point is determined iteratively by a binary search.
Description
FPGA-based model predictive control
FIELD OF THE INVENTION
The invention relates to the field of model predictive control or electrical converters. In particular, the invention relates to an FPGAfor controlling an electrical converter and to an electrical converter comprising a controller with such an FPGA. BACKGROUND OF THE INVENTION
Electrical converters for converting an input voltage into an output voltage of different frequency and/or different voltage magnitude comprise controllable semiconductors which are switched by a control method to achieve the desired output voltage.
One such control method is model predictive control, in which the switch position of the switches is determined by solving an optimization problem that is based on a physical model of the converter and optionally a connected load. The model is usually stated in discrete-time differential equations. However, such type of control method is usually computational demanding and the control hardware has to be fast to solve the specific model predictive control problem within the short time available before the next switch position is needed.
For example, instead of performing the control method in software, WO 2009/080 407 A1 proposes a method for operating an electrical machine, in which a model predictive control method is performed by an FPGA (field programmable gate array) interconnected with a DSP (digital signal processor) to reduce the computation time of the method.
WO 2013/1 10 532 A1 relates to a model predictive control method for an electrical converter, which is parallelized and executed in a multi-core processor to avoid an FPGA-based solution. WO 2014/006200 A1 discloses a FPGA for controlling an electrical converter.
In "Model Predictive Direct Torque Control of a variable speed drive with a five-level inverter", Tobias Geyer et al, IECON 2009 - 35TH ANNUAL CONFERENCE OF IEEE INDUSTRIAL ELECTRONICS (IECON 2009) - 3-5 NOV. 2009 - PORTO, PORTUGAL, IEEE, PISCATAWAY, NJ, USA, 3 November 2009 (2009-1 1 -03), pages 1203-1208, X P031 629326, ISBN: 978-1 -4244-4648- 3 the principles of the Model Predictive Direct Torque Control (MPDTC), which reduces the converter's switching losses and improves the torque's Total Harmonic Distortion (THD) with respect to standard Direct Torque Control (DTC) are disclosed, while maintaining DTC's favorable dynamic and robustness properties. The MPDTC is adapted and applied to a five-level convert-er driving a high frequency induction machine.
DESCRIPTION OF THE INVENTION
It is an objective of the invention to provide a controller that is adapted to perform model predictive control for an electric converter in a fast and efficient way.
This objective is achieved by the subject-matter of the independent claims. Further exemplary embodiments are evident from the dependent claims and the following description.
An aspect of the invention relates to an FPGA for controlling an electrical converter. The FPGA may be a component of a controller of the electrical converter, which receives measured or estimated system variables such as input currents and/or output currents and/or voltages and/or fluxes and/or speeds and/or frequencies, and which determines switch positions for semiconductor switches of the electrical converter with the aid of a model predictive control method.
According to an embodiment of the invention, the FPGA comprises an enumeration block, a plurality of explorer blocks and an arbiter block. Usually, such blocks and their configuration may be described with a hardware description language, which then may be applied to the logic blocks of the FPGA to form these blocks in hardware.
The enumeration block is adapted for generating possible next switch positions for semiconductor switches of the electrical converter based on an actual applied switch position. A switch position of the electrical converter may comprise all of the individual switch positions (such as on/off) of the semiconductor switches. The actual applied switch position may be the actual switching state of the semiconductor switches and, for example, may be provided by the FPGA during the previous control cycle at the previous time step.
The explorer blocks are used for calculating a cost value for each of the possible next switch positions based on model predictive control. This calculation may be performed in parallel in different explorer blocks for different possible next switch positions.
Each explorer block is adapted for calculating a cost value for a possible next switch position of the semiconductor switches by: receiving a possible next switch position from the arbiter block; calculating system variables at future time instants from system variables at the current time instant of the electrical converter based on the possible next switch position, wherein the system variables at future time instants are calculated from the system variables at the current time instant with differential equations modelling the electrical converter and the load; and determining a cost value from the system variables at future time instants by evaluating a cost function with the system variables at future time instants.
The system variables may be interpreted as the state of the electrical converter and the load, and, for example, may comprise input currents and/or voltages, output currents and/or voltages, physical properties of a load connected to the electrical converter, such as currents, voltages, fluxes, torque, speed, frequency, etc. From the assumption that the possible next switch position to be evaluated by the explorer block will be applied during the next sampling instant, the explorer
block calculates the future behavior of the system variables (i.e. the system variables at future time instants) by the use of discrete-time differential equations. These equations model the electrical converter and optionally a load supplied by the electrical converter. The evolution of the system variables at future time instants may be determined for a maximal prediction horizon of a predefined length.
In the end, a cost value is determined from the system variables at future time instants with a cost function, which, for example, encodes switching losses of the electrical converter and/or a switching frequency and/or penalizes a deviation of a capacitor voltage from a desired voltage and/or penalizes a deviation of a load current from a reference current, etc.
The arbiter block is used for distributing the possible next switch position determined by the enumeration block to the explorer blocks and for finding the possible next switch position with the best (usually lowest) cost value. This possible next switch position is then applied to the semiconductor switches of the electrical converter.
The arbiter block is adapted for selecting the next switch position to be applied to the electrical converter from the possible next switch position by: receiving possible next switch position from the enumeration block; selecting a non-operating explorer block and sending a received possible next switch position to the non-operating explorer block; receiving a cost value for the respective possible next switch position from a finished explorer block (which then becomes a non-operating explorer block); when all possible next switch positions received from the enumeration block have been processed, selecting the next switch position as the possible next switch position with the best (for example lowest) cost value.
During each cycle of the controller (which is usually performed within a shorter time interval than the sampling interval), the enumeration block determines all possible next switch positions, which are then sent to the arbiter block. Whenever the arbiter block receives a new possible next switch position (that may need to be valid), it looks for a non-operating explorer block, sends this possible next switch position to this explorer block, which then calculates the respective cost value. Meanwhile, the arbiter block may receive further possible next switch positions and may distribute them to further non-operating explorer blocks. Thus, the enumeration block, the arbiter block and the explorer blocks may operate in parallel.
When an enumeration block is ready, it sends the cost value to the arbiter block, which then may save it together with the corresponding possible next switch position as a potential next switch position, when the cost value is better than a previously saved cost value.
According to the invention, each explorer block is further adapted for determining a time interval (such as a number of time steps or sampling intervals) for the possible next switch position at which at least one of the calculated system variables at future time instants has a deviation from a reference for the system variable, which is bigger than a predefined deviation for the system variable. This time interval may be interpreted as a prediction horizon of a possible next switch
position. To make sure that the system variables at future time instants stay within bounds around reference system values, the explorer block may calculate the deviation of the system variable at future time instants (which may be predicted up to a maximal prediction horizon) from the reference. When the future system variable leaves one of its bounds, its prediction horizon is set to the future time instant after which it leaves the bounds.
This may be imagined as a trajectory of the system variable at the future time instants leaving a band enclosing the reference, with this band having a width that is based on the predefined deviation.
The prediction horizon of the possible next switch position may be the minimal prediction horizon of all system variables at future time instants.
According to an embodiment of the invention, the cost function depends on the inverse of the prediction horizon of the possible next switch position. The cost function may be weighted with the number of switching transitions. In such a way, the cost value for a possible next switch position with a long horizon is usually better than the cost value of one with a short horizon. Thus, the FPGA will select switch positions for which it is likely that there are no switching transitions for the next time steps/sampling intervals.
According to the invention, a prediction horizon for a future system variable is determined via a linear extrapolation, in which the future system variable at a future time instant (for example the maximal prediction horizon) is calculated from the system variable at the current time instant. The prediction horizon is determined based on an intersection point of the linearly extrapolated system variable between the current time instant and the future time instant with a maximal possible deviation from a reference of the system variable.
According to the invention, the intersection point is determined iteratively by a binary search method. In this search, the intersection point may be found by dividing a search interval into two new search intervals and by proceeding with the interval containing the intersection point. This interval may be determined by comparing the value of the future system variable, which may be determined by interpolation with a boundary value. With a binary search, the computational costs of a division may be avoided.
According to an embodiment of the invention, the cost function is only evaluated, when the prediction horizon is longer than one time step (or sampling interval). When the prediction horizon is shorter than one sampling interval, the cost value is determined based on a predicted violation of the bounds, which is the difference between the predicted system variable and the violated bound. When the corresponding possible next switch position were applied to the converter, this would result in the physical system variables deviating from the references by more than the predefined bounds. However, sometimes it is possible that no possible next switch position is found with a prediction horizon longer than one time step. In this case, to avoid a deadlock, the arbiter block chooses the possible next switch position with the lowest violations of the bounds. This may
be achieved by calculating a cost value based on the degree of the violation of a system variable at the next time step of its bound for possible next switch positions. This cost value should be rather high compared to cost values determined from the cost function.
According to an embodiment of the invention, the cost function is only evaluated, when the prediction horizon is longer than a given number of time steps.
According to an embodiment of the invention, the cost function is based on a number of switching transitions between the actual applied switch position and the possible next switch position. In such a way, the FPGA selects switch positions with a low number of switching transitions, which also results in lower switching losses.
According to an embodiment of the invention, the cost function is based on the switching losses that are predicted to occur when switching from the actual applied switch position to the possible next switch position. The switching losses often depend on the switching transition, the commutated phase current and the DC link voltage. Assuming that the DC link voltage is effectively constant, the switching losses can be predicted based on the commutated phase current and the switching transition. This information can be stored in a look-up table. In such a way, the FPGA selects switch positions that result in lower switching losses.According to an embodiment of the invention, the enumeration block comprises a look-up table providing a possible next switch position based on the actual applied switch position. It may be possible that the set of possible next switch positions is dependent on the actual applied switch position. The look-up table may provide these sets indexed by an actual applied switch position.
Furthermore, in case the electrical converter has more than one phase, there may be one lookup table that may be used for each phase of the electrical converter.
According to an embodiment of the invention, the enumeration block is adapted for determining, whether a possible next switch position is valid with respect to actual applied switch position and/or constraints on the system variables at the current time instant. For example, there may be constraints on the possible next switch positions based on a sign of an actual current. The enumeration block may determine, whether a possible next switch position is valid and may provide this information to the arbiter block. The arbiter block then only sends valid possible next switch positions to an explorer block.
According to an embodiment of the invention, the arbiter block is adapted for: sending the actual applied switch position to an explorer block for determining, whether the actual applied switch position has a prediction horizon longer than one time step; and selecting the actual applied switch position as the next switch position, when the prediction horizon is longer than the next time instant. The arbiter then sends the possible next switch position to the explorer block, only when the prediction horizon of the actual applied switch position is shorter than the next time step.
Before the possible next switch positions from the enumeration block are evaluated, the arbiter may check, whether it is possible to keep the actual applied switch position. This may be the case,
when the prediction horizon of the actual applied switch position is longer than one time step/sampling interval. In this situation it is not necessary to switch at all, resulting in no switching losses, which is desirable.
According to an embodiment of the invention, the FPGA further comprises a pre-computation block adapted for calculating commonly used values and predictions from the system variables at the current time instant, wherein the commonly used values and predictions are used by the explorer blocks during the calculation of the system variables at future time instants. For example, these variables may comprise currents and/or voltages in the abc coordinate system, predicted reference currents and/or voltages, predicted rotor flux variables, and/or error currents with respect to a reference current.
According to an embodiment of the invention, the number of explorer blocks is smaller than a maximal number of possible next switch positions. In this case, the arbiter block may have to wait for explorer blocks to finish before a further switch position can be evaluated by the enumeration block. The number of explorer blocks may be selected based on the time an explorer block requires to evaluate a possible next switch position, and the maximal number of possible next switch positions to be evaluated during one cycle of the controller. In such a way, the capacity of the available logic blocks of the FPGA may be used in an optimal way.
According to an embodiment of the invention, by predicting the number of time steps a next switch position can be applied before one of the system variables violates a bound, by predicting the cost value associated with this next switch position and choosing the next switch position with the best (i.e. usually lowest) cost value, a sequence of future switch positions is established from the current time step until the time step at which the first system variable violates a bound. Out of this sequence of future switch positions, only the first element, i.e. the switch position at the current time step, is applied to the converter, in order to apply closed-loop feedback. At the next time-step, new measurements and/or estimates are obtained and the optimization problem described above is solved again, albeit it over a shifted horizon. This policy is referred to as receding horizon control and is a distinguishing feature of model predictive control. In summary, model predictive control combines (open-loop) constrained optimal control with the receding horizon policy that provides feedback and closes the control loop.
A further aspect of the invention relates to an electrical converter system, which comprises an electrical converter comprising a plurality of semiconductor switches for converting a DC or AC input voltage into a DC or AC output voltage of a different frequency, and a controller with an FPGA applying the next switch position determined by the FPGA to the semiconductor switches based on measurements and/or estimates of voltages and/or currents in the electrical converter provided to the FPGA. This FPGA may be designed as described above and in the following.
For example, the semiconductor switches may be IGBTs or thyristors, which are switched on and off by gate signals from the controller based on the next switch position.
It has to be understood that the converter may be a DC-DC, AC-DC, DC-AC or AC-AC converter. It may comprise one or more phases and/or may have two or more output levels. It may be a direct converter or an indirect converter with a DC link.
For example, the electrical converter may be an active neutral point clamped voltage source inverter with five output levels.
The load may be an electrical machine, such as a three-phase induction machine or a three- phase synchronous machine. Alternatively, the load may be a grid or a point of common coupling or a transformer connected to such a point of common coupling.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
The subject-matter of the invention will be explained in more detail in the following text with reference to exemplary embodiments which are illustrated in the attached drawings.
Fig. 1 schematically shows a converter system according to an embodiment of the invention.
Fig. 2 schematically shows an FPGA according to an embodiment of the invention.
Fig. 3 schematically shows a component of the FPGA of Fig. 2.
Fig. 4 schematically shows a further component of the FPGA of Fig. 2.
Fig. 5 schematically shows a further component of the FPGA of Fig. 2.
Fig. 6 schematically shows a further component of the FPGA of Fig. 2.
Fig. 7 shows a diagram illustrating a binary search performed in the FPGA of Fig. 2.
The reference symbols used in the drawings, and their meanings, are listed in summary form in the list of reference symbols. In principle, identical parts are provided with the same reference symbols in the figures.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
Fig. 1 shows an electrical converter system 10 comprising an electrical converter 12 with three phase legs 14. Each of the phase legs 14 comprises a five-level active neutral point clamped inverter 16, which is adapted to convert the DC voltage of a DC link 18 into a phase voltage of a three-phase system with the current is,abc. The inverter comprises eight semiconductor switches (here transistors with anti-parallel diodes) S1 to S8, which may be either opened "0" or closed "1 ". The semiconductor switches S1 to S8 may encompass multiple series-connected semiconductor switches.
The converter system 10 furthermore comprises a controller 20 with an FPGA 22, which will be described below, and a load 24, such as an electrical machine.
Physical model of the converter
The model of the converter 12 may be formulated in the orthogonal αβ frame or in the three- phase abc frame with the per unit system. A vector in the three-phase abc system may be transformed to orthogonal stationary coordinates αβ by applying ξαβ =
Here, K is set in such a way that the -axis and the a-axis are ali ned.
The state of the converter 12 corresponds to its actual applied switch position sa,sb,sc e {0,1,...,7} , its neutral point potential vn and its three phase capacitors voltages
(Ppha-> Ophb-> Ophc) > which may be interpreted as inverter state variables. We define the inverter state vector as ¾ν =[υ„ υ≠α vphb vphcf .
The continuous-time model is discretized with forward Euler discretization and the sampling interval TS■ The discrete-time representation is denoted with the variable k e M. The discrete-time equation of the phase capacitor voltage dynamic is given by
Vphxik + 1) = vp k) + Τβυ≠ (iSiX (k),sx (k)),x e {a, b, c} (2)
In the discrete-time equations, δυ ¾ and δ¾ denote scalar functions with the phase currents and switch positions as arguments at time step k. The three-phase phase current is defined as \s,abc = b c f and tne switch position, i.e. the switch positions in each of the three abc phase legs, is defined as sabc =\sa sb sc]T e {0,1,...,7}3. An implementation of the controller 20 may use a sampling interval of 25/JS or 50/JS, for example.
Physical model of the electrical machine
The electrical machine 24 may be a squirrel-cage induction machine. The state-space model of a squirrel-cage induction machine in the αβ reference frame is described in the following. For a model predictive direct current control method, it is convenient to choose the machine state variable
xm = i a p Wra Ψφ ] with the stator current
and the rotor flux linkage . The model inputs are the rotor's angular velocity or and the inverter switch position sabc.
The differential equation for the electrical machine 24 is stated in matrix notation. It is discretized using the forward Euler method:
x^+l)=A¾( )+Bv(¾c( )) (4)
where
The term v(sabc(k)) maps the inverter switch position into the three-phase abc voltage applied to the stator windings of the machine. The constants in matrix A are summarized in the following table:
Parameter Symbol
Stator resistance Rs
Rotor resistance Rr
Stator leakage reactance Xls
Rotor leakage reactance Xlr
Magnetizing reactance Xm
Stator self reactance Xs = Xls + Xm
Rotor self reactance Xr = Xlr + Xm
Determinant
Transient stator time constant
t = X'D
Rotor time constant
Model correction factor 0.016569
" 78.5398 * 10"
The Tspcor term is a quadratic correction term to compensate for the error introduced by the forward Euler discretization method. It has been numerically derived by comparing forward Euler with exact Euler discretization. It is a machine-dependent parameter. Forward Euler has been chosen as a discretization method because it provides sufficient accuracy and avoids the computationally expensive exponentiation of the exact Euler approach.
Model predictive current control method
In the model predictive direct current control method, the selection of the switch position may be stated as a discrete optimization problem. The objective is to minimize the switching frequency (and/or the switching power losses) of the converter 12 while constraining its phase capacitor voltages, the neutral point potential and the stator current error with respect to a reference. We will now define in more detail the optimization problem to be solved.
The state vector of the converter system 10 is defined as the concatenation of the induction machine states and the converter states x = [xm x;„v ] , where xm = [isa isP Wra ψΓβ ] and xinv = n vpha Ό phb u Phcf■ The components of the state vector may be interpreted as system variables.
In general, system variables may be either measured or determined for the current time instant (system variables at the current time instant) and/or they may be predicted or calculated for future time instants (system variables at future time instants).
The system variables to be kept within bounds are captured by the output vector y=[ b e vn vpha v Phb ^fc . The input vector is defined as the switch position Sahc It is assumed that the rotor and stator speed or and (Os respectively vary slowly, allowing one to consider them to beconstant within the prediction horizon.
In the remainder, to simplify the notation, the switch position sabc, which is a vector composed of "0" and "1 ", will often be reduced to s.
In this control method, the current is directly controlled by explicitly bounding it in the optimization problem statement. By setting the width of the bound on the stator current error, we can directly control the Total Harmonic Distortion (THD) of \s,abc- The following equations detail the discrete optimization problem to be solved.
1
J* =min
(5a)
V I = k,..., k + N
(5g)
To evaluate the short-term switching frequency or switching power losses, the cost function sums up the number of switching transitions or switching energy losses &() between two successive time steps over all the switching sequence S(/ ) = [sT(k) sT(k + 1 )...sr(/ + N - 1 )]r. This sum is then divided by the prediction horizon length N of S(/ ).
The last term in the cost function is used to reduce the likelihood of deadlocks. Indeed, when the neutral point potential deviates too much from zero, the risk of deadlocks may increase quickly.
A deadlock occurs when no switching sequence S(/ ) exists that meets (5e). The weight λη is used to fine tune the deadlock avoidance.
The two first constraints (5b), (5c) define the state evolution of the system 10 (the converter and the electrical machine) as explained before. The sampled system state x(/ ) and the actual switch position s(/ - 1 ) of the converter 12 are used as a starting point for the predictions.
The third constraint (5d) builds the output vector from a subset of the system vector and the appropriate transformation.
The fourth constraint (5e) bounds the output vector y(/) around its reference y*(/). The reference y*(/) is time varying for the phase capacitor voltages and the stator current. Hence, they are also an input to the optimization problem. yerr determines the width of the error bounds around the references.
In the fifth constraint (5f), S(l) is the set of allowed switch positions at time instant /. Concepts implemented in the FPGA
In (5a), the optimization problem may become computationally intractable as N increases. This is because at each time step a large number of new switch positions is available that needs to be evaluated by the algorithm. Several heuristics may allow one to limit the computational burden without significantly impacting the performance.
The following concepts have been implemented in the FPGA 22 to increase its performance and to reduce the computational burden:
1 ) Lazy evaluation:
A switching transition should be triggered only when at least one of the output variables exceeds its bound or is predicted to exceed its bound within the sampling interval. That is, at time-step k, if the output vector is predicted to remain within its bounds |y*( + l) -y( + l)|≤yerrwhen applying the previously applied switch position again, then maintain the previous switch position and set s(/ ) = s(/ -1 ). Thus it is possible to minimize the switching frequency (and thus the switching losses) by delaying switching as much as possible.
2) Switching horizon:
A switching sequence may be interpreted as a succession of switching decisions at discrete time- steps. The switching horizon is a string composed of "E" (extension) steps and "S" (switching) steps. The extension step maintains the previous switch position until a bound is violated. The trajectory of the system output vector y is predicted by (2), (3) and (4). When a bound is hit, the controller 20 may proceed to a switching step. That is, the controller 20 needs to enumerate all the admissible switching transitions from the no longer feasible switch position to a new candidate switch position. An example, which will be explained in more detail below, is the "SE" string. Here, the controller 20 first enumerates all valid switch positions s(k) as new switching sequences and then extends each of them until they hit their respective boundaries. Commonly used switching horizons include SE, SSE, SESE, SSESE and so on. SSESE for example, implies that switching is considered at time steps k and k+*\ , followed by an extension step, another switching transition and a second extension step.
3) Extrapolation
One approach is to predict the system evolution by incrementally evaluating the system model at each time step. The advantage of doing so is the high accuracy of the procedure. However, it is computationally expensive to evaluate it when the prediction horizons are long. An alternative is, for a given switch position, to evaluate the system model at several points in time, such as k, k + I, k + 21, where / is a positive integer, and to then approximate the underlying function by quadratic or linear interpolation. This method requires far less computations and is sufficiently accurate for the prediction horizons typically observed.
FPGA implementation
Fig. 2 shows an overview of the blocks of the FPGA 22. As stated above, the "SE" prediction horizon is implemented in the FPGA 22. Thus, the FPGA 22 must first enumerate all possible next switch positions at time step / and then extend each of them.
To address the goal of scalability and simplicity, the architecture of the FPGA 22 is based on dynamic scheduling. The FPGA 22 comprises a central scheduler block 26 that samples the system state x(/ ) into registers and also enumerates and distributes possible next switch positions snew to a number of n explorer blocks 28.
The scheduler block comprises a pre-computation block 30, which pre-computes values that, for example, are needed in the explorer blocks 28, an enumeration block 32, which generates the possible next switch positions snew and an arbiter block 34, which distributes the possible next switch positions snew to the explorer blocks 28.
The system state x(/ ) together with a switching sequence may be defined as a node in the solution space to be explored. The explorer blocks 28 evaluate these nodes, by assessing their prediction horizon N through an extension step performed by an extension block 36 and then evaluate their cost value J in a cost evaluation block 38.
Once the exploration has completed its computations for a node, it is returned to the scheduler 26, in particular to the arbiter block 34. Only the switch position of the node with the lowest cost value J* is maintained by the arbiter block 34. At the end of the enumeration and evaluation process, the scheduler returns the best switch position s(/ ) to the external system.
The following table summarizes the hardware characteristics of each block.
Block Name Mult-16 Add-16 Max. cycles FPGA Slices
Scheduler 26 6 7 47+64- 34/n 1500
Pre-computation 30 4 6 13
Enumeration 32 0 0 64
Arbiter 34 2 1 64 -34/n
Explorer 28 4 14 34 3300
Extension 36 4 shared 7 28
Cost evaluation 38 4 shared 7 6
The total hardware cost of the FPGA 22 depends on the number n of explorer blocks 28 instantiated. The worst case execution time in FPGA cycles is linearly dependent on the number of explorer blocks 28: 13+34+64 ■ 34/n cycles.
Indeed, the FPGA 22 will first pre-compute the model, operate the lazy evaluation and then evaluate all the possible nodes through the n explorer blocks 28. The explorer blocks 28 are expensive in terms of area usage. This is mainly due to the complexity involved in the extension step as explained below.
Scheduler block: model pre-computation
Fig. 3 shows the pre-computation block 30. The FPGA 22 can spare execution time by pre- computing some elements in common to all explorer blocks 28 with the pre-computation block 30.
The discrete state-space model of formulas (5b) and (5c) is divided into two parts. The part in common for all explorer blocks 28 is computed in the pre-computation block 30. The part of the model specific to each node is evaluated by the explorer blocks 28 themselves.
The input to the pre-computation block 30 is the system state x(/ ), the stator and rotor rotational speeds cos{k), cor{k) and the current reference is ap {k) at time instant k. The following equations describe how the output variables of the pre-computation block 30 are computed.
• gff (~)J ,
First, the open loop part is abc {κ + Ι) of the current error is computed. This equation is detailed in several steps: As a first step, the stator current and its reference at instant k + I are computed in the αβ reference frame: αβ (k + l) = A,
Where,
- 1 1
An = L coJTs ,Al = (l— ITS) I2
0
The stator current reference is ap is rotated forward with the stator frequency cos. h is the identity matrix of size two.
= O'(^ + /) + B0v(s(^)) (8)
Commonpart Individuapart
D
• gff (~)J ,
With the chosen system model, the s abc {κ + Ι) part of the current error is common to the explorer blocks 28. The second part of the equation relates to the possible next switch position s(k) specific to the node. Hence this part is computed in the explorer blocks 28. The first part of the equation is computed in block 30. It may be called open-loop current error at time step k+l. It is computed in αβ and then transformed into abc coordinates:
(g)
The second equation to be pre-computed is the stator current error at time step k:
J ) =K « )- )) do)
The third and last variable to be pre-computed is the stator current at time step k in abc coordinates:
From the implementation point of view, a minimal number of adders and multipliers was used, while the number of cycles to compute the aforementioned equations was minimized.
Scheduler block: enumeration
The second way to leverage centralization is achieved by the scheduler 26, which manages enumeration and distribution of possible next switch positions snew. This is done with the help of the two blocks 32, 34 operating in parallel.
The enumeration block 32 enumerates and filters the allowed switch positions snew.
The enumeration block 32 takes as input the actual applied switch position s(/ -1 ) of the converter 12. With this information, it is possible to enumerate all the admissible next switch positions Sx(k) for each phase leg 14 separately. Thus, each phase leg 14 has a set of possible next switch positions Sx(k) z {0,1,...7} ,χ G { i,b,c} . These sets are stored in look-up tables 40 and selected depending on sx(/ -1 ). By construction of the converter 12, none of the sets has more than four elements. The elements in the sets of each phases are then combined in combination block
42 to form any possible switch positions snew(k).
Due to the clamping constraints of the converter 12, several switching transitions are disallowed.
The clamping constraints depend on the direction of the current
on each phase leg 24 as well as the switching transition s(/ -1 ) -> snew(k). A constraint detector block 44, which may be implemented as a combinatorial circuit, detects any invalid transition given the previous information. The constraint detector block 44 outputs a corresponding binary value "valid".
The enumeration block 32 is managed by a finite state machine, which increments the counter controlling an enumeration multiplexer until a valid possible next switch position snew is detected by the constraint detector block 44. The finite state machine starts searching when the "next" signal is asserted.
Fig. 5 shows the relationship between the enumeration block 32 and the arbiter block 34. The arbiter block 34 arbitrates the exploration of the enumerated switch positions snew. The arbiter block 34 sequentially distributes the enumerated switch positions snew to the explorer blocks 28, gathers their results and maintains the best switch position s(k) according to its cost J*.
Scheduler block: arbiter
The arbiter block comprises two finite state machines 46, 48 running in parallel.
The first finite state machine 46 operates in two stages. In a first stage, the finite state machine 46 makes a "lazy evaluation" by sending s(/ -1 ) to an explorer block 28 as a possible next switch position snew(k) to be extended. If the prediction horizon N of this possible next switch position is greater or equal to one sampling interval, the arbiter block 34 stops and returns s(/ -1 ) as the next switch position s(k) for the new time instant. Otherwise, the second stage of the finite state machine 46 starts. In this stage, the finite state machine 46 samples possible next switch positions snew(k) from the enumeration block 32 and sends the n, = [snew(k), &(/ ), /Vm//1] information to any available (i.e. non-operating) explorer block 28 (indexed by / in Fig. 5). The finite state machine 46 continues until all the snew(k) have been evaluated.
The second finite state machine 48 polls each explorer block 28 for available results r, = [snew(k), N, J\. If the cost J of r, is smaller than the current best J r, is saved as the best next switch position s(k). Otherwise, the result is dropped. Once all the results have been gathered, the best switch position s(k) can be returned as the switching decision for the new time instant.
Explorer block Fig. 6 shows one explorer block 28. An explorer block 28 can be considered as a computation unit. For the input data, the scheduler block 26 provides the node specific information n, = [s(/ ), 5s{k), Nmin] and also the pre-computed model shared by all nodes ,abc(k% abc(k ZbcL(k + t%v» (k),v≠abc(k) . The explorer block 28 is composed of the two blocks
36, 38 each one having a computation step to accomplish. The extension block 36 first computes the prediction horizon N. Then, the cost evaluation block 38 applies the cost function J on the explored node. To optimize hardware usage, the two blocks 36, 38 may share 4 common multipliers.
Explorer block: extension with linear extrapolation
To apply the extension step, the extension block 36 goes through several steps. It first evaluates the system state evolution at time step k + 1 by computing the stator current error (8) and the inverter voltages (2) and (3). After this step, the explorer knows the system output y at time steps k and k + I. Thus, it can now build a linear approximation of the system evolution:
y(k +7) = ^ + yik , 5y = y(k + l) - y(k) (12)
Fig. 7 shows the linear approximation of one variable as dashed line.
Now that the model is fully available, the extension step can evaluate the time step N when one of the 7 components first hits its boundary:
N = min^) (13)
ze{l,2,...7}
In here, we use the index / to denote the /th component of the output vector y. The output vector y is composed of the current error \s abc and the inverter voltages vn, vphflbc. The variables s abc and υη are bounded by constant values, while the capacitor voltages vpn,abc might have time-varying boundaries that depend on υη. Thus, v Ph and _ph are parameters that are provided as input. The upper or lower bounds are enforced depending on the signs of the individual component slopes cy. The output vector y is composed of 7 components with each one having their own linear model to be evaluated. The objective is to find the time instant at which yi {Ni)=y bnd . One possibility is to use (14) for evaluating the prediction horizon M of each component. However, an integer divider may be rather expensive in terms of area and computation delay. Another possibility is to use a binary search method, which exploits the shared multipliers and requires only two more adders.
The binary search, which is described with respect to Fig. 7, first evaluates the linear function at Nmax, which may be a predefined prediction horizon. If the result is within the bound yi,bnd, Nmax is returned as the prediction horizon Λ/,. Otherwise the search starts within the interval between the actual time instant k and k+Nmax. At each step, the binary search divides the time interval into two subintervals and continues with the subinterval that comprises the point at which the bound equals the linearly approximated output variable. When the time interval is less than Nmm, the computation is aborted and the prediction horizon Λ/, for the variable indexed with /' is set to 0, wherein Nmm is a minimal horizon length as explained below.
For example, in Fig. 7, the linear approximation (dashed line) is evaluated four times, before the boundary crossing is located.
The binary search has the advantage that it relies only on one multiplier and two adders to compute (14) because it evaluates the linear model (12) at different points in time instead of using a division. The binary search reduces the size of its search interval by two at each iteration. In theory, the worst case of the number of iterations required is 0{log2(Nmax)).
The binary search may furthermore use upper and lower bounds to reduce the computation time.
For example, an upper bound Nmax on the interval to be explored can be imposed. Nmax may be set to the current shortest prediction horizon among the components y that have already been evaluated. If the evaluated component y has a horizon of M > Nmax, then the binary search on y stops since the /th component is not critical (i.e. the violation of its bound is predicted to occur after another component violates its bound). Before any evaluation, Nmax may be initialized to 32, for example, thus providing real time guarantees even in the worst case.
Furthermore, a lower bound Nmm may be imposed, which may be provided by the scheduler block 26. It is the minimum horizon length Nmm to be accomplished by the evaluated possible next switch position on the explorer block 28 in order to become the best candidate. During the extension process, the explorer block 28 can find out that the minimum length cannot be met while performing the binary search. If this is the case, the computation is aborted and the evaluated possible next switch position is signalled as abandoned to the scheduler block 26, for example by setting its cost to a negative value J = -1 or setting the prediction horizon to 0. Nmm may be determined for each possible next switch position based on J* of the current best possible next switch position observed by the scheduler block 26 and the specific switching transition s(/ -1 ) -> s(/ ) to explore:
N > — N mm. = W - i) j^ * WA( ) (15) '
The previous equation ignores the neutral point voltage υη of (5a) for ease of computation. Note that the Nmm heuristic can speed-up the average computation time but does not give any guarantees about the worst case execution time.
The objective is to find the greatest integer ^ for each of the linear models to be evaluated (by i = 1,2, ... ,7) such that the three conditions below hold:
Nmin≤Ni≤l
Vi W + NiSyi≤ y
Vi W + NiSyi≥ y The binary search method is used to find Λ^. Denote the m-th bit of Nt as Ni[m] , with Λ^[1 ] being the least significant bit. Let a, b, c, and s be temporary variables to be used in the binary search procedure. The m-th bit of s is denoted by s[m], with s[l] being the least significant bit. In the algorithm a is used as a candidate solution, b is used as a lower bound of the solution, c is used to store the results of a division by 2 (implemented as a right shift), and s is an upper bound of the solution. The algorithm to obtain Nt uses M = log2 1 iterations, described below.
Initialization:
Loop:
for m = M,
c
C ·■= -
2
a ·■= b + c
if (yi(fc) + a≤y ) and ( ^fc) + a > y^, then
& := a
^ [m] := 1
else
s[m] := 0
if s < min, then
stop for loop
end if
end if
end for
Notice that if the loop is stopped because s < Nmin, then no integer greater than Nmin satisfies (15b) and (15c).
The standard solution for the problem (13) would involve a numeric long division to solve (14). The division requires X iterative steps, where X is the number of bits of the numerator, and therefore is performed over at least X FPGA clock cycles.
The proposed method presents the advantage that fewer clock cycles are necessary to obtain the result. The proposed algorithm takes at most log2 1 iterations to execute. Since log2 1 < X, fewer iterations are required in the proposed method. Furthermore, the algorithm features an early detection of when a solution for the problem does not exist in the cases that the upper bound of the solution s is lesser than Nmin. Fewer clock cycles means that the solution for the problem (13) is found faster.
The maximum efficiency is achieved when the maximum horizon length I is a power of 2. In several places we say that we evaluate 7 components or the problem. The number 7 applies to this specific topology. Perhaps we can generalise this number 7.
Explorer block: cost function evaluation
After the extension step, the cost value J may be computed by the cost evaluation block 38 in two different ways.
If the evaluated next best switch position has a prediction horizon N≥ 1 , all its output components y, are either within their boundaries or their trajectories are approaching the reference. Thus, (5a) is used for calculating the cost value J.
Otherwise, if N = 0, a deadlock has occurred and a possible next switch position needs to be found that resolves this deadlock. Its cost value J may then be defined as the normalized component with the maximum boundary violation at the time step k+*\ :
In this second situation we say that Jdi is a deadlock cost. By minimizing Jdi the worst case violation is minimized.
For the FPGA 22, a deadlock situation would occur when all the evaluated next switch positions have a prediction horizon N = 0. That is, they all have failed to fulfil condition (5e) at time step k + 1 . Nevertheless, the FPGA 22 still needs to take a switching decision. In this case, the policy is to choose as the next switch position the one that is predicted to yield the lowest boundary violation at time step k + 1. By construction, the FPGA 22 is always able to choose a switch position. Furthermore, even in the deadlock case, the best deadlock switching is monitored by the scheduler block 26.
As output, the explorer block 28 provides the switch position s(/ ) that was investigated together with its prediction horizon N and the related cost value J. While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive; the invention is not limited to the disclosed embodiments. Other variations to the disclosed embodiments can be understood and effected by those skilled in the art and practising the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single processor or controller or other unit may fulfil the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. Any reference signs in the claims should not be construed as limiting the scope.
LIST OF REFERENCE SYMBOLS
10 converter system
12 converter
14 converter phase
16 ANPC inverter
18 DC link
20 controller
22 FPGA
24 load
26 scheduler block
28 explorer block
30 pre-computation block
32 enumeration block
34 arbiter block
36 extension block
38 cost evaluation block
40 look-up table
42 combination block
44 constraint detector block
46 first finite state machine
48 second finite state machine
Claims
An FPGA (22) for controlling an electrical converter (12), the FPGA (22) comprising:
an enumeration block (32) adapted for generating possible next switch positions (s"ew(k)) for semiconductor switches of the electrical converter (12) based on an actual applied switch position (s(k-1));
a plurality of explorer blocks (28), each explorer block (28) adapted for calculating a cost value (J) for a possible next switch position of the semiconductor switches by:
receiving a possible next switch position (snew(k));
calculating system variables at future time instants from system variables at a current time instant of the electrical converter (12) based on the possible next switch position, wherein the system variables at future time instants are calculated from the system variables at the current time instant with differential equations modelling the electrical converter (12) and the load (24);
determining a cost value (J) from the system variables at future time instants by evaluating a cost function with the system variables at future time instants;
an arbiter block (34) for selecting the next switch position {s(k)) to be applied to the electrical converter (12) from the possible next switch positions by:
receiving possible next switch positions (s"ew(k)) from the enumeration block (32);
selecting a non-operating explorer block (28) and sending a received possible next switch position to the non-operating explorer block;
receiving a cost value (J) for the respective possible next switch position from a finished explorer block;
when all possible next switch positions received from the enumeration block (32) have been processed, selecting the next switch position {s(k)) as the possible next switch position {snew(k)) with the lowest cost value (J);
characterized in
that each explorer block (28) is further adapted for:
determining a prediction horizon (N) for the possible next switch position (s"ew(k)) at which at least one of the calculated system variables at future time instants has a deviation from a reference for the system variable, which is bigger than a predefined deviation for the system variable;
that a prediction horizon (N) for a system variable at future time instants is determined via a linear extrapolation, in which the system variable at the future time instants is calculated from the system variable at the current time instant, and the prediction horizon (N) is determined based on an intersection point of the linearly extrapolated system variable between the
current time instant and the future time instant with a maximal possible deviation from a reference of the system variable; and
that the intersection point is determined iteratively by a binary search.
The FPGA (22) of claim 1 ,
wherein the cost function depends on the inverse of the prediction horizon (Np).
The FPGA (22) of one of claims 1 or 2,
wherein the cost function is only evaluated, when the prediction horizon (N) is longer than one time step;
wherein, when the prediction horizon (N) is not longer than one time step, the cost value (J) is determined based on a violation of a maximal allowed deviation from a reference of the system variable at future time instants.
The FPGA (22) of one of the preceding claims,
wherein the cost function is based on a number of switching transitions between the actual applied switch position and the possible next switch position (snew(k)); and/or
wherein the cost function is based on the switching losses incurred when switching between the actual applied switch position and the possible next switch position (sliew(k)).
The FPGA (22) of one of the preceding claims,
wherein the enumeration block (32) comprises a look-up table (40) providing a possible next switch position (sliew(k)) based on the actual applied switch position. 6. The FPGA (22) of one of the preceding claims,
wherein the enumeration block (32) is adapted for determining, whether a possible next switch position (sliew(k)) is valid with respect to the actual applied switch position and/or constraints on the system variables at the current time instant; and/or
wherein the arbiter block (34) only sends valid possible next switch positions to an explorer block (28).
The FPGA (22) of one of the preceding claims,
wherein the arbiter block (34) is adapted for:
sending the actual applied switch position (s(k-1)) to an explorer block (28) for determining, whether the actual applied switch position (s(k-1)) has a prediction horizon (N) of at least one time step;
selecting the actual applied switch position (s(k-1)) as the next switch position {s(k)), when the prediction horizon (N) is longer than one time step.
8. The FPGA (22) of one of the preceding claims, further comprising:
a pre-computation block (30) adapted for calculating commonly used values and predictions based on the system variables at the current time instant, wherein the commonly used values and predictions are used by the explorer blocks (28) during the calculation of the system variables at future time instants.
9. The FPGA (22) of one of the preceding claims,
wherein the number of explorer blocks (28) is smaller than a maximal possible number of next switch positions (s"ew(k)).
10. An electrical converter system (10), comprising:
an electrical converter (12) comprising a plurality of semiconductor switches for converting a DC or AC input voltage into a DC or AC output voltage of a different frequency;
a controller (20) with an FPGA (22) according to one of the preceding claims for applying the next switch position determined by the FPGA (22) to the semiconductor switches.
1 1 . The electrical converter system (10) of claim 10,
wherein the electrical converter (12) comprises an active neutral point clamped voltage source inverter.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15172241 | 2015-06-16 | ||
EP15172241.0 | 2015-06-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016202623A1 true WO2016202623A1 (en) | 2016-12-22 |
Family
ID=53404413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2016/062807 WO2016202623A1 (en) | 2015-06-16 | 2016-06-06 | Fpga-based model predictive control |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016202623A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110190764A (en) * | 2019-05-20 | 2019-08-30 | 华南理工大学 | The model predictive control method of Single-phase PWM Rectifier secondary ripple wave suppression circuit |
CN110794674A (en) * | 2019-10-30 | 2020-02-14 | 北京交通大学 | Test platform of multiple net side converter of alternating current locomotive |
EP3614218A1 (en) | 2018-08-22 | 2020-02-26 | Technische Hochschule Nuernberg Georg-Simon-Ohm | Cascaded continuous and finite model predictive control for mechatronic systems |
EP3722896A1 (en) * | 2019-04-11 | 2020-10-14 | Hamilton Sundstrand Corporation | Model predictive control for matrix converter operating in current control mode with load current estimation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009016113A1 (en) * | 2007-07-27 | 2009-02-05 | Abb Research Ltd | Controlling a power system |
WO2009080407A1 (en) | 2007-12-20 | 2009-07-02 | Abb Research Ltd | Method for operating a rotating electric machine |
WO2013110532A1 (en) | 2012-01-24 | 2013-08-01 | Abb Research Ltd | Multicore implemented weight - function based predictive control of an electric converter |
WO2014006200A1 (en) | 2012-07-06 | 2014-01-09 | Abb Technology Ag | Controlling a modular converter |
-
2016
- 2016-06-06 WO PCT/EP2016/062807 patent/WO2016202623A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009016113A1 (en) * | 2007-07-27 | 2009-02-05 | Abb Research Ltd | Controlling a power system |
WO2009080407A1 (en) | 2007-12-20 | 2009-07-02 | Abb Research Ltd | Method for operating a rotating electric machine |
WO2013110532A1 (en) | 2012-01-24 | 2013-08-01 | Abb Research Ltd | Multicore implemented weight - function based predictive control of an electric converter |
WO2014006200A1 (en) | 2012-07-06 | 2014-01-09 | Abb Technology Ag | Controlling a modular converter |
Non-Patent Citations (2)
Title |
---|
TOBIAS GEYER ET AL.: "IECON 2009 - 35TH ANNUAL CONFERENCE OF IEEE INDUSTRIAL ELECTRONICS (IECON 2009", 3 November 2009, IEEE, article "Model Predictive Direct Torque Control of a variable speed drive with a five-level inverter", pages: 1203 - 1208 |
TOBIAS GEYER ET AL: "Model Predictive Direct Torque Control of a variable speed drive with a five-level inverter", IECON 2009 - 35TH ANNUAL CONFERENCE OF IEEE INDUSTRIAL ELECTRONICS (IECON 2009) - 3-5 NOV. 2009 - PORTO, PORTUGAL, IEEE, PISCATAWAY, NJ, USA, 3 November 2009 (2009-11-03), pages 1203 - 1208, XP031629326, ISBN: 978-1-4244-4648-3 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3614218A1 (en) | 2018-08-22 | 2020-02-26 | Technische Hochschule Nuernberg Georg-Simon-Ohm | Cascaded continuous and finite model predictive control for mechatronic systems |
EP3722896A1 (en) * | 2019-04-11 | 2020-10-14 | Hamilton Sundstrand Corporation | Model predictive control for matrix converter operating in current control mode with load current estimation |
US11290023B2 (en) | 2019-04-11 | 2022-03-29 | Hamilton Sundstrand Corporation | Model predictive control for matrix converter operating in current control mode with load current estimation |
CN110190764A (en) * | 2019-05-20 | 2019-08-30 | 华南理工大学 | The model predictive control method of Single-phase PWM Rectifier secondary ripple wave suppression circuit |
CN110794674A (en) * | 2019-10-30 | 2020-02-14 | 北京交通大学 | Test platform of multiple net side converter of alternating current locomotive |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2469692B1 (en) | Method for controlling a converter | |
EP3529888B1 (en) | Control of dc-to-ac modular multilevel converter | |
Vatani et al. | Indirect finite control set model predictive control of modular multilevel converters | |
US9705420B2 (en) | Model predictive control with reference tracking | |
EP3326277B1 (en) | Controlling a three-phase electrical converter | |
JP4957304B2 (en) | Space vector modulation method for AC-AC direct conversion device | |
Ma et al. | Thermal optimised modulation methods of three-level neutral-point-clamped inverter for 10 MW wind turbines under low-voltage ride through | |
Kieferndorf et al. | Model predictive control of the internal voltages of a five-level active neutral point clamped converter | |
WO2016202623A1 (en) | Fpga-based model predictive control | |
JP2011152038A (en) | Control device for rotating electric machine | |
Uddin et al. | A FCS-MPC of an induction motor fed by indirect matrix converter with unity power factor control | |
CN114400939A (en) | Model prediction current control method and system for double three-phase permanent magnet synchronous motor | |
Narendrababu et al. | A five level diode clamped rectifier with novel capacitor voltage balancing scheme | |
Almaktoof et al. | Finite-set model predictive control and DC-link capacitor voltages balancing for three-level NPC inverters | |
WO2014076167A2 (en) | Controlling an electrical converter | |
CA2705721A1 (en) | Method for operating a rotating electric machine | |
Jackiewicz et al. | Comparative study of two repetitive process control techniques for a grid-tie converter under distorted grid voltage conditions | |
Al-Othman et al. | Selective harmonic elimination of PWM AC/AC voltage controller using hybrid RGA-PS approach | |
El-Wakeel et al. | A Modified Selective Harmonic Elimination method for balancing capacitor voltage in modular multilevel converter | |
CA2762473C (en) | Method for controlling a converter | |
Vallone et al. | FPGA implementation of model predictive direct current control | |
Birth | Model predictive control of a medium-voltage grid-connected converter with LC filter using optimal pulse patterns with relaxed symmetry | |
Baig et al. | Improved Finite Control Set Model Predictive Control of Switch Ladder Multilevel Inverter | |
JP7182478B2 (en) | power converter | |
Kanai et al. | Modeling and analysis of AC-DC converter PID controller optimized with pattern search algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16729832 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16729832 Country of ref document: EP Kind code of ref document: A1 |