# Wolfram Language™

## 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.

In[1]:=
```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.

In[2]:=
```DateListPlot[{h1, h2}, FrameLabel -> Automatic, Joined -> False, Filling -> Axis]```
Out[2]=

Les mesures ne sont pas simultanées, les deux séries temporelles ont différents cadres de temps.

In[3]:=
`SameQ[h1["Dates"], h2["Dates"]]`
Out[3]=

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.

In[4]:=
```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.

In[5]:=
`flow1 = flowFun[.7, Quantity[\[Pi] 0.25^2, "Meters Squared"], h1];`
In[6]:=
`flow2 = flowFun[.7, Quantity[\[Pi] 0.26^2, "Meters squared"], h2];`

Calculez le débit global.

In[7]:=
`TotalFlow = flow1 + flow2;`

Les horodatages de la somme sont l'union des horodatages des deux séries temporelles sur une plage temporelle commune.

In[8]:=
```newtimes = Union[Complement[flow1["Dates"], {flow1["FirstDate"]}], Complement[flow2["Dates"], {flow2["LastDate"]}]];```
In[9]:=
`SameQ[newtimes, TotalFlow["Dates"]]`
Out[9]=

Tracez les débits.

Afficher l'entrée complète de Wolfram Language
In[10]:=
```DateListPlot[{flow1, flow2, TotalFlow}, FrameLabel -> Automatic, Filling -> Axis, Joined -> False, PlotStyle -> PointSize[.01], PlotLegends -> SwatchLegend[{"flow1", "flow2", "TotalFlow"}]]```
Out[10]=