Spaces:
Running
Running
<!-- % ============================================================================== --> | |
<!-- % ==================== Motivation ============================================== --> | |
<!-- % ============================================================================== --> | |
## Motivation {#sec-sec_Motivation} | |
\gls{cfd} is an | |
indispensable technique, when aimed to obtain information about aerodynamic properties, such | |
as drag and lift distributions. Modern \gls{cfd} solvers, such as \gls{dlr}'s *TAU* | |
[@Langer2014] often solves | |
the \gls{rans} equations to obtain one flow-field. Advanced solvers like *TAU* apply advanced | |
mathematical knowledge to speed up calculations and | |
heavily exploit multiple \glspl{cpu} in an optimized manner. Nevertheless, | |
depending on the size of the object and accuracy demands or in other terms mesh grid size, the computation often is not economically | |
efficient enough. If the object for which a flow field is desired is a full aircraft, then even with a big cluster and making use of symmetry properties of the shape of the airplane, if such exists, the computation of one single | |
flow field can still easily cost one or even multiple months in computation time. \newline | |
In modern science, there is a trend towards relying on \glspl{gpu} instead of \glspl{cpu}. Graphic cards possess much | |
more cores than a CPU. However, even with the utilization of \glspl{gpu} and GPU-optimized \gls{cfd} solvers, the computation is still very expensive. Not only in time but also | |
in electricity costs. | |
Running calculations on a cluster for multiple months is such expensive that wind tunnel measurements can be considered to be the economically more | |
efficient choice to make. | |
Regarding accuracy, wind tunnel measurements and \gls{cfd} simulations with state-of-the-art solvers can be considered to be | |
equally useful. When using \gls{cfd} solvers, there is one more thing to keep | |
in mind. | |
Each outcome is only valid for one single set of input parameters. | |
Within the set of input parameters, the user often is only interested | |
in the impact of one parameter, e.g., the angle of attack. Consequently, | |
wanting to capture the effect of the change of the angle of attack on the flow field, | |
multiple \gls{cfd} calculations need to be performed, i.e., for each desired | |
angle of attack. | |
Based on the chosen angle of attack the solver might be able to converge faster to a solution. However, the calculation time | |
needs to be added up for each desired angle of attack. | |
In terms of time and energy costs, this could again be more expensive than wind-tunnel | |
measurements. Wind tunnel measurements are difficult to set up, but once a | |
configuration is available, measuring flow field properties with it, in general, is known to be faster and easier than running \gls{cfd} simulations.\newline | |
<!--% --------------------------------------------------------------------------------> | |
Within the scope of this work, a data-driven tool was developed that allows predictions for dynamic systems. | |
In [@Max2021] the first version of it showed promising results. | |
However, it was dedicated to the solution of one single dynamical system, i.e., the Lorenz system [@lorenz1963deterministic]. | |
Due to the focus on one singular dynamical system, the proposed \glsfirst{cnmc} was not verified for other dynamical systems. | |
Hence, one of the major goals of this thesis is to enable \gls{cnmc} to be applied to any general dynamical system. | |
For this, it is important to state that because of two main reasons \gls{cnmc} was not built upon the first version of \gls{cnmc}, but written from scratch. | |
First, since the initial version of \gls{cnmc} was designed for only a single dynamic system, extending it to a general \gls{cnmc} was considered more time-consuming than starting fresh. | |
Second, not all parts of the initial version of \gls{cnmc} could be executed without errors. | |
The current \gls{cnmc} is therefore developed in a modular manner, i.e., on the one hand, the implementation of any other dynamical system is straightforward. | |
To exemplify this, 10 different dynamic systems are available by default, so new dynamic systems can be added analogously.\newline | |
The second important aspect for allowing \gls{cnmc} to be utilized in any general dynamical system is the removal of the two limitations. | |
In the first version of \gls{cnmc} the behavior of the dynamical systems had to be circular as, e.g., the ears of the Lorenz system [@lorenz1963deterministic] are. | |
Next, its dimensionality must be strictly 3-dimensional. | |
Neither is a general dynamical system is not bound to exhibit a circular motion nor to be 3-dimensional. | |
By removing these two limitations \gls{cnmc} can be leveraged on any dynamical system. | |
However, the first version of \gls{cnmc} employed \glsfirst{nmf} as the modal decomposition method. | |
The exploited \gls{nmf} algorithm is highly computationally intensive, which makes a universal \gls{cnmc} application economically inefficient. | |
Therefore, the current \gls{cnmc} has been extended by the option to choose between the \gls{nmf} and the newly implemented \glsfirst{svd}. | |
The aim is not only that \gls{cnmc} is returning results within an acceptable timescale, but also to ensure that the quality of the modal decomposition remains at least at an equal level. | |
Proofs for the latter can be found in section [-@sec-sec_3_3_SVD_NMF].\newline | |
With these modifications, the current \gls{cnmc} is now able to be used in any dynamical system within a feasible time frame. | |
The next addressed issue is the B-spline interpolation. | |
It is used in the propagation step of \glsfirst{cnm} [@Fernex2021] to smooth the predicted trajectory. | |
However, as already noted in [@Max2021], when the number of the clustering centroids $K$ is $K \gtrapprox 15$, the B-spline interpolation embeds oscillations with unacceptable high deviations from the original trajectories. | |
To resolve this problem, the B-spline interpolation is replaced with linear interpolation. | |
By preventing the occurrence of outliers caused by the B-spline interpolation, neither the autocorrelation defined in subsection [-@sec-subsec_1_1_3_first_CNMc] nor the predicted trajectories are made impractical . | |
Apart from the main ability of \gls{cnmc} a high number of additional features are available, e.g., the entire pipeline of \gls{cnmc} with all its parameters can be adjusted via one file (*settings.py*), an incorporated log file, storing results at desired steps, the ability to execute multiple dynamical models consequentially and activating and disabling each step of \gls{cnmc}. | |
The latter is particularly designed for saving computational time. | |
Also, \gls{cnmc} comes with its own post-processor. | |
It is optional to generate and save the plots. | |
However, in the case of utilizing this feature, the plots are available as HTML files which, e.g., allow extracting further information about the outcome or rotating and zooming in 3d plots. | |