Lots of engineering problems do not require advanced math or physics. However, they may be very complicated since they
contain many different objects and links between them. This article is devoted to one such problem.

Background

Determination of orbits of satellites, in fact, is a statistical processing of measurements. As well as education of
former centuries required knowledge of Greek and Latin languages, any specialist of determination of orbits should
know the General linear method and Kalman filter. This article contains a profound description of the application of
the General linear method and a brief description of the technology of Kalman filter.

Containers

Complicated applications require a lots of squares of objects and arrows. It is very difficult to understand such a picture.
However, you can merge a set of squares of objects and arrows. You can also combine sets of squares into containers.
Then, the result picture shall be clear and easy to understand. Determination of orbits requires equations of motions
that require gravity and atmosphere models.

In this picture, Gravity and Atmosphere use dynamic link libraries as it had been described
in tutorual. It is convenient to merge these components to one container.
For the creation of the container, the user should create a scenario and select the Tools/Container designer option
of the main menu. After selecting the Tools/Container designer option, we have:

The right part of this form enables us to select public components by checking checkboxes. The left one enables us to set
geometrical positions of public components. When these positions are set, you can save the container to the *.cont
file. In this example, the public components are Atmosphere and Motion Equations.
Then, we should create a palette button. To do this, you should place the *.cont to the Application path/cont
directory, and create an icon of the button and place it in the application path. Then, you should create or edit the
Containers.xml file. This file contains information about additional tabs of toolbar additional buttons
and their icons and filenames of containers. The contents of this file are clear and omitted here.

Creation or edition of the Containers.xml file results in the appearing of new tabs and buttons, like
it is presented on the following picture:

We have an additional button, and can put new components on the desktop.

Motion model

The motion model of an artificial satellite is a system of ordinary differential equations that describe the
motion in a Greenwich reference frame:

where are the
coordinates and components of velocity respectively, ω is angular velocity of Earth, and
are components
of the summary external force. The current model contains gravitational force and the aerodynamic one. Therefore,
this model needs a gravity model and an atmosphere density one.

Description of the problem

The scenario of this problem is presented below:

This scenario contains the following ingredients:

Motion equations;

Model of measurements of distances, and radial velocities between satellite and ground-based interrogators;

Calculation of delay caused by finiteness of light velocity;

General linear method processing.

Note that the different measurements have no equal accuracy. The General linear method requires to use different weights
for such measurements. A new component
was developed for this purpose. It enables us to create weighted selections. I've used the graph
component for the storage
of the selection. It has been done since the user would be able to try this example without a database. Really, this
scenario should use the connection to the database graph

This section contains the technology of Kalman filter without any determination of orbits. Kalman filter uses operations
with vectors and matrixes. The vector
as matrix
components has been developed for this purpose. A typical example of the usage of the Kalman filter is presented below:

This picture has all the necessary
Kalman filter ingredients:

Covariance matrix;

Gain derivation;

Relationship to recursive Bayesian estimation.

The editor for the properties of the matrix is presented below:

It links the elements of the matrix with external data. Operations
with matrixes is being performed by a formula editor. As it had been
noted in part 4, the editor is case sensitive. For example, the meaning
of the formula ax may be different. If a and x are real numbers, then
this formula means an ordinary product. If a and x are matrixes, then
we have a matrix product. If a is a matrix and x is a vector, then ax
is a matrix - vector product etc. In the following formulas of this
situation:

a and h are matrixes and y and z are vectors. So having vector and matrix components, we can construct any modification of the
Kalman filter.