Submit manuscript...
eISSN: 2576-4500

Aeronautics and Aerospace Open Access Journal

Research Article Volume 1 Issue 2

Customized processor architecture for model predictive control in magnetic actuated small satellites

Xiaofeng Wu, Yijun Huang, Jordan Jolly

School of Aerospace, University of Sydney, Australia

Correspondence: Xiaofeng Wu, School of Aerospace, Mechanical & Mechatronic Engineering, University of Sydney, NSW 2006, Australia

Received: May 15, 2017 | Published: July 21, 2017

Citation: Wu X, Huang Y, Jolly. Customized processor architecture for model predictive control in magnetic actuated small satellites. Aeron Aero Open Access J. 2017;1(2):53-62. DOI: 10.15406/aaoaj.2017.01.00007

Download PDF

Abstract

Future spacecraft are envisioned as autonomous, miniature, and intelligent space systems. This paper describes the design and implementation of a model predictive control (MPC) system for satellite attitude control. The MPC algorithm is designed to successfully deal with constraints due to the small control torque given by magnetic torques and the Earth’s magnetic field. Laguerre functions are proposed to simplify the implementation of the MPC controller for on-line computation. A control system processor is designed as a peripheral hard core of the system-on-chip for satellite on-board data handling. Targeting the FPGA technology, this processor runs up to 120 MHz.

Keywords: satellite dynamics, nanosatellites, matlab simulations, magnetorquers, vernal equinox direction, orthogonal triad, quaternion method, attitude transformation matrix, euler angle, laguerre functions, hildreth’s quadratic programming, xilinx virtex-4, fpga technology, accumulator

Abbreviations

MPC, model predictive control; FPGA, field programmable gate array; MPQPs, multi parametric quadratic programs; CSP, control system processor; MAC, multiply and accumulation; SoC, system-on-chip; OBDH, on board data handling system; MPCSP, model predictive control processor; ECI, earth centred inertial; MIMO, multiple input, multiple output; AMBA, advanced microcontroller bus architecture

Introduction

Conventional satellite systems are designed and purpose built over many years with significant expense and undertaking, with the result that the technology is obsolete by the time of launch. However, a new approach to satellite development which builds upon the rapid changes in computer hardware technology is quickly taking place around the world within university and government research labs. The development of what is known as nano satellites, with typical mass less than 10kg, is quickly transforming the Space development scene as it allows engineering and science researchers to send into orbit various payloads within a short time at low cost. In particular, in the last 10 years many universities like Stanford1 have carried out university satellite programs, and nano satellites have been built and successfully launched into space. Such small satellite can be controlled by various actuation methods, including thrusters, reaction wheels, magnetic torquers, or a combination of above. Currently electromagnetic actuator is the most effective approach, and has been adopted for many nano satellite missions, e.g. the CanX-1,2 AAUSat,3 Compass One4 and so on.

The magnetic torquer interacts with the earth’s own magnetic field in order to generate a control torque acting on spacecraft. An advantage of magnetic torquers is that they require no fuel and so have virtually unlimited life. They do of course require electrical power, but there is no exhaust pollutant and by providing a couple they are not sensitive to movement of the centre of mass. One drawback of this control technique is that the torques which can be applied to the spacecraft for attitude control purposes are constrained to lie in the plane orthogonal to earth magnetic field, and hence the satellite is under-actuated. In the equatorial plane, the magnetic field line always lie horizontally, north-south. Consequently a spacecraft whose orbit lies in this plane cannot use magnetic torquers to counteract the north-south component of their disturbance torque, or to dump this component of momentum. For an inclined orbit, suitable variation of the magnetic field allows controllability in the long term, but presents a significant challenge from a control perspective.5

A novel approach to the magnetic attitude control problem, based on Model predictive control has been demonstrated as a suitable candidate in many literatures6 presents a thorough review of the area of magnetic control, and develops a closed form solution for MPC based controller under the constraints of earth’s magnetic field. The author also points out that the optimal solution cannot be given in closed form if the constraints on the coils’ magnetic dipoles become active. The systemic method to deal with these equality and inequality constraints in MPC is to operate online quadratic programming.7 However, it has recently been shown that a great deal of the computational effort in traditional MPC can be done offline. Algorithms have been presented for solving multi-parametric quadratic programs (MPQPS) that are used to obtain explicit solutions to the MPC problem. Thus, the explicit model predictive controller accomplishes online MPC functionality without solving an optimization problem at each time step.8 Ref.9 investigates MPC for attitude control using magnetic torque rod. The design is carried out based on the closed form solution for MPC based attitude controller when considering the Earth’s magnetic field. Ref.9 further develops a MPC based magnetic controller to deal with the problem of Low Earth orbiting satellites attitude control under significant disturbances from the external environment including aerodynamic forces, gravity gradient torques and residual magnetic dipoles. However, except the constraint in the Earth’s magnetic field, for Nano satellites the magnetic coil provides very small torque (in the order of 10-9 N-m). Hence, both the actuator saturation and the Earth’s magnetic field constraints should be considered in MPC algorithm design.

The MPC algorithm results in very complex matrix operations, which limit its feasibility for small satellites. In real-time control, to execute extremely fast control laws for feedback systems, a control system processor (CSP) was designed.10,11 The excellent performance of the CSP is achieved by implementing simple mixed data formation, with 24-bit fixed point data for state variables and 11-bit low precision floating data for coefficients. The CSP takes advantage of single processing element, i.e. multiply and accumulation (MAC) to execute all the arithmetic operation. In,12 another dedicated control system processor was developed based on 1-bit processing.13 In this processor architecture, no multiply operation is required, which greatly increased the hardware performance in terms of power, area and speed. In this paper, to effectively implement the MPC, the controller structure is simplified using Laguerre functions.14 At the same time, a system-on-chip (SoC) is proposed for the satellite on-board data handling system (OBDH). This paper presents an innovative model predictive control system processor (MPCSP) as a peripheral hardcore of the SoC for satellite attitude control. The MPCSP is a very efficient design in terms of power, area and speed for real-time control.

The remaining paper is organised as follows. In section 2 three basic reference frames used in satellite attitude control are introduced first, followed by a description of satellite attitude dynamics. Secondly, a linearised dynamic model is presented in Euler angle method. At the end of this section, Earth’s magnetic field model is demonstrated and some constraints on control torque are discussed. Section 3proposes a novel MPC approach using Discrete-time Laguerre networks in magnetic attitude control problem. Section 4 introduces the MPCSP design. Section 5 presents the simulation results for attitude control of a student-built Nano satellite. Section 6 concludes.

Satellite dynamics

Reference frames

Earth Centred Inertial (ECI) reference frame: The origin of these axes is in the Earth’s centre. The X axis is parallel to the line of nodes, which is the intersection between the Earth’s equatorial plane and the plane of the ecliptic, and is positive in the Vernal equinox direction (Aries point). The Z axis is defined as being parallel to the Earth’s Geographic north-south axis and pointing north. The Y axis completes the right-handed orthogonal triad.

Orbit reference frame: The origin of this orbit reference frame moves with the cm (centre of mass) of the satellite in the orbit. The Z axis points toward the cm of the earth. The X axis is in the plane of the orbit, perpendicular to the Z axis, in the direction of the velocity of the satellite. The Y axis is normal to the local plane of the orbit, and completes a three-axis right-hand orthogonal system. Satellite body reference frame: The origin of this reference frame is in the satellite centre of mass; the axes are assumed to coincide with the body’s principal inertial axes.

Spacecraft nonlinear attitude model

The attitude dynamic equations are obtained from Euler’s moment equation as follows.15

h = ω sb / ECI B × h + T MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaWGOb Gaeyypa0JaeyOeI0IaeqyYdCxcfa4aa0baaKqaGeaajugWaabaaaaa aaaapeGaae4CaiaabkgacaGGVaGaaeyraiaaboeacaqGjbaajeaipa qaaKqzadGaamOqaaaajugibiabgEna0kaadIgacqGHRaWkcaWGubaa aa@49BE@ (1)

Where h = ω sb / ECI B × h + T R 3 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaWGOb Gaeyypa0JaeyOeI0IaeqyYdCxcfa4aa0baaKazba4=baqcLbmaqaaa aaaaaaWdbiaabohacaqGIbGaai4laiaabweacaqGdbGaaeysaaqcKf aG==aabaqcLbmacaWGcbaaaKqzGeGaey41aqRaamiAaiabgUcaRiaa dsfacaaMc8UaeyicI4SaamOuaKqbaoaaCaaabeqcKvaq=haajugWai aaiodaaaaaaa@5576@ , is angular velocity vector of satellite body reference frame with respect to inertial reference frame, expressed in satellite body reference frame, h is angular momentum vector of the entire system, expressed in satellite body system. h denotes differentiation of h in the body frame and T is the sum of external torques.

For a rigid satellite, h = I ω , MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIgacqGH9aqpcaWGjbGaeqyYdCNaaiilaaaa@3BE3@ where I is the satellite inertia matrix expressed in the body frame, so the attitude dynamic equations reduce to well-known form

I ω ˙ sb/ECI B = sb/ECI B × I sb/ECI B +T MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaWGjb aeaaaaaaaaa8qaceqGjpWdayaacaqcfa4aa0baaKazba4=baqcLbma peGaae4CaiaabkgacaGGVaGaaeyraiaaboeacaqGjbaajqwaa+=dae aajugWaiaadkeaaaqcfaOaeyypa0JaeyOeI0Yaa0baaKazba4=baqc LbmapeGaae4CaiaabkgacaGGVaGaaeyraiaaboeacaqGjbaajqwaa+ =daeaajugWaiaadkeaaaqcLbsacqGHxdaTcaWGjbqcfa4aa0baaKaz ba4=baqcLbmapeGaae4CaiaabkgacaGGVaGaaeyraiaaboeacaqGjb aajqwaa+=daeaajugWaiaadkeaaaqcfaOaey4kaSIaamivaaaa@66A6@ (2)

ω orb / ECI B = A ( q ) [ 0 ω 0 0 ] MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM8al8aadaqhaaqcbasaaKqzadWdbiaab+gacaqGYbGa aeOyaiaac+cacaqGfbGaae4qaiaabMeaaKqaG8aabaqcLbmapeGaae Oqaaaajugib8aacqGH9aqpcaWGbbGaaiikaiaacghacaGGPaqcfa4d bmaadmaak8aabaqcLbsafaqabeWabaaakeaajugib8qacaaIWaaak8 aabaqcLbsapeGaeyOeI0IaaeyYdKqba+aadaWgaaqcbasaaKqzadWd biaaicdaaSWdaeqaaaGcbaqcLbsapeGaaGimaaaaaOGaay5waiaaw2 faaaaa@526A@ (3)

where ω 0 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM8ajuaGpaWaaSbaaKqaGeaajugWa8qacaaIWaaal8aa beaaaaa@3AEE@ is the orbital angular rate, A(q) is the attitude matrix with respect to the orbital reference frame and ω orb / ECI B R 3 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM8al8aadaqhaaqcKfaG=haajugWa8qacaqGVbGaaeOC aiaabkgacaGGVaGaaeyraiaaboeacaqGjbaajqwaa+=daeaajugWa8 qacaqGcbaaaKqzGeWdaiabgIGiolaadkfajuaGdaahaaadbeqccasa aKqzadGaaG4maaaaaaa@4AFE@ is angular velocity vector of orbit reference frame with respect to inertial reference frame, expressed in satellite body reference frame. For earth pointing satellite, we always consider the orbit reference frame as an attitude reference, so that

