# Wolfram Language™

## Combinez des mesures asynchrones

Un liquide circule à partir de deux réservoirs et est combiné en un seul flux. Les flux individuels de chaque réservoir sont calculés aux moyens de la mesure des niveaux de liquide dans chaque réservoir et étant donné que des 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 c, la surface des sections transversales d'une prise, et le niveau de liquide, et est donnée à 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;`

L'horodatage de la somme sont l'union des timbres de temps de deux séries chronologiques sur une plage de temps 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.

Montrer 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]=