3 files

An Energy Closure Criterion for Model Reduction of a Kicked Euler-Bernoulli Beam

posted on 13.09.2020 by Suparno Bhattacharyya, Joseph. P. Cusumano

MATLAB source code accompanying the forthcoming research article:

Bhattacharyya Suparno, Cusumano, Joseph P., 2020, An Energy Closure Criterion for Model Reduction of a Kicked Euler-Bernoulli Beam, Journal of Vibration and Acoustics (in press).

Contact: Suparno Bhattacharyya (sxb1086@psu.edu/suparno.bhattacharyya@gmail.com), Penn State University.

Abstract: Reduced order models (ROMs) can be simulated with lower computational cost while being more amenable to theoretical analysis. Here, we examine the performance of the proper orthogonal decomposition (POD), a data-driven model reduction technique. We show that the accuracy of ROMs obtained using POD depends on the type of data used and, more crucially, on the criterion used to select the number of proper orthogonal modes (POMs) used for the model. Simulations of a simply supported Euler-Bernoulli beam subjected to periodic impulsive loads are used to generate ROMs via POD, which are then simulated for comparison with the full system. We assess the accuracy of ROMs obtained using steady-state displacement, velocity, and strain fields, tuning the spatiotemporal localization of applied impulses to control the number of excited modes in, and hence the dimensionality of, the system's response. We show that conventional variance-based mode selection leads to inaccurate models for sufficiently impulsive loading, and that this poor performance is explained by the energy imbalance on the reduced subspace. Specifically, the subspace of POMs capturing a fixed amount (say, 99.9%) of the total variance underestimates the energy input and dissipated in the ROM, yielding inaccurate reduced-order simulations. This problem becomes more acute as the loading becomes more spatio-temporally localized (more impulsive). Thus, energy closure analysis provides an improved method for generating ROMs with energetics that properly reflect that of the full system, resulting in simulations that accurately represent the system's true behavior.


Code description: These two MATLAB programs were used to generate Figs. 5c, 5d, and Figs. 7 of the paper, which show the energy balance error (\(e_{_W}\)) on the reduced subspace, and the associated modeling errors (\(\widehat{e}_d\) and \(\widehat{e}_v\)) against different values of the subspace dimension \(P\). This code can also be used to calculate these errors in various other situations, with different parameter values.


  • Download both programs
  • Open "Energy_Balance_and_Modeling_Errors.app" in MATLAB
  • Execute the app
  • Enter the values of 
    • \(\epsilon\) (parameter controlling spatial localization of the forcing function; \(\epsilon \leq 2(1-s)\))
    • \(\tau\) (parameter controlling temporal localization of the external forcing; \(\tau \leq T\))
    • \(T\) (time period of the periodic forcing function)
    • \(c_m\)(material damping coefficient)
    • \(c_v\) (viscous damping coefficient)
    • field: (choose -1,0, or 1 to select the field to be used for generating the proper orthogonal modes; -1 for strain, 0 for velocity, and 1 for displacement field)
    • \(s\) (location on the beam where the amplitude of the forcing is maximum; in the paper \(s=1/\sqrt{2}\))
  •  Press "Run"

Check out the file titled "App_interface.JPG" for an illustration of the user interface.


Comments: The MATLAB app 'Energy_Balance_and_Modeling_Errors.mlapp' is a GUI for the MATLAB function 'ew.m' which has outputs 'ewt', 'Wdt', 'Wft', and 'z', representing the energy balance error, energy dissipated over one forcing period, energy input over one forcing period, and the modeling errors, respectively. The output 'z' is a \(2\times P_{max}\) matrix whose first row represents the displacement error \(\widehat{e}_d\) and second row the velocity error \(\widehat{e}_v\), computed for different values of \(P\) ranging from \(1\) to \(P_{max}\). \(P_{max}\) represents the maximum value of the subspace dimension \(P\), which is also the rank of the associated covariance matrix (see paper for more details). Instead of using the app, one can also directly use 'ew.m' to calculate the energy balance and modeling errors. In that case, however, the graphs will have to be generated manually.