ω sb / orb B = ω sb / ECI B A ( q ) [ 0 ω 0 0 ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM8al8aadaqhaaqcbasaaKqzadWdbiaabohacaqGIbGa ai4laiaab+gacaqGYbGaaeOyaaqcbaYdaeaajugWa8qacaqGcbaaaK qzGeGaeyypa0JaaeyYdSWdamaaDaaajeaibaqcLbmapeGaae4Caiaa bkgacaGGVaGaaeyraiaaboeacaqGjbaajeaipaqaaKqzadWdbiaabk eaaaqcLbsacqGHsislcaqGbbqcfa4aaeWaaOWdaeaajugib8qacaqG XbaakiaawIcacaGLPaaajuaGdaWadaGcpaqaaKqzGeqbaeqabmqaaa GcbaqcLbsapeGaaGimaaGcpaqaaKqzGeWdbiabgkHiTiaabM8ajuaG paWaaSbaaKqaGeaajugWa8qacaaIWaaal8aabeaaaOqaaKqzGeWdbi aaicdaaaaakiaawUfacaGLDbaaaaa@5EDD@ (4)

Where ω sb / orb B R 3 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM8ajuaGpaWaa0baaKqaGeaajugWa8qacaqGZbGaaeOy aiaac+cacaqGVbGaaeOCaiaabkgaaKqaG8aabaqcLbmapeGaaeOqaa aajugibiabgIGiolaabkfajuaGpaWaaWbaaSqabKqaGeaajugWa8qa caaIZaaaaaaa@4789@ , is angular velocity vector of satellite body reference frame with respect to orbit reference frame, expressed in satellite body reference frame. When the satellite has the desired attitude, the satellite body reference frame must remain aligned with orbit reference frame.

Linearised attitude dynamics model

The Laguerre MPC control algorithm requires a linearized dynamic model. It should be pointed out that in the derivation of the linearized attitude dynamics model, we assume a circular orbit for the satellite we also assume the inertia matrix is diagonal.

Besides quaternion method, attitude transformation matrix can be expressed with Euler angle ( ϕ , θ , ψ ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaGGOa Gaeqy1dyMaaiilaiabeI7aXjaacYcacqaHipqEcaGGPaaaaa@3E8A@ . The roll angle ( ϕ ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaGGOa Gaeqy1dyMaaiykaaaa@39A6@ is defined as a rotation about the x body axis, the pitch angle (θ) about the y body axis, and the yaw angle ( ψ ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaGGOa GaeqiYdKNaaiykaaaa@39AC@ about the z body axis. Assuming small variation of the Euler angles, the attitude transformation matrix becomes:

[ Α α β λ ] [ 1 ψ θ ψ 1 ϕ θ ϕ 1 ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaWadaGcpaqaaKqzGeWdbiabfg5abLqba+aadaWgaaqcbasa aKqzadGaeqySdeMaeqOSdiMaeq4UdWgaleqaaaGcpeGaay5waiaaw2 faaKqzGeGaeyisISBcfa4aamWaaOWdaeaajugibuaabeqadmaaaOqa aKqzGeWdbiabggdaXaGcpaqaaKqzGeWdbiabeI8a5bGcpaqaaKqzGe WdbiabgkHiTiabeI7aXbGcpaqaaKqzGeWdbiabeI8a5bGcpaqaaKqz GeWdbiabggdaXaGcpaqaaKqzGeWdbiabew9aMbGcpaqaaKqzGeWdbi abeI7aXbGcpaqaaKqzGeWdbiabgkHiTiabew9aMbGcpaqaaKqzGeWd biabggdaXaaaaOGaay5waiaaw2faaaaa@5D0C@ (6)

And one also obtains that:

ϕ ˙ ω sb / orbx B , θ ˙ ω sb / orby B , ψ ˙ ω sb / orbz B MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiqbew9aM9aagaGaa8qacqGHijYUcaqGjpqcfa4damaaDaaa jeaibaqcLbmapeGaae4CaiaabkgacaGGVaGaae4BaiaabkhacaqGIb GaaeiEaaqcbaYdaeaajugWa8qacaqGcbaaaKqzGeGaaiilaiqabI7a paGbaiaapeGaeyisISRaaeyYdKqba+aadaqhaaqcbasaaKqzadWdbi aabohacaqGIbGaai4laiaab+gacaqGYbGaaeOyaiaabMhaaKqaG8aa baqcLbmapeGaaeOqaaaajugibiaacYcaceqGipWdayaacaWdbiabgI Ki7kaabM8ajuaGpaWaa0baaKqaGeaajugWa8qacaqGZbGaaeOyaiaa c+cacaqGVbGaaeOCaiaabkgacaqG6baajeaipaqaaKqzadWdbiaabk eaaaaaaa@671B@

So Eq. 4 becomes

ω s b / E C I Β = ω s b / o r b Β + [ Α α β γ ] [ 0 ω 0 0 ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabeM8a3TWdamaaDaaajeaibaqcLbmapeGaam4Caiaadkga caGGVaGaamyraiaadoeacaWGjbaajeaipaqaaKqzadWdbiabfk5acb aajugibiabg2da9iabeM8a3TWdamaaDaaajeaibaqcLbmapeGaam4C aiaadkgacaGGVaGaam4BaiaadkhacaWGIbaajeaipaqaaKqzadWdbi abfk5acbaajugibiabgUcaRKqbaoaadmaak8aabaqcLbsapeGaeuyK deucfa4damaaBaaajeaibaqcLbmapeGaeqySdeMaeqOSdiMaeq4SdC gal8aabeaaaOWdbiaawUfacaGLDbaajuaGdaWadaGcpaqaaKqzGeqb aeqabmqaaaGcbaqcLbsapeGaeyimaadak8aabaqcLbsapeGaeyOeI0 IaeqyYdCxcfa4damaaBaaajeaibaqcLbmapeGaeyimaadal8aabeaa aOqaaKqzGeWdbiabgcdaWaaaaOGaay5waiaaw2faaaaa@6978@ (7)

With these assumptions in (6), (7) becomes

ω ˙ sb / ECIx B = ϕ ¨ ψ ˙ ω 0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiqabM8apaGbaiaajuaGdaqhaaqcbasaaKqzadWdbiaaboha caqGIbGaai4laiaabweacaqGdbGaaeysaiaabIhaaKqaG8aabaqcLb mapeGaaeOqaaaajugibiabg2da9iqbew9aM9aagaWaa8qacqGHsisl ceqGipWdayaacaWdbiaabM8ajuaGpaWaaSbaaKqaGeaajugWa8qaca aIWaaal8aabeaaaaa@4C76@

ω ˙ sb / ECIy B = θ ¨ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiqabM8apaGbaiaajuaGdaqhaaqcbasaaKqzadWdbiaaboha caqGIbGaai4laiaabweacaqGdbGaaeysaiaabMhaaKqaG8aabaqcLb mapeGaaeOqaaaajugibiabg2da9iqabI7apaGbamaaaaa@4531@

ω ˙ sb / ECIz B = ψ ¨ + ϕ ˙ ω 0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiqabM8apaGbaiaajuaGdaqhaaqcbasaaKqzadWdbiaaboha caqGIbGaai4laiaabweacaqGdbGaaeysaiaabQhaaKqaG8aabaqcLb mapeGaaeOqaaaajugibiabg2da9iqabI8apaGbamaapeGaey4kaSIa fqy1dy2dayaacaWdbiaabM8ajuaGpaWaaSbaaKqaGeaajugWa8qaca aIWaaal8aabeaaaaa@4C6D@

Finally, the satellite attitude dynamics are approximated well by a linear model.16

x ˙ = Ax + [ 0 3 , 3 I 1 ] ( T d + T c ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiqabIhapaGbaiaapeGaeyypa0JaaeyqaiaabIhacqGHRaWk juaGdaWadaGcpaqaaKqzGeqbaeqabiqaaaGcbaqcLbsapeGaaGimaK qba+aadaWgaaqcbasaaKqzadWdbiaaiodacaGGSaGaaG4maaWcpaqa baaakeaajugib8qacaqGjbqcfa4damaaCaaaleqajeaibaqcLbmape GaeyOeI0IaaGymaaaaaaaakiaawUfacaGLDbaajuaGdaqadaGcpaqa aKqzGeWdbiaabsfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGKbaal8 aabeaajugib8qacqGHRaWkcaqGubqcfa4damaaBaaajeaibaqcLbma peGaae4yaaWcpaqabaaak8qacaGLOaGaayzkaaaaaa@5630@ (9)

Where,

Α = ( 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 4 ω 0 2 σ 1 0 0 0 0 ω 0 ( 1 σ 1 ) 0 3 ω 0 2 σ 2 0 0 0 0 0 0 ω 0 2 σ 3 ω 0 ( 1 + σ 3 ) 0 0 ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacqqHro qqcqGH9aqpjuaGdaqadaGcbaqcLbsafaqabeGbgaaaaaGcbaqcLbsa cqGHWaamaOqaaKqzGeGaeyimaadakeaajugibiabgcdaWaGcbaqcLb sacqGHXaqmaOqaaKqzGeGaeyimaadakeaajugibiabgcdaWaGcbaqc LbsacqGHWaamaOqaaKqzGeGaeyimaadakeaajugibiabgcdaWaGcba qcLbsacqGHWaamaOqaaKqzGeGaeyymaedakeaajugibiabgcdaWaGc baqcLbsacqGHWaamaOqaaKqzGeGaeyimaadakeaajugibiabgcdaWa GcbaqcLbsacqGHWaamaOqaaKqzGeGaeyimaadakeaajugibiabggda XaGcbaqcLbsaqaaaaaaaaaWdbiabgkHiTiabgsda0iabeM8a3Lqba+ aadaqhaaqcKfaG=haajugWa8qacqGHWaamaKazba4=paqaaKqzadWd biabgkdaYaaajugibiabeo8aZLqba+aadaWgaaqcKfaG=haajugWa8 qacqGHXaqmaSWdaeqaaaGcbaqcLbsacqGHWaamaOqaaKqzGeGaeyim aadakeaajugibiabgcdaWaGcbaqcLbsacqGHWaamaOqaaKqzGeWdbi abeM8a3Lqba+aadaWgaaqcKfaG=haajugWa8qacqGHWaamaSWdaeqa aKqba+qadaqadaGcpaqaaKqzGeWdbiabggdaXiabgkHiTiabeo8aZL qba+aadaWgaaqcKfaG=haajugWa8qacqGHXaqmaSWdaeqaaaGcpeGa ayjkaiaawMcaaaWdaeaajugibiabgcdaWaGcbaqcLbsapeGaey4mam JaeqyYdCxcfa4damaaDaaajqwaa+FaaKqzadWdbiabgcdaWaqcKfaG ==aabaqcLbmapeGaeyOmaidaaKqzGeGaeq4Wdmxcfa4damaaBaaajq waa+FaaKqzadWdbiabgkdaYaWcpaqabaaakeaajugibiabgcdaWaGc baqcLbsacqGHWaamaOqaaKqzGeGaeyimaadakeaajugibiabgcdaWa GcbaqcLbsacqGHWaamaOqaaKqzGeGaeyimaadakeaajugib8qacqaH jpWDjuaGpaWaa0baaKazba4=baqcLbmapeGaeyimaadajqwaa+=dae aajugWa8qacqGHYaGmaaqcLbsacqaHdpWCjuaGpaWaaSbaaKazba4= baqcLbmapeGaey4mamdal8aabeaaaOqaaKqzGeWdbiabgkHiTiabeM 8a3Lqba+aadaWgaaqcKfaG=haajugWa8qacqGHWaamaSWdaeqaaKqb a+qadaqadaGcpaqaaKqzGeWdbiabggdaXiabgUcaRiabeo8aZLqba+ aadaWgaaqcKfaG=haajugWa8qacqGHZaWmaSWdaeqaaaGcpeGaayjk aiaawMcaaaWdaeaajugibiabgcdaWaGcbaqcLbsacqGHWaamaaaaki aawIcacaGLPaaaaaa@CCDC@

X = [ ϕ θ ψ ω s b / o r b x Β ω s b / o r b y Β ω s b / o r b x z Β ] Τ MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIfacqGH9aqpjuaGdaWadaGcpaqaaKqzGeWdbiabew9a MjaaykW7cqaH4oqCcaaMc8UaeqiYdKNaaGPaVlabeM8a3Lqba+aada qhaaqcbasaaKqzadWdbiaadohacaWGIbGaai4laiaad+gacaWGYbGa amOyaiaadIhaaKqaG8aabaqcLbmapeGaeuOKdieaaKqba+aacaaMc8 EcLbsapeGaeqyYdCxcfa4damaaDaaajeaibaqcLbmapeGaam4Caiaa dkgacaGGVaGaam4BaiaadkhacaWGIbGaamyEaaqcbaYdaeaajugWa8 qacqqHsoGqaaqcfa4daiaaykW7jugib8qacqaHjpWDjuaGpaWaa0ba aKqaGeaajugWa8qacaWGZbGaamOyaiaac+cacaWGVbGaamOCaiaadk gacaWG4bGaamOEaaqcbaYdaeaajugWa8qacqqHsoGqaaaakiaawUfa caGLDbaajuaGpaWaaWbaaSqabKqaGeaajugWa8qacqqHKoavaaaaaa@7787@

Where Td is disturbance torque which is considered as zero in this paper, T c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabsfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGJbaal8aa beaaaaa@3AA3@ is control torque and

σ 1 = ( I y I z ) I x , σ 2 = ( I z I x ) I y , σ 1 = ( I x I y ) I z MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabo8ajuaGpaWaaSbaaKqaGeaajugWa8qacaaIXaaal8aa beaajugib8qacqGH9aqpjuaGdaWcaaGcpaqaaKqba+qadaqadaGcpa qaaKqzGeWdbiaabMeajuaGpaWaaSbaaKqaGeaajugWa8qacaqG5baa l8aabeaajugib8qacqGHsislcaqGjbqcfa4damaaBaaajeaibaqcLb mapeGaaeOEaaWcpaqabaaak8qacaGLOaGaayzkaaaapaqaaKqzGeWd biaabMeajuaGpaWaaSbaaKqaGeaajugWa8qacaqG4baal8aabeaaaa qcLbsapeGaaiilaiaabo8ajuaGpaWaaSbaaKqaGeaajugWa8qacaaI Yaaal8aabeaajugib8qacqGH9aqpjuaGdaWcaaGcpaqaaKqba+qada qadaGcpaqaaKqzGeWdbiaabMeajuaGpaWaaSbaaKqaGeaajugWa8qa caqG6baal8aabeaajugib8qacqGHsislcaqGjbqcfa4damaaBaaaje aibaqcLbmapeGaaeiEaaWcpaqabaaak8qacaGLOaGaayzkaaaapaqa aKqzGeWdbiaabMeajuaGpaWaaSbaaKqaGeaajugWa8qacaqG5baal8 aabeaaaaqcLbsapeGaaiilaiaabo8ajuaGpaWaaSbaaKqaGeaajugW a8qacaaIXaaal8aabeaajugib8qacqGH9aqpjuaGdaWcaaGcpaqaaK qba+qadaqadaGcpaqaaKqzGeWdbiaabMeajuaGpaWaaSbaaKqaGeaa jugWa8qacaqG4baal8aabeaajugib8qacqGHsislcaqGjbqcfa4dam aaBaaajeaibaqcLbmapeGaaeyEaaWcpaqabaaak8qacaGLOaGaayzk aaaapaqaaKqzGeWdbiaabMeajuaGpaWaaSbaaKqaGeaajugWa8qaca qG6baal8aabeaaaaaaaa@8106@ .

Magnetic attitude control

The controlling torque acting on spacecraft is produced by the interaction between a magnetic moment generated within a spacecraft and the earth’s magnetic field:

T C = m × b MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabsfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGdbaal8aa beaajugib8qacqGH9aqpcaqGTbGaey41aqRaamOyaaaa@4016@ (10)

Where m is the generated magnetic moment inside the body and b is the earth’s magnetic field intensity.
Eq. 10 can be rewritten as,

[ T Cx T Cy T Cz ] = [ 0 b z b y b z 0 b x b y b x 0 ] [ M x M y M z ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaWadaGcpaqaaKqzGeqbaeqabmqaaaGcbaqcLbsapeGaaeiv aKqba+aadaWgaaqcbasaaKqzadWdbiaaboeacaqG4baal8aabeaaaO qaaKqzGeWdbiaabsfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGdbGa aeyEaaWcpaqabaaakeaajugib8qacaqGubqcfa4damaaBaaajeaiba qcLbmapeGaae4qaiaabQhaaSWdaeqaaaaaaOWdbiaawUfacaGLDbaa jugibiabg2da9Kqbaoaadmaak8aabaqcLbsafaqabeWadaaakeaaju gib8qacaaIWaaak8aabaqcLbsapeGaeyOeI0IaaeOyaKqba+aadaWg aaqcbasaaKqzadWdbiaabQhaaSWdaeqaaaGcbaqcLbsapeGaeyOeI0 IaaeOyaKqba+aadaWgaaqcbasaaKqzadWdbiaabMhaaSWdaeqaaaGc baqcLbsapeGaeyOeI0IaaeOyaKqba+aadaWgaaqcbasaaKqzadWdbi aabQhaaSWdaeqaaaGcbaqcLbsapeGaaGimaaGcpaqaaKqzGeWdbiab gkHiTiaabkgajuaGpaWaaSbaaKqaGeaajugWa8qacaqG4baal8aabe aaaOqaaKqzGeWdbiaabkgajuaGpaWaaSbaaKqaGeaajugWa8qacaqG 5baal8aabeaaaOqaaKqzGeWdbiabgkHiTiaabkgajuaGpaWaaSbaaK qaGeaajugWa8qacaqG4baal8aabeaaaOqaaKqzGeWdbiaaicdaaaaa kiaawUfacaGLDbaajuaGdaWadaGcpaqaaKqzGeqbaeqabmqaaaGcba qcLbsapeGaaeytaKqba+aadaWgaaqcbasaaKqzadWdbiaabIhaaSWd aeqaaaGcbaqcLbsapeGaaeytaKqba+aadaWgaaqcbasaaKqzadWdbi aabMhaaSWdaeqaaaGcbaqcLbsapeGaaeytaKqba+aadaWgaaqcbasa aKqzadWdbiaabQhaaSWdaeqaaaaaaOWdbiaawUfacaGLDbaaaaa@85E0@ (11)

A dipole approximation of the Earth’s magnetic field is given in the following equation expressed in orbit reference frame.9

[ b x o r b b y o r b b z o r b ] = μ f a 3 [ cos ω 0 t sin ( i m ) cos ( i m ) 2 sin ( ω 0 ) t sin ( i m ) ] MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaWadaGcpaqaaKqzGeqbaeqabmqaaaGcbaqcLbsacaWGIbqc fa4aa0baaKazba4=baqcLbmacaWG4baajqwaa+FaaKqzadGaam4Bai aadkhacaWGIbaaaaGcbaqcLbsacaWGIbqcfa4aa0baaKazba4=baqc LbmacaWG5baajqwaa+FaaKqzadGaam4BaiaadkhacaWGIbaaaaGcba qcLbsacaWGIbqcfa4aa0baaKazba4=baqcLbmacaWG6baajqwaa+Fa aKqzGeGaam4BaiaadkhacaWGIbaaaaaaaOWdbiaawUfacaGLDbaaju gibiabg2da9Kqbaoaalaaak8aabaqcLbsapeGaeqiVd0wcfa4damaa Baaajqwaa+FaaKqzadWdbiaadAgaaSWdaeqaaaGcbaqcLbsapeGaam yyaKqbaoaaCaaaleqajqwaa+FaaKqzadGaey4mamdaaaaajuaGdaWa daGcpaqaaKqzGeqbaeqabmqaaaGcbaqcLbsapeGaci4yaiaac+gaca GGZbGaeqyYdCxcfa4aaSbaaKqbGeaacaaIWaaajuaGbeaacaWG0bGa ci4CaiaacMgacaGGUbGaaiikaiaacMgadaWgaaqcfasaaiaad2gaaK qbagqaaiaacMcaaOWdaeaajugib8qacqGHsislciGGJbGaai4Baiaa cohacqGHOaakcaWGPbqcfa4aaSbaaKqbGeaacaWGTbaajuaGbeaaju gibiabgMcaPaGcpaqaaKqzGeWdbiabgkdaYiGacohacaGGPbGaaiOB aiabgIcaOiabeM8a3Lqba+aadaWgaaqcKfaG=haajugWa8qacqGHWa amaSWdaeqaaKqzGeWdbiabgMcaPiaadshaciGGZbGaaiyAaiaac6ga cqGHOaakcaWGPbqcfa4aaSbaaKqbGeaacaWGTbaajuaGbeaajugib8 aacqGHPaqkaaaak8qacaGLBbGaayzxaaaaaa@A10A@ (12)

Where im is the inclination of the satellite’s orbit with respect to the magnetic equator, and a is the orbit’s semi-major axis. Time is measured from t=0 at the ascending-node crossing of the magnetic equator. The field’s dipole strength is μ f = 7.9 × 10 15 W b m . MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabY7ajuaGpaWaaSbaaKqaGeaajugWa8qacaqGMbaal8aa beaajugib8qacqGH9aqpcaaI3aGaaiOlaiaaiMdacqGHxdaTcaaIXa GaaGimaKqba+aadaahaaWcbeqcbasaaKqzadWdbiaaigdacaaI1aaa aKqzGeWdaiaaykW7caaMc8UaaGPaV=qacaWGxbGaamOyaiabgkHiTi aad2gacaGGUaaaaa@4FC7@

The magnetic field in satellite body reference frame is given by

b = A ( q ) b orb MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabkgacqGH9aqpcaqGbbqcfa4aaeWaaOWdaeaajugib8qa caqGXbaakiaawIcacaGLPaaajugibiaabkgajuaGpaWaaWbaaSqabK qaGeaajugWa8qacaqGVbGaaeOCaiaabkgaaaaaaa@4394@ (13)

Constraints in magnetic attitude control

In Eq. 10, m must satisfy orthogonality conditions with respect to TC and b, so one must have,

T C ' b = 0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabsfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGdbaal8aa beaajuaGdaahaaWcbeqaaKqzGeWdbiaabEcaaaGaaeOyaiabg2da9i aaicdaaaa@3F2C@ (14)

Beside, constraints on the coils’ magnetic dipoles (actuators’ saturation) play an important role in the formulation of the magnetic attitude control problem. Such constraints are of the form

m min m m max MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab2gajuaGpaWaaSbaaKqaGeaajugWa8qaciGGTbGaaiyA aiaac6gaaSWdaeqaaKqzGeWdbiabgsMiJkaab2gacqGHKjYOcaqGTb qcfa4damaaBaaajeaibaqcLbmapeGaciyBaiaacggacaGG4baal8aa beaaaaa@47A5@ (15)

The magnetic dipole m is given by.6

m = 1 | b | 2 B ( b ) ' T C MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab2gacqGH9aqpjuaGdaWcaaGcpaqaaKqzGeWdbiaaigda aOWdaeaajuaGpeWaaqWaaOWdaeaajugib8qacaqGIbaakiaawEa7ca GLiWoajuaGpaWaaWbaaSqabKqaGeaajugWa8qacaaIYaaaaaaajugi biaabkeajuaGdaqadaGcpaqaaKqzGeWdbiaabkgaaOGaayjkaiaawM caaKqba+aadaahaaWcbeqaaKqzGeWdbiaabEcaaaGaaeivaKqba+aa daWgaaqcbasaaKqzadWdbiaaboeaaSWdaeqaaaaa@4E1D@ (16)

Where,

B ( b ) = [ 0 b z b y b z 0 b x b y b x 0 ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabkeajuaGdaqadaGcpaqaaKqzGeWdbiaabkgaaOGaayjk aiaawMcaaKqzGeGaeyypa0tcfa4aamWaaOWdaeaajugibuaabeqadm aaaOqaaKqzGeWdbiaaicdaaOWdaeaajugib8qacaqGIbqcfa4damaa BaaajeaibaqcLbmapeGaaeOEaaWcpaqabaaakeaajugib8qacqGHsi slcaqGIbqcfa4damaaBaaajeaibaqcLbmapeGaaeyEaaWcpaqabaaa keaajugib8qacqGHsislcaqGIbqcfa4damaaBaaajeaibaqcLbmape GaaeOEaaWcpaqabaaakeaajugib8qacaaIWaaak8aabaqcLbsapeGa aeOyaKqba+aadaWgaaqcbasaaKqzadWdbiaabIhaaSWdaeqaaaGcba qcLbsapeGaaeOyaKqba+aadaWgaaqcbasaaKqzadWdbiaabMhaaSWd aeqaaaGcbaqcLbsapeGaeyOeI0IaaeOyaKqba+aadaWgaaqcbasaaK qzadWdbiaabIhaaSWdaeqaaaGcbaqcLbsapeGaaGimaaaaaOGaay5w aiaaw2faaaaa@63D1@ (17)

So the constraints on coils’ magnetic dipoles can be translated into constraints on the control variable TC Using Eq. 17, it follows that

m min 1 | b | 2 B ( b ) ' T C m max MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab2gajuaGpaWaaSbaaKazba4=baqcLbmapeGaciyBaiaa cMgacaGGUbaal8aabeaajugib8qacqGHKjYOjuaGdaWcaaGcpaqaaK qzGeWdbiaaigdaaOWdaeaajuaGpeWaaqWaaOWdaeaajugib8qacaqG IbaakiaawEa7caGLiWoajuaGpaWaaWbaaSqabKazba4=baqcLbmape GaaGOmaaaaaaqcLbsacaqGcbqcfa4aaeWaaOWdaeaajugib8qacaqG IbaakiaawIcacaGLPaaajuaGpaWaaWbaaSqabeaajugib8qacaqGNa aaaiaabsfajuaGpaWaaSbaaKazba4=baqcLbmapeGaae4qaaWcpaqa baqcLbsapeGaeyizImQaaeyBaKqba+aadaWgaaqcKfaG=haajugWa8 qaciGGTbGaaiyyaiaacIhaaSWdaeqaaaaa@63E1@ (18)

which in turn implies

[ B ( b ) B ( b ) ] T C [ m max m min ] | b | 2 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaWadaGcpaqaaKqzGeqbaeqabiqaaaGcbaqcLbsapeGaeyOe I0IaaeOqaKqbaoaabmaak8aabaqcLbsapeGaaeOyaaGccaGLOaGaay zkaaaapaqaaKqzGeWdbiaabkeajuaGdaqadaGcpaqaaKqzGeWdbiaa bkgaaOGaayjkaiaawMcaaaaaaiaawUfacaGLDbaajugibiaabsfaju aGpaWaaSbaaKqaGeaajugWa8qacaqGdbaal8aabeaajugib8qacqGH KjYOjuaGdaWadaGcpaqaaKqzGeqbaeqabiqaaaGcbaqcLbsapeGaae yBaKqba+aadaWgaaqcbasaaKqzadWdbiGac2gacaGGHbGaaiiEaaWc paqabaaakeaajugib8qacaqGTbqcfa4damaaBaaajeaibaqcLbmape GaciyBaiaacMgacaGGUbaal8aabeaaaaaak8qacaGLBbGaayzxaaqc fa4aaqWaaOWdaeaajugib8qacaqGIbaakiaawEa7caGLiWoajuaGpa WaaWbaaSqabKqaGeaajugWa8qacaaIYaaaaaaa@6442@ (19)

Here the mathematic expressions and derivations of MPC algorithm are given. It should be pointed out that the idea of Laguerre MPC is proposed by Wang. In this thesis, however, we will be concerning on the Laguerre MPC.

The plant to be controlled is described by the discrete time model of the form as

x m ( k + 1 ) = A m x m ( k ) + B m u ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaahIhajuaGpaWaaSbaaKqaGeaajugWa8qacaWHTbaal8aa beaajuaGpeWaaeWaaOWdaeaajugib8qacaWHRbGaey4kaSIaaGymaa GccaGLOaGaayzkaaqcLbsacqGH9aqpcaWHbbqcfa4damaaBaaajeai baqcLbmapeGaaCyBaaWcpaqabaqcLbsapeGaaCiEaKqba+aadaWgaa qcbasaaKqzadWdbiaah2gaaSWdaeqaaKqba+qadaqadaGcpaqaaKqz GeWdbiaahUgaaOGaayjkaiaawMcaaKqzGeGaey4kaSIaaCOqaKqba+ aadaWgaaqcbasaaKqzadWdbiaah2gaaSWdaeqaaKqzGeWdbiaahwha juaGdaqadaGcpaqaaKqzGeWdbiaahUgaaOGaayjkaiaawMcaaaaa@597B@

y ( k + 1 ) = C m x m ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaahMhajuaGdaqadaGcpaqaaKqzGeWdbiaahUgacqGHRaWk caaIXaaakiaawIcacaGLPaaajugibiabg2da9iaahoeajuaGpaWaaS baaKqaGeaajugWa8qacaWHTbaal8aabeaajugib8qacaWH4bqcfa4d amaaBaaajeaibaqcLbmapeGaaCyBaaWcpaqabaqcfa4dbmaabmaak8 aabaqcLbsapeGaaC4AaaGccaGLOaGaayzkaaaaaa@4B5C@ (2.20)

Assume that the plant has p inputs, q outputs and n states. Let us denote the difference of the state variable by

Δ x m ( k + 1 ) = x m ( k + 1 ) x m ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaahIhajuaGpaWaaSbaaKqaGeaajugWa8qacaWH Tbaal8aabeaajuaGpeWaaeWaaOWdaeaajugib8qacaWHRbGaey4kaS IaaGymaaGccaGLOaGaayzkaaqcLbsacqGH9aqpcaWH4bqcfa4damaa BaaajeaibaqcLbmapeGaaCyBaaWcpaqabaqcfa4dbmaabmaak8aaba qcLbsapeGaaC4AaiabgUcaRiaaigdaaOGaayjkaiaawMcaaKqzGeGa eyOeI0IaaCiEaKqba+aadaWgaaqcbasaaKqzadWdbiaah2gaaSWdae qaaKqba+qadaqadaGcpaqaaKqzGeWdbiaahUgaaOGaayjkaiaawMca aaaa@5694@ (2.21)

And the difference of the control variable by

Δ u ( k ) = u ( k ) u ( k 1 ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaahwhajuaGdaqadaGcpaqaaKqzGeWdbiaahUga aOGaayjkaiaawMcaaKqzGeGaeyypa0JaaCyDaKqbaoaabmaak8aaba qcLbsapeGaaC4AaaGccaGLOaGaayzkaaqcLbsacqGHsislcaWH1bqc fa4aaeWaaOWdaeaajugib8qacaWHRbGaeyOeI0IaaGymaaGccaGLOa Gaayzkaaaaaa@4B27@ (2.22)

Then we augment the original state space model (2.21) and (2.22) as

[ Δ x m ( k + 1 ) y ( k + 1 ) ] x ( k + 1 ) = [ A m o m T C m A m I q × q ] A [ Δ x m ( k ) y ( k ) ] x ( k ) + [ B m C m B m ] B Δ u ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfa4aaCbiaO qaaKqbaoaaxacakeaajuaGqaaaaaaaaaWdbmaadmaak8aabaqcLbsa faqabeGabaaakeaajugib8qacqGHuoarcaWH4bqcfa4damaaBaaaje aibaqcLbmapeGaaCyBaaWcpaqabaqcfa4dbmaabmaak8aabaqcLbsa peGaaC4AaiabgUcaRiaaigdaaOGaayjkaiaawMcaaaWdaeaajugib8 qacaWH5bqcfa4aaeWaaOWdaeaajugib8qacaWHRbGaey4kaSIaaGym aaGccaGLOaGaayzkaaaaaaGaay5waiaaw2faaaWcpaqabeaacqGHrg sRaaaabeqaaKqzGeWdbiaahIhajuaGdaqadaWcpaqaaKqzGeWdbiaa hUgacqGHRaWkcaaIXaaaliaawIcacaGLPaaaaaqcLbsacqGH9aqpju aGpaWaaCbiaOqaaKqbaoaaxacakeaajuaGpeWaamWaaOWdaeaajugi buaabeqaciaaaOqaaKqzGeWdbiaahgeajuaGpaWaaSbaaKqaGeaaju gWa8qacaWHTbaal8aabeaaaOqaaKqzGeWdbiaah+gal8aadaqhaaqc basaaKqzadWdbiaah2gaaKqaG8aabaqcLbmapeGaaCivaaaaaOWdae aajugib8qacaWHdbqcfa4damaaBaaajeaibaqcLbmapeGaaCyBaaWc paqabaqcLbsapeGaaCyqaKqba+aadaWgaaqcbasaaKqzadWdbiaah2 gaaSWdaeqaaaGcbaqcLbsapeGaaCysaKqba+aadaWgaaqcbasaaKqz adWdbiaahghacqGHxdaTcaWHXbaal8aabeaaaaaak8qacaGLBbGaay zxaaaal8aabeqaaiabggziTcaaaeqabaqcLbsapeGaaCyqaaaajuaG paWaaCbiaOqaaKqbaoaaxacakeaajuaGpeWaamWaaOWdaeaajugibu aabeqaceaaaOqaaKqzGeWdbiabgs5aejaahIhajuaGpaWaaSbaaKqa GeaajugWa8qacaWHTbaal8aabeaajuaGpeWaaeWaaOWdaeaajugib8 qacaWHRbaakiaawIcacaGLPaaaa8aabaqcLbsapeGaaCyEaKqbaoaa bmaak8aabaqcLbsapeGaaC4AaaGccaGLOaGaayzkaaaaaaGaay5wai aaw2faaaWcpaqabeaacqGHrgsRaaaabeqaaKqzGeWdbiaahIhajuaG daqadaWcpaqaaKqzGeWdbiaahUgaaSGaayjkaiaawMcaaaaajugibi abgUcaRKqba+aadaWfGaGcbaqcfa4aaCbiaOqaaKqba+qadaWadaGc paqaaKqzGeqbaeqabiqaaaGcbaqcLbsapeGaaCOqaKqba+aadaWgaa qcbasaaKqzadWdbiaah2gaaSWdaeqaaaGcbaqcLbsapeGaaC4qaKqb a+aadaWgaaqcbasaaKqzadWdbiaah2gaaSWdaeqaaKqzGeWdbiaahk eajuaGpaWaaSbaaKqaGeaajugWa8qacaWHTbaal8aabeaaaaaak8qa caGLBbGaayzxaaaal8aabeqaaiabggziTcaaaeqabaqcLbsapeGaaC OqaaaapaGaeyiLdq0dbiaahwhajuaGdaqadaGcpaqaaKqzGeWdbiaa hUgaaOGaayjkaiaawMcaaaaa@B7AF@

y ( k ) = [ o m I q × q ] C [ Δ x m ( k ) y ( k ) ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaahMhajuaGdaqadaGcpaqaaKqzGeWdbiaahUgaaOGaayjk aiaawMcaaKqzGeGaeyypa0tcfa4damaaxacakeaajuaGdaWfGaGcba qcfa4dbmaadmaak8aabaqcLbsafaqabeqacaaakeaajugib8qacaWH Vbqcfa4damaaBaaaleaajugib8qacaWHTbaal8aabeaaaOqaaKqzGe WdbiaahMeajuaGpaWaaSbaaKqaGeaajugWa8qacaWHXbGaey41aqRa aCyCaaWcpaqabaaaaaGcpeGaay5waiaaw2faaaWcpaqabeaajugibi abggziTcaaaSqabeaajugib8qacaWHdbaaaKqbaoaadmaak8aabaqc LbsafaqabeGabaaakeaajugib8qacqGHuoarcaWH4bqcfa4damaaBa aajeaibaqcLbmapeGaaCyBaaWcpaqabaqcfa4dbmaabmaak8aabaqc LbsapeGaaC4AaaGccaGLOaGaayzkaaaapaqaaKqzGeWdbiaahMhaju aGdaqadaGcpaqaaKqzGeWdbiaahUgaaOGaayjkaiaawMcaaaaaaiaa wUfacaGLDbaaaaa@64E3@ (2.23)

Now we model the control signal by forward operators. Let us denote the vector

Y = [ y ( k i + 1 | k i ) y ( k i + 2 | k i ) y ( k i + 3 | k i ) y ( k i + N p | k i ) ] T MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadMfacqGH9aqpjuaGdaWadaGcpaqaaKqzGeWdbiaadMha juaGdaqadaGcpaqaaKqzGeWdbiaadUgajuaGpaWaaSbaaKqaGeaaju gWa8qacaWGPbaal8aabeaajugib8qacqGHRaWkcaaIXaGaaeiFaiaa dUgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aabeaaaOWdbi aawIcacaGLPaaajugibiaadMhajuaGdaqadaGcpaqaaKqzGeWdbiaa dUgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aabeaajugib8 qacqGHRaWkcaaIYaGaaeiFaiaadUgajuaGpaWaaSbaaKqaGeaajugW a8qacaWGPbaal8aabeaaaOWdbiaawIcacaGLPaaajugibiaadMhaju aGdaqadaGcpaqaaKqzGeWdbiaadUgajuaGpaWaaSbaaKqaGeaajugW a8qacaWGPbaal8aabeaajugib8qacqGHRaWkcaaIZaGaaeiFaiaadU gajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aabeaaaOWdbiaa wIcacaGLPaaajugibiabl+UimjaadMhajuaGdaqadaGcpaqaaKqzGe WdbiaadUgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aabeaa jugib8qacqGHRaWkcaWGobqcfa4damaaBaaajeaibaqcLbmapeGaam iCaaWcpaqabaqcLbsapeGaaeiFaiaadUgajuaGpaWaaSbaaKqaGeaa jugWa8qacaWGPbaal8aabeaaaOWdbiaawIcacaGLPaaaaiaawUfaca GLDbaajuaGpaWaaWbaaSqabKqaGeaajugWa8qacaWGubaaaaaa@83CF@

Δ U = [ Δ u ( k i ) Δ u ( k i + 1 ) Δ u ( k i + 2 ) Δ u ( k i + N c 1 ) ] T MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaadwfacqGH9aqpjuaGdaWadaGcpaqaaKqzGeWd biabgs5aejaadwhajuaGdaqadaGcpaqaaKqzGeWdbiaadUgajuaGpa WaaSbaaKqaGeaajugWa8qacaWGPbaal8aabeaaaOWdbiaawIcacaGL Paaajugibiabgs5aejaadwhajuaGdaqadaGcpaqaaKqzGeWdbiaadU gajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aabeaajugib8qa cqGHRaWkcaaIXaaakiaawIcacaGLPaaajugibiabgs5aejaadwhaju aGdaqadaGcpaqaaKqzGeWdbiaadUgajuaGpaWaaSbaaKqaGeaajugW a8qacaWGPbaal8aabeaajugib8qacqGHRaWkcaaIYaaakiaawIcaca GLPaaajugibiabl+Uimjabgs5aejaadwhajuaGdaqadaGcpaqaaKqz GeWdbiaadUgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aabe aajugib8qacqGHRaWkcaWGobqcfa4damaaBaaaleaajugib8qacaWG Jbaal8aabeaajugib8qacqGHsislcaaIXaaakiaawIcacaGLPaaaai aawUfacaGLDbaajuaGpaWaaWbaaSqabKqaGeaajugWa8qacaWGubaa aaaa@74B8@

The cost function of Traditional MPC is expressed as

J = ( R s F x ( k i ) ) T ( R s F x ( k i ) ) 2 Δ U T ϕ T ( R s F x ( k i ) ) + Δ U T ( ϕ T ϕ + R ¯ ) Δ U MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadQeacqGH9aqpcaGGOaGaamOuaKqba+aadaWgaaWcbaqc LbsapeGaam4CaaWcpaqabaqcLbsapeGaeyOeI0IaamOraiaadIhaca GGOaGaam4AaKqba+aadaWgaaqcbasaaKqzadWdbiaadMgaaSWdaeqa aKqzGeWdbiaacMcacaGGPaqcfa4damaaCaaaleqajeaibaqcLbmape GaamivaaaajugibiaacIcacaWGsbqcfa4damaaBaaaleaajugib8qa caWGZbaal8aabeaajugib8qacqGHsislcaWGgbGaamiEaiaacIcaca WGRbqcfa4damaaBaaajeaibaqcLbmapeGaamyAaaWcpaqabaqcLbsa peGaaiykaiaacMcacqGHsislcaaIYaGaeyiLdqKaamyvaKqba+aada ahaaWcbeqcbasaaKqzadWdbiaadsfaaaqcLbsapaGaeqy1dywcfa4a aWbaaSqabKqaGeaajugWa8qacaWGubaaaKqzGeGaaiikaiaadkfaju aGpaWaaSbaaKqaGeaajugWa8qacaWGZbaal8aabeaajugib8qacqGH sislcaWGgbGaamiEaiaacIcacaWGRbqcfa4damaaBaaajeaibaqcLb mapeGaamyAaaWcpaqabaqcLbsapeGaaiykaiaacMcacqGHRaWkcqGH uoarcaWGvbqcfa4damaaCaaaleqajeaibaqcLbmapeGaamivaaaaju gibiaacIcacqaHvpGzjuaGpaWaaWbaaSqabKqaGeaajugWa8qacaWG ubaaaKqzGeWdaiabew9aM9qacqGHRaWkjuaGdaqdaaqaaKqzGeGaam OuaaaacaGGPaGaeyiLdqKaamyvaaaa@887B@ (2.24)

Where,

F = [ C A C A 2 C A 3 C A N P ] , ϕ = [ C B 0 0 0 C A b C B 0 0 C A 2 B C A B C B 0 C A N p 1 B C A N p 2 B C A N p 3 B C A N p N c B ] MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadAeacqGH9aqpjuaGdaWadaqcLbsapaabaeqakeaajugi buaabeqaeeaaaaGcbaqcLbsacaWGdbGaamyqaaGcbaqcLbsacaWGdb GaamyqaKqbaoaaCaaaleqajeaibaqcLbmacaaIYaaaaaGcbaqcLbsa caWGdbGaamyqaKqbaoaaCaaaleqajeaibaqcLbmacaaIZaaaaaGcba qcLbsacqWIUlstaaaakeaajugibiaadoeacaWGbbqcfa4aaWbaaSqa bKqaGeaajugWaiaad6ealmaaBaaajiaibaqcLbmacaWGqbaajiaibe aaaaaaaOWdbiaawUfacaGLDbaajugibiaacYcacqaHvpGzcqGH9aqp juaGdaWadaqaaKqzGeqbaeqabuqbaaaaaKqbagaajugibiaadoeaca WGcbaajuaGbaqcLbsacaaIWaaajuaGbaqcLbsacaaIWaaajuaGbaqc LbsacqWIVlctaKqbagaajugibiaaicdaaKqbagaajugibiaadoeaca WGbbGaamOyaaqcfayaaKqzGeGaam4qaiaadkeaaKqbagaajugibiaa icdaaKqbagaajugibiabl+UimbqcfayaaKqzGeGaaGimaaqcfayaaK qzGeGaam4qaiaadgeajuaGdaahaaqabKqbGeaajugWaiaaikdaaaqc LbsacaWGcbaajuaGbaqcLbsacaWGdbGaamyqaiaadkeaaKqbagaaju gibiaadoeacaWGcbaajuaGbaqcLbsacqWIVlctaKqbagaajugibiaa icdaaKqbagaajugibiabl6UinbqcfayaaKqzGeGaeSO7I0eajuaGba qcLbsacqWIUlstaKqbagaajugibiabl6UinbqcfayaaKqzGeGaeSO7 I0eajuaGbaqcLbsacaWGdbGaamyqaKqba+aadaahaaqabeaajugWa8 qacaWGobqcfa4damaaBaaabaqcLbsapeGaamiCaaqcfa4daeqaaKqz adWdbiabgkHiTiaaigdaaaqcLbsacaWGcbaajuaGbaqcLbsacaWGdb GaamyqaKqba+aadaahaaqabeaajugWa8qacaWGobqcfa4damaaBaaa baqcLbsapeGaamiCaaqcfa4daeqaaKqzadWdbiabgkHiTiaaikdaaa qcLbsacaWGcbaajuaGbaqcLbsacaWGdbGaamyqaKqba+aadaahaaqa beaajugWa8qacaWGobqcfa4damaaBaaabaqcLbsapeGaamiCaaqcfa 4daeqaaKqzadWdbiabgkHiTiaaiodaaaqcLbsacaWGcbaajuaGbaqc LbsacqWIVlctaKqbagaajugibiaadoeacaWGbbqcfa4damaaCaaabe qaaKqzadWdbiaad6eajuaGpaWaaSbaaeaajugib8qacaWGWbaajuaG paqabaqcLbmapeGaeyOeI0IaamOtaSWdamaaBaaajuaibaqcLbmape Gaam4yaaqcfaYdaeqaaaaajugib8qacaWGcbaaaaqcfaOaay5waiaa w2faaaaa@CC2E@

I q × q MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaahMeajuaGpaWaaSbaaKqaGeaajugWa8qacaWHXbGaey41 aqRaaCyCaaWcpaqabaaaaa@3DC3@ is a     q × q MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaacckacaGGGcGaaiyCaiabgEna0kaacghaaaa@3CEE@ identity matrix, RS is the set point vector, R ¯ MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfa4aa0aaaO qaaKqzGeGaamOuaaaaaaa@3805@ is the weighting matrix for control signal, NC is control horizon, Npis prediction horizon. The triplet (A, B, C) is called the augmented model.

Now we calculate derivation of the cost function J:

d J d Δ U = 2 Φ T ( R s F x ( k i ) ) + 2 ( Φ T Φ + R ¯ ) Δ U MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaWcaaGcpaqaaKqzGeWdbiaadsgacaWGkbaak8aabaqcLbsa peGaamizaiabfs5aejaadwfaaaGaeyypa0JaeyOeI0IaaGOmaiabfA 6agLqba+aadaahaaWcbeqcbasaaKqzadWdbiaadsfaaaqcfa4aaeWa aOWdaeaajugib8qacaWGsbqcfa4damaaBaaaleaajugib8qacaWGZb aal8aabeaajugib8qacqGHsislcaWGgbGaamiEaKqbaoaabmaak8aa baqcLbsapeGaam4AaKqba+aadaWgaaqcbasaaKqzadWdbiaadMgaaS WdaeqaaaGcpeGaayjkaiaawMcaaaGaayjkaiaawMcaaKqzGeGaey4k aSIaaGOmaKqbaoaabmaak8aabaqcLbsapeGaeuOPdyucfa4damaaCa aaleqajeaibaqcLbmapeGaamivaaaajugibiabfA6agjabgUcaRKqb aoaanaaabaGaamOuaaaaaOGaayjkaiaawMcaaKqzGeGaeyiLdqKaam yvaaaa@6571@ (2.2.5)

The necessary condition of the minimum J is obtained

d J d Δ U = 0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaWcaaGcpaqaaKqzGeWdbiaadsgacaWGkbaak8aabaqcLbsa peGaamizaiabfs5aejaadwfaaaGaeyypa0JaaGimaaaa@3EC6@                (2.2.6)

The optimal solution for the control signal is

Δ U = ( Φ T Φ + R ¯ ) 1 Φ T ( R s F x ( k i ) ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaadwfacqGH9aqpjuaGdaqadaGcpaqaaKqzGeWd biabfA6agLqba+aadaahaaWcbeqcbasaaKqzadWdbiaadsfaaaqcLb sacqqHMoGrcqGHRaWkjuaGdaqdaaqaaiaadkfaaaaakiaawIcacaGL PaaajuaGpaWaaWbaaSqabKqaGeaajugWa8qacqGHsislcaaIXaaaaK qzGeGaeuOPdyucfa4damaaCaaaleqajeaibaqcLbmapeGaamivaaaa juaGdaqadaGcpaqaaKqzGeWdbiaadkfajuaGpaWaaSbaaKqaGeaaju gWa8qacaWGZbaal8aabeaajugib8qacqGHsislcaWGgbGaamiEaKqb aoaabmaak8aabaqcLbsapeGaam4AaKqba+aadaWgaaqcbasaaKqzad WdbiaadMgaaSWdaeqaaaGcpeGaayjkaiaawMcaaaGaayjkaiaawMca aaaa@5FD3@ (2.2.7)
Now we derive the close-form control law. Because of the receding horizon control principle, we only take the first element of Δ U MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaadwfaaaa@38E7@ at time ki as the incremental control, thus
Δ u ( k i ) = [ 10 0 ] ( Φ T Φ + R ¯ ) 1 Φ T ( R s F x ( k i ) ) = K y r ( k i ) K m p c x ( k i ) ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaadwhajuaGdaqadaGcpaqaaKqzGeWdbiaadUga juaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aabeaaaOWdbiaawI cacaGLPaaajugibiabg2da9Kqbaoaadmaak8aabaqcLbsapeGaaGym aiaaicdacqGHMacVcaaIWaaakiaawUfacaGLDbaajuaGdaqadaGcpa qaaKqzGeWdbiabfA6agLqba+aadaahaaWcbeqaaKqzGeWdbiaadsfa aaGaeuOPdyKaey4kaSscfa4aa0aaaeaacaWGsbaaaaGccaGLOaGaay zkaaqcfa4damaaCaaaleqabaqcLbsapeGaeyOeI0IaaGymaaaacqqH MoGrjuaGpaWaaWbaaSqabKqaGeaajugWa8qacaWGubaaaKqbaoaabm aak8aabaqcLbsapeGaamOuaKqba+aadaWgaaWcbaqcLbsapeGaam4C aaWcpaqabaqcLbsapeGaeyOeI0IaamOraiaadIhajuaGdaqadaGcpa qaaKqzGeWdbiaadUgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaa l8aabeaaaOWdbiaawIcacaGLPaaaaiaawIcacaGLPaaajugibiabg2 da9iaahUeajuaGpaWaaSbaaKqaGeaajugWa8qacaWH5baal8aabeaa jugib8qacaWHYbqcfa4aaeWaaOWdaeaajugib8qacaWGRbqcfa4dam aaBaaajeaibaqcLbmapeGaamyAaaWcpaqabaaak8qacaGLOaGaayzk aaqcLbsacqGHsislcaWHlbqcfa4damaaBaaajeaibaqcLbmapeGaaC yBaiaahchacaWHJbaal8aabeaajugib8qacaWH4bqcfa4aaeWaaOWd aeaajugib8qacaWGRbqcfa4damaaBaaaleaajugib8qacaWGPbaal8 aabeaaaOWdbiaawIcacaGLPaaajugibiaacMcaaaa@89F6@ (2.28)

Where K y MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaahUeajuaGpaWaaSbaaKqaGeaajugWa8qacaWH5baal8aa beaaaaa@3ABC@ is the first element of ( Φ T Φ + R ¯ ) 1 Φ T R S MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaqadaGcpaqaaKqzGeWdbiabfA6agLqba+aadaahaaWcbeqc basaaKqzadWdbiaadsfaaaqcLbsacqqHMoGrcqGHRaWkjuaGdaqdaa qaaKqzGeGaamOuaaaaaOGaayjkaiaawMcaaKqba+aadaahaaWcbeqc basaaKqzadWdbiabgkHiTiaaigdaaaqcLbsacqqHMoGrjuaGpaWaaW baaSqabKazba4=baqcLbmapeGaamivaaaajugib8aacaWGsbqcfa4a aSbaaKqbGeaajugWaiaadofaaKqbagqaaaaa@51FC@ and K m p c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaacUeajuaGdaWgaaqcKfaG=haajugWaiaad2gacaWGWbGa am4yaaqcbawabaaaaa@3E78@ is the first row of ( Φ T Φ + R ¯ ) 1 Φ T F MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaqadaGcpaqaaKqzGeWdbiabfA6agLqba+aadaahaaWcbeqc basaaKqzadWdbiaadsfaaaqcLbsacqqHMoGrcqGHRaWkjuaGdaqdaa qaaKqzGeGaamOuaaaaaOGaayjkaiaawMcaaKqba+aadaahaaWcbeqc basaaKqzadWdbiabgkHiTiaaigdaaaqcLbsacqqHMoGrjuaGpaWaaW baaSqabKazba4=baqcLbmapeGaamivaaaajugib8aacaWGgbaaaa@4E7F@ . (2.28) is in a standard form of linear time-invariant state feedback control. The state feedback control gain vector is Kmpc. Therefore, with the augmented design model

x ( k + 1 ) = A x ( k ) + B Δ u ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIhajuaGdaqadaGcpaqaaKqzGeWdbiaadUgacqGHRaWk caaIXaaakiaawIcacaGLPaaajugibiabg2da9iaadgeacaWG4bqcfa 4aaeWaaOWdaeaajugib8qacaWGRbaakiaawIcacaGLPaaajugibiab gUcaRiaadkeacqGHuoarcaWG1bqcfa4aaeWaaOWdaeaajugib8qaca qGRbaakiaawIcacaGLPaaaaaa@4C8A@

The closed-loop system is obtained by substituting (2.28) into the augmented system equation; changing index ki to k, leading to the closed-loop equation

x ( k + 1 ) = ( A B k m p c x ( k ) ) + B k y r ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIhajuaGdaqadaGcpaqaaKqzGeWdbiaadUgacqGHRaWk caaIXaaakiaawIcacaGLPaaajugibiabg2da9Kqbaoaabmaak8aaba qcLbsapeGaamyqaiabgkHiTiaadkeacaWGRbqcfa4damaaBaaajeai baqcLbmapeGaamyBaiaadchacaWGJbaal8aabeaajugib8qacaqG4b qcfa4aaeWaaOWdaeaajugib8qacaqGRbaakiaawIcacaGLPaaaaiaa wIcacaGLPaaajugibiabgUcaRiaabkeacaWGRbqcfa4damaaBaaaje aibaqcLbmapeGaamyEaaWcpaqabaqcLbsapeGaaeOCaKqbaoaabmaa k8aabaqcLbsapeGaae4AaaGccaGLOaGaayzkaaaaaa@5B06@ (2.29)

Thus we can see when constraints have not been taken in to consideration, the MPC control algorithm can be written as a closed-loop form. All parameters required in MPC control algorithm can be calculated off-line and the on-line computational demand is relatively low.

Laguerre MPC

Now we model the control signal with Laguerre functions. Laguerre functions are a set of discrete orthonormal basis functions that can be expressed as

Γ k ( z ) = Γ k 1 ( z ) ( z 1 a 1 a z 1 ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabfo5ahLqba+aadaWgaaqcbasaaKqzadWdbiaadUgaaSWd aeqaaKqba+qadaqadaGcpaqaaKqzGeWdbiaadQhaaOGaayjkaiaawM caaKqzGeGaeyypa0Jaeu4KdCucfa4damaaBaaajeaibaqcLbmapeGa am4AaiabgkHiTiaaigdaaSWdaeqaaKqba+qadaqadaGcpaqaaKqzGe WdbiaadQhaaOGaayjkaiaawMcaaKqbaoaabmaak8aabaqcfa4dbmaa laaak8aabaqcLbsapeGaamOEaKqba+aadaahaaWcbeqcbasaaKqzad WdbiabgkHiTiaaigdaaaqcLbsacqGHsislcaWGHbaak8aabaqcLbsa peGaaGymaiabgkHiTiaadggacaWG6bqcfa4damaaCaaaleqajeaiba qcLbmapeGaeyOeI0IaaGymaaaaaaaakiaawIcacaGLPaaaaaa@5DDD@ (2.30)

Γ 1 ( z ) = 1 a 2 1 a z 1 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabfo5ahLqba+aadaWgaaqcbasaaKqzadWdbiaaigdaaSWd aeqaaKqba+qadaqadaGcpaqaaKqzGeWdbiaadQhaaOGaayjkaiaawM caaKqzGeGaeyypa0tcfa4aaSaaaOWdaeaajuaGpeWaaOaaaOWdaeaa jugib8qacaaIXaGaeyOeI0IaamyyaKqba+aadaahaaWcbeqcbasaaK qzadWdbiaaikdaaaaaleqaaaGcpaqaaKqzGeWdbiaaigdacqGHsisl caWGHbGaamOEaKqba+aadaahaaWcbeqcbasaaKqzadWdbiabgkHiTi aaigdaaaaaaaaa@5049@ (2.31)

Letting l i ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadYgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbaal8aa beaajuaGpeWaaeWaaOWdaeaajugib8qacaWGRbaakiaawIcacaGLPa aaaaa@3E9E@ denote the inverse z-transform of Γ i ( z , a ) , MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabfo5ahLqba+aadaWgaaqcbasaaKqzadWdbiaadMgaaSWd aeqaaKqba+qadaqadaGcpaqaaKqzGeWdbiaadQhacaGGSaGaamyyaa GccaGLOaGaayzkaaqcLbsacaGGSaaaaa@41F8@

L ( k ) = [ l 1 ( k ) l 2 ( k ) l N ( k ) ] T MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadYeajuaGdaqadaGcpaqaaKqzGeWdbiaadUgaaOGaayjk aiaawMcaaKqzGeGaeyypa0tcfa4aamWaaOWdaeaajugibuaabeqabm aaaOqaaKqzGeWdbiaadYgajuaGpaWaaSbaaKqaGeaajugWa8qacaaI Xaaal8aabeaajuaGpeWaaeWaaOWdaeaajugib8qacaWGRbaakiaawI cacaGLPaaaa8aabaqcLbsapeGaamiBaKqba+aadaWgaaqcbasaaKqz adWdbiaaikdaaSWdaeqaaKqba+qadaqadaGcpaqaaKqzGeWdbiaadU gaaOGaayjkaiaawMcaaaWdaeaajugibuaabeqabiaaaOqaaKqzGeWd biabl+UimbGcpaqaaKqzGeWdbiaadYgajuaGpaWaaSbaaKqaGeaaju gWa8qacaWGobaal8aabeaajuaGpeWaaeWaaOWdaeaajugib8qacaWG RbaakiaawIcacaGLPaaaaaaaaaGaay5waiaaw2faaKqba+aadaahaa WcbeqcbasaaKqzadWdbiaadsfaaaaaaa@5FD0@

The set of discrete-time Laguerre functions satisfies the following difference equation:

L ( k + 1 ) = A l L ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabYeajuaGdaqadaGcpaqaaKqzGeWdbiaabUgacqGHRaWk caaIXaaakiaawIcacaGLPaaajugibiabg2da9iaabgeajuaGpaWaaS baaKqaGeaajugWa8qacaqGSbaal8aabeaajugib8qacaqGmbqcfa4a aeWaaOWdaeaajugib8qacaqGRbaakiaawIcacaGLPaaaaaa@4795@ (2.32)

where the initial condition is given by

L ( 0 ) Τ = β [ 1 a a 2 a 3 ( 1 ) Ν 1 a Ν 1 ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qacaWGmbWaaeWaaOWdaeaajugib8qacqGHWaamaOGaayjkaiaa wMcaaKqba+aadaahaaWcbeqcbasaaKqzadWdbiabfs6aubaajugibi abg2da9Kqbaoaakaaak8aabaqcLbsapeGaeqOSdigaleqaaKqbaoaa dmaak8aabaqcLbsapeGaeyymaeJaeyOeI0IaamyyaiaadggajuaGpa WaaWbaaSqabKqaGeaajugWa8qacqGHYaGmaaqcLbsacqGHsislcaWG Hbqcfa4damaaCaaaleqajeaibaqcLbmapeGaey4mamdaaKqzGeGaey OjGWBcfa4aaeWaaOWdaeaajugib8qacqGHsislcqGHXaqmaOGaayjk aiaawMcaaKqba+aadaahaaWcbeqcbasaaKqzadWdbiabf25aojabgk HiTiabggdaXaaajuaGpaGaamyyamaaCaaaleqajeaibaqcLbmapeGa euyNd4KaeyOeI0IaeyymaedaaaGccaGLBbGaayzxaaaaaa@6550@ (2.33)
a is the Laguerre scaling factor, β = ( 1 a 2 ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabk7acqGH9aqpjuaGdaqadaGcpaqaaKqzGeWdbiaaigda cqGHsislcaqGHbqcfa4damaaCaaaleqajeaibaqcLbmapeGaaGOmaa aaaOGaayjkaiaawMcaaaaa@4137@ , and A1 is a N×N matrix. For example N=5,

Α λ = [ α 0 0 0 0 β α 0 0 0 α β β α 0 0 α 2 β α β β α 0 α 3 β α 2 β α β β α ] MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabfg5abLqba+aadaWgaaqcKfaG=haajugWa8qacqaH7oaB aSWdaeqaaKqzGeWdbiabg2da9Kqbaoaadmaak8aabaqcLbsafaqabe qbfaaaaaGcbaqcLbsapeGaeqySdegak8aabaqcLbsapeGaeyimaada k8aabaqcLbsapeGaeyimaadak8aabaqcLbsapeGaeyimaadak8aaba qcLbsapeGaeyimaadak8aabaqcLbsapeGaeqOSdigak8aabaqcLbsa peGaeqySdegak8aabaqcLbsapeGaeyimaadak8aabaqcLbsapeGaey imaadak8aabaqcLbsapeGaeyimaadak8aabaqcLbsapeGaeyOeI0Ia eqySdeMaeqOSdigak8aabaqcLbsapeGaeqOSdigak8aabaqcLbsape GaeqySdegak8aabaqcLbsapeGaeyimaadak8aabaqcLbsapeGaeyim aadak8aabaqcLbsapeGaeqySdewcfa4damaaCaaaleqajeaibaqcLb mapeGaeyOmaidaaKqzGeGaeqOSdigak8aabaqcLbsapeGaeyOeI0Ia eqySdeMaeqOSdigak8aabaqcLbsapeGaeqOSdigak8aabaqcLbsape GaeqySdegak8aabaqcLbsapeGaeyimaadak8aabaqcLbsapeGaeyOe I0IaeqySdewcfa4damaaCaaaleqajeaibaqcLbmapeGaey4mamdaaK qzGeGaeqOSdigak8aabaqcLbsapeGaeqySdewcfa4damaaCaaaleqa jeaibaqcLbmapeGaeyOmaidaaKqzGeGaeqOSdigak8aabaqcLbsape GaeyOeI0IaeqySdeMaeqOSdigak8aabaqcLbsapeGaeqOSdigak8aa baqcLbsapeGaeqySdegaaaGccaGLBbGaayzxaaaaaa@8EC7@

L ( 0 ) Τ = β [ 1 α α 2 α 3 ( 1 ) Ν 1 α Ν 1 ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadYeajuaGdaqadaGcpaqaaKqzGeWdbiabgcdaWaGccaGL OaGaayzkaaqcfa4damaaCaaaleqajeaibaqcLbmapeGaeuiPdqfaaK qzGeGaeyypa0tcfa4aaOaaaOWdaeaajugib8qacqaHYoGyaSqabaqc fa4aamWaaOWdaeaajugib8qacqGHXaqmcqGHsislcqaHXoqycqaHXo qyjuaGpaWaaWbaaSqabKqaGeaajugWa8qacqGHYaGmaaqcLbsacqGH sislcqaHXoqyjuaGpaWaaWbaaSqabKqaGeaajugWa8qacqGHZaWmaa qcLbsacqGHMacVjuaGdaqadaGcpaqaaKqzGeWdbiabgkHiTiabggda XaGccaGLOaGaayzkaaqcfa4damaaCaaaleqajeaibaqcLbmapeGaeu yNd4KaeyOeI0IaeyymaedaaKqzGeGaeqySdewcfa4damaaCaaaleqa jeaibaqcLbmapeGaeuyNd4KaeyOeI0IaeyymaedaaaGccaGLBbGaay zxaaaaaa@6952@ .

The Laguerre functions can be used to describe the impulse response of the stable system. If we consider the future control signals in model predictive control as the impulse response of a SISO system,   Δ u MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaacckacqGHuoarcaWG1baaaa@3A2A@ can be described as

Δ u ( k m + k ) = L ( k ) T η MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaadwhajuaGdaqadaGcpaqaaKqzGeWdbiaadUga juaGpaWaaSbaaKqaGeaajugWa8qacaWGTbaal8aabeaajugib8qacq GHRaWkcaWGRbaakiaawIcacaGLPaaajugibiabg2da9iaabYeajuaG daqadaGcpaqaaKqzGeWdbiaabUgaaOGaayjkaiaawMcaaKqba+aada ahaaWcbeqcbasaaKqzadWdbiaabsfaaaqcLbsacqaH3oaAaaa@4DE2@ (2.34)
where η = [ c 1 c 2 c N ] T . MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabeE7aOjabg2da9iaacUfacaWGJbqcfa4damaaBaaajeai baqcLbmapeGaaGymaaWcpaqabaqcLbsacaaMc8+dbiaadogajuaGpa WaaSbaaKqaGeaajugWa8qacaaIYaaal8aabeaajugibiabl+Uim9qa caWGJbqcfa4damaaBaaajeaibaqcLbmapeGaamOtaaWcpaqabaqcLb sapeGaaiyxaKqba+aadaahaaWcbeqcbasaaKqzadWdbiaadsfaaaqc LbsacaGGUaaaaa@507C@

For a MIMO system, Δ u ( k m + k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabgs5aejaadwhajuaGdaqadaGcpaqaaKqzGeWdbiaadUga juaGpaWaaSbaaKqaGeaajugWa8qacaWGTbaal8aabeaajugib8qacq GHRaWkcaWGRbaakiaawIcacaGLPaaaaaa@4273@ is given in following equation:

Δu ( k m + k ) = [ L 1 ( k ) T 0 0 L 2 ( k ) T 0 0 0 0 L p ( k ) T ] η MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabs5acaqG1bqcfa4aaeWaaOWdaeaajugib8qacaqGRbqc fa4damaaBaaajeaibaqcLbmapeGaaeyBaaWcpaqabaqcLbsapeGaey 4kaSIaae4AaaGccaGLOaGaayzkaaqcLbsacqGH9aqpjuaGdaWadaGc paqaaKqzGeqbaeqabmWaaaGcbaqcLbsafaqabeGacaaakeaajugib8 qacaqGmbqcfa4damaaBaaajeaibaqcLbmapeGaaGymaaWcpaqabaqc fa4dbmaabmaak8aabaqcLbsapeGaae4AaaGccaGLOaGaayzkaaqcfa 4damaaCaaaleqajeaibaqcLbmapeGaaeivaaaaaOWdaeaajugib8qa caaIWaaak8aabaqcLbsapeGaaGimaaGcpaqaaKqzGeWdbiaabYeaju aGpaWaaSbaaKqaGeaajugWa8qacaaIYaaal8aabeaajuaGpeWaaeWa aOWdaeaajugib8qacaqGRbaakiaawIcacaGLPaaajuaGpaWaaWbaaS qabKqaGeaajugWa8qacaqGubaaaaaaaOWdaeaajugibuaabeqaceaa aOqaaKqzGeWdbiabl+UimbGcpaqaaKqzGeWdbiabl+UimbaaaOWdae aajugibuaabeqaceaaaOqaaKqzGeWdbiaaicdaaOWdaeaajugib8qa caaIWaaaaaGcpaqaaKqzGeqbaeqabeGaaaGcbaqcLbsapeGaeS47IW eak8aabaqcLbsapeGaeS47IWeaaaGcpaqaaKqzGeWdbiablgVipbGc paqaaKqzGeWdbiabl6UinbGcpaqaaKqzGeqbaeqabeGaaaGcbaqcLb sapeGaaGimaaGcpaqaaKqzGeWdbiaaicdaaaaak8aabaqcLbsapeGa eS47IWeak8aabaqcLbsapeGaaeitaKqba+aadaWgaaqcbasaaKqzad WdbiaabchaaSWdaeqaaKqba+qadaqadaGcpaqaaKqzGeWdbiaabUga aOGaayjkaiaawMcaaKqba+aadaahaaWcbeqcbasaaKqzadWdbiaabs faaaaaaaGccaGLBbGaayzxaaqcLbsacaqG3oaaaa@8994@ (2.35)

Where Δu(k m ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabs5acaqG1bGaaeikaiaabUgajuaGdaWgaaqcfasaaiaa d2gaaKqbagqaaKqzGeGaaeykaaaa@3DE8@ is the current incremental control, Δu ( k m + k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabs5acaqG1bqcfa4aaeWaaOWdaeaajugib8qacaqGRbqc fa4damaaBaaajeaibaqcLbmapeGaaeyBaaWcpaqabaqcLbsapeGaey 4kaSIaae4AaaGccaGLOaGaayzkaaaaaa@421E@ is the future incremental control at sample k and L 1 ( k ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabYeajuaGpaWaaSbaaKqaGeaajugWa8qacaaIXaaal8aa beaajuaGpeWaaeWaaOWdaeaajugib8qacaqGRbaakiaawIcacaGLPa aaaaa@3E46@ represents the Laguerre network description for the ith control. The input matrix can be partitioned to

B = [ B 1 B 2 B p ] . MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaWGcb Gaeyypa0Jaai4waiaadkeajuaGdaWgaaqcbasaaKqzadGaaGymaaWc beaajugibiaadkeajuaGdaWgaaqcbasaaKqzadGaaGOmaaWcbeaaju gibiabl+UimjaadkeajuaGdaWgaaqcbasaaKqzadGaamiCaaWcbeaa jugibiaac2facaGGUaaaaa@4956@

Then the cost function becomes

J = η T Ωη + 2 η T ψx ( k i ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabQeacqGH9aqpcaqG3oqcfa4damaaCaaaleqajeaibaqc LbmapeGaaeivaaaajugibiaabM6acaqG3oGaey4kaSIaaGOmaiaabE 7ajuaGpaWaaWbaaSqabKqaGeaajugWa8qacaqGubaaaKqzGeGaaeiY diaabIhajuaGdaqadaGcpaqaaKqzGeWdbiaabUgajuaGpaWaaSbaaK qaGeaajugWa8qacaqGPbaal8aabeaaaOWdbiaawIcacaGLPaaaaaa@4F79@ (2.36)

Where the matrix Ω MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM6aaaa@37D4@ and ψ MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabeI8a5baa@3873@ are

Ω = m = 1 N p ϕ ( m ) Q ϕ ( m ) T + R L MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM6acqGH9aqpjuaGdaaeWaGcbaqcLbsacqaHvpGzjuaG daqadaGcpaqaaKqzGeWdbiaab2gaaOGaayjkaiaawMcaaKqzGeGaae yuaiabew9aMLqbaoaabmaak8aabaqcLbsapeGaaeyBaaGccaGLOaGa ayzkaaqcfa4damaaCaaaleqajeaibaqcLbmapeGaaeivaaaajugibi abgUcaRiaabkfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGmbaal8aa beaaaKqaG8qabaqcLbmacaWGTbGaeyypa0JaaGymaaqcbasaaKqzad GaamOtaSWaaSbaaKGaGfaajugOaiaadchaaKGaGeqaaaqcLbsacqGH ris5aaaa@5A68@

ψ = m = 1 N p ϕ ( m ) QA m MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabeI8a5jabg2da9Kqbaoaaqadakeaajugibiabew9aMLqb aoaabmaak8aabaqcLbsapeGaaeyBaaGccaGLOaGaayzkaaqcLbsaca qGrbGaaeyqaKqba+aadaahaaWcbeqcbasaaKqzadWdbiaab2gaaaaa jqwaa+FaaKqzadGaamyBaiabg2da9iaaigdaaKazba4=baqcLbmaca WGobWcdaWgaaqccawaaKqzGcGaamiCaaqccasabaaajugibiabggHi Ldaaaa@5474@

ϕ ( m ) T = ( j = 0 ) ( m 1 ) A ( m j 1 ) [ B 1 L 1 ( j ) T B 2 L 2 ( j ) T B p L p ( j ) T ] MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabew9aMjaacIcacaWGTbGaaiykaKqba+aadaahaaWcbeqc basaaKqzadWdbiaadsfaaaqcLbsacqGH9aqpjuaGdaaeWaGcbaqcLb sacaWGbbqcfa4damaaCaaaleqajeaibaqcLbmapeGaaiikaiaad2ga cqGHsislcaWGQbGaeyOeI0IaaGymaiaacMcaaaqcLbsacaGGBbGaam OqaKqba+aadaWgaaqcbasaaKqzadWdbiaaigdaaSWdaeqaaKqzGeWd biaadYeajuaGpaWaaSbaaKqaGeaajugWa8qacaaIXaaal8aabeaaju gib8qacaGGOaGaamOAaiaacMcajuaGpaWaaWbaaSqabKqaGeaajugW a8qacaWGubaaaKqzGeGaamOqaKqba+aadaWgaaqcbasaaKqzadWdbi aaikdaaSWdaeqaaKqzGeWdbiaadYeajuaGpaWaaSbaaKqaGeaajugW a8qacaaIYaaal8aabeaajugib8qacaGGOaGaamOAaiaacMcajuaGpa WaaWbaaSqabKqaGeaajugWa8qacaWGubaaaKqzGeWdaiabl+Uim9qa caWGcbqcfa4damaaBaaajeaibaqcLbmapeGaamiCaaWcpaqabaqcLb sapeGaamitaKqba+aadaWgaaqcbasaaKqzadWdbiaadchaaSWdaeqa aKqzGeWdbiaacIcacaWGQbGaaiykaKqba+aadaahaaWcbeqcbasaaK qzadWdbiaadsfaaaaajeaibaqcLbmacaGGOaGaamOAaiabg2da9iaa icdacaGGPaaajeaibaqcLbmacaGGOaGaamyBaiabgkHiTiaaigdaca GGPaaajugibiabggHiLdGaaiyxaaaa@86B7@

Biis the ith column of the B matrix, Q and RL are weighting matrix, Q = C T × C MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadgfacqGH9aqpcaWGdbqcfa4damaaCaaaleqajeaibaqc LbmapeGaamivaaaajugib8aacqGHxdaTpeGaam4qaaaa@3FE1@ is weighting matrix for state variables, R L = r w × I N × N MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabkfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGmbaal8aa beaajugib8qacqGH9aqpcaqGYbqcfa4damaaBaaajeaibaqcLbmape Gaae4DaaWcpaqabaqcLbsapeGaey41aqRaaeysaKqba+aadaWgaaqc basaaKqzadWdbiaab6eacqGHxdaTcaqGobaal8aabeaaaaa@49D9@ is a diagonal matrix (N × N) for control variables η MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacqaH3o aAaaa@3832@ .

The object of model predictive control is to solve an optimization problem that takes into account the constraints. Although model predictive control is able to deal with many kinds of constraints either on control signals or on output signals, here we will only focus on constraints on the Amplitude of the Control Variables. Optimization in MPC is realized by minimizing the object function subject to some constraints, which can be considered as a quadratic programming problem. The objective function J and the constraints in Quadratic Programming are expressed as

J = 1 2 x T Ex + 2 x T F MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabQeacqGH9aqpjuaGdaWcaaGcpaqaaKqzGeWdbiaaigda aOWdaeaajugib8qacaaIYaaaaiaabIhajuaGpaWaaWbaaSqabKqaGe aajugWa8qacaqGubaaaKqzGeGaaeyraiaabIhacqGHRaWkcaaIYaGa aeiEaKqba+aadaahaaWcbeqcbasaaKqzadWdbiaabsfaaaqcLbsaca qGgbaaaa@494E@ (2.37)

Μ x γ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacqqHCo qtcaWG4bGaeyizImQaeq4SdCgaaa@3C56@ (2.38)

Where E, F, M and γ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabo7aaaa@37DF@ are compatible matrices and vectors in the quadratic programming problem.
A simple algorithm called Hildreth’s Quadratic Programming was proposed to solve Quadratic Programming problem. The iteration expression of Hildreth’s Quadratic Programming Procedure is given in following equation:

λ i m + 1 = max ( 0 , ω i m + 1 ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabeU7aSLqba+aadaqhaaqcbasaaKqzadWdbiaadMgaaKqa G8aabaqcLbmapeGaamyBaiabgUcaRiaaigdaaaqcLbsacqGH9aqpci GGTbGaaiyyaiaacIhajuaGdaqadaGcpaqaaKqzGeWdbiaaicdacaGG SaGaeqyYdCxcfa4damaaDaaajeaibaqcLbmapeGaamyAaaqcbaYdae aajugWa8qacaWGTbGaey4kaSIaaGymaaaaaOGaayjkaiaawMcaaaaa @5109@ (2.39)

Where ω i m + 1 = 1 h i i [ k i + j = 1 i 1 h i j λ j m + 1 + j = i + 1 n h i j λ j m ] MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabeM8a3Lqba+aadaqhaaqcbasaaKqzadWdbiac0b4GPbaa jeaipaqaaKqzadWdbiaad2gacqGHRaWkcaaIXaaaaKqzGeGaeyypa0 JaeyOeI0scfa4aaSaaaOWdaeaajugib8qacaaIXaaak8aabaqcLbsa peGaamiAaKqba+aadaWgaaqcbasaaKqzadWdbiaadMgacaWGPbaal8 aabeaaaaqcfa4dbmaadmaak8aabaqcLbsapeGaam4AaKqba+aadaWg aaqcbasaaKqzadWdbiaadMgaaSWdaeqaaKqzGeWdbiabgUcaRKqbao aaqadakeaajugibiaadIgajuaGpaWaaSbaaKqaGeaajugWa8qacaWG PbGaamOAaaWcpaqabaqcLbsapeGaeq4UdWwcfa4damaaDaaajeaiba qcLbmapeGaamOAaaqcbaYdaeaajugWa8qacaWGTbGaey4kaSIaaGym aaaaaKqaGeaajugWaiaabQgacqGH9aqpcaaIXaaajeaibaqcLbmaca qGPbGaeyOeI0IaaGymaaqcLbsacqGHris5aiabgUcaRKqbaoaaqada keaajugibiaadIgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbGaam OAaaWcpaqabaqcLbsapeGaeq4UdWwcfa4damaaDaaajeaibaqcLbma peGaamOAaaqcbaYdaeaajugWa8qacaWGTbaaaaqcbasaaKqzadGaae OAaiabg2da9iaabMgacqGHRaWkcaaIXaaajeaibaqcLbmacaWGUbaa jugibiabggHiLdaakiaawUfacaGLDbaaaaa@8757@ (2.40)

m means the mth iteration, the scalar h i i MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIgajuaGpaWaaSbaaKqaGeaajugWa8qacaWGPbGaamyA aaWcpaqabaaaaa@3BAF@ is the ijth element in the matrix H = M E 1 M T MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIeacqGH9aqpcaWGnbGaamyraKqba+aadaahaaWcbeqc basaaKqzadWdbiabgkHiTiaaigdaaaqcLbsacaWGnbqcfa4damaaCa aaleqajeaibaqcLbmapeGaamivaaaaaaa@425B@ and ki is the ith element in the vector. K = γ + ME 1 F,  λ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadUeacqGH9aqpcaqGZoGaey4kaSIaaeytaiaabweajuaG paWaaWbaaSqabKqaGeaajugWa8qacqGHsislcaaIXaaaaKqzGeGaae OraiaabYcacaqGGaGaeq4UdWgaaa@4467@ is a column vector called Lagrange multiplier. The number of its components is equal to the number of inequality equations for input constraints and   λ i MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaacckacqaH7oaBjuaGdaWgaaqcbasaaKqzadGaamyAaaWc beaaaaa@3C7D@ is the ith component of the Lagrange multiplier.

When the iteration is completed, the converged Lagrange multiplier λ * MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiabeU7aSLqba+aadaahaaWcbeqcbasaaKqzadWdbiaabQca aaaaaa@3B38@ contains either zero or positive values. The constrained minimization over x is given by

x = E 1 ( F + M T λ * ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIhacqGH9aqpcqGHsislcaqGfbqcfa4damaaCaaaleqa jeaibaqcLbmapeGaeyOeI0IaaGymaaaajuaGdaqadaGcpaqaaKqzGe WdbiaabAeacqGHRaWkcaqGnbqcfa4damaaCaaaleqajeaibaqcLbma peGaaeivaaaajugibiaabU7ajuaGpaWaaWbaaSqabKqaGeaajugWa8 qacaqGQaaaaaGccaGLOaGaayzkaaaaaa@4B44@ (2.41)

As it can be seen from (2.40), the on-line computation demand of MPC is mainly determined by the size of matrix H = M E 1 M T MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaadIeacqGH9aqpcaWGnbGaamyraKqba+aadaahaaWcbeqc basaaKqzadWdbiabgkHiTiaaigdaaaqcLbsacaWGnbqcfa4damaaCa aaleqajeaibaqcLbmapeGaamivaaaaaaa@425B@ . The size of matrix M is determined by the number of inequality equations, which can’t be changed; therefore the size of matrix E is the critical factor for decreasing the on-line computation requirement.

For traditional MPC, the cost function is given in (2.24). To perform optimization, we substitute the matrix E in (2.37) with matrix ( Φ T Φ + R ¯ ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaqadaGcpaqaaKqzGeWdbiabfA6agLqba+aadaahaaWcbeqc basaaKqzadWdbiaadsfaaaqcLbsacqqHMoGrcqGHRaWkjuaGdaqdaa qaaiaadkfaaaaakiaawIcacaGLPaaaaaa@41D6@ . It should be noted that the size of matrix ( Φ T Φ + R ¯ ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcfaieaaaaaa aaa8qadaqadaGcpaqaaKqzGeWdbiabfA6agLqba+aadaahaaWcbeqc basaaKqzadWdbiaadsfaaaqcLbsacqqHMoGrcqGHRaWkjuaGdaqdaa qaaiaadkfaaaaakiaawIcacaGLPaaaaaa@41D6@ is (N c × p ) × ( N c × p ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabIcacaqGobqcfa4damaaBaaajeaibaqcLbmapeGaae4y aaWcpaqabaqcLbsapeGaey41aqRaaeiCaiaacMcacqGHxdaTcaGGOa GaaeOtaKqba+aadaWgaaqcbasaaKqzadWdbiaabogaaSWdaeqaaKqz GeWdbiabgEna0kaabchacaGGPaaaaa@4AAE@ and hence it can be concluded that the number factors involved in on-line computation is determined by the control horizon N c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab6eajuaGpaWaaSbaaKqaGeaajugWa8qacaqGJbaal8aa beaaaaa@3A9D@ . For some complex dynamic system, N c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab6eajuaGpaWaaSbaaKqaGeaajugWa8qacaqGJbaal8aa beaaaaa@3A9D@ has to be selected greater than 80 to stabilize the system, which will lead to a large computation demand.

For Laguerre MPC, the matrix E in (2.37) can be substituted by Ω MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabM6aaaa@37D5@ , which is a (N c × p ) × ( N c × p ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabIcacaqGobqcfa4damaaBaaajeaibaqcLbmapeGaae4y aaWcpaqabaqcLbsapeGaey41aqRaaeiCaiaacMcacqGHxdaTcaGGOa GaaeOtaKqba+aadaWgaaqcbasaaKqzadWdbiaabogaaSWdaeqaaKqz GeWdbiabgEna0kaabchacaGGPaaaaa@4AAE@ matrix. The number of factors involved in on-line computation is decided by the Parameter N. It should be noted that N can be a factor of N c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab6eajuaGpaWaaSbaaKqaGeaajugWa8qacaqGJbaal8aa beaaaaa@3A9D@ when the Laguerre scaling factor a is selected greater than zero, which means the factors involved in on-line computation will be decreased greatly when Laguerre functions are utilized in MPC design. If a is equal to zero, N has to be chosen to be equal to N c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab6eajuaGpaWaaSbaaKqaGeaajugWa8qacaqGJbaal8aa beaaaaa@3A9D@ and under this situation the Laguerre MPC becomes identical to traditional MPC. This is a very attractive property of Laguerre MPC because we can easily compare the performances of these two MPC algorithms by change the value of Laguerre scaling factor a

Hardware design

Different types of control applications require different implementation solutions. Most MPC applications target process control, in which sample periods are low and the plant is physically large, meaning that processing based upon an industrial computer is adoptable. However, the proposed electro-magnetic control system is targeting very small satellites, in which the controller hardware must be embedded. It may require very high sampling rate for precise attitude control. Also executing the MPC is relatively complex with heavy matrix operations. It is therefore requires some high performance device for control system processing.

SoC for satellite on-board data handling

There are two types of satellite on-board data handling systems: central and distributed. The central processing approach has one on-board computer to deal with all the data processing for each subsystem. The distributed processing approach, however, has many on-board computers. Some subsystems may have more than one processor. Nowadays most of the satellites adopt the distributed approach, but for nanosatellites this approach is not efficient due to the limited size and power. Hence, the SoC solution is proposed not only for attitude control but also for data processing for other subsystems.

The SoC can implement the whole digital functionality of the satellite on a single chip. The gate densities achieved in current FPGA devices have enough logic gates/elements to implement different functionalities on the same chip by mixing self-designed modules with third party ones. In the SoC, it contains dedicated processors for each subsystem. Figure 1 shows the SoC architecture. It contains a general purpose processor and the dedicated processors. Its structure comprises an AMBA17 compliant bus that communicates between the general purpose processor and the control system processor. Generally, the MPCSP is independent, but the general purpose processor as the controller of the SoC monitors the control state variables and satellite attitude information from the inertial sensors. These data are a part of telemetry information for satellite housekeeping.

Figure 1 Soc architecture for satellite OBDH.

MPCSP design and implementation

To map the control algorithm to processor architecture, it is divided into tasks or processes. These processes include data input and output (IO), data storage (Memories), timer, instruction fetching and decoding, next instruction address calculation (Program Counter) and arithmetic operations (ALU). This partitioning should allow all the processes to be mapped easily into hardware, minimizing the resources required.

The number of concurrent operations can determine the amount and functionality of the hardware structures. For example, the maximum number of simultaneous data transactions that required for arithmetic operations determines the number of ALU ports. Also, communication channels between the ALU, accumulator, memories and IO must be assigned with specific data bus.

The execution of the control algorithm requires the repeated execution of a set of instructions (program). Although the number of instructions in the control loop can be small in the case of implementing a simple controller, the overhead that manipulate the program counter maybe relatively large. We therefore must pay special attention to the architecture of the program counter that implements control loops. Thus, the MPCSP can provide a looping mechanism that introduces a short, or ideally zero, overhead.

The final step is to create a hardware model that supports the operations needed to implement the control algorithm. This hardware model is programmed using the hardware description language. The resulted MPCSP is simulated and verified by running the MPC algorithm with the application-specific instructions. The MPCSP is then synthesized floor planned and placed & routed. The final net list can be verified via being downloaded into the FPGA and running the hardware-in-loop simulation.

Figure 2 shows the MPCSP architecture. It adopts a simple mixed data format in 2’s complement: the coefficients are in 12-bit floating point format, with 6-bit for mantissa and 6-bit for exponent. The state variables and other data are in 32-bit fixed point format, with 16 integer bits and 16 fractional bits. The memories include program ROM, data ROM and data RAM for control program, coefficients and intermediate states respectively. The sample timer is used to determine the sample interval for each control loop. The program counter processes one instruction at each clock cycle. It will halt the operation at the end of the control program, and reset to the address where the control loop starts at the rising edge of the sample timer.

Figure 2 MPCSP architecture.

The MAC is the only processing element in the previous CSP design. Although this approach reduces the circuitry complexity, it is not efficient in terms of power and speed. Hence, in the MPCSP design, several processing elements are adopted for arithmetic operations as shown in Table 1. Each instruction uses the standard RISC convention of 32-bit fixed-length. All instructions have a single clock cycle execution.

Op code

Name

Function Description

0

HLT

No Operation

1

RDW

Read data from data ROM

10

WRW

Write data to data RAM

11

OUT

Output the control signals

100

MUL

Multiply

101

ADD

add

110

SUB

subtract

111

INV

invert

1000

SET

Set the sampling frequency

1xx1

WPC

Set the star value for the program counter

Table 1 MPCSP instructions

The IO block has 12 inputs and 4 PWM outputs. The inputs are connected to the inertial sensors, including accelerometers, gyroscopes, magnetometers and sun sensors. The outputs are connected to the magnet coils through the power amplifiers. For attitude control, 3 magnet coils are needed to provide three-axis actuation.

The data bus and address bus of the MPCSP are connected to the AMBA to allow the general-purpose processor collect house-keeping data. The MPCSP is implemented targeting the Xilinx Virtex-4 FX100 FPGA technology. The MPCSP occupies less than 8% of the FPGA total area. It runs up to 120MHz. The power consumption is around 183 mW.

Implementation and results

Simulation results

The simulating nano satellite operates at low Earth orbit altitude of 650km with an orbital inclination of 96° and has inertia matrix I=diag ([6.858e-4 6.858e-4 8.164e-4]). The MPC tuning parameters are listed in Table 2. We can see that in traditional MPC design, the control horizon N c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab6eajuaGpaWaaSbaaKqaGeaajugWa8qacaqGJbaal8aa beaaaaa@3A9D@ is normally chosen to be more than 30 to get a sound control performance. While using Laguerre function, N can be selected as 5 to obtain the same performance, which means 6 times less parameters involved in on-line computation.

MPC

Without Laguerre

With Laguerre

Sampling interval

60s

60s

Prediction horizon N P MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab6eajuaGdaWgaaqcbasaaKqzadGaamiuaaWcbeaaaaa@3A5E@

30

60

Control horizon N C MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaab6eajuaGdaWgaaqcbasaaKqzadGaam4qaaWcbeaaaaa@3A51@

30

5

Scaling factor for T Cx T Cy T Cz MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabsfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGdbGaaeiE aaWcpaqabaqcLbsapeGaaeivaKqba+aadaWgaaqcbasaaKqzadWdbi aaboeacaqG5baal8aabeaajugib8qacaqGubqcfa4damaaBaaajeai baqcLbmapeGaae4qaiaabQhaaSWdaeqaaaaa@466F@

0.5,0.5,0.5

0.5,0.5,0.5

Number of terms for T Cx T Cy T Cz MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaabsfajuaGpaWaaSbaaKqaGeaajugWa8qacaqGdbGaaeiE aaWcpaqabaqcLbsapeGaaeivaKqba+aadaWgaaqcbasaaKqzadWdbi aaboeacaqG5baal8aabeaajugib8qacaqGubqcfa4damaaBaaajeai baqcLbmapeGaae4qaiaabQhaaSWdaeqaaaaa@466F@

5,5,5

5,5,5

Control weighting (R)

0.1,0.1,0.06

0.1,0.1,0.06

Table 2 MPC tuning parameters

The control system is initialized at satellite pointing angles of   1 ° MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaacckacaaIXaWcdaahaaadbeqaaiaabclaaaaaaa@39F0@ about each axis and angular rates of 0.0005 rad/s about the roll, yaw and pitch axes.

The first set of simulation was carried out in Matlab, assuming no constraints on the control variables and the results are shown in Figures 3-5.

Figure 3 Attitude angles: simulation without constraints on the control torquers.

Figure 4 Attitude angular rates: simulation without constraints on the control torquers.

Figure 5 Magnetic torques: simulation without constraints on control torquers.

A second set of simulation was carried out in Matlab, with the constraints of Eqs. 27 and 28. The amplitude of the control torquers is [ 3 × 10 ( 9 ) N m , 3 × 10 ( 9 ) N m ] MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsaqaaaaa aaaaWdbiaacUfacqGHsislcaaIZaGaey41aqRaaGymaiaaicdajuaG paWaaWbaaSqabKqaGeaajugWa8qacaGGOaGaeyOeI0IaaGyoaiaacM caaaqcLbsacaWGobGaeyOeI0IaamyBaiaacYcacaaIZaGaey41aqRa aGymaiaaicdajuaGpaWaaWbaaSqabKqaGeaajugWa8qacaGGOaGaey OeI0IaaGyoaiaacMcaaaqcLbsacaWGobGaeyOeI0IaamyBaiaac2fa aaa@538C@ . The results are shown in Figures 6-8. As it can be seen in Figures 3-5, the simulation result violate the amplitude constraints, while the second set of simulations, the amplitude of control torque is successfully constrained within ± 3 × 10 ( 9 ) N m . MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacqGHXc qSqaaaaaaaaaWdbiaaiodapaGaey41aq7dbiaaigdacaaIWaqcfa4d amaaCaaaleqajeaibaqcLbmapeGaaiikaiabgkHiTiaaiMdacaGGPa aaaKqzGeGaamOtaiabgkHiTiaad2gacaGGUaaaaa@4629@ Obviously, due to the constraints on control torquers, it takes the system longer to come to the set points.

Figure 6 Attitude angles: simulation with constraints on the control torquers.

Figure 7 Attitude angular rates: simulation with constraints on the control torquers.

Figure 8 Magnetic torque: simulation with constraints.

Hardware-in-loop simulation

The MPC is then implemented on the MPCSP. A hardware-in-loop simulation platform as shown in Figure 9 is developed to test the control system processor. The MPCSP is implemented in a Virtex-4 FX100 FPGA board. The satellite attitude dynamics is modelled in C program in the computer. The PWM actuation signals from the FPGA board are sent to the computer using the industrial digital IO card. The feedback signals like angular rate are sent to the FPGA board using the analogue to digital converters.

Figure 9 Hardware-in-loop simulation for MPCSP.

Figures 10 & 11 show the results from the hardware-in-loop simulation. Compared to the Matlab simulation, in the difference is rather small. Hence the MPCSP is feasible for satellite attitude control using magnet torquers.

Figure 10 Attitudes: comparisons between hardware-in-loop simulation (Red) and Matlab simulation (Blue).

Figure 11 Attitude angular rates: comparisons between hardware in loop simulation (Red) and Matlab simulation (Blue).

Conclusion

A satellite magnetic controller is designed using Discrete-time Laguerre networks based MPC. Two sets of simulations are conducted on the same controller to compare its performance with and without constraints. From the results shown, the magnetic controller can lead to an impressive performance in satellite attitude control. With model predictive algorithm, it can successfully deal with hard constraints on control torquers. The MPC can greatly improve the stability of the satellite attitudes with small torques generated from the magnetorquers. This feature is important for small satellites as they normally cannot accommodate larger actuation devices, like thrusters, reaction wheels and so on.

A dedicated control system processor is developed to execute the MPC algorithm. The MPCSP can run upto 120MHz, while consuming 183mW and occupies less than 8% area of a Virtex-4 FX100 FPGA. The MPCSP is used to implement a model predictive attitude control law for a nanosatellite. The hardware-in-loop simulation shows that the MPCSP produces almost the same results as the Matlab simulation.

In future, the MPCSP will be applied in a student-built satellite mission, which is currently under investigation at the University of Sydney.

Acknowledgement

None.

Conflicts of Interest

Author declares that there is no conflict of interest.

References

  1. CubeSat Kit, Pumpkin, Inc, San Francisco, USA.
  2. G James Wells, L Stras, T Jeans. Canada’s Smallest Satellite: The Canadian Advanced Nanospace experiment (CANX-1). 2002. p. 1‒12.
  3. AAU students has now started launch campaign on AAUSat. CubeSat. 2008.
  4. Compass 1: CubeSat imaging project of the University of Applied Science at Aachen, Germany.
  5. P Fortescue, J Stark, G Swinerd. Spacecraft Systems Engineering. 3rd edn. Wiley Press, USA; 2003. 704 p.
  6. E Silani, M Lovera. Magnetic spacecraft attitude control: a survey and some new results. Control Engineering Practice. 2005;13:357‒371.
  7. L Wang. Model Predictive Control System Design and Implementation using MATLAB. Springer Press, USA; 2009. 377 p.
  8. Hovland S, Willcox K, Gravdahl JT. MPC for Large-Scale Systems via Model Reduction and Multiparametric Quadratic Programming. 45th IEEE Conference on Decision & Control. San Diego, USA; 2006. p. 3418‒3423.
  9. W Chen, M Wood, D Fertin. Model Predictive Control of Low Earth Orbiting Spacecraft with Magneto-torquers. Proceedings of IEEE International Conference on Control Applications. Munich, Germany; 2006. 1‒8 p.
  10. R Goodall, S Jones, R Cumplido Parra, et al. A control system processor architecture for complex LTI controllers. Proceedings of 6th IFAC Workshop AARTC. Palma de Mallorca, Spain; 2000. 167‒172 p.
  11. RA Cumplido Parra. On the design and implementation of a control system processor. Ph.D. thesis, Loughborough University. 2001.
  12. Xiaofeng Wu, Vassilios Chouliaras, Jose Nunez-Yanez, et al. A Novel Control System Processor and Its VLSI Implementation, IEEE trans. on VLSI. 2008;16(3):217‒228.
  13. Xiaofeng Wu, Roger Goodall. 1-bit processing for digital control, IET Proc. Control Theory & Applications. 2005;152(4):403‒410.
  14. K Stempak. Equiconvergence for Laguerre function series. Studia Mathematica. 1996;118(3):1‒9.
  15. MJ Sidi Spacecraft dynamics and control. Cambridge University Press, Cambridge, UK, 403 p.
  16. ML Psiaki. Magnetic Torquer Attitude Control via Asymptotic Periodic Linear Quadratic Regulation. AIAA Guidance, Navigation, and Control Conference. Denver, Colorado, USA; 2000.
  17. AMBA Specification (Rev 2.0). ARM Limited, UK; 1999. 230 p.
Creative Commons Attribution License

©2017 Wu, et al. This is an open access article distributed under the terms of the, which permits unrestricted use, distribution, and build upon your work non-commercially.