Asynchrone Messungen kombinieren
Eine Flüssigkeit fließt aus zwei Tanks und läuft zu einem einzigen Fluss zusammen. Die einzelnen Flüsse aus jedem Tank werden mithilfe der Messung des Flüssigkeitsstands jedes Tanks berechnet und als Zeitreihen angegeben. Berechnen Sie den kombinierten Fluss beider Tanks.

h1 = TemporalData[TimeSeries, {{
StructuredArray[QuantityArray, {101},
StructuredArray`StructuredData[QuantityArray, CompressedData["
1:eJwBNQPK/CFib1JlAQAAAGUAAADe5APaz4oAQCSFr48qYgBAQzBMKDxTAEDX
ymqz2x8AQNOLnrenpP8/Kmwvk1Ia/z8huN4wvNb+P4rfuUg5z/4/mdIrXD7C
/j/Uwimro3P+PxLt/Jvz4/0/qjRGTexP/T+BerQGpvj8P89ndGK45/w/uSuU
QGrm/D/3+kpQAbD8P6MLVq3yMPw/4lTjuNuY+z9wTWvQuS77P9Lv9rulD/s/
//pavhEU+z8YLJKVKfT6P+YyAQjbifo/QKWO0djz+T/A5FSVYHn5P9wGcJO5
SPk/s14mlqhM+T8WL8Ql9T/5PzZrds4O7fg/5iLiH0xf+D+CvLZMftj3P+3W
qeZulPc/BmCaoeOR9z+FMpKnwpP3P7+KpFA/Wfc/735hFG3Z9j++3QIdd0v2
P87+0M7j8/U/oJ8LlpTl9T+KFYiNavD1P1yaFoaDzfU/ddD7xmhg9T/9saxT
N9H0P7+BjKTCZ/Q/jidTHYdJ9D9A+nBKMlf0P9b8SZ1xSfQ/3ZNSCoXy8z/B
8GpwT2jzPxZGDC848PI/HzcSGFq/8j/6I6RCr8nyPx+uXV8fzfI/Mvnt4kWO
8j+lcOh1DA/yP1yDkX7qjPE/7W3IZGBI8T+9GiYLqEnxP152KqElWfE/9Zck
XIky8T8wIG3wnMPwP04gUh4EPfA/WedE9gjL7z/8E27037HvPxCrWcsl3e8/
4hlDFD+97z9nOo3taQjvP+h16WqI/u0/J0/Rkm8u7T+urSnBhPLsP8WXTrap
He0/bRLmuLQk7T9tTK7IZp7sP2u9NqEupOs/J3WK3Mq66j8bzo9SOljqP3/m
Tig4d+o/OWJ4ihuc6j8Upnb4hkbqP08bxY1wZ+k/QrxSy/Zu6D8Tx6a6S+Xn
PwYq0SZz7ec/ndGUjRUl6D+4gEpd7f7nP2Kb8eanROc/FZ293t1I5j+9YnNA
IJvlP6EruLryg+U/LLUSnx7C5T+Q8wcHr8blP4TvD3hdOOU/Wl/dx6lF5D+Z
/JtJH3rjP4Nyzev7PeM/ZcZaRVl24z93vVHo6Z3jPwwN4rqOP+M/aTuqJv5h
4j9XG7Zkp4HhP0VTVME+HuE/9dGrFA==
"], "Meters", {{1}}]]}, {
TemporalData`DateSpecification[{2016, 2, 3, 17, 0, 0.}, {2016, 2, 7,
21, 0, 0}, {1, "Hour"}]}, 1, {"Continuous", 1}, {"Discrete", 1},
1, {ResamplingMethod -> {
"Interpolation", InterpolationOrder -> 1}}}, True, 314.1];
h2 = TemporalData[TimeSeries, {{
StructuredArray[QuantityArray, {101},
StructuredArray`StructuredData[QuantityArray, CompressedData["
1:eJwBNQPK/CFib1JlAQAAAGUAAADe5APaz4oAQCOFr48qYgBAWwPf4N9MAEBS
Om4VdZn+PwngPIFrVfw/w0NCHNWZ+z9a09uBZsf8Pxe3P5fCfv4/ss8cEKDm
/j9YFSmc6l39P5tC/AfYC/s/AuMHBPbM+T+AxXXML336P+AErK6XMfw/oeO4
kWwU/T+VJkksOBX8P32SqPG33/k/lmsozcI5+D/2xRoL6mD4PyP1dj3D6fk/
Ez6I2lQn+z9rGrkfDLf6P6iE3q7kw/g/DtWOrkXa9j9h6QGSL3n2P1fJJ+hT
tPc/mXtDXuwm+T8KWSKioj75P/bpYbSxq/c/KZ3c+IGl9T8gGf0U2sj0PyaB
IA5KnfU/Z4uDEF4d9z8a3WXPFav3P6Hb1msJjPY/eG3sElyQ9D9aBVrA4E7z
P+VlDz+PrvM/Ot4sO24W9T8yXSYgSf/1P5XHmyBiXPU/5XIOMrWO8z+C/ifc
mQbyP4FPhVQb7/E/goxHzU4e8z/yOQXGjkH0P5HPQ+F1F/Q/8hzXvYuU8j+R
H7wjQOjwPz7fXelsYvA/ZeCYyYBA8T/t50aD6nryP+dNdqScu/I/ZyQA5B+X
8T/DSwWmlNPvP0LAfkiUEO4/1MyQlYgN7z+Ad8BdLbbwP3USRUfmSvE/SgME
ROiN8D+S13+SyP/tP81vGU/Jues/EBlSmGjw6z87i6MVxv3tP3gbv1aYle8/
9Ca3+aTm7j9ga3NGEj7sP5Wwax17suk/LYTLxm8x6T+9Mlb+gsDqP5sdtOk9
h+w/OLwD2HeK7D9YKMteHXnqP/PR9gS95+c/ogVVcVPR5j94zJwiUcjnP0b7
k3+Mf+k/yzWCkxAK6j9p8Rw1DZ/oP6BooC9NQ+Y/058TsNzJ5D+x4cno0iTl
PwgutSnBleY/kbmhed9u5z+9Gd9kjKLmPzSKhEg+reQ/ojbXlLsO4z+zPmb0
IOHiP9R0w+wu4uM/pCGvgmbH5D9reNbsHnrkP/Ko3Wy9DOM/RtvVUBGQ4T+k
hbaMlgbhP/MowdSsfuE/XFEVpd8i4j/yDMcEJRjiPxyQlJ3qROE/fqHOrPZG
4D/MgGaimHDfP3Bp5/unEN8/l3mlKQ==
"], "Meters", {{1}}]]}, {
TemporalData`DateSpecification[{2016, 2, 3, 17, 30, 0.}, {2016, 2, 7,
21, 30, 0}, {1, "Hour"}]}, 1, {"Continuous", 1}, {
"Discrete", 1}, 1, {
ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}},
True, 314.1];
Plotten Sie die Flüssigkeitsstände.

DateListPlot[{h1, h2}, FrameLabel -> Automatic, Joined -> False,
Filling -> Axis]

Die Messungen sind nicht simultan – die Zeitreihen haben unterschiedliche Zeitstempel.

SameQ[h1["Dates"], h2["Dates"]]

Der Nettofluss aus jedem Tank ist abhängig vom gemeinsamen Durchflusskoeffizient , der Querschnittsfläche der Öffnung und des Flüssigkeitsstands und wird als die folgende Funktion angegeben.

flowFun[c_, a_, height_] :=
Evaluate[c*a*
Sqrt[2*UnitConvert[Entity["Planet", "Earth"]["Gravity"]]]*
Sqrt[height ]]
Berechnen Sie den Fluss jedes Tanks, indem Sie die Formel auf jede Zeitreihe anwenden.

flow1 = flowFun[.7, Quantity[\[Pi] 0.25^2, "Meters Squared"], h1];

flow2 = flowFun[.7, Quantity[\[Pi] 0.26^2, "Meters squared"], h2];
Berechnen Sie den Gesamtdurchfluss.

TotalFlow = flow1 + flow2;
Die Zeitstempel der Summe sind die Verbindung der Zeitstempel beider Zeitreihen eines gemeinsamen Zeitbereichs.

newtimes =
Union[Complement[flow1["Dates"], {flow1["FirstDate"]}],
Complement[flow2["Dates"], {flow2["LastDate"]}]];

SameQ[newtimes, TotalFlow["Dates"]]

Plotten Sie die Durchflüsse.
