Controlling a discontinuous linear motor
By employing machine learning models to predict and control motor position and velocity using current and voltage values, the method addresses inefficiencies and synchronization issues in discontinuous linear motors, achieving precise control and improved energy efficiency without additional sensors.
Patent Information
- Application Number
- PCT/GB2025/050318
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-20
- Filing Date
- 2025-02-19
- Publication Date
- 2025-08-28
AI Technical Summary
Conventional vector control methods for discontinuous linear motors are inefficient and prone to synchronization issues due to the lack of precise knowledge of the carriage position, leading to sub-optimal current application and increased energy consumption, while the use of additional sensors introduces cost and reliability concerns.
A method for controlling discontinuous linear motors using machine learning models to predict velocity, acceleration, and position based on current and voltage values, eliminating the need for additional sensors by utilizing the motors themselves as sensors, and implementing a sensorless closed-loop control.
This approach enables precise control of motor position and velocity, reducing energy consumption and increasing system throughput by minimizing headway between carriages, enhancing reliability and efficiency without the need for additional sensors.
Smart Images

Figure GB2025050318_28082025_PF_FP_ABST
Abstract
Description
[0001] CONTROLLING A LINEAR MOTOR BACKGROUND Vector control of motors was first formulated in the 1960s and became popular in the mid-1980s due to advances in power electronics. Vector control allowed the speed and position of rotary induction motors to be controlled with the same precision as DC motors; however, vector control required the use of rotary encoders. This led to a large field of research perfecting encoderless (or sensorless) control during much of the 1990s. During the early 2000s, ABB launched its range of Direct Torque Control Drives, bringing vector control into mainstream industry. Concomitantly, advances in permanent magnet technology allowed the vector control of permanent magnet synchronous motors. Lines and Cruise filed a seminal patent in 2005 (WO 2004 / 017,723, Texchange Limited) on the control of permanent magnet linear motors using a switching arrangement that provided for a Variable Speed Drive (developed by ABB and others) using vector control to be able to power a linear rather than a rotary motor. That is, the arrangement allowed the linear motor to behave as rotary motors from the perspective of the Variable Speed Drive. Notably, this is only applicable to continuous stator (primary winding) linear motors, where the primary winding segments were shorter than the magnet array allowing the assumption of periodic boundary conditions for the stators. This only applies to high pole count motors. In these conditions, the short primary winding is fully covered by the magnet array and behaves like a rotary motor as it “sees” a continuous magnet array like a rotary motor would. This covered primary winding is used as the primary controller and the other partially covered windings are assumed to operate in a similar way and act as replica controllers. In other words, the covered primary controllers are used to control the magnet array by estimating the load angle / position of the magnet array and that estimation is used to control the voltages applied to the replica controllers. In contemporary linear motor systems to drive transport apparatus, such as those used to transport light goods in carriages arranged to travel on a rail-track system, the primary windings are not continuous, and the primary windings of the motors are spaced apart. This creates a discontinuity (and thus systems are referred to as discontinuous linear motor systems) and the simplified form of the mathematics used in vector control, in which a constant inductance is assumed, breaks down. The simplified form of the mathematics was developed for the reduced processing power of the microcontrollers in the mid-1990s. The simplified form assumes continuous windings, linear materials (and systems) and a balanced system, and also uses the product of inductance and current to calculate flux linkage between the primary winding and the permanent magnets. Since the simplified form is not appropriate for vector control of discontinuous linear motors, typically such systems are either run inefficiently, accepting errors or disturbances in the motor control, or the errors and disturbances have led to a commercially limited design; for example, without feedback of the position of the carriage and / or the reaction plate, a loss of synchronisation of the carriage can occur which results in a loss of position of the carriage on the rail-track. Moreover, as well as losing the carriage on the rail-track, a lack of precise knowledge of the position of the magnet array means that the load angle of the current applied cannot be controlled accurately, leading to the thrust per amp being sub-optimal. That is, there is an error between the anticipated position of the magnet array and the actual position of the magnet array, leading to the current being applied in an inefficient manner to create thrust. Note, typically in a discontinuous linear motor system, the primary windings are discontinuous, the system is unbalanced when the motors are partially covered by the reaction plate, and the material is non-linear particularly when the steel saturates. Steel saturation is a known problem in motor design, where typically the aim is to use the minimum amount of steel without saturation. The non- linearity is a particular challenge in motor control. Discontinuous linear motors are in industry for their relative cost. Continuous motors can be used for short operations, but for long operations, say hundreds of metres or longer, having a continuous motor and / or mover would be so expensive that the whole system would likely not be worth building (special sections like vertical sections aside). Accordingly, a major point of development in the field of linear motor transport is the precise control of motors along a discontinuous system. Accurate control of motors has previously been attempted by using additional sensors to detect where the carriage was and using that information as feedback to control the power supplied to the motor to move the carriage. The control of a discontinuous linear motor system with sensors has already been proposed in WO 2012 / 056,842 (Murata Machinery Ltd.). This method has two major drawbacks of cost and reliability. Placing additional sensors regularly along the track adds an unnecessary extra cost, especially when maintaining the system as they are unreliable and may need to be replaced. It remains an important commercial goal to increase the capacity and throughput of discontinuous linear motor systems and to improve the energy efficiency of the systems. A lack of precise knowledge of position of the carriage uses unnecessary power, as the motor is on for a longer time than needed in order to ensure it interacts with the carriage, and the motor runs more inefficiently. In summary, conventional vector control is not possible in discontinuous linear motor systems without inefficiencies and without introducing the potential for synchronisation issues, both through loss of location of the carriage and when the phase between the magnet array magnetomotive force (MMF) wave and the motor MMF wave is not in a stable region. It is important to minimise differences between the virtual state of the system (i.e. the controller state) and the physical state of the system. Moreover, while previously in the field of discontinuous linear motor systems closed loop control has been achieved using additional position sensors, these sensors are costly and unreliable and introduce an unnecessary point of failure into the system. SUMMARY OF INVENTION According to an aspect of the invention, there is provided a method of controlling a discontinuous linear motor system comprising a mover and a motor, the method comprising: obtaining a set of current values representing current flowing through coils of the motor, wherein a reaction plate of the mover is in a position relative to the coils; obtaining a set of voltage values representing voltage present over the coils; predicting a velocity, acceleration and / or position of the mover from the set of current values and the set of voltage values; and, calculating input parameters for control of the motor to move the mover to a target velocity, based on the prediction. Implementation of the present invention provides for precise control of a discontinuous linear motor system, in real-time, without the use of additional sensors to identify the position or speed of the mover. Principally, implementation of the present invention provides for the control of synchronous motors. With real-time monitoring, the control is able to respond with a higher frequency than the mechanical frequency of the system. This directly leads to the detection and control of mechanical behaviours of the system. Moreover, hunting oscillation of the magnet array over its steady-state equilibrium position can be minimised. The motors themselves can be thought of as sensors. When the magnet arrays of carriages pass over the coils, there is a change in the flux linkage through the coils and thus a ‘back electromotive force’ is induced in the coil. To use the motors themselves as sensors eliminates the additional cost of sensors to give improved reliability and robustness of control. This solution replaces both open loop control and closed loop control with additional sensors, that is, it is a sensorless closed loop solution. Application of the method of control increases capacity and throughput and improves the energy efficiency of the system. This high throughput can be achieved with precise control of the speed and position of movers, such as carriages arranged to receive goods, to allow them to run with a small headway. The headway is the time (or distance a set speed) between carriages (i.e. front to front). Additionally, running the carriages almost virtually touching allows the carriages to run in an aerodynamically streamlined closely-packed group. Furthermore, knowing the precise position of the mover allows a motor controller to apply the minimum amount of current to keep the mover, or carriage, moving at the desired velocity, thereby maximising the energy efficiency of the system. A lack of precise knowledge of position of the carriage uses unnecessary power, because higher currents are needed to guarantee the thrust required to overcome the forces on the vehicle by increasing stability. Additionally, with accurate position known, the motor can be held in the optimum state for the production of thrust. Embodiments comprise two key features: prediction and control. In order to achieve encoderless vector control, it helps to identify the precise position and / or velocity. Identifying the target velocity may comprise identifying a target position at a target time, i.e. a target position at a subsequent time step, such that input parameters are calculated, and the mover arrives at the position at the right time. In other words, thrust or voltage values are calculated and the velocity is varied to the target velocity to result in that position being achieved. By position, typically we mean the position of the mover relative to the axes of a coordinate system defined by stator sections of the motor, i.e. the coils of the motor. Alternatively, position may be defined as a fixed point in space. Note, position may be considered periodic within a pole-pair, but end effects may be able to calibrate the absolute position measurement to within a fraction of a half pole-pitch. A half pole-pitch may be 37.5 mm, and ideally the target control resolution is within a few millimetres. A pole-pair represents one electrical cycle, i.e. one period of the voltage / current / MMF sinusoidal waveform. The spacing can be any multiple of a pole-pair / electrical cycle and even a fraction of pole-pair. Another way of describing it is any spacing that breaks the periodicity of the waveforms is considered to be discontinuous. Throughout the disclosure the coils and windings will be used interchangeably to refer to the structure of the stator of the motor, as will be well understood in the art. Typically we will refer to the stator as the fixed motor, containing the primary coils or windings inserted into a toothed block of steel laminations. By discontinuous, we mean any discontinuous system, preferably a discontinuous stator and discontinuous rotor. That is, that the primary coils of the motor are not continuous and are spaced apart. An alternative definition is that discontinuity arises when you have a mechanical discontinuity that prevents the magnetic field being periodic, in other words, a break in the periodicity of the electric or magnetic waveforms. In implementations, a 900 mm spacing may be ideal for a 14-pole magnet array of length 1050 mm. A pole may be 75 mm and a pole-pair may be 150 mm. The spacing and length of a magnet array are typically multiples of pole-pairs. A pole- pair is two magnet poles. One magnet pole-pitch is 75 mm in this case. So a spacing of 150 mm between motors or magnet arrays would be discontinuous. The input parameters may be vector control parameters and may, preferably, be configured for output to a variable speed drive. The system may comprise a plurality of stator sections, each under control of a respective variable speed drive. The step of calculating input parameters may preferably comprise identifying an optimum current parameter for each stator section to maintain a desired velocity. In preferred implementations, the mover may comprise a carriage coupled to a magnet array arranged to act as a reaction plate of the linear motor, the carriage being arranged to hold goods for transport. Typically, we will refer to the term magnet array when referring to electromagnetic properties, and the term carriage for the vehicle, where the carriage comprises the magnet array on its underside. In implementations, the sets of current and voltage values may be received from a variable speed drive. Throughout the present description, where we refer to values input to models, i.e. the sets of current and voltage values, we could alternatively refer to input values and variables or values, that is, the state variables of a model used to describe the state of the system and the input values are the measured values. Preferably, prior to obtaining the current and voltage values, there may be a step of supplying voltage to the coils of the motor. The voltage values may represent voltage present over the coils affected by movement of the mover relative to the coils and other effects, such as a change in inductance due to toothed block of steel laminations in which the windings are inserted and resistance of the windings, etc., that is, in the presence of the mover. A voltage is applied to the coils, necessary to drive a set current through them, that is in implementations, a variable speed drive varies voltage to achieve desired current. Alternatively, no voltage is applied to the coils but the presence of the mover over the stator may still create a voltage over the coils detectable to estimate the position of the magnet array or a velocity. The set of current and voltage values may be obtained at a first time and the mover is in the position at the first time, this may be referred to as the sample or measurement position. The input parameters may be calculated to move the mover to the target position at a second time. The method may repeat over a time step or cycle. In some embodiments, the sets of current and voltage values may be a plurality of sets of current and voltage values, such that the prediction is determined based on recent or historical values over a time period. Alternatively, the current and voltage values are instantaneous values, evaluated over the time step of a real-time cycle, that is, contemporaneous values, used to predict the sample position at a time the values were obtained. The sets of current and voltage values are preferably values in a rotating reference frame, such as a DQ, direct-quadrature, or DQ0, reference frame. The sets of current and voltage values may comprise phase currents and voltages, and the DC bus voltage, received from a variable speed drive. The rotating reference frame provides values that do not vary with the fundamental frequency of the AC waveforms supplied to the stator. Calculated or measured voltages may be relative to the bus voltage: for voltage parameters calculated across windings, may be calculated as a percentage of the bus voltage. Alternatively, the sets of current and voltage values are three-phase values in a stationary reference frame, that is, representing AC waveforms supplied to a respective stator of the motor. For example, those measured directly from the power supplied to the coils and the voltage present over the coils due to the presence of the mover. The method may further comprise deriving the sets of current and voltage values in the rotating reference frame from a measured respective set of three-phase current and voltage values in a stationary reference frame using an estimated commutation angle. Generally where we refer to commutation angle, we refer to the commutation angle being the angular displacement between the mover’s position and the stator’s reference frame. The commutation angle may be estimated from a value of the desired mover position, or a position estimated in a previous cycle. In preferred embodiments, the step of predicting comprises applying a trained machine learning model to the sets of current and voltage values, wherein the trained model is configured to output a velocity, acceleration, or position value of the mover. By position we mean position at measurement sample time, i.e. the sample position. Most preferably, the model is configured to output velocity, however, in alternative embodiments, position and / or acceleration may be predicted by the model. The machine learning model may be any suitable machine learning or statistical inference model, such as regression techniques or more computationally expensive machine learning techniques such as decision trees, neural networks and the like. Preferably the method may further comprise: outputting the input parameters to a variable speed drive arranged to receive the input parameters and convert and regulate power to the motor according to the input parameters. The current and voltage values may be received from the variable speed drive. A machine learning prediction may be to inform the control methodology. The machine learning prediction has high accuracy and can therefore be used in place of an actual measured position. The machine learning model may be trained on a set of data that comprises speed-relevant parameters alongside the recorded speed in each case. This invention utilises a complete form of formulation of vector control, which is not dependent on commonly made assumptions, e.g. that the inductance is constant. This formulation is based on coefficients that vary with input values (current and voltage of the coils) or values describing the state of the system, such as mover position, velocity, or acceleration, inductance, temperature of the coils, or any other variable describing the state of the system composed of motor and mover. A machine learning method may be adopted to model the coefficients of the formulation as functions of the input values or the values describing the state of the system. Not only does this improve the speed of control, but it also allows closed loop control to be provided ‘in the field’ or ‘at the edge’, i.e. using a low computationally intensive controller suitable for being provided local to the motor and replicated for each respective motor of a system. In short, the machine learning method, or any method such as those listed above, represents a quick and efficient way of predicting and controlling the mover, i.e. the velocity of a carriage. In implementations, a machine learning model may be configured to run on a processor contained in a Variable Speed Drive, which outputs to a current control Field Programmable Gate Array (FPGA) in the Variable Speed Drive, which controls switches of the drive (Insulated-Gate Bipolar Transistor, IGBTs, or Metal- Oxide-Semiconductor Field-Effect Transistor, MOSFETs). Running the model on the drive allows for a fast cycle time and reduced network traffic. In alternative implementations, the model may be configured to run on a controller, which controls one or more Variable Speed Drives, (i.e. the controller receives information from Variable Speed Drive measurements, runs the model and outputs set currents). The method may further comprise an initial commutation angle value representative of an initial position value used to supply power to the coils and applying the trained machine learning model to the initial commutation angle. The desired commutation angle value is rated as an important feature in component analysis, as, when making the prediction, it is useful to know in what region of the state values to expect the outcome. It should be further pointed out that, generally, the initial state of the system is known with good accuracy, that is, the initial position of the mover. The method may further comprise obtaining an inductance value of the motor and applying the trained machine learning model to the inductance value. Additionally, or alternatively, the method may comprise obtaining a resistance value of the motor and applying the trained machine learning model to the resistance value. The inductance and resistance values may be a predetermined characteristic for each motor or alternatively may be measured, or they may be calculated as state values from other variables. For example, inductance may be calculated from voltage, current, and resistance (i.e. once the resistance is known, a sweep of different frequencies can be conducted to determine the inductance); while resistance may be calculated from voltage and current while holding the frequency at zero Hz. Inductance and resistance for each motor are included in the data (e.g. manufacturers’ values) to give a more accurate general model that can be applied across multiple motors. The model is then able to predict the speed when values of the same parameters are given data. Note, a simplified motor model may be based on resistance and inductance values. Small variations in manufacturing impact the model. Knowing these variations from the quality control data sheets from the manufacturer or measuring them directly helps improve the accuracy of the machine learning algorithms. Further, the method may comprise obtaining an initial thrust value representative of an initial current value used to supply power to the coils and applying the trained machine learning model to the initial thrust value. The terms thrust value, i.e. desired thrust value, and torque i.e. desired torque value, may be used to refer to the desired Q-axis current value, i.e. the current value used to control the voltage values being applied to the coil to move the mover. The term desired thrust value is equivalent to the term desired torque value in a rotary motor control system. Desired thrust and torque are not state values per se, but they are directly related through current. Therefore, such derived quantities may be alternatively used in the vector-control formulation. Optionally, the method may comprise obtaining a temperature value of the motor and applying the machine learning model to the temperature value. The temperature value could be measured directly or could be received from a drive or motor. The temperature value may be a temperature of the one or more of the coils, ambient temperature or of a combination. In an alternative embodiment, the step of predicting a velocity, acceleration and / or the initial position comprises computationally solving for the velocity from the set of current and voltage values. The principles of the invention could be replicated without the use of machine learning by computational mathematical analysis, while still not needing additional sensors. In a further embodiment, the step of predicting a velocity, acceleration and / or the position comprises: applying a surrogate model to the sets of current and voltage values as input values and a set of state values representing a state of the system, wherein the surrogate model is configured to model flux linkage as a function of the state values of the system to predict a velocity, acceleration and / or the position of the mover. The state values may be selected from a group comprising: position of the mover; temperature of the coils; resistance of the coils; and, mover mass. Preferably the input parameters comprise a current value and a commutation angle value representative of a target position of the mover. The current value may be a desired Q-axis current value representing a thrust value applied to the motor. The D-axis current value may be set to 0. In this way, control of the linear motor is simplified, and the control methodology needs to only modify a single value, that is the current along the Q-axis, to correct for the desired velocity or position of the mover, correcting for in position between the initial desired position and the predicted position of the mover. The method may comprise: predicting a velocity of the mover from the set of current values and the set of voltage values; predicting a position of the mover from the velocity; and, calculating input parameters for control of the motor to move the mover to a target velocity, based on the predicted position. After velocity is determined, the position can be calculated by integration. The position may then be used to feed into the control loop and achieve closed loop control without additional sensors. Alternatively, the position can be calculated by computationally determining flux linkage, using this to estimate position error, and then combining this with the desired position value to estimate position. Accordingly, predicting a position of the mover may comprise estimating flux linkage and error angle from the set of current and voltage values, without assuming a constant inductance. This uses first principles and flux linkage to achieve precise control of the velocity and position of magnet arrays without the need for additional sensors. Typically, when controlling linear motors, the inductance is used, as opposed to flux linkage. This typical control method assumes the inductance is constant. This assumption is problematic due to the discontinuous nature of the system. Calculating the input parameters may comprise: comparing a predicted position of the mover and a target position to determine an error position value; and, calculating at least some of the input parameters based on the error position value. Further, the method may comprise predicting a velocity of the mover from the set of current values and the set of voltage values; and, deriving a predicted acceleration from the predicted velocity. The step of deriving a predicted acceleration may comprise calculating a force being applied based on actual current values in the stator and a difference in angle between axes aligned with the reaction plate and axes aligned with the reference angle applied to the stator. In all implementations, the mover comprise a magnet array representing a reaction plate and a carriage arranged to hold a payload. The method may further comprise predicting a mass of each mover from the predicted acceleration. In this way, the method may be operable to estimate a mass of the payload from the known mass of the carriage. This is highly desirable in goods transport use cases. For example, knowledge of if a carriage is overweight means its payload may be rejected by unloading at a specific location, or that the carriage may not ascend an incline. Moreover, mass can be useful to inform emergency braking scenarios and safe stopping distances. However, mass is most important in measuring payload quantity from a highly variable loading system. The mass estimate may also be used to predict issues with wheels in terms of rolling resistance, i.e. predictive maintenance. In other words, according to a further aspect of the invention there may be provided a method of identifying the mass of a payload held in a carriage of a mover of a discontinuous linear motor system, the method comprising: obtaining a set of current values representing current flowing through coils of the motor, wherein a reaction plate of the mover is in an initial position relative to the coils; obtaining a set of voltage values representing voltage present over the coils; predicting an acceleration of the mover from the set of current values and the set of voltage values; predicting a force by comparing desired values representative of power supplied by a variable speed drive controlling the motor and the obtained sets of values; and, calculating a mass of the payload from the predicted acceleration and the predicted force. The set of current and voltage values may be a plurality of sets obtained over a time period. The acceleration may be predicted from a trained machine learning model or by differentiation of a predicted velocity. In summary, the present invention uses a purer form of the mathematics than is typically used in vector control, along with flux linkage, to achieve precise control of the velocity and position of magnet arrays without the need for additional sensors. The motors themselves can be thought of as sensors. When the magnet arrays of carriages pass over the coils, there is a change in the flux linkage through the coils and thus a ‘back force’ is induced in the coil. Analysis of the inductance and resistance of the motors, alongside the parameters provided to the variable speed drive allows a controller to accurately predict the velocity of the carriage with high accuracy. A significant advantage resulting from the increase of control is that vehicles are able to run with a significantly reduced headway. This increases the throughput or capacity of a transport system, maximising the potential to generate revenues from the same fixed cost of track. Sensors become redundant and can be used to provide additional resilience for safety to the system. Vector control also minimises the amount of current to produce maximum thrust thereby increasing the efficiency of the motors and system. The use of the motors themselves as sensors eliminates the additional cost of sensors to give improved reliability and robustness. In short, no independent measurement of reaction plate position is needed for precise control of the mover. Control based on sensors adds cost and complexity of assembly. Controlling without sensors is the cheapest and most straightforward option from a hardware point of view, but control is a challenge. In a further implementation, the method may comprise controlling the motor in a generating operating mode. Energy returned can be fed to the grid or to a battery. Accurate control and prediction of the motor can facilitate such operation. According to a further aspect there may be provided a motor controller configured to calculate input parameters for a linear motor and configured to perform the method of any of the above aspects. According to a further aspect there may be provided a motor controller configured to calculate input parameters for a linear motor, the controller comprising: a velocity estimator module, configured to: obtain a set of current values representing current flowing through coils of the motor, wherein a reaction plate of the mover is in a position relative coils; obtain a set of voltage values representing voltage present over the coils; predict a velocity, acceleration and / or position of the mover from the set of current values and the set of voltage values; and, output the prediction to a control loop; and, the control loop configured to: calculate input parameters for control of the motor to move the mover to a target velocity, based on the prediction. The controller may also comprise a position predictor module, wherein the velocity estimator module is configured to predict a velocity of the mover from the set of current values and the set of voltage values; and, output the prediction to the position estimator and wherein the position predictor is configured to: receive the predicted velocity; calculate a predicted position; and, output the predicted position to the control loop. According to a further aspect of the invention there may be provided a method of training a machine learning model, the method comprising: collating a training data set comprising a plurality of input features comprising at least: a measured set of current values representing current flowing through coils of a motor of a discontinuous linear motor system; and, a measured set of voltage values representing voltage present over the coils; associating each of the plurality of input features with a respective measured velocity value of a mover travelling over the coils at a time the input features were measured; and, applying a machine learning model to the training data set to learn to map input features to a velocity value. According to a further aspect of the invention there may be provided a method of controlling a discontinuous linear motor system comprising a mover and a motor, the method comprising: obtaining a set of current values representing current flowing through coils of the motor, wherein a reaction plate of the mover is in a position relative to the coils; obtaining a set of voltage values representing voltage present over the coils; receiving an input target position and / or velocity; applying a trained machine learning model to the sets of current and voltage values to map the input target position and / or velocity to control parameters, the model configured to output control parameters for control of the motor to move the mover to the target position and / or velocity. According to a further aspect there be provided a method of training a machine learning model, the machine learning model configured to predict velocity, position and / or acceleration according to any of the above aspects. A computer readable medium comprising instructions which when executed by a computer cause the computer to perform the method of any of the above aspects. BRIEF DESCRIPTION OF DRAWINGS Examples of systems and methods in accordance with the invention will now be described with reference to the accompanying drawings, in which:- Figure 1A shows a high-level conceptual diagram of a linear motor; Figure 1B shows a high-level conceptual diagram of a linear motor; Figure 1C illustrates a carriage moving along a track; Figures 1D shows a free-body diagram of the forces applied to the carriage; Figure 2 shows an open loop control process; Figure 3 shows a closed loop control process according to an embodiment of the invention; Figure 4 shows a figurative illustration of an exemplary machine learning model; Figure 5 shows a figurative illustration of position estimator module; and, Figure 6 illustrates an example flow diagram. DETAILED DESCRIPTION The present disclosure relates to the control of a discontinuous linear motor system. In particular, the linear motor system may be part of a transport system comprising carriages and a rail-track system, configured to allow for the transportation of goods. The carriage may comprise a permanent magnet array arranged on its underside and a storage compartment arranged to hold a load. The carriage travels along a rail-track, propelled by a series of linear motors spaced apart along the track. The permanent magnet array acts as the rotor in a traditional rotary motor and the control system controls the motion of the permanent magnet array over stator sections in the track. Figure 1A illustrates a magnet array arranged above a linear motor 102. Figure 1B illustrates current in the windings to show the relevant reference frames described below and should be viewed together with Figure 1A. In Figure 1A, the notation is expressed in linear position measurement rather than electrical degrees. Figure 1C illustrates a carriage 103 including the magnet array 101 moving under the control of the linear motor 102. The carriage is made up of a cart 105, a chassis 106 and the magnet array 101. It is contemplated that a plurality of carriages may be linked to provide further cost reduction. That is, movers are physically linked. This way, for instance, only a single mover may be powered, which pulls along the connected movers. This may lead to a further reduction in the number of linear motors, and a cheaper system, or it may lead to a reduction of motors active at each time, which may also lead to less loss and a more efficient system. The magnet array may be any suitable configuration such as symmetric surface mounted or Halbach, but for context, conceptually illustrated is a symmetric surface mounted array in which the electrical centre is equal to the geometric centre and the array position on the track ^^^is taken as the centre of the array. The central magnet is a south pole and therefore accepts magnetic flux, i.e. magnetic flux points up when mounted on a track. Similarly, the track configuration is not important to the invention as the principles may be applied to any suitable discontinuous linear motor system. However, for context, the track comprises three stator sections (i.e. motors) which create a moving magnetic field with three phase currents. An exemplary motor design comprises three slots and two pole pieces. The stator reference position is taken as the electrical centre of the stator. This is the same as the geometric stator centre. The electrical angle of the magnet array ^^^is controlled between 0° and 360° and gives the electric position of the stator magnetomotive force wave. The relationship between ^^^and the mechanical position of the magnetic array is given by: where ^^ is the pole length and The stator is supplied by three alternating current (AC) waveforms, u, v, w. These three phases can be represented as three axes 120° apart from each other in the A-B-C (or U-V-W) reference frame. The summation of these waveforms is equivalent to a vector in a two-axis coordinate system. The two axes may be stationary, in which case they are referred to as the α-axis and β-axis, or aligned with the electrical angle corresponding to the assumed position of the magnet array ^^^∗, in which case they are referred to as the D-axis and the Q-axis, or aligned with the actual position of the magnet array, in which case they are referred to as the d-axis and the q-axis. The stationary α-axis can be aligned anywhere along the stator, but for context here 0° is aligned with the winding centre of the “v”-coil, that is the v-axis. In the present description, we will typically refer to the D / Q axis. It should be noted that the D / Q reference frame is not aligned with the actual position of the magnet array, ^^^, but with the assumed position of the magnet array, ^^^∗, that is the position where the magnet array is assumed to be by the variable speed drive. D is referred to as the direct axis, while Q as the quadrature axis. The Q-axis is aligned 90° anticlockwise from the D-axis. Alternatively, the rotating reference frame can be aligned with the actual position of the magnet array, that is ^^^. Here, the direct axis is termed the d-axis, and the quadrature axis the q-axis. This rotating reference frame travels with the magnet array, and the d-axis is aligned with the magnetic field of the magnet array. As illustrated in Figures 1A and 1B, although it can be shifted by an integer number of pole pairs, conceptually the “d” axis can be aligned with the centre of the magnet array. The “q”-axis is aligned 90° anticlockwise, that is in a leading direction, from this. The transformation from the three- to the two-axis reference frame may be referred to as a Clarke transform or a DQ0 transform, where the 0-axis component is 0 in a balanced system. The stationary reference frame can be transformed to a rotary reference frame using the Park transform. Hence the transform may be referred to as a Clarke / Park transform. Note, the Clarke transform is from three- phase reference frame A-B-C (or U-V-W) to α-β-0, both still in the stationary reference frame. The Park transform is from the stationary reference frame to the moving reference frame, α-β-γ to D-Q-0. Uppercase D / Q refers to a variable speed drive assumed rotor reference frame assumed by the variable speed drive (D aligned with commutation angle ^^^) and lowercase d / q refers to the actual rotor reference frame (with d aligned with South pole of magnet array). The variable speed drive will be introduced more fully below. The dq reference frame is a useful tool to analyse three-phase systems and motors. The transform takes three time-varying quantities (e.g. iu, iv, iw) and produces two relatively constant output values (id, iq). The d-axis and q-axis currents in the rotating reference frame are significant because they allow for the independent control of magnetic flux and force, greatly simplifying the control algorithms. This decoupling leads to improved performance, efficiency, and dynamic response. The current on the windings along the d-axis produces an attractive force between the rotor to the stator, while the current along q-axis produces a thrust force which causes the magnet array to slide over the motor. In particular, because the “q” axis is aligned 90° in a leading direction to the “d” axis, the “q” axis current produces forward thrust. In other words, current in the d-axis is has the effect of making the North poles of the magnetic field generated by the stator align under the South poles of the magnetic field the rotor and vice versa, this causes a strong attractive force between the stator and the magnet array. Analogously, a positive current along the q-axis current causes forward thrust by shifting the North poles on the stator forward, whereby the attraction between the shifted North poles of the stator and the South poles of the rotor leads to a force on the rotor in the forward direction. A negative q-axis current will result in thrust (deceleration when moving forward, acceleration in the reverse direction). This is because the North and South poles of the magnetic field generated by the stator will shift backward, thus the magnet array will be attracted in the backward direction. A pole pitch may be defined as the mechanical distance between a North and a South pole of the magnetic field of the rotor and is equal to 180º electrical degrees. The load angle ^^ௗ^is the phase difference between the vector pointing to the centre of the magnet array and the vector representing the stator resultant magnetomotive forces in electrical degrees. The movement of the magnet array typically occurs within a range defined by the load angle, corresponding to a single pole pitch. When the load angle ^^ௗ^is equal to 90° the magnet array wave lags the stator wave and the maximum motoring force is produced. If Figure 1B, The line “I” shows the centre of the North pole due to current in the windings. There are currents in all 3 coils with corresponding magnetic field strengths and direction (up or down). However, it is easier to conceptualise the variation of currents at electrical frequency as the translation of the current centre forwards or backwards. The position of the stator current wave centre is taken to be coincident with the corresponding electric angle of “I”. The magnet array load angle ^^ௗ^is equivalent to the difference between the position of the stator current wave centre and the actual position of the magnet array, ^^^. The variable speed drive load angle ^^^ொis equivalent to the difference between the position of the stator current wave centre and the position of the magnet array assumed by the variable speed drive, which is generally different from the actual position. With current there are two load angles due to the different reference frames. In Figure 1B, the DQ and dq reference frames are shown with the current centre “I”:^^^ொ ൌ 60°, ^^ௗ^ ൌ 30°, ^^^ ൌ 30°. The relationship between ^^^ொand ^^^ொ ൌ ^^^ ^ ^^ௗ^The AC waveforms are stator sections under control of a Variable Speed Drive (VSD). The VSD uses the D / Q axes to control the waveform. To convert the D / Q axes to three phase control, the VSD estimates a commutation angle, usually from an encoder. Figure 1B illustrates this D / Q axis showing the difference between the magnet array d / q frame and the VSD D / Q frame. This error is shown as ^^^. In an optimal system, the actual position of the magnet array is known, the error,^^^, is null, and the load angle ^^^ொ ൌ ^^ௗ^ ൌ 90°, which implies that an optimal forceis provided to the magnet array. In practice however, there will be a difference between the estimated position of the array and the actual position. This error, ^^^, results in a load angle being different from 90° causing a sub-optimal force being applied. In other words, the actual load angle, ^^ௗ^, differs from the estimated load angle, ^^^ொ, because of a mismatch in the actual and estimated position of the magnet array relative to the stator. The Drive D / Q axis is not aligned with the magnet array without knowing the position of the magnet array. To aid explanation, Figure 1D presents a free body diagram showing the main forces applied to the carriage. The electromagnetic force ^^^^is the applied force from the motor, ^^ௗis the force due to drag and rolling resistance on the carriage. For understanding of the present invention, Figure 2 illustrates a comparative open loop control schematic. The process takes as input a desired force ^^^∗^ and a desired position ^^^∗with the desired position being at a subsequent time step. In other words, the position the system wishes the magnet array to reach at a later time. Although throughout the disclosure position is considered relative to a fixed point, preferably the end of the previous motor, the position may be relative to any fixed point. In the open loop control system, the desired force and desired position values may be converted to a desired thrust current value ^^ொ∗and a desired commutation angle value ^^^∗representing a desired position for the control of the stator waveform. These desired values are passed to a Variable Speed Drive (VSD) 203 which converts the rotating reference frame values to three phase voltages to drive the set current, using an inverse transform. Note the VSD 203 runs on a current control loop at very high frequency (e.g.16kHz) and varies voltage to achieve the desired current, while the dynamics of the rest of the system are generally limited to a maximum frequency of a few hundred Hertz or a few thousand Hertz at the most. Therefore, the VSD can be assumed to react instantaneously and not to affect the control dynamics. The three phase voltages vu, vv, vw, are applied by the VSD 203 to the respective coils of the linear motor 102. The desired current in the coils creates a force ^^^^to move the magnet array 101 to a new position ^^^. It may be worth noting that a varying waveform is provided to the coils using a procedure such as pulse width modulation, i.e. varying the width of DC voltage pulses provided to the coils. Throughout the present disclosure, the terms desired and target may be used interchangeably. In Figure 2 (and throughout) lowercase d / q refers to the rotor reference frame (d aligned to South) and uppercase D / Q refers to the VSD assumed rotor reference frame. The rotor reference frame is the reference frame based on ^^^, that is the real position of the motor. Note, ^^^is always zero because current is conserved in any reference frame irrespective of whether the system is balanced or not for a three-wire three-phase system, i.e. delta connection or star connection with no neutral to the star point. Figure 3 illustrates a block diagram closed loop control without additional sensors, according to the present disclosure. A controller 304 receives measurements for the current and voltage values being applied at the Variable Speed Drive 203 and is configured to output a thrust value and a commutation angle. The thrust value and commutation angle are used by the VSD to configure a set of output values to control the linear motor 102 and move the magnet array 101 to the position ^^^. The controller 304 predicts a velocity and / or position of the array 101 from the measured or actual current and voltage values being applied by the VSD 203 to the motor 102 and uses that prediction to calculate a new thrust value and commutation angle for the VSD to move the motor to a desired position ^^^∗. The modules shown in Figure 3 are merely exemplary control modules to meet the above aim. The modules may be combined or replaced; however, conceptually, a velocity estimator module 305 receives the current and voltage values and estimates a velocity ^^^^of the magnet array 101. A position estimator module 306 then takes that velocity ^^^^and, together the commutation angle set for the VSD, outputs a predicted position of the magnet array 101. The predicted position is compared to a desired position which is then converted to a Force (by a control loop comprising a module 311 which converts the linear position error to an electrical angle position error, a position controller 312, and a velocity controller 313) and a thrust current value for output to the VSD 203. Using the desired position, a commutation angle is computed by a module 315 to compute the commutation angle for the VSD for the desired position. Again, this schematic and the function of these modules is merely exemplary, what is important is that the current values are used to determine a thrust value and a commutation angle based on a desired position by predicting a position and / or velocity from the measured current and voltages. All modules may be implemented by a single machine learning, statistical inference or computational module configured to output the thrust value. As with Figure 2, the load angle ^^ௗ^be adjusted by control of the desired thrust value and the desired commutation angle value. According to examples, for closed loop control, the load angle ^^ௗ^is to be held at ±90° (depending on if forward or reverse thrust is needed) which means the stator load angle ^^^ொmust vary to cancel out the position error ^^^. For this type of control, the position error ^^^must be determined accurately, and the load angle ^^^ொadjusted frequently. The advantage is that the minimum current, and therefore energy, can be used for a given thrust and the maximum thrust can be output. The motor could also operate as a generator, where the motor is generating power rather than consuming it. In other words, the motor can be controlled in a generating operating mode. The load angle, which is key in defining the operating condition, is generally in the range of 0° to -90° in the forward direction. This range indicates that the stator's magnetic field is lagging the magnet array’s magnetic field, resulting in the generation of electrical power from mechanical movement. The exact value of the load angle within this range depends on specific operating conditions, including the speed of the motor and the electrical load connected to it. As shown in Figure 3, three phase currents iu, iv, iw, and three phase voltages vu, vv, vw may be measured at the variable speed drive 203 and converted to a rotating reference frame at time t for input to the controller 304. These are converted to a rotating reference frame (id, iq, i0; vd, vq, v0) using a DQ0 transform. Although the DQ0 reference frame is shown for the voltage and the DQ reference frame for current, in practice these may be any suitable reference frame. Although not shown, the DC bus voltage may also be provided with voltages being relative to that bus voltage. The conversion may be a two-stage conversion, i.e. from the raw current measurements in the u, v, w, stationary reference frame to an α, β, γ reference frame which is then rotated to the reference frame. Note, there is no current in the γ axis. However, there is a voltage and flux linkage component for discontinuous, unbalanced or non-linear systems. The output of the conversion is a set of actual current values, iD_act, iQ_actand voltage values vD_act, vQ_act, v0_actrepresenting, respectively, the current and voltage values in a rotating reference frame at a time t. Those actual current values are then input to the controller 304. Although shown being performed in the variable speed drive 203, the conversion may be performed at any suitable control location. For example, three phase currents iu, iv, iw, and three phase voltages vu, vv, vwmay be measured and passed directly to the controller 304 which may perform conversion to the current and voltage values in a rotating reference frame at a time t. The conversion may use an estimated commutation angle using the desired position value used to control the drive. This may use the following function: ^^^^ ^^^^∗^ െ ^^^^360° ^^ ൌ ^^^ ൈ2^^, 360°൨At the controller may be fed to a velocity estimator module 305 configured to output a predicted velocity. The velocity estimator module may be a machine learning module configured to predict a velocity of the magnet array from the received instantaneous current and voltage values, which are herein referred to as the input values. As well as the received current and voltage values, the machine learning model may receive a set of state values to be used as input features to improve the accuracy of the velocity prediction. Examples of these state values used as input features are set out below. In the example of Figure 3, that predicted velocity is passed to a position estimator module 306, described in more detail below. An exemplary conceptual view of a machine-learning model to predict the velocity ^^^^is shown in Figure 4. As shown, a trained regression model may be applied to the received current and voltage values, and other relevant features, to predict a velocity value of the magnet array based on the state of the features, with that combination of feature values typically being unseen. The model may be a tree ensemble regression model, however any suitable model may be used. Regression models are particularly well suited to numerical prediction tasks or value prediction tasks. As is the case here, the model is configured to predict a value from a set of input values. Regression is well suited to this, but other supervised or unsupervised models may be equally appropriate depending on the training data available. For example, deep learning using neural networks or deep reinforcement learning may also be suitable where the training data may not indicate a clear relationship or where there may be a complex non-linear relationship. The skilled person would understand that different machine learning models and algorithms are suited to different tasks and efficiencies. In the present scenario, regression tree ensemble is particularly well suited since there is a relationship between the input values and the velocity value and computation speed is important. That is, the speed of predicting velocity must be faster than the dynamic response of the system. Note a regression tree ensemble is a weighted combination of multiple regression trees, which is particularly well suited to the present features where each variable contributes differently. Importantly, the model is interpretable allowing for control and safer analysis of carriage movement through subsequent analysis. Moreover, the variables do not need to be searched reducing computation time. The model is configured to take as input the current and voltage values, i.e. iD, iQ, vDand vQvalues and predict a velocity and / or position. The model does not take the 0 axis values but compensates for the lack of the value automatically. This configuration is optional but preferable for computation simplicity and speed. Alternative configurations could use the raw current and voltage values in the stationary reference frame; DQ and DQ values only or the values in a rotating reference frame. In preferred implementations, the 0 axis component is kept and never transformed, even if not input to the machine learning model. The machine learning model is configured to use the last known values of the current and voltage. However, it may also be configured to use values over a period of time. The model may be trained by collating a set of accurate measurements of position relative to the input features. In an implementation, a training set of data may be found by moving a carriage over a straight track repeatedly (e.g. 50 times) at varying speeds. The training may use, not only values recorded through experiments, but also values computed through high-fidelity simulation. The training data comprises various relevant parameters which impact the speed of the carriage, alongside the actual velocity for each run. This data is then used with a model to predict velocity based on previously unseen values for the same set of parameters. The velocity of the carriage is directly proportional to the voltage applied. The thrust current iQis directly proportional to the force if the actual load angle ^^ௗ^is 90°, or the error between the DQ and dq reference frames is 0. The desired position (commutation angle) is relevant if a rotating DQ reference frame is used, as it is relevant to the estimated commutation angle described above. In particular exemplary case, ^^^∗is not needed for the prediction of the velocity. ^^^∗is useful in giving information about where the current waveforms are, as below: ^^௨ ൌ |^^| sin൫^^^∗ ^ ^^^ொ൯ ^^௩ ൌ |^^| ^ ^ ^^^ொ ^ 120°൯^^௪ ൌ |^^| sin൫^^∗^ ^ ^^^ொ ^ 240°൯However, as these variables are measured in the drive and the system obtains absolute values for them, ^^^∗is not always necessary in the prediction of the velocity. As shown in Figure 4, the training data set and configured model may have a series of additional state variable as well as the input current and voltage values. Note, in Figure 4 compared to Figure 3, Id_Act is iD_act, Iq_Act is iQ_act, Vd_Act is vD_act, Vq_Act is vQ_act, PhaseAngle_SP is ^^^∗and Torque_SP is ^^ொ∗, i.e. the desired thrust current. The optional variables in Figure 4 are actual D-axis current (Id_Act), actual Q-axis current (Iq_Act), the desired position (PhaseAngle_SP), desired force / Q-axis current (Torque_SP / iQ*), actual D-axis voltage (Vd_Act), actual Q-axis voltage (Vq_Act), desired carriage velocity (Carriage_Vel) the inductance of each individual motor (Inductance) and resistance of each individual motor (Resistance) and temperature. Temperature variance results in a variance in the resistance of the coils, which affects the voltage component over the coils due to their own resistance, in addition to the presence and velocity of the magnet array. It is an optional feature. Desired carriage velocity and desired torque values are not essential features, because they are dependent on other values included in the data set. Typically, the desired ^^^∗value is set to 0, which means the actual ^^^value is at or around 0, making this a non-essential variable as it remains largely constant. Inductance and resistance may be manufacturer values specific for the respective motor to give an accurate general model that can be applied across multiple motors. Temperature may be a measured value. As mentioned, the values of and resistance that are fed into the machine learning model may be the manufacturer’s values. Each motor is unique and as such has its own inductance and resistance values. However, over time, these values are susceptible to change after prolonged usage and it would be sensible to update these values accordingly. There may be circumstances where the inductance and resistance are measured in real-time, and these values could be calculated from other variables in the system. Inductance and resistance canbe found using the equation ^^ ൌ ^^^^^ ^ ^^^^^^ , where ^^^ ൌ 2^^^^^^ (V=Voltage,I=Current, L=Inductance, f=Frequency) from measured values of current and voltage. Initially, resistance can be calculated from voltage and current by holding the frequency at 0 Hz. Once the resistance is known, a sweep of different frequencies can be conducted to determine the inductance. As noted above, the motors themselves can be thought of as sensors. When the magnet arrays of carriages pass over the coils, there is a change in the flux linkage through the coils and thus a ‘back electromotive force’ is induced in the coil. Analysis of the inductance and resistance of the motors, alongside the input parameters allows the controller to predict the velocity of the carriage with high accuracy. A machine learning prediction of velocity and / or position is used to inform the control methodology. The machine learning prediction has high accuracy and can therefore be used in place of any actual measured position. The machine learning model is trained on a set of data that comprises speed-relevant parameters alongside the recorded speed in each case. Additionally, manufacturers values of inductance and resistance for each motor are included in the data to give a more accurate general model that can be applied across multiple motors. The model is then able to predict the speed when new values of the same parameters are given. Examples proposed herein utilise a complete form of formulation of vector control maths, which is not dependent on commonly made assumptions, i.e. that the inductance is constant. This formulation is based on coefficients that vary with input values (current and voltage of the coils) or values describing the state of the system, such as mover position, velocity, or acceleration, inductance, temperature of the coils, or any other variable the state of the system composed of motor and mover. A machine learning method is optionally adopted to model the coefficients of the formulation as functions of the input values or the values describing the state of the system. The machine learning method may have different levels of complexity. A simple implementation may consist in fitting a polynomial of the input and state values onto the recorded coefficients, where a sensitivity analysis may be carried out to keep only the terms of the polynomial to which the coefficients have high sensitivity, e.g. response surface methodology. Alternatively, whenever analytical or empirical relations between coefficients and input or state values are known, such relations may serve as a basis to decide the form of the functions to fit. Similarly, a physics-based dynamic machine learning algorithm may be adopted, which reconstructs a dynamic surrogate model of the coefficients that emulates the dynamic variation of the coefficients for varying input or state values, wherein the dynamic approach may be in time or frequency domain. As an alternative application, a look-up table of the coefficients parametrized with the input or state values is also possible. Any of these procedures, or other fitting or machine-learning or look-up table procedures, or a mix of these, allow to obtain readily computable forms of the coefficients in the vector-control formulation once input values and state values are known. In the sequel, whenever machine learning is mentioned, any procedure such as those herein listed is implied. The vector-control formulation may be discretized in time through a first or higher-order scheme, and, generally, its solution may involve an implicit scheme which computes the coefficients for an initial guess of the state values, plugs them in the formulation, and iteratively obtains updated state values with increased accuracy. Accurate prediction of the state values can be carried out real-time as the methods herein described are computationally inexpensive. Moreover, it is possible to easily strike a balance between the frequency of assessment of the state variables and the accuracy of the prediction. High-frequency assessment is carried out several times per second, and the accuracy in time allows, for instance, to implement less iteration in the implicit scheme. On the other where the assessments are few, high accuracy of each assessment is expected. Optionally, the method may comprise obtaining a temperature value of the motor and applying the machine learning model to the temperature value. Some state values such as the temperature of the coils may be known through sensors, and they may be treated as parameters in the coefficients evaluations instead of values to solve for, that is, the present method can be fully or partially sensorless. The temperature value could be measured directly, or it could be received from a drive or motor. The temperature value may be a temperature of the one or more of the coils, ambient temperature or a combination. Returning to Figure 3, the predicted velocity may be passed to a position estimator 306 to predict the position ^^^^of the magnet array 101. Although these are shown separately in Figure 3, the machine learning model could instead be configured to predict both or either of the velocity and position of the magnet array 101. In a first implementation, the position may be determined by integration from the predicted velocity. In a second implementation, shown in Figure 5, the position may be computed by estimating the flux linkage 507 and the position error 508 to estimate the position 509. In Figure 5, the velocity estimator is not shown for ease of illustration. As can be seen from the figure, the flux linkage estimator 507 takes inputs of actual voltage and current in the D / Q axes as well as initial flux linkage values (at the previous step, time t0), to output the values of the flux linkage. The equation used is below: ^^^^^^^^^^^ ^^^^0 െ1 0 ^௧^^^ ^^^ ^^ ^^^ ^^Once the can be found in 508. The component of flux due to the magnet array in the D and Q axes is found by subtracting away the stator flux from total flux in each axis. The angle of the remaining flux is then used to find the position error. The equation is: ^^^^ ൌ t െ1 ொ െ ^^ொ^^ொ^ an ൬^^^ ^^^^^^^^^ௗ^ Once the position error (^^^) is can be estimated in 509, using the initial desired position (^^^∗). The equation is: ^^^^ ^^ ൌ^^^^^^∗ ^ ^^^^In a third implementation, the may be configured and trained to output a position value. In a similar manner to the velocity prediction above, the relevant parameters may be stored in a training data set alongside accurate position measurements of the carriage for each run (or simulation). Returning to Figure 3, the estimated position of the carriage may be passed to a control loop, illustrated in Figure 3 as comprising a set of modules 310, 311, 312, 313 and 314. The control loop receives as input the desired position ^^^∗, that is, the position that the carriage is to be moved to at the end of the time cycle and outputs the thrust value based on the predicted position and / or velocity. The desired position is converted to a desired position value (or desired commutation angle) using గ ఛ, shown at module 315. The difference between the estimated prediction ^^^^and the desired position ^^^∗is calculated at a difference block 310. This position error is then converted to an electrical angle error ^^ గ ^ using ఛ at a position to electrical conversion module 311. From there, a position controller 312 controller 313 may be configured to identify a desired position and / or desired velocity and calculate a desired force to be applied to the magnet array. The position controller biases the input velocity control loop to ensure the position error (^^^) is set to zero. If ^^^is negative, the magnet array lags the desired position and demand velocity increases slightly so that the position error ^^^tends to zero. The velocity controller compares the desired velocity (^^^∗) and estimated velocity (^^^^) and calculates a desired force (^^∗) to be applied to the magnet array, such that it will maintain desired velocity. The desired force is then converted to a desired thrust current value using ^ ி^^^ೞ^ೌ^^at a force conversion module 314. The new parameters ^^ொ∗, ^^^∗, and ^^^∗are then output to the VSD to control the magnet array and create the three phase voltage waveforms vu, vv, vw. ^^^∗may be set to 0. The whole process then repeats at the next time step with a new desired position, actual measured current and voltage values and the last known desired position value updated accurately to that output by the controller 304. The process may repeat so as to be faster than the response time of the system, that is each time cycle the parameters are adjusted or written. For example, the control may read, compute and write less than 62 µs and the system may have a dynamic response of <10 Hz. Reducing computation as proposed may also be beneficial as it may be less intensive resulting in cooler controllers and processors and more reliable systems. Although the implementation shows the prediction of velocity using machine learning, in an alternative implementation the desired thrust and desired position values may themselves be output by a suitable trained model from an input desired position and the actual current and voltage values. That is, a training data set could be to map the input position to the desired thrust and position values based on input actual current values. The model would then be configured to learn to predict the output values that would lead to this position. A reinforcement learning model may be particularly well suited for this problem and these features. In an alternative implementation, instead of predicting velocity using machine learning, the velocity may be predicted computationally, using a rate of change of flux linkage rather than assuming a constant inductance. The theory of synchronous motors gives three equations to estimate the voltages in in the motor in the dq0 reference frame. The fundamental equations are: ^^^^ ^^ ൌ ^^^ ௗௗ ^ௗ െ ^^^^^ ^^^^^ ^ where: ^^ is the resistance of the stator ^^ is the electrical frequency (2^^^^^) ^^ is the linked flux In the following to simplify the mathematics, assumptions are made that may not be necessary when computationally predicting velocity or position. The magnetic flux (^^) represents the magnetic field, inductance (^^) is a property of the coil that determines how much flux is produced per unit of current, and flux linkage (^^) is a measure of the total magnetic flux associated with the entire coil. The linked flux can we thought about in terms of inductances and magnet array flux: ^^ ൌ ^^^^ ൌ ^^ ൈ ^^ ^linearised^^^^^^ ^^^^ ^^^^ ∴for ^^ ൌ 0^ ^^ ൌ^^^^ൌ ^^^^^^ൌ ^^^^^^Assuming ^^^ ൌ 0 , the mutual inductances are negligible ( ^^ௗ^ ൌ 0 , so ^^ௗ isindependent of ^^^) and the magnet array flux is perfectly aligned with the d axis(^^^ ൌ ^^^ ൌ 0, ^^^ ∝ ^^^^ௗ ; ^^^ is the back EMF constant; ^^^ is magnet array flux),gives: ^^ ^^ௗ ൌ ^^ௗ^^ௗ ^ ^^^ ൌ ^^ௗ^^ௗ ^^^ ^^^ ^^^ ൌ 0This simplification also requires that the self-inductance of the d and q axis is constant and well defined. This is not the case for linear motors, especially when partially covered. Inputting into the original equations, gives: (Keis back EMF constant; v is velocity of magnet array) ^^^^ ^^ ൌ ^^^^ െ ^^ ௗௗ ௗ ^^^^^^ ^^^^^ ^ This gives a final ^^ௗ ൌ ^^^^ௗ െ ^^^^^^^^^^^ ൌ ^^^^^ ^ ^^^^ௗ^^ௗ ^ ^^^^^It is possible to use the voltage equations to find the flux linkage in the D and Q axes (or another frame that is not perfectly aligned with the rotor frame). This allows the load angle to be estimated using the relative components of the magnetarray flux (^^^ and ^^ொ), as if the frame is perfectly aligned with dq, ^^^ ൌ ^^^^^^(no back EMF component). An way of thinking about it is the position estimator 306 is using finding the ^^^that makes the back EMF component (^^^) fit only in the q-axis voltage (^^^), not in the d-axis. It is possible to run this logic within the Variable Speed Drive on a Field Programmable Gate Array, to close the loop on the drive by providing an “encoder” signal from the voltages automatically. According to principles herein, it has been proposed to go back to the rate of change of flux linkage when trying to measure the position of the rotor, rather than decompose into inductances and back EMFs as the system is unbalanced (as it is linear motor). This is because the inductances will change with position and load angle, whereas they are almost constant in a rotary synchronous motor. The flux linkages could be held in a lookup table. In a further implementation, the model may be trained to predict acceleration. To predict acceleration, the model may be trained on previous velocity values, i.e. velocity values over a time period. Acceleration may also be derived by differentiating predicted velocity over time. In an alternative implementation, the machine learning model may be configured to output the voltage values for the waveform instead of the variable speed drive performing conversion. Similarly, a controller may perform conversion instead of the VSD. It was noted above that the model used may be a mathematical formulation in addition to the machine learning techniques proposed. Instead, it is also proposed to use simplified mathematical formulations to describe the system, within a formation without simplifications. For example: ^^^^^௨, ^^௩ , ^^௪ , ^^௨, ^^௩, ^^௪, ^^௨, ^^௩ , ^^௪^ ൌ 0where ^^ is a system windings, currents, and flux linkages). According to the formulation, there may be more than three phases. ^^ and ^^ can be referred to as “input values” in the formulation, because they are always read and known as are measured on the coil windings. Other values may be referred to as “state values” since they describe the state of the system. They may be flux linkages or any other physical values which the flux linkage depends on, such as the position of the mover, temperature of the coils, resistance of the coils, mover mass, or anything else. The flux linkages are functions of the state variables: ^^ ൌ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^While several assumptions can be made for continuous motors to obtain the flux linkages promptly (the most common one being that of constant inductance), in the presently proposed concepts, such assumptions are not adopted but allow the flux linkages to vary with the state variables. It is proposed to adopt a model for the flux linkage, but this is general, and it may be obtained through machine learning, it may carry out a sensitivity analysis to select only the high-sensitivity state variables, or it may adopt a form know a priori with coefficients fitted through experiments. As noted, machine learning is only one contemplated method, and machine learning per se is not essential. Machine learning is referred to a class of procedures in general. In brief, it is proposed to create a surrogate model for the flux linkages. Figure 6 illustrates a sample flow diagram of a method according to the present disclosure. At steps 601 and 602, sets of current and voltage values are obtained. The values may be based on measurements taken of actual current and voltage in the coils of a motor. From these values, at step 603, a velocity, acceleration and / or position of a mover is predicted. Input parameters are calculated at step 604 from control of the motor. Optionally, at step 605, those input parameters are output to a variable speed drive to control the motor. In a particularly advantageous use of the disclosure, both in addition to the above and separate to it, it may be possible to predict the mass of each carriage passing over the motor. As above, the acceleration could be predicted by a similar method to that which predicts the velocity or by differentiation of that velocity. It isproposed to work out the force using the equation: ^^ ൌ ^^^ ^^ொ cos ^^^, where ^^^ isthe difference in degrees between the dq axes (defined by the magnet array) and the DQ axes (defined by the Variable Speed Drive (VSD)) and ^^^is assumed tobe 0. Using this equation alongside ^^ ൌ ^^^^ the two can be combined to find thetotal mass of a carriage and payload. As the mass of the carriage is known, the mass of the payload for any carriage can be determined. It is assumed that drag forces are relatively minor in comparison to electromagnetic forces, especially at low speeds and during high acceleration conditions. The initial assumption neglecting drag forces can be revised by considering the estimation of drag forces as depicted in Figure 1D. It is also proposed to compare the measured set of currents, voltages and predicted position to an electromagnetic model to get a predicted force. This could be a look-up table of simulated values, or a computational model. This would becompared to the predicted acceleration to find the mass using ^^ ൌ ^^^^. The airresistance and rolling resistance may also be taken into account. In conclusion, the above-described concepts allow a device to control accurately and efficiently discontinuous motors. However, not only that, but the concepts also allow the control to be implemented in “simple” and “cheap” hardware that can be connected to the motors, because a surrogate model for state variables leads to a formulation that can be solved implicitly at any time step. This formulation solves for the unknown state variable (like mover position) that the control procedure needs. No sensors are needed, thus making it cheap, and the method is not computationally demanding, thus allowing for real-time control with cheap hardware. Methods and processes described herein can be embodied as code (e.g., software code) and / or data. Such code and data can be stored on one or more computer-readable media, which may any device or medium that can store code and / or data for use by a computer system. For example, on a local controller controlling one or more Variable Speed Drives, on the Variable Speed Drive, or remotely at a central server or in the cloud. Similarly, tasks may be split across different entities. When a computer system reads and executes the code and / or data stored on a computer-readable medium, the computer system performs the methods and processes embodied as data structures and code stored within the computer- readable storage medium. In certain embodiments, one or more of the steps of the methods and processes described herein can be performed by a processor (e.g., a processor of a computer system or data storage system). It should be appreciated by those skilled in the art that computer-readable media include removable and non-removable structures / devices that can be used for storage of information, such as computer-readable instructions, data structures, program modules, and other data used by a computing system / environment. A computer- readable medium includes, but is not limited to, volatile memory such as random access memories (RAM, DRAM, SRAM); and non-volatile memory such as flash memory, various read-only-memories (ROM, PROM, EPROM, EEPROM), magnetic and ferromagnetic / ferroelectric memories (MRAM, FeRAM), and magnetic and optical storage devices (hard drives, magnetic tape, CDs, DVDs); network devices; or other media now known or later developed that is capable of storing computer-readable information / data. Computer-readable media should not be construed or interpreted to include any propagating signals.
[0002] The following table presents terms interchangeably to aid the skilled reader. Preferred Term Alternatives Description Coils Windings, Primary The stationary current Windings carrying conductors wound in a coil and inserted into a toothed block of steel laminations to produce a travelling magnetic wave. Stator Stator section; motor The combination of the coils and steel laminations encased in a resin block to provide additional mechanical protection and electrical insulation. Magnet array Mover, secondary, rotor The array / series of magnets of alternating magnetic poles mounted underneath the carriage. Desired value Set point; target value The desired or target value that a control system aims to achieve and maintain. The following terms may be used ^^^Magnet array position ^^^Magnet array velocity ^^^Stator position ^^^Reference angle (electrical angle of the magnet array axis) u, v, w Three phase stationary axes iu, iv, iwRaw phase currents in the stationary reference frame vu, vv, vwThree phase voltages in the stationary reference frame dq Rotating axes aligned with magnet array reference frame DQ Rotating axes aligned with VSD reference frame id, iqCurrents in the dq reference frame iD, iQCurrents in the DQ reference frame ^^ௗ^Magnet array load angle ^^^ொVSD load angle ^^^^Predicted position ^^^Position error ^^^Position error angle ^^^∗^ Desired Force ^^^∗Desired Position ^^^∗Desired Velocity ^^^∗Desired D-axis current value, typically set to 0 ^^ொ∗Desired thrust current value ^^^∗Desired commutation angle / position value MMF Magnetomotive Force VSD Variable Speed Drive ^^^Back EMF Constant ^^ mover ^^ stator ∗ desired ^ predicted e error
Claims
CLAIMS 1. A method of controlling a discontinuous linear motor system comprising a mover and a motor, the method comprising: obtaining a set of current values representing current flowing through coils of the motor, wherein a reaction plate of the mover is in a position relative to the coils; obtaining a set of voltage values representing voltage present over the coils; predicting a velocity, acceleration and / or the position of the mover from the set of current values and the set of voltage values; and, calculating input parameters for control of the motor to move the mover to a desired velocity, based on the prediction.
2. A method according to claim 1, wherein the sets of current and voltage values are values in a rotating reference frame.
3. A method according to claim 1, wherein the sets of current and voltage values are three-phase values in a stationary reference frame.
4. A method according to claim 2, further comprising: deriving the sets of current and voltage values in the rotating reference frame from a measured respective set of three-phase current and voltage values in a stationary reference frame using an estimated commutation angle.
5. A method according to any preceding claim, wherein the step of predicting comprises: applying a trained machine learning model to the sets of current and voltage values, wherein the trained model is configured to output a velocity, acceleration, or position value of the mover.
6. A method according to claim 5, further comprising: obtaining an initial commutation angle value representative of a position value used to supply power to the coils and applying the trained machine learning model to the initial commutation angle.
7. A method according to claim 6, further comprising: obtaining an inductance value of the motor and applying the trained machine learning model to the inductance value.
8. A method according to any of claims 5 to 7, further comprising: obtaining a resistance value of the motor and applying the trained machine learning model to the resistance value.
9. A method according to any of claims 5 to 8, further comprising: obtaining an initial thrust value representative of an initial current value used to supply power to the coils and applying the trained machine learning model to the initial thrust value.
10. A method according to any of claims 5 to 9, further comprising: obtaining a temperature value of the motor and applying the machine learning model to the temperature value.
11. A method according to any of claims 1 to 4, wherein the step of predicting a velocity, acceleration and / or the position comprises: computationally solving for the velocity from the set of current and voltage values.
12. A method according to any of claims 1 to 4, wherein the step of predicting a velocity, acceleration and / or the position comprises: applying a surrogate model to the sets of current and voltage values as input values and a set of state values representing a state of the system, wherein the surrogate model is configured to model flux linkage as a function of the state values of the system to predict a velocity, acceleration and / or the position of the mover.
13. A method according to any preceding claim, wherein the input parameters comprise a current value and a commutation angle value representative of a target position of the mover.
14. A method according to any preceding claim, comprising:predicting a velocity of the from the set of current values and the set of voltage values; predicting a position of the mover from the velocity and, calculating input parameters for control of the motor to move the mover to a target velocity, based on the predicted position.
15. A method according to claim 14, wherein predicting a position of the mover comprises: estimating flux linkage and error angle from the set of current and voltage values, without assuming a constant inductance.
16. A method according to any preceding claim, wherein calculating the input parameters comprises: comparing a predicted position of the mover and a desired position to determine an error position value; and, calculating at least some of the input parameters based on the error position value.
17. A method according to any preceding claim, further comprising: predicting a velocity of the mover from the set of current values and the set of voltage values; and, deriving a predicted acceleration from the predicted velocity.
18. A method according to any of claims 1 to 16, further comprising: predicting a velocity of the mover from the set of current values and the set of voltage values; and, deriving a predicted acceleration from the predicted velocity, or predicting an acceleration from the set of current values and the set of voltage values, wherein the method further comprises: predicting a mass of each mover from the predicted acceleration.
19. A method according to any preceding claim, further comprising: outputting the input parameters to a variable speed drive arranged to receive the input parameters and convert and regulate power to the motor according to the input parameters.
20. A method according to any claim, further comprising: controlling the motor in a generating operating mode.
21. A motor controller configured to calculate input parameters for a linear motor and configured to perform the method of any preceding claim.
22. A method of training a machine learning model, the method comprising: collating a training data set comprising a plurality of input features comprising at least: a measured set of current values representing current flowing through coils of a motor of a discontinuous linear motor system; and, a measured set of voltage values representing voltage present over the coils; associating each of the plurality of input features with a respective measured velocity value of a mover travelling over the coils at a time the input features were measured; and, applying a machine learning model to the training data set to learn to map input features to a velocity value.
23. A computer readable medium comprising instructions which when executed cause the computer to perform the method of any of claims 1 to 20 or 22.
Citation Information
Patent Citations
Animal identifiers
WO2004017723A1
Distributed linear motor system
WO2012056842A1
Control method for vertical operation magnetic flux switching permanent magnet linear motor on uplink and downlink without position sensors
CN110417320A
Stator discontinuous linear motor control system based on sectional control algorithm
CN112803859A
Control method and device for boosting emission of permanent magnet synchronous linear motor and medium
CN114123883A
Cited By
Motor detection method and device, electronic equipment and storage medium
CN121283276A
Aero-engine on-wing thrust evaluation method
CN121389818A