Hostname: page-component-76d6cb85b7-rxvq6 Total loading time: 0 Render date: 2026-07-10T19:50:31.583Z Has data issue: false hasContentIssue false

Data-driven modelling for on-demand flow prescription in fan-array wind tunnels

Published online by Cambridge University Press:  23 January 2026

Alejandro Stefan-Zavala*
Affiliation:
Graduate Aerospace Laboratories, California Institute of Technology, Pasadena, CA, USA
Isabel Scherl
Affiliation:
Department of Mechanical and Civil Engineering, California Institute of Technology, Pasadena, CA, USA Department of Mechanical and Industrial Engineering, University of Massachusetts Amherst, Amherst, MA, USA
Ioannis Mandralis
Affiliation:
Graduate Aerospace Laboratories, California Institute of Technology, Pasadena, CA, USA
Steven L. Brunton
Affiliation:
Department of Mechanical Engineering, University of Washington, Seattle, WA, USA
Morteza Gharib
Affiliation:
Graduate Aerospace Laboratories, California Institute of Technology, Pasadena, CA, USA
*
Corresponding author: Alejandro Stefan-Zavala; Email: aastefan@caltech.edu

Abstract

Fan-array wind tunnels are an emerging technology to prescribe wind fields through grids of individually controllable fans. This design is especially suited for the turbulent, dynamic, non-uniform flow conditions found close to the ground, and has enabled applications from entomology to flight on Mars. However, due to the high dimensionality of fan-array actuation and the complexity of unsteady flow, the physics of fan arrays are not fully characterised, making it difficult to prescribe arbitrary flow fields. Accessing the full capability of fan arrays requires resolving the map from time-varying grids of fan speeds to three-dimensional unsteady flow fields, which remains an open problem. In this paper, we study the case of constant fan speeds and time-averaged streamwise velocities with one homogeneous spanwise axis. We produce a proof-of-concept surrogate model by fitting a regularised linear map to a dataset of fan-array measurements. We use this model as basis for an open-loop control scheme to prescribe flow profiles subject to constraints on fan speeds. We experimentally validate our model and control scheme, provide a physical interpretation of our model as a superposition of self-similar jet profiles and conclude that the physics relating constant fan-array speeds to time-averaged streamwise velocities are dominantly linear.

Information

Type
Research Article
Creative Commons
Creative Common License - CCCreative Common License - BY
This is an Open Access article, distributed under the terms of the Creative Commons Attribution licence (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted re-use, distribution and reproduction, provided the original article is properly cited.
Copyright
© The Author(s), 2026. Published by Cambridge University Press
Figure 0

Figure 1. (a) Shows: (i) a fan-array wind tunnel (ii) is given static profiles of fan speeds that vary along one spanwise axis, $y$. (iii) Mean profiles of streamwise velocity are measured by (iv) a sensor array along said axis, $y$. (b) A vector of fan speeds $\boldsymbol{r}$ multiplied by a coefficient matrix $\boldsymbol{A}$ plus a bias vector $\boldsymbol{b}$ gives a predicted velocity profile $\boldsymbol{v}_{\mathrm{pred}}$.

Figure 1

Figure 2. Experimental set-up. (a) Front view of $10\times 10$ fan array, showing the alignment of each sensor (orange circles) along the middle of the array. (b) Fan-array side view, with example velocity profiles at each of the four locations measured along the $x$-axis. The red dashed lines delineate our measurement width. The profile highlighted in green is at our preferred downstream distance, $x/L=1$. (c) Steady-state fan RPM as a function of duty cycle, averaged both in time and across all fans. Error bars show one standard deviation above and below. Standard deviations range from 90 RPM at 60 % duty cycle to 220 RPM at 40 % duty cycle, and are 143 RPM on average.

Figure 2

Figure 3. Types of inputs used in dataset. (a) Uniform: same duty cycle for all fans. (b) Single row: one fan row at non-zero duty cycle, all other fans at zero duty cycle. (c) Complement: one fan row at zero duty cycle, all others at non-zero duty cycle. (d) Free shear: top half and bottom half of the fan array at different duty cycles. (e) Haar: concatenated Haar wavelets at different resolutions and their mirror profiles. (f) Random: each fan row at a duty cycle sampled from the uniform distribution $\mathcal{U}[0, 1]$.

Figure 3

Figure 4. Resulting model matrices $\boldsymbol{A}$ and bias vectors $\boldsymbol{b}$. As $x/L$ increases, model coefficients appear to ‘diffuse’, discussed in Section 3.1.1. Rightmost: preferred downstream distance $x/L=1$.

Figure 4

Figure 5. Our model is effectively superimposing round-jet profiles centred on each fan. (a) Gaussian profiles are fit to columns of the model matrix. Column 6 is used in the rest of this figure. (b) Coefficients of column 6 of $\boldsymbol{A}$ and Gaussian fits using best-fit ($c_l$, blue) and fan-diameter ($c_{\mathrm{fan}}$, orange) length scales. Both Gaussian fits converge at $x/L=1$. (c) Column 6 of $\boldsymbol{A}$ for all $x/L$ plotted in similarity coordinates.

Figure 5

Figure 6. Example profiles from flow prediction test set. Sample-wise mean absolute per cent error (MAPE) $E_P$ is shown above each sample. (a)–(d) Test-set profiles at $x/L=1$, showing input profile, model prediction and true measurement. (e) Test-set profiles of the same input at all modelled downstream distances. (f) Kernel-density plots showing the distribution of component-wise (signed) prediction errors ($v-\hat {v}$) for both train and test set.

Figure 6

Figure 7. Example profiles from inverse-design validation at $x/L=1$. (a)–(d) Resulting control input (yellow), target flow (green) and resulting measured profile (blue). Sample-wise MAPE $E_P$ is shown above each sample. (e) Kernel-density plot of the distribution of (signed) component-wise tracking error ($v_{\mathrm{target}} - v$), along with prediction error for inverse-design inputs, and prediction test error from figure 6.

Figure 7

Figure A1. Execution of mathematical methods in Python 3. (a) Regression of surrogate model given input dataset $\boldsymbol{R}$ and output dataset $\boldsymbol{V}$. (b) Inverse-design application of the surrogate model to estimate the best input $\hat {\boldsymbol{r}}$ for a desired profile $\boldsymbol{v}_{\mathrm{target}}$.

Supplementary material: File

Stefan-Zavala et al. supplementary material

Stefan-Zavala et al. supplementary material
Download Stefan-Zavala et al. supplementary material(File)
File 860.4 KB