Combinez des mesures asynchrones
Un liquide s'écoule de deux réservoirs et est combiné en un seul flux. Les débits individuels de chaque réservoir sont calculés en mesurant les niveaux de liquide dans chaque réservoir et sont donnés sous forme de séries temporelles. Calculez le débit combiné des deux réservoirs.
![Click for copyable input](assets.fr/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];
Tracez les niveaux de liquide.
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_30.png)
DateListPlot[{h1, h2}, FrameLabel -> Automatic, Joined -> False,
Filling -> Axis]
![](assets.fr/combine-asynchronous-measurements/O_15.png)
Les mesures ne sont pas simultanées, les deux séries temporelles ont différents cadres de temps.
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_31.png)
SameQ[h1["Dates"], h2["Dates"]]
![](assets.fr/combine-asynchronous-measurements/O_16.png)
Le flux net de chaque réservoir dépend du coefficient de décharge commun , de la surface des sections transversales d'une sortie et du niveau de liquide, et est donné par la fonction suivante.
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_32.png)
flowFun[c_, a_, height_] :=
Evaluate[c*a*
Sqrt[2*UnitConvert[Entity["Planet", "Earth"]["Gravity"]]]*
Sqrt[height ]]
Calculez le débit de chaque réservoir en appliquant la formule pour chaque série temporelle.
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_33.png)
flow1 = flowFun[.7, Quantity[\[Pi] 0.25^2, "Meters Squared"], h1];
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_34.png)
flow2 = flowFun[.7, Quantity[\[Pi] 0.26^2, "Meters squared"], h2];
Calculez le débit global.
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_35.png)
TotalFlow = flow1 + flow2;
Les horodatages de la somme sont l'union des horodatages des deux séries temporelles sur une plage temporelle commune.
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_36.png)
newtimes =
Union[Complement[flow1["Dates"], {flow1["FirstDate"]}],
Complement[flow2["Dates"], {flow2["LastDate"]}]];
![Click for copyable input](assets.fr/combine-asynchronous-measurements/In_37.png)
SameQ[newtimes, TotalFlow["Dates"]]
![](assets.fr/combine-asynchronous-measurements/O_17.png)
Tracez les débits.
![](assets.fr/combine-asynchronous-measurements/O_18.png)