CN103366058B - FPGA-based high-dimensional Kalman filter and implementation method thereof - Google Patents

FPGA-based high-dimensional Kalman filter and implementation method thereof Download PDF

Info

Publication number
CN103366058B
CN103366058B CN201310282702.9A CN201310282702A CN103366058B CN 103366058 B CN103366058 B CN 103366058B CN 201310282702 A CN201310282702 A CN 201310282702A CN 103366058 B CN103366058 B CN 103366058B
Authority
CN
China
Prior art keywords
double
square formation
computing
controller
precision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310282702.9A
Other languages
Chinese (zh)
Other versions
CN103366058A (en
Inventor
陶飞
刘轶龙
王聪
张霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201310282702.9A priority Critical patent/CN103366058B/en
Publication of CN103366058A publication Critical patent/CN103366058A/en
Application granted granted Critical
Publication of CN103366058B publication Critical patent/CN103366058B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

The invention relates to an FPGA (Field Programmable Gate Array)-based high-dimensional Kalman filter and an implementation method thereof and belongs to the technical field of aerospace navigation. The FPGA-based high-dimensional Kalman filter comprises a filtering logic controller, a double-precision arithmetic unit and a data storage unit; the filtering logic controller comprises a state prediction controller, a covariance prediction controller, a state update controller, a Kalman gain update controller and a covariance update controller; the arithmetic unit mainly comprises a double-precision multiplier, a double-precision divider, a double-precision adder and a double-precision subtracter. The addressing range of the data storage unit can be adjusted, and the data stored in each address are 64-bit double-precision floating point data. The four sub arithmetic units can independently and concurrently fulfill a double-precision filtering calculation under single clock so as to greatly improve the execution speed and calculation precision of the high-dimensional Kalman filtering algorithm.

Description

Higher-dimension Kalman filter based on FPGA and its implementation
Technical field
The present invention relates to the higher-dimension Kalman filter based on FPGA and its implementation, belong to the navigation in Aero-Space Technical field.
Background technology
Kalman filtering designs wave filter using state space method in time domain, is a kind of solution discrete system linear filtering The recursion optimal estimation algorithm of problem.Since 1960's, Kalman filtering algorithm has obtained in-depth study and extensively Engineer applied, many outstanding technological contributions all can be partly due to Kalman filter, and it has many military affairs, industry And the application of science.Wherein main application includes:The navigation of spaceship, the guidance of guided missile and control, satellite navigation with fixed Position, radar and aircraft autopilot etc..
In actual applications, Kalman filter to be realized frequently with general processor, such as single-chip microcomputer, DSP Processor And arm processor.Kalman filter on general processor typically passes through C language programming realization, thus it has design Simple feature.But because Kalman filter has substantial amounts of higher dimensional matrix addition subtraction multiplication and division computing during computing, with The processor of Shi Tongyong employs the hardware structure of program order execution, thus in the occasion higher to requirement of real-time, leads to Tend not to enough meet the requirement to the speed of service for the system with the Kalman filter on processor.Hold for general purpose microprocessor The scanning frequency degree defect low compared with slow, efficiency, (Field Programmable Gate Array, scene can be compiled to make full use of FPGA Journey gate array) oneself height concurrency, execute fireballing feature, in the last few years people in FPGA customize Kalman filtering The hardware circuit of algorithm expands preliminary research.And the Kalman filter being currently based on FPGA is limited to patrol inside fpga chip Collect resource-constrained, thus the matrix dimension of designed wave filter is relatively low, row operation is entered using fractional fixed point simultaneously and save computing Resource, this greatly reduces the filtering performance of Kalman filter.
Content of the invention
The technology of the present invention solve problem:Overcome the deficiencies in the prior art, a kind of filter of the higher-dimension Kalman based on FPGA is provided Ripple device and its implementation, with solve conventional processors execute higher-dimension Kalman filtering algorithm speed is slow, precision is low, thus meeting The problem of impact navigation performance, substantially increases execution speed and the computational accuracy of higher-dimension Kalman filtering algorithm.
The technology of the present invention solution:Based on the higher-dimension Kalman filter of FPGA, as shown in figure 1, including:Filtering logic Controller, arithmetic unit and memory;Described filtering logic controller is by status predication controller (2a), covariance predictive controller (2b), kalman gain updates controller (2d), and state updates controller (2c) and covariance updates controller (2e) five and patrols Collect sub-controller composition;Described arithmetic unit is by double-precision multiplication device (3a), double precision divider (3b), double adder (3c) And the sub- arithmetic unit of double precision subtracter (3d) four is constituted, every sub- arithmetic unit has two data-in ports and a data Output port;
Logic controller gives filtering sequential, under the constraint of filtering sequential, the data reading from data storage is assigned It is worth to the input port of arithmetic unit, and the output data of arithmetic unit is written in data storage;
Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) inputoutput data of four sub- arithmetic units is all connected with memory by data/address bus;When status predication controller (2a), covariance predictive controller (2b), kalman gain updates controller (2d), and state updates controller (2c) and covariance After the given sequential of five logic sub-controllers institutes of renewal controller (2e) execute successively, then complete once to filter, now recycle Execution, realizes Real-Time Filtering.
Described memory to be realized using RAM, and the address-bus width of RAM is 12, addressing range 0-4095, each The data width of addressed memory storage is 64, illustrates a double-precision floating point type data, the data sectional composition of storage in RAM The parameter matrix of filtering algorithm and intermediate variable matrix.The Kalman filter of 15 dimensions can be realized under this design structure, so Passing through again afterwards to increase the width of address bus, expanding the addressing range of memory further, thus completing the karr of higher dimension Graceful wave filter.
Based on the higher-dimension Kalman filter implementation method of FPGA, first the filtering algorithm correlation matrix in memory is entered Go and initialize, then five steps below repetition under conditions of constantly from outside reading observed quantity, thus complete Kalman filtering Wave process, is implemented as:
(1) status predication controller completion status prediction
Status predication controller (2a) needs to control and reads relevant with status predication data in memory, required for delivering to Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four Sub- arithmetic unit is calculated, and result of calculation is written to the status predication result storage region in memory, complete in this process Become 1 " square formation × column vector " computing;
(2) covariance predictive controller completes covariance prediction
Covariance predictive controller needs to control successively and reads relevant with covariance prediction data in memory, delivers to institute Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and the double precision subtracter (3d) needing Four sub- arithmetic units are calculated, and covariance result of calculation being written in memory predicts the outcome storage region, here Process completes 1 " square formation × square formation " computing, 1 " square formation × square formation " computing and 1 " square formation+square formation " computing;
(3) kalman gain renewal controller completes kalman gain renewal
Kalman gain updates controller and needs to control relevant with kalman gain renewal number in reading memory successively According to, the double-precision multiplication device (3a) required for delivering to, double precision divider (3b), double adder (3c) and double precision subtract Four sub- arithmetic units of musical instruments used in a Buddhist or Taoist mass (3d) are calculated, and the kalman gain that result of calculation is written in memory updates result and deposits Storage area domain, completes 1 " square formation × square formation " computing, 1 " square formation × square formation " computing in this process, 1 time " square formation+square formation " transports Calculation, 1 submatrix inversion operation and 1 " square formation × square formation " computing;
(4) state updates controller completion status and updates
State updates controller and needs to control relevant with state renewal data in reading memory successively, required for delivering to Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four Sub- arithmetic unit is calculated, and state result of calculation being written in memory updates result storage region, complete in this process Become 1 " square formation × column vector " computing, 1 " column vector-column vector " computing, 1 " square formation × column vector " computing and 1 " row Vector+column vector " computing;
(5) covariance renewal controller completes covariance renewal
Covariance updates controller and needs to control relevant with covariance renewal data in reading memory successively, delivers to institute Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and the double precision subtracter (3d) needing Four sub- arithmetic units are calculated, and covariance result of calculation being written in memory updates result storage region, here Process completes 1 " square formation × square formation " computing, 1 " square formation-square formation " computing and 1 " square formation × square formation " computing.
Present invention advantage compared with prior art is:
(1) instant invention overcomes executing the low deficiency of speed, four son fortune in Kalman filtering algorithm in general processor Calculate the filtering calculating that device can complete a double precision under single clock independent parallel, substantially increase higher-dimension Kalman filter The execution speed of ripple algorithm and computational accuracy.
(2) present invention can be by changing the width of memory address bus come to filter on the basis of existing hardware configuration Ripple dimension is adjusted, the Design on Kalman Filter of compatible low-dimensional, has preferable autgmentability.
Above-described " column vector+column vector " and " square formation+square formation " computing are added by FPGA design higher dimensional matrix Logic control state machine realizing, FPGA design higher dimensional matrix is passed through in " column vector-column vector " and " square formation-square formation " computing Realizing, FPGA design higher-dimension is passed through in " square formation × column vector " and " square formation × square formation " computing to the logic control state machine subtracting each other The logic control state machine of matrix multiple is realizing, and the logic control that matrix inversion operation is inverted by FPGA design higher dimensional matrix State machine processed is realizing.
Brief description
Fig. 1 is the higher-dimension Kalman filter Design of Hardware Architecture schematic diagram based on FPGA for the present invention;
Fig. 2 executes, for wave filter of the present invention, the logic control state machine diagram that higher dimensional matrix is added;
Fig. 3 executes, for wave filter of the present invention, the logic control state machine diagram that higher dimensional matrix subtracts each other;
Fig. 4 executes, for wave filter of the present invention, the logic control state machine diagram that higher dimensional matrix is inverted;
Fig. 5 executes, for wave filter of the present invention, the logic control state machine diagram that higher dimensional matrix is multiplied;
Fig. 6 reads and writes the SECO schematic diagram of RAM memory for hardware configuration of the present invention.
Specific embodiment
The essence of Kalman filtering is by the state vector of measured value reconfiguration system, and it is with " prediction actual measurement is revised " Order recursion, the measured value according to system, to eliminate random disturbances, obtains optimal estimation value.
Come below specifically to introduce the algorithm of Kalman filter.
First, introduce the system of a discrete control process.This system can be described with a linear random differential equation:
X (k)=F*X (k-1)+B*U (k)+W (k) (1)
Measured value along with system:
Z (k)=H*X (k)+V (k) (2)
In upper two formulas, X (k) is the system mode in k moment, and U (k) is the controlled quentity controlled variable to system for the k moment.F and B is system Parameter, for Multi-model System, they are matrix.Z (k) is the measured value in k moment, and H is the parameter of measuring system, surveys for more Amount system, H is matrix.W (k) and V (k) represents process and the noise of measurement respectively, and they are assumed to white Gaussian noise, they Covariance be Q, R respectively.To be exported come the optimization of estimating system with reference to their covariance with above variable below.
First have to the process model using system, to predict the system of NextState.Assume that present system mode is k, According to the model of system, present status can be predicted based on the laststate of system:
X (k | k-1)=F*X (k-1 | k-1)+B*U (k) (3)
In formula (3), and X (k | k-1) it is the result predicted using laststate, X (k-1 | k-1) it is the optimum knot of laststate Really, U (k) is the controlled quentity controlled variable of present status, and without controlled quentity controlled variable, it can be 0.
Represent covariance with P:
P (k | k-1)=F*P (k-1 | k-1) * F'+Q (4)
In formula (4), P (k | k-1) is X (k | k-1) corresponding covariance, and P (k-1 | k-1) is X (k-1 | k-1) corresponding association Variance, F ' represents the transposed matrix of F, and Q is the covariance of systematic procedure.Formula (3), (4) are exactly that 5 formula of Kalman filter are worked as In the first two, that is, the prediction to system.
Now with predicting the outcome of present status, then regather the measured value of present status.In conjunction with predicted value and survey Value, can obtain the optimization estimated value X (k | k) of present status k:
X (k | k)=X (k | k-1)+Kg (k) * (Z (k)-H*X (k | k-1)) (5)
Wherein Kg is kalman gain:
Kg (k)=P (k | k-1) * H'/(H*P (k | k-1) * H'+R) (6)
Optimum estimated value X (k | k) has been obtained under k-state by above formula.But in order to allow Kalman filter constantly to transport Row goes down and terminates until systematic procedure, the covariance of X under k-state also to be updated (k | k):
P (k | k)=(I-Kg (k) * H) * P (k | k-1) (7)
Wherein I is unit battle array, for the measurement of single model list, I=1.When system enters k+1 state, and P (k | k) it is exactly formula P (4) (k-1 | k-1).So, algorithm just can be gone down with autoregressive computing.
Therefore, the algorithm of Kalman filtering can be summarized as following 5 formula:
X ( k | k - 1 ) = F * X ( k - 1 | k - 1 ) + B * U ( k ) P ( k | k - 1 ) = F * P ( k - 1 | k - 1 ) * F ′ + Q X ( k | k ) = X ( k | k - 1 ) + K g ( k ) * ( Z ( k ) - H * X ( k | k - 1 ) ) K g ( k ) = P ( k | k - 1 ) * H ′ / ( H * P ( k | k - 1 ) * H ′ + R ) P ( k | k ) = ( I - K g ( k ) * H ) * P ( k | k - 1 ) - - - ( 8 )
Separately design five sub-controllers in Kalman filtering controller according to five formula shown in formula (8), it Be followed successively by status predication controller, covariance predictive controller, state updates controller, and Kalman filtering gain updates and controls Device and covariance update controller.And each sub-controller major control completes " square formation × square formation " computing, " square formation+side Battle array " computing, " square formation-square formation " computing, matrix inversion operation, " square formation × column vector " computing, " column vector+column vector " computing and " column vector-column vector " computing.
Above-described seven kinds of computings can be attributed to four matroid computings, and that is, the plus-minus of matrix is taken advantage of and inversion operation, under Face combines explanation accompanying drawing, and the present invention is described in further detail.
The logic control state machine that matrix is added is as illustrated in fig. 2, it is assumed that need complete to be calculated as Matrix C=matrix A+square Battle array B, then obtain matrix A, the offset address of B and C first, be then successively read matrix A, the data in the current address of B, and It is assigned to two input ports of adder, subsequently matrix A, the current address of B is incremented by one, finally ties calculating addition Fruit stores in the current address of C matrix, and the current address of Matrix C is incremented by one.So circulate, when C matrix current address Cross the border thus when not in C matrix address scope, completing matrix sum operation.
The logic control state machine that matrix subtracts each other is as shown in Figure 3 it is assumed that need complete to be calculated as Matrix C=matrix A-square Battle array B, then obtain matrix A, the offset address of B and C first, be then successively read matrix A, the data in the current address of B, and It is assigned to two input ports of subtracter, subsequently matrix A, the current address of B is incremented by one, finally ties calculating subtraction Fruit stores in the current address of C matrix, and the current address of Matrix C is incremented by one.So circulate, when C matrix current address Cross the border thus when not in C matrix address scope, that is, completing matrix sum operation.
The logic control state machine of matrix inversion it is assumed that needing complete to be calculated as matrix B=matrix A, In design, for convenience of calculation, matrix B is stored in the neighbouring address space after matrix A, so only passes through A matrix The dimension of address and matrix just can calculate the address of B matrix.Matrix inversion employs extended matrix method, obtains square first The offset address of battle array A, and B matrix is carried out with unit array process;Then it is successively read the diagonal of the first trip of A matrix to footline Element, and simultaneously A, the corresponding row all elements of B matrix are divided by this diagonal (assuming it is not zero) element, so that A matrix This row diagonal entry normalization;Afterwards to A, B matrix by same line translation, this row diagonal entry of A matrix Other all elements zeroizations of column;So circulate, when all row of A matrix are disposed, that is, complete matrix and be added Computing.
The logic control state machine of matrix multiple is as shown in fig. 5, it is assumed that need complete to be calculated as Matrix C=matrix A * square Battle array B, then obtain matrix A, the offset address of B and C first, and accumulator does not complete to reset after a C matrix element calculates;Then It is successively read each of a line of matrix A element, is assigned to an input port of multiplier, read matrix B simultaneously Each of one row element, is assigned to another input port of multiplier;Afterwards, multiplication result is assigned to one to add up The input port of device, when a line (or row for matrix B) of matrix A all runs through, accumulator completes one in Matrix C The calculating of element.So circulate, when all column processing of all row and matrix B of matrix A combine calculating and finish, that is, complete matrix Multiplication operation.
Involved all matrixes in Kalman filtering algorithm, update matrix including the state in system model, see Survey matrix, the covariance matrix of the noise of process and measurement, state variable, status predication variable, covariance matrix, covariance is pre- Survey matrix, all intermediate result matrixes in Kalman filtering gain matrix and filtering algorithm calculating process, be required for presence In RAM memory, so that the suitable memory space to these matrix allocation.
The dimension of hypothesis Kalman filter is D, then the space size needed for a column vector is D, and a side Space size required for battle array is D*D.If each matrix is sequentially stored in RAM, then according to above space of matrices Distribution principle, the Kalman filter different to dimension can calculate the offset address of corresponding matrix.Table 1 show and is based on The dimension of the higher-dimension Kalman filter of FPGA is respectively matrix offset allocation tables when 9,13,15 and 20.Work as dimension When changing, can separately calculate again, so be easy to the dimension of Kalman filter is extended.
The higher-dimension Kalman filter correlation matrix offset address allocation table based on FPGA for the table 1
As shown in Table 1, matrix variables 1-8 are the original variable in formula (8), and matrix 9-20 is all intermediate variable, Its naming method rule is as described below:Each letter is split as the original matrix variable name in formula (8), then according to former formula Represent its addition subtraction multiplication and division result.Such as FP represents the F*P in (8) second formula of formula, other the like.And X_ Except Predict, S and S_inv, X_Predict represents the status predication result of (8) first formula of formula, and S represents formula H*P*H'+R part in (8) the 4th formula, S_inv is the inverse matrix of S.It is pointed out that controlling in any one son The process that device completes to calculate will be written and read to RAM operating, and needs to carry out input value amplitude and output valve to arithmetic unit Read operation, and these processes need strict SECO.It is illustrated in figure 6 row in solution matrix inverse operation to process Journey it is necessary first to three work clocks are reading the data in RAM, first clock to the address wire signal port assignment of RAM, Signal function on second clock address line could use data in the RAM reading out in RAM, the 3rd clock.And holding During row data division operation, the next clock after input port of divisor and dividend assignment to divider can be using meter The result of division calculating.
During application is based on the higher-dimension Kalman filtering algorithm of FPGA, first the filtering in RAM memory is calculated Method correlation matrix is initialized, and repeats following five and walk under conditions of then reading in observed quantity outside constantly from fpga chip Suddenly:
(1) status predication controller completion status prediction
Status predication controller 2a needs to control and reads relevant with status predication data in memory, required for delivering to Sub- arithmetic unit 3a, 3b, 3c, 3d are calculated, and result of calculation are written to the status predication result memory block in memory 4 Domain, completes 1 " square formation × column vector " computing in this process;
(2) covariance predictive controller completes covariance prediction
Covariance predictive controller 2b needs to control successively and reads relevant with covariance prediction data in memory, delivers to Required sub- arithmetic unit 3a, 3b, 3c, 3d are calculated, and result of calculation are written to the covariance prediction knot in memory Fruit storage region, completes 1 " square formation × square formation " computing, 1 " square formation × square formation " computing and 1 " square formation+side in this process Battle array " computing;
(3) kalman gain renewal controller completes kalman gain renewal
Kalman gain update controller 2d need to control successively relevant with kalman gain renewal in reading memory Data, the sub- arithmetic unit 3a required for delivering to, 3b, 3c, 3d are calculated, and result of calculation are written to the karr in memory Graceful gain updates result storage region, completes 1 " square formation × square formation " computing in this process, 1 " square formation × square formation " computing, and 1 Secondary " square formation+square formation " computing, 1 submatrix inversion operation and 1 " square formation × square formation " computing;
(4) state updates controller completion status and updates
State updates controller 2c and needs to control relevant with state renewal data in reading memory successively, delivers to required The sub- arithmetic unit 3a wanting, 3b, 3c, 3d are calculated, and state result of calculation being written in memory updates result storage Region, completes 1 " square formation × column vector " computing in this process, 1 " column vector-column vector " computing, 1 time " square formation × arrange to Amount " computing and 1 " column vector+column vector " computing;
(5) covariance renewal controller completes covariance renewal
Covariance updates controller 2e and needs to control relevant with covariance renewal data in reading memory successively, delivers to Required sub- arithmetic unit 3a, 3b, 3c, 3d are calculated, and covariance result of calculation being written in memory updates knot Fruit storage region, completes 1 " square formation × square formation " computing, 1 " square formation-square formation " computing and 1 " square formation × side in this process Battle array " computing.
The content not being described in detail in description of the invention belongs to prior art known to professional and technical personnel in the field.
The above is only the preferred embodiment of the present invention it is noted that ordinary skill people for the art For member, under the premise without departing from the principles of the invention, some improvements and modifications can also be made, these improvements and modifications also should It is considered as protection scope of the present invention.

