A suite of structures, their vibration responses to strong ground motion events, and analysis to investigate the relationships between ``ground truth'' damage state and estimated damage states obtained from inverse system identification.
get_systems.py: finite element model and its system identification.- Choose an analysis configuration
- "frame" or "bridge"
MULTISUPPORT = TrueorFalseELASTIC = TrueorFalse
- Loads a suite of events
- For each event:
- performs FEM analysis and saves:
- pre- and post- earthquake natural frequencies from FEM eigenvalue analysis
- displacement response histories at select output nodes
- strain/stress response histories at select output elements
- performs system identification and saves:
- timestep (dt)
- time array
- inputs array
- outputs array
- system matrices (A,B,C,D)
- performs FEM analysis and saves:
- Choose an analysis configuration
plot_inputs_outputs.py: plot the inputs and outputs used for system ID. Primarily used for debugging.plot_series.py: plot timeseries.- Prompts the user for:
- structure
- event
- quantity
- Adds onto an axis:
- source
- location
- Save the plot if desired.
- Prompts the user for:
.
├── Modeling/
│ ├── frame/
│ │ ├── field/
│ │ │ ├── time/
│ │ │ │ ├── ground/
│ │ │ │ │ ├── 226.csv
│ │ │ │ │ ├── 227.csv
│ │ │ │ │ └── ...
│ │ │ │ └── structure/
│ │ │ │ ├── 226.csv
│ │ │ │ └── ...
│ │ │ ├── dt/
│ │ │ │ ├── ground/
│ │ │ │ │ ├── 226.txt
│ │ │ │ │ └── ...
│ │ │ │ └── ...
│ │ │ └── ...
│ │ ├── elastic/
│ │ │ ├── displacement/
│ │ │ │ └── structure/
│ │ │ │ ├── 226.csv
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── inelastic/
│ │ └── ...
│ └── bridge/
│ ├── field/
│ │ ├── time/
│ │ │ ├── ground/
│ │ │ │ ├── 226.csv
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── ...
│ ├── elastic/
│ │ ├── displacement/
│ │ │ └── structure/
│ │ │ ├── 226.csv
│ │ │ └── ...
│ │ └── ...
│ └── ...
└── System ID/
├── frame/
│ ├── field/
│ │ ├── displacement/
│ │ │ ├── System ID Training Data/
│ │ │ │ ├── ground/
│ │ │ │ │ └── 226.csv
│ │ │ │ └── structure/
│ │ │ │ ├── 226.csv
│ │ │ │ └── ...
│ │ │ └── System ID Results/
│ │ │ ├── system realization/
│ │ │ │ └── 226.pkl
│ │ │ ├── frequency ID/
│ │ │ │ ├── 226.csv
│ │ │ │ └── ...
│ │ │ ├── ...
│ │ │ └── heatmap.png
│ │ └── acceleration/
│ │ ├── System ID Training Data/
│ │ │ ├── ground/
│ │ │ │ └── 226.csv
│ │ │ ├── structure/
│ │ │ │ └── 226.csv
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.pkl
│ │ │ └── ...
│ │ └── ...
│ ├── elastic/
│ │ ├── displacement/
│ │ │ ├── System ID Training Data/
│ │ │ │ └── ground/
│ │ │ │ ├── 226.csv
│ │ │ │ └── ...
│ │ │ └── System ID Results/
│ │ │ ├── system realization/
│ │ │ │ ├── 226.pkl
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── acceleration/
│ │ ├── System ID Training Data/
│ │ │ ├── ground/
│ │ │ │ └── 226.csv
│ │ │ ├── structure/
│ │ │ │ └── 226.csv
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.pkl
│ │ │ └── ...
│ │ └── ...
│ └── inelastic/
│ ├── displacement/
│ │ ├── System ID Training Data/
│ │ │ └── ground/
│ │ │ ├── 226.csv
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.pkl
│ │ │ └── ...
│ │ └── ...
│ └── acceleration/
│ ├── System ID Training Data/
│ │ └── ...
│ └── System ID Results/
│ └── ...
└── bridge/
├── field/
│ ├── displacement/
│ │ ├── System ID Training Data/
│ │ │ └── ground/
│ │ │ ├── 226.csv
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.pkl
│ │ │ └── ...
│ │ └── ...
│ └── acceleration/
│ ├── System ID Training Data/
│ │ ├── ground/
│ │ │ └── 226.csv
│ │ └── ...
│ └── System ID Results/
│ ├── system realization/
│ │ ├── 226.pkl
│ │ └── ...
│ └── ...
├── elastic/
│ ├── displacement/
│ │ ├── System ID Training Data/
│ │ │ └── ground/
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ └── ...
│ │ └── ...
│ └── acceleration/
│ └── ...
└── inelastic/
└── ...
| Level | Name | Quantities |
|---|---|---|
| 1 | Structure | frame, bridge |
| 2 | Source | field, elastic, inelastic |
| 3 | Quantity | time, dt, displacement, acceleration, stress, strain, frequency pre-eq, frequency post-eq |
| 4 | Location | ground (input), structure (output) |
| 5 | Event | 1, 2, 3, ... or 226, 227, 228, ... etc. |
See below for list of quantities and locations available in each Source's subdirectory.
| Source | Quantities | Locations |
|---|---|---|
| field | time, dt, displacement, acceleration | ground (input), structure (output) |
| elastic | displacement, acceleration, stress, strain, frequency pre-eq, frequency post-eq | structure (output) |
| inelastic | displacement, acceleration, stress, strain, frequency pre-eq, frequency post-eq | structure (output) |
| Level | Name | Quantities |
|---|---|---|
| 1 | Structure | frame, bridge |
| 2 | Source | field, elastic, inelastic |
| 3 | Output Quantity | displacement, acceleration |
| 4a* | System ID Training Data | ground acceleration (true input), structure response (true output), time, dt |
| 4b | System ID Results | system realization (A,B,C,D), frequency ID, mode shapes, prediction, prediction error, heatmap (encompasses all events) |
| 5 | Event | 1, 2, 3, ... or 226, 227, 228, ... etc. |
*All time series are truncated and aligned according to true output.
- Install numba:
conda install numba - Install requirements:
pip install -r requirements.txt
- Set up a xara-friendly environment: https://xara.so/user/guides/compile.html
- Install requirements:
pip install -r requirements.txt