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.
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_29.png)
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.
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_30.png)
DateListPlot[{h1, h2}, FrameLabel -> Automatic, Joined -> False,
Filling -> Axis]
![](assets.de/combine-asynchronous-measurements/O_15.png)
Die Messungen sind nicht simultan – die Zeitreihen haben unterschiedliche Zeitstempel.
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_31.png)
SameQ[h1["Dates"], h2["Dates"]]
![](assets.de/combine-asynchronous-measurements/O_16.png)
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.
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_32.png)
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.
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_33.png)
flow1 = flowFun[.7, Quantity[\[Pi] 0.25^2, "Meters Squared"], h1];
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_34.png)
flow2 = flowFun[.7, Quantity[\[Pi] 0.26^2, "Meters squared"], h2];
Berechnen Sie den Gesamtdurchfluss.
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_35.png)
TotalFlow = flow1 + flow2;
Die Zeitstempel der Summe sind die Verbindung der Zeitstempel beider Zeitreihen eines gemeinsamen Zeitbereichs.
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_36.png)
newtimes =
Union[Complement[flow1["Dates"], {flow1["FirstDate"]}],
Complement[flow2["Dates"], {flow2["LastDate"]}]];
![Click for copyable input](assets.de/combine-asynchronous-measurements/In_37.png)
SameQ[newtimes, TotalFlow["Dates"]]
![](assets.de/combine-asynchronous-measurements/O_17.png)
Plotten Sie die Durchflüsse.
![](assets.de/combine-asynchronous-measurements/O_18.png)