Claims (3)

1. the higher-dimension Kalman filter based on FPGA is it is characterised in that include:Filtering logic controller, arithmetic unit and data are deposited Reservoir;, by status predication controller (2a), covariance predictive controller (2b), kalman gain is more for described filtering logic controller New controller (2d), state updates controller (2c) and covariance updates five logic sub-controller compositions of controller (2e);Institute State arithmetic unit by double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four sub- arithmetic units are constituted, and every sub- arithmetic unit has two data-in ports and a data-out port;
Logic controller gives filtering sequential, under the constraint of filtering sequential, the data reading from data storage is assigned to The input port of arithmetic unit, and the output data of arithmetic unit is written in data storage;
Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four Independently of one another, their inputoutput data is all connected with data storage individual sub- arithmetic unit by data/address bus;Work as state Predictive controller (2a), covariance predictive controller (2b), kalman gain updates controller (2d), and state updates controller (2c) and covariance updates after the given sequential of controller (2e) five logic sub-controllers institute execute successively, then complete once to filter Ripple, now recycles execution, realizes Real-Time Filtering;
Status predication controller (2a) controls relevant with status predication data in reading memory, the double precision required for delivering to Multiplier (3a), double precision divider (3b), double adder (3c) and four sub- arithmetic units of double precision subtracter (3d) Calculated, and result of calculation is written to the status predication result storage region in data storage, completed 1 time in this process " square formation × column vector " computing;
Covariance predictive controller (2b) controls relevant with covariance prediction data in reading data storage successively, delivers to institute Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and the double precision subtracter (3d) needing Four sub- arithmetic units are calculated, and covariance result of calculation being written in data storage predicts the outcome storage region, Complete 1 " square formation × square formation " computing, 1 " square formation × square formation " computing and 1 " square formation+square formation " computing in this process;
Kalman gain updates controller (2d) and controls relevant with kalman gain renewal number in reading data storage successively According to, the double-precision multiplication device (3a) required for delivering to, double precision divider (3b), double adder (3c) and double precision subtract Four sub- arithmetic units of musical instruments used in a Buddhist or Taoist mass (3d) are calculated, and kalman gain result of calculation being written in data storage updates knot Fruit storage region, completes 1 " square formation × square formation " computing, 1 " square formation × square formation " computing, 1 time " square formation+square formation " in this process Computing, 1 submatrix inversion operation and 1 " square formation × square formation " computing;
State updates controller (2c) and controls relevant with state renewal data in reading data storage successively, required for delivering to Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four Sub- arithmetic unit is calculated, and state result of calculation being written in data storage updates result storage region, here mistake Journey completes 1 " square formation × column vector " computing, 1 " column vector-column vector " computing, 1 " square formation × column vector " computing and 1 time " column vector+column vector " computing;
Covariance updates controller (2e) and controls relevant with covariance renewal data in reading data storage successively, delivers to institute Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and the double precision subtracter (3d) needing Four sub- arithmetic units are calculated, and covariance result of calculation being written in data storage updates result storage region, Complete 1 " square formation × square formation " computing, 1 " square formation-square formation " computing and 1 " square formation × square formation " computing in this process;
Data storage is embodied as, and the dimension of Kalman filter is D, and the space size needed for a column vector is D, one Space size required for square formation is D*D, and each matrix is sequentially stored in RAM, is distributed former according to above space of matrices Then, the Kalman filter different to dimension calculates the offset address of corresponding matrix, when dimension changes, more separately counts Calculate, so the dimension of Kalman filter is extended.
2. the higher-dimension Kalman filter based on FPGA according to claim 1, is characterized in that:Described data storage To be realized using RAM, the address-bus width of RAM is 12, addressing range 0-4095, the data width of each addressed memory storage For 64, illustrate a double-precision floating point type data, in RAM storage data sectional form filtering algorithm parameter matrix and Intermediate variable matrix;The Kalman filter of 15 dimensions can be realized under this design structure, then pass through again to increase address bus Width, further expand memory addressing range, thus completing the Kalman filter of higher dimension.
3. the higher-dimension Kalman filter implementation method based on FPGA is it is characterised in that to realize step as follows:First data is deposited Filtering algorithm correlation matrix in reservoir is initialized, then below repetition under conditions of constantly from outside reading observed quantity Five steps, thus completing Kalman filtering process, are implemented as:
(1) status predication controller completion status prediction
Status predication controller (2a) needs to control and reads relevant with status predication data in data storage, required for delivering to Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four Sub- arithmetic unit is calculated, and result of calculation is written to the status predication result storage region in data storage, here mistake Journey completes 1 " square formation × column vector " computing;
(2) covariance predictive controller completes covariance prediction
Covariance predictive controller (2b) needs to control successively and reads relevant with covariance prediction data in data storage, send To required double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four sub- arithmetic units are calculated, and covariance result of calculation being written in data storage predicts the outcome memory block Domain, completes 1 " square formation × square formation " computing, 1 " square formation × square formation " computing and 1 " square formation+square formation " computing in this process;
(3) kalman gain renewal controller completes kalman gain renewal
Kalman gain update controller (2d) need to control successively relevant with kalman gain renewal in reading data storage Data, deliver to required for double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double essence Degree subtracter (3d) four sub- arithmetic units are calculated, and result of calculation is written to kalman gain in data storage more New result storage region, completes 1 " square formation × square formation " computing in this process, 1 " square formation × square formation " computing, 1 time " square formation+ Square formation " computing, 1 submatrix inversion operation and 1 " square formation × square formation " computing;
(4) state updates controller completion status and updates
State updates controller (2c) and needs to control relevant with state renewal data in reading data storage successively, delivers to institute Double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and the double precision subtracter (3d) needing Four sub- arithmetic units are calculated, and state result of calculation being written in data storage updates result storage region, This process completes 1 " square formation × column vector " computing, 1 " column vector-column vector " computing, 1 " square formation × column vector " computing With 1 " column vector+column vector " computing;
(5) covariance renewal controller completes covariance renewal
Covariance updates controller (2e) and needs to control relevant with covariance renewal data in reading data storage successively, send To required double-precision multiplication device (3a), double precision divider (3b), double adder (3c) and double precision subtracter (3d) four sub- arithmetic units are calculated, and covariance result of calculation being written in data storage updates result memory block Domain, completes 1 " square formation × square formation " computing, 1 " square formation-square formation " computing and 1 " square formation × square formation " computing in this process;
(6) data storage procedure is:The dimension of Kalman filter is D, and the space size needed for a column vector is D, one Space size required for individual square formation is D*D, and each matrix is sequentially stored in RAM, according to above space of matrices distribution Principle, the Kalman filter different to dimension calculates the offset address of corresponding matrix, when dimension changes, more separately Calculate, so the dimension of Kalman filter is extended.
CN201310282702.9A 2013-07-06 2013-07-06 FPGA-based high-dimensional Kalman filter and implementation method thereof Expired - Fee Related CN103366058B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310282702.9A CN103366058B (en) 2013-07-06 2013-07-06 FPGA-based high-dimensional Kalman filter and implementation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310282702.9A CN103366058B (en) 2013-07-06 2013-07-06 FPGA-based high-dimensional Kalman filter and implementation method thereof

Publications (2)

Publication Number Publication Date
CN103366058A CN103366058A (en) 2013-10-23
CN103366058B true CN103366058B (en) 2017-02-08

Family

ID=49367389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310282702.9A Expired - Fee Related CN103366058B (en) 2013-07-06 2013-07-06 FPGA-based high-dimensional Kalman filter and implementation method thereof

Country Status (1)

Country Link
CN (1) CN103366058B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761267B (en) * 2014-01-06 2017-01-25 中国航空无线电电子研究所 Kalman filtering system in comprehensive modular avionics system
CN106250661B (en) * 2016-09-06 2019-05-21 京微齐力(北京)科技有限公司 A kind of logic circuit design method for realizing memory expansion
CN106843054A (en) * 2017-02-23 2017-06-13 深圳市地铁集团有限公司 A kind of civil engineering monitor control system based on internet
CN109376332A (en) * 2018-10-30 2019-02-22 南京大学 A kind of arbitrary order Kalman filtering system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6285971B1 (en) * 1997-08-22 2001-09-04 Voyan Technology Method for real-time nonlinear system state estimation and control
CN101640523A (en) * 2009-01-15 2010-02-03 北京航空航天大学 Kalman filter based on field programmable gate array
CN102064799A (en) * 2010-12-31 2011-05-18 南京理工大学 Method for designing DCMFK (Debiased Converted Measurement Kalman filter) based on FPGA (Field Programmable Gate Array)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6285971B1 (en) * 1997-08-22 2001-09-04 Voyan Technology Method for real-time nonlinear system state estimation and control
CN101640523A (en) * 2009-01-15 2010-02-03 北京航空航天大学 Kalman filter based on field programmable gate array
CN102064799A (en) * 2010-12-31 2011-05-18 南京理工大学 Method for designing DCMFK (Debiased Converted Measurement Kalman filter) based on FPGA (Field Programmable Gate Array)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kalman滤波器的硬件优化设计与仿真方法;白雪等;《计算机工程与设计》;20110816;第32卷(第8期);第2655-2659页 *

