POSITIONING OF SEISMIC EQUIPMENT IN A TOWED MARINE ARRAY
20190235117 · 2019-08-01
Assignee
Inventors
Cpc classification
G01V1/006
PHYSICS
International classification
Abstract
A positioning system (100) for marine seismic surveying, comprising a towing vessel (110), a source array (120) and a receiver array (130) with several streamers (131). Each streamer (131) comprises at least three birds (134) and positioning sensors (134-137) wherein several seismic receivers (132) are placed between each pair of birds (134). The system (100) comprises a dynamic model wherein each streamer (131) is represented by a fitted B-spline curve and each bird (134) is associated with a constant velocity and a constant acceleration; and a Kalman filter using the dynamic model and observations from the positioning sensors (134-137) to provide a geodetic position of each seismic receiver (132) with better accuracy than the dynamic model alone and observations alone within a time interval t equal to or less than a minimum time between shots determined by the source array (120).
Claims
1-10. (canceled)
11. A positioning system for marine seismic surveying, comprising: a towing vessel; a source array; and a receiver array with several streamers, each streamer comprising at least three birds and positioning sensors, wherein several seismic receivers are placed between each pair of birds, wherein a) a dynamic model wherein each streamer is represented by a fitted B-spline curve and each bird is associated with a constant velocity and a constant acceleration; and b) a Kalman filter using the dynamic model and observations from the positioning sensors to provide a geodetic position of each seismic receiver with better accuracy than the dynamic model alone and observations alone within a time interval t equal to or less than a minimum time between shots determined by the source array.
12. The system according to claim 11, further comprising local support limited to at most four subsequent birds such that a change imposed anywhere in the receiver array affect no element in the system outside this range.
13. The system according to claim 11, wherein a position sensor further provides observations of velocity and/or acceleration.
14. The system according to claim 11, wherein the observations are expressed in geodetic (X, Y) and/or vessel bound (x, y, z) coordinates.
15. The system according to claim 11, further comprising a closed loop control system for controlling the physical components of the system, capable of receiving input from the Kalman filter and of changing sign on an input vector and presenting the resulting vector as response.
16. The system according to claim 15, wherein the input vector expresses a deviation from a desired position in geodetic coordinates (X, Y).
17. The system according to claim 15, wherein the input vector expresses a deviation from a desired streamer configuration in vessel bound coordinates (x, y, z).
18. The system according to claim 15, wherein the input vector is expressed in a tangent-normal-binormal frame local to a bird and/or positioning sensor.
19. The system according to claim 11, wherein a transformation between any pair of coordinate systems is performed by one matrix multiplication.
20. The system according to claim 11, further comprising linear extrapolation of the geodetic coordinates within the time interval t.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] The invention will be described by way of example and reference to the accompanying drawings, in which:
[0025]
[0026]
DETAILED DESCRIPTION
[0027] The drawings are schematic and intended to illustrate the invention. Thus, they are not to scale, and numerous details known to one skilled in the art are omitted for clarity.
[0028] The general idea of the invention is to use a fast and effective dynamic model and Kalman filtering to improve estimates of geodetic coordinates. We distinguish between speed (scalar) and velocity (vector), and note that the velocity (speed and heading) of a towing vessel moving at 4-5 knots is approximately constant during each time interval t<5 s. If the local constant velocity {dot over (x)} is known at each geodetic position at the start of each time interval t, then even more precise geodetic position estimates may be extrapolated during t.
[0029] The notation throughout this description and the claims follow usual conventions: Vectors and matrices are in bold Latin letters with capital letters denoting matrices. Italics indicate that R.sup.3 and C(s) are not matrices. Mark notation, e.g. C(s), is used for space derivatives and dot notation, e.g. {dot over (x)}, is used for time derivatives. All scalars are real.
[0030]
[0031] The shaded area 204 illustrates an area with adequate coverage, and the irregular area 205 within the previous pass is an area with inadequate coverage, i.e. an area needing infill. The area 205 lack coverage for some unspecified reason, and some streamers 131 are steered laterally from the present sailing line S.sub.q in order to make an additional pass over the area 205.
[0032] In
[0033] Several receivers 132 and birds 134 are arranged along the streamers. The birds 134 are known devices of any kind capable of imposing a lateral force on the streamer 131 and are used for steering, e.g. to compensate for lateral currents and adjust the towing depth.
[0034] A vessel-bound spatial Cartesian coordinate system x, y, z is illustrated by axes x, y with origin midship in vessel 110, y-axis parallel to and directed opposite the present sailing line or towing direction S.sub.q and x-axis horizontal and perpendicular to the y-axis. The z-axis (not shown) is conveniently perpendicular to the x and y-axes in a right handed Cartesian. The direction of the y-axis on
[0035] The area 205 is expressed in geodetic coordinates, for example in an Earth-bound Cartesian grid (X, Y). A graphical display similar to
[0036] For steering physical arrays, the system 100 needs a closed loop control system. In the present context, such a control system just changes sign on an input vector. For example, the proper response to a deviation from a desired position in geodetic resp. local coordinates is a displacement of equal size in the opposite direction expressed in input coordinates. Similarly, the response to an input force vector would be a response vector of equal size and opposite direction expressed in arbitrary input coordinates. The control system as such is known in the art and need no further explanation herein.
[0037] The Cartesian coordinates in
[0038] All transformations between the systems in
[0039] Any sequence of affine transformations can be combined to one transformation in a higher dimensional space. For example, a 3D affine transformation can be expressed as:
y(x)=Ax+b(1)
where
x is a vector in an affine domain space, e.g. the (x, y, z) coordinates in
y, b are vectors in an affine codomain (target domain), e.g. (T, N, B) or (X, Y, Z) in
A is a transformation matrix, e.g. a 33 rotation matrix.
[0040] The affine transformation (1) can be rewritten in augmented form in 4D:
where a.sub.ij is a real scalar from row i and column j of the transformation matrix A.
[0041] Any sequence of affine augmented matrices can be multiplied to yield a new matrix of the same form. Moreover, M is invertible if and only if A is invertible, and is expressed by:
where A.sup.1=A.sup.T if A represents any rotation in R.sup.N, N=2, 3, . . . . Note the similarities with and differences from a 3D decomposition of rotation, e.g. yaw, pitch and roll expressed by a composite 3D rotation matrix R=R.sub.z,R.sub.yR.sub.x.
[0042] Returning to
[0043] The simple Kalman filter is a recursive algorithm where each time step k includes a prediction phase essentially comprising the calculations, and an update phase for collecting observations (sensor measurements) and computing output estimates from the step. The output estimates are weighted sums of predictions and observations, and are passed on to the next time step (k+1).
[0044] The calculations in the prediction phase depend on a dynamic model of the system. We have already approximated velocity by a constant velocity v, and note that constant acceleration does not represent a loss of generality due to the mean value theorem over the time interval t. Thus, a simple dynamic model of the present system is x=vt+at.sup.2/2 with constant v and a applied to all elements in the system 100. Real embodiments may include, for example, a response to feathering forces acting on a length of the streamer. However, we know in advance that any model is imperfect: The present model includes truncation errors and round-off errors in the approximations of v and a. Best practice is to keep the dynamic model simple and leave as much as possible to unmodelled dynamics described below. If this approach fails, more features such as tension, curvature and/or rotational forces may be included in the dynamic model.
[0045] In the present example, only the paravanes 114, birds 134 and steerable tail buoys 133 can exert a force. In the prediction phase, all other elements are just shifted by x=vt, where v is the instantaneous towing velocity at the start of time interval t. Imagine that all sensor positions x in geodetic coordinates are stored in a large computer array. The positions would be stored in an ordered manner, for example as a look-up table where each row represent a streamer and element E[r, i] in row r represent the X or Y coordinate of sensor no i along streamer no. r. For numbers, 32b (4B) per dimension provides negligible round-off errors on the scale 1/20000. Using 32b numerical resolution, 50 000 geodetic positions in 2D (X, Y) would need about 400 kB of storage. Thus, several or all rows in the lookup table would fit nicely in the computer memory of an ordinary PC. Adding a constant vt to all elements in an array stored in fast hardware (computer memory) is handled by hardware during a few cycles in most CPUs and GPUs. Thus, we do not worry about the execution time of 10 000-30 000 additions in a loop, and remark that such straightforward parallelisation generally decreases execution times by orders of magnitude.
[0046] Next, we need a model for the streamers. The streamers are not mechanically coupled, so an appropriate dynamic model should represent each streamer as an individual curve in space. B-splines are preferred for their local support property and several other useful properties. B-splines are widely used in other fields of technology for similar reasons. For example, B-splines limit the number of pixels that must recalculated in a computer image with a moving foreground and static background.
[0047]
[0048] The seismic receivers 132 are commercially available devices used to sample a P-wavefield and typically contain hydrophones and/or other seismic sensors. Any suitable seismic receiver 132 may be included in a streamer 131. For later reference, we note that the tension in a 10-20 km long streamer may cause significant strain. However, the distance between two adjacent seismic receivers 132 will remain approximately constant during a survey. The two distances c.sub.k and c.sub.+1 on streamer 131b illustrate that distances between adjacent elements are approximately constant but not necessarily equal. Each inline distance c.sub.k is known in advance, e.g. measured during deployment.
[0049] Birds 134 and position sensors 135-137 are also included in a streamer. A bird 134 may include a position sensor, e.g. an acoustic transducer 137 for determining distances to nearby acoustic transducers 137. The dashed lines between streamers 131a and 131b in
[0050] Other common position sensors shown in
[0051] Streamer 131b is connected to a separate tail buoy or float 133 with a GPS antenna 136 above the sea surface. The associated data point has a different mean position and variance than those of the GPS antenna on vessel 110.
[0052] Other common and useful sensors not shown in
[0053] The data points D.sub.i may be measured by any means. Referring to
[0054] Only the last few data points D.sub.n2, D.sub.n1, D.sub.n are shown in
[0055] In the following, we will use some generally known properties and formulas. An overview can be found online, e.g. in B-spline curves: Important properties [1] or Wikipedia.
[0056] For our fit, we require that P.sub.0=D.sub.0 and that P.sub.m=D.sub.n. For a cubic B-spline, this implies that m=n+2. The parameter value s.sub.i that corresponds to the joint at D.sub.i is called a knot, and the sequence of knots in ascending order is called the knot vector. According to common practice, the knot vector is normalised to [0, 1] to improve numerical stability due to the relatively high density of floating numbers in this interval. Referring to
where
c.sub.k is a constant length between two adjacent sensors 132-137 on the streamer
L.sub.tot is the total length of the streamera measured value if strain is significant, and
n is the number of sensors 132-137 on the streamer
[0057] Note that this knot vector contains values s.sub.k for all sensors, while the curve fitting needs a much smaller knot vector with knots s.sub.i for the positioning sensors. Knot vectors representing s.sub.k resp. s.sub.i may conveniently be stored as rows in a look-up table similar to that for geodetic positions described above.
[0058] In order to clamp a B-spline of degree j to control points at its end, i.e. ensure that D.sub.0=P.sub.0 and D.sub.n=P.sub.m=P.sub.n+2, the first and last j+1 knots are repeated. Thus, for a cubic B-spline clamped at both ends s.sub.0=s.sub.1=s.sub.2=s.sub.3=0 and s.sub.n=s.sub.n+1=s.sub.n+2=s.sub.n+3=1 in the s.sub.i-knot vector.
[0059] The B-spline curve has the form
where N.sub.i,j(s) are B-spline basis functions defined by Cox-de Boor's recursion formula:
[0060] We do not assume that all knot spans are equal, so a closed form of (6a, 6b) would look complicated. More important, the recursive expressions (6a), (6b) execute faster than closed form expressions would. Due to the step function in (6a), the first term in No(s) is nonzero only on knot span i, and the second term is nonzero only on knot span i+1. Each subsequent iteration of (6b) adds a knot span until 4 knot spans are added for j=3. This is the local support mentioned above.
[0061] In the case of cubic splines, at most 3 curve intervals C.sub.i(s) are valid on any knot S.sub.i, so the fitting criterion is of the form:
N.sub.i,3(s.sub.i)P.sub.i+N.sub.i+2,3(s.sub.i)P.sub.i+2=D.sub.i(7)
[0062] Now, P.sub.0=D.sub.0 and P.sub.n+2=D.sub.n so equation (7) yields n1 independent equations in n+1 unknowns. We need two extra conditions for a unique solution, and set the second derivatives to zero at the ends, i.e. C(0)=0 and C(1)=0. This seems reasonable in view of the streamer to be modelled.
[0063] We need expressions for the spatial derivatives for later reference:
where
the knot vector for (8) is the original with one copy of so and one copy of s.sub.n removed and
the knot vector for (9) is the original with second copies of so and s.sub.n removed.
[0064] In our curve fitting of a cubic spline, we have s=s.sub.0=s.sub.1=0 corresponding to P.sub.0=D.sub.0 in (x, y, z) Similarly, P.sub.n+2=D.sub.n correspond to s.sub.n=s.sub.n+1=s.sub.n+2=1. Thus, the first and last three terms of (9) yields a.sub.1P.sub.1+a.sub.2P.sub.2=D.sub.0 and a.sub.nP.sub.n+a.sub.n+1P.sub.n+1=D.sub.n by simple algebra. Together with (7), these yield a system with n+1 equations in n+1 variables:
where A is a banded matrix with at most 3 non-zero elements per row.
[0065] Standard methods for solving (10) without numerically expensive inversion include LU-decomposition and QR-decomposition with forward substitution. In a variant of forward substitution, we could solve the upper left 33 matrix of A and compute each next control point P.sub.i from the previous 3 control points and the next D.sub.i.
[0066] The system (7) corresponds to a fat matrix, i.e. a matrix with more columns than rows (m>n), and the second derivatives need not be zero. In practice, minimal norms are widely used to provide the missing equations for a fat matrix system. For example, a least squares fit (minimal L.sub.2 norm) is appropriate in many applications. For B-splines, a minimal polyline (minimal L.sub.1 norm) might be an alternative due to the strong convex hull property of B-splines. In general, the QR decomposition involves an nn matrix R.sub.i padded with zeros in the last m-n rows. Another useful concept for numerical applications is pseudo inverse matrices A.sup. which are sufficiently inverse to make A.sup.AI. More precisely, a typical pseudo inverse matrix is computed by a recursion that stops when a residual is below some limit, for example a predefined tolerance of a few metres or a limit due to truncation or round-off errors. These and other algorithms from numerical linear algebra are available in software libraries and need no further explanation here.
[0067] The s.sub.k for any sensor 132-137 is found from a lookup table, cf eq. (4). C(s.sub.k) and de Boor's algorithm yields the position of the sensor in vessel-bound coordinates (x, y, z).
[0068] Next, we need a TNB-frame for birds 134, flow meters measuring sea current etc. The original Frenet-Serret formulas regard the kinematics of a particle moving along a continuous and differentiable parametric curve in R.sup.3 and define a TNB-frame with Cartesian unit vectors tangent, normal and binormal to the parametric curve. They are valid for any real scalar parameter s, not just the special case in equation (4). Again, we only need a few general results, and refer to textbooks or online articles for a thorough description.
[0069] Noting that C(s) is tangent to C(s), we express the TNB-frame in matrix notation:
where C={square root over (C.sub.x.sup.2+C.sub.y.sup.2+C.sub.z.sup.2)} is the Euclidian norm, and a cross product in matrix form is
[0070] A unit normal is undefined for a straight line and need special consideration: Let D.sub.i1, D.sub.i, D.sub.i+1 be corners in a triangle. If the height of the triangle is greater than a specified tolerance, compute N and B at D.sub.i from (12) and (13). Otherwise, set the values for N and B equal to those of D.sub.i1. Here, the maximum height of the triangle corresponds to half the tolerance specified for the (x, y, z) positions D.sub.i.
[0071] T and N are shown in
[0072] Derivation with respect to time does not change the direction of a vector, so measurements of position, orientation, velocity and acceleration in a TNB-frame can be transformed to any coordinates of choice using eq. (2) and pre-multiplication.
[0073] The model of streamers described so far may be enhanced by fitting B-splines in the crossline direction and/or by defining a polygonal, e.g. triangular, mesh over acoustic transducers 137. Spline fitting in 1D and 2D is available in readymade software, e.g. graphics libraries. Some 2D splines, e.g. thin plate splines, assume elastic properties in two spatial directions and are inappropriate for decoupled streamers.
[0074] Assume the framework above is used to define a desired streamer configuration in a GUI and that the computer model provides a list of desired data points d.sub.i. The Kalman filter maintains a similar list of estimated data points D.sub.i. Both lists are in vessel-bound coordinates (x, y, z) and are thus independent of towing velocity and associated time shifts in geodetic coordinates. In each time interval t, changing sign on D.sub.i and adding to d.sub.i yields a tentative response. As above, operations can be performed on entire rows in computer memory. All elements in the tentative response array smaller than a predefined constant tolerance are ignored, those remaining are proper responses to a deviation.
[0075] For each such deviation, equation (7) defines 3 control points that must be recomputed to fit the cubic B-spline C(s) through the deviant D.sub.i. No other part of the B-spline is affected due to the local support property. Thus, the curve fitting means solving a 33 system with known coefficients. QR-decomposition with forward substitution is effective also in the rare cases where several adjacent data points are out of line within t.
[0076] Once the three control points are recomputed, all sensor positions on the 4 affected knot spans must be recomputed using de Boor's algorithm on a sequence from the s.sub.k knot vector. The results are transformed to geodetic coordinates and replace elements in the geodetic lookup table. A few of these elements, e.g. birds 134 and flow meters may need additional computation for a new TNB-frame.
[0077] A GUI may conveniently have a local view for streamer configuration etc. in vessel-bound coordinates and a geodetic view for showing common midpoints and sea current fields in geodetic coordinates as described above. B-splines are affine invariant, so a graphics engine, i.e. graphics software and a graphics card, just need a few control points to display the curve. In addition, any such graphics engine combine affine transformations and thus enable zooming in on any part of the streamer array and viewing the section or the entire streamer array in perspective and from any angle in real time. The required input is just a few control points in vessel-bound coordinates. The local sea current may be displayed as a nicely coloured graded background. For this, the graphics engine typically uses Bzier curves, which are B-splines without knots between the clamping zeros at the start and end of the knot vector.
[0078] The Kalman filter may have several external degrees of freedom such as the geodetic and vessel-bonds positions above. The number of internal states and variables is a matter of design. In the following, we use a bird 134 as example, and add velocity and acceleration as internal states. Using the notation above and dot notation for time derivatives, we let:
where x is in geodetic coordinates and B transforms from the bird's TNB-frame.
[0079] Let index min denote the state up to and including n. The prediction phase estimates a preliminary (a priori) state in step k from the output (a posteriori) estimates in step (k1):
[0080] F.sub.k is the state transition model that brings the filter from step (k1).
[0081] B.sub.k is a control model and u.sub.k a control vector that express the response calculated for step k, e.g. based on an estimated local current and properties of the bird. The resulting force is transformed first to ka in vessel-bound coordinates, then to the relevant TNB-frame by ca=B.sup.1 ka. The two transformations are combined into one matrix multiplications by eq. (2). Paravanes, steerable tail buoys and other equipment that can apply a force have Bu-terms, whereas seismic receivers 132, acoustic transducers 137 etc. lack the Bu term.
[0082] The P's are prediction error covariance matrices defined by recursion. If little or nothing is known in advance, a common assumption is random walk leading to P.sub.0|0=I.sup.2, where I is the identity matrix and the system variance .sup.2 some scalar, e.g. 0.5. A properly designed filter converges, so the effort spent on estimating optimal values should be limited. The present KF will have performed 120 five second steps in ten minutes.
[0083] Q is the covariance of process noise w.sub.kN(0, Q). The process noise may contain unmodelled dynamics and other systematic faults that may cause the filter to diverge and that are difficult to distinguish from observation noise. Common practice is to compute the covariance matrix Q by statistical methods, e.g. an ALS technique. ALS is an acronym for auto-covariance least-squares and essentially uses data from several previous steps to look for systematic deviations. A comprehensive description can be found online or in the literature.
[0084] The update phase regards measurements, weighted sums and the output state. A first task is to find an observation residual from present and previous measurements:
{tilde over (y)}.sub.k=z.sub.kH.sub.k{circumflex over (x)}.sub.k|k-1(17)
[0085] The observation vector z.sub.k for a specific bird correspond to a data point D.sub.i in
[0086] We also need a residual covariance S.sub.k=H.sub.kP.sub.k|k-1H.sub.k.sup.T+R.sub.k, where R is the covariance of observation noise and usually approximated by ALS.
[0087] The optimal Kalman gain K.sub.k=P.sub.k|k-1H.sub.k.sup.TS.sub.k.sup.1 is optimal in the sense that it minimises the least square difference between x and its estimate {circumflex over (x)}. Its elements are real scalars in the interval [0, 1]. The expressions for S and K may look complicated, but are easily implemented because H simply picks a previous variable as described above.
[0088] The output state or a posteriori estimates in step k are
{circumflex over (x)}.sub.k|k={circumflex over (x)}.sub.k|k-1+K.sub.k{tilde over (y)}.sub.k P.sub.k|k=(IK.sub.kH.sub.k)P.sub.k|k-1(18)
[0089] Large elements Kij in the Kalman gain K.sub.k, i.e. values in the interval <0.5, 1], puts more weight on observations and decrease the weight on prediction accordingly. The weighted sums in (18) are the values input to the next step (k+1).
[0090] In real embodiments, simple Kalman filters are numerically unstable if the values in the covariance matrices become small. The reason is that the covariance matrices P, Q, R by definition are positive definite, but small elements may cause negative round-off errors that render the matrices indefinite. The standard solution is to represent P, Q, R in square root form, preferably as UD-decompositions. Efficient algorithms for the Kalman prediction and update phases in square root form can be found in Thornton [2] and Bierman (1977) [3].
[0091] Adding velocity to the previous example with geodetic positions, the a posteriori position and velocity estimates from step (k1) can be used to extrapolate positions during step k. For a towing speed 2.6 m/s (5 knots), this linear approximation would improve geodetic estimates by about 1.3 m compared to the position output from step (k1). In a 2D-grid (X, Y) this extra degree of freedom would require an extra 400 kB of storage using the numbers above. Of course, the storage need will be different in a real embodiment.
[0092] During a turn between sailing lines S.sub.q-1, S.sub.q streamers are thrown out or separated to minimise operational cost and the risk for tangling. The shapes of the leftmost streamers in
[0093] The B-splines curves are expected to approximate physical streamers sufficiently well. Referring to
[0094] The Kalman filter as such is cheap on storage and processing power. ALS techniques calculate autocorrelation on a series of previous estimates and are costlier. However, a rough estimate of a MB per degree of freedom and time lags of 1000 steps yield storage needs in the GB range. Thus, an inexpensive PC-class computer running reasonably effective common operating and filesystems, e.g. some Linux dialect with ext4, should be able to run the proposed KF in real-time. Alternatively, a lightweight real-time operating system installed on the PC-class computer would remove further dead cycles. A specialised file system may improve mapping from filesystem to memory compared to general purpose filesystems.
[0095] The above and other embodiments are within the scope of the present invention. The skilled person will recognize these and other applications and modifications of the invention defined in the appended claims.
REFERENCES
[0096] [1] http://www.cs.mtu.edu/shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-curve-prop.html [0097] [2] Thornton, Catherine L: Triangular Covariance Factorizations for Kalman Filtering (PhD thesis), Nasa Technical Memorandum 33-798, 1976 [0098] [3] Bierman, G. J: Factorization Methods for Discrete Sequential Estimation, Academic Press, 1977