Also Published As

Publication number Publication date
CN103366058A (en) 2013-10-23

Similar Documents

Publication Publication Date Title
Lucia et al. Optimized FPGA implementation of model predictive control for embedded systems using high-level synthesis tool
CN103366058B (en) FPGA-based high-dimensional Kalman filter and implementation method thereof
CN101882238A (en) Wavelet neural network processor based on SOPC (System On a Programmable Chip)
Balaji et al. Coarse-grained component concurrency in Earth system modeling: Parallelizing atmospheric radiative transfer in the GFDL AM3 model using the Flexible Modeling System coupling framework
Jablonski et al. Efficient algorithms computing distances between radon measures on r
US10795404B2 (en) Information processing acceleration control system
CN107037726A (en) It is a kind of non-with first new fractional-order system synovial membrane interference observer design method
Gentsos et al. Future evolution of the Fast TracKer (FTK) processing unit
Zhang et al. An embedded scalable linear model predictive hardware-based controller using ADMM
CN106227037B (en) A kind of humanoid robot action planning parameter optimization method based on FPGA
Wu et al. The design of DSP/FPGA based maneuvering target tracking system
Tai et al. Synthesizing tiled matrix decomposition on FPGAs
Martínez-Rodríguez et al. Circuit implementation of piecewise-affine functions based on lattice representation
Dinda Nonlinear power spectrum in clustering and smooth dark energy models beyond the BAO scale
Irdem et al. An experimental study of an iterative simulation-optimization algorithm for production planning
Oancea et al. Improving the performance of the linear systems solvers using CUDA
Khan et al. Trade-off exploration for target tracking application in a customized multiprocessor architecture
Tuberg The Variations of Absorption-Line Contours across the Solar Disc.
CN104679521A (en) Analysis method for accurately calculating WCET (worst case execution time) of task high-speed cache
CN111061675A (en) Hardware implementation method of system transfer function identification algorithm, computer equipment and readable storage medium for running method
Nada et al. The development of proportional-integral-plus control using field programmable gate array technology applied to mechatronics system
Jing et al. Resource constrained mapping of data flow graphs onto coarse-grained reconfigurable array
Iliev et al. Low power spatial localization of mobile sensors with recurrent neural network
Ilyushin et al. Construction of a parallel computational model by composition of computational facilities
Milik On hardware synthesis of reconfigurable logic controllers from ladder diagrams according to IEC61131-3

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170208

Termination date: 20200706