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/
│ │ │ │ └── structure/
│ │ │ │ ├── 226.csv/
│ │ │ │ └── ...
│ │ │ └── System ID Results/
│ │ │ ├── system realization/
│ │ │ │ ├── 226.csv/
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── acceleration/
│ │ ├── System ID Training Data/
│ │ │ ├── time/
│ │ │ │ └── 226.csv/
│ │ │ ├── dt/
│ │ │ │ └── 226.csv/
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.csv/
│ │ │ └── ...
│ │ └── ...
│ ├── elastic/
│ │ ├── field/
│ │ ├── displacement/
│ │ │ ├── System ID Training Data/
│ │ │ │ └── structure/
│ │ │ │ ├── 226.csv/
│ │ │ │ └── ...
│ │ │ └── System ID Results/
│ │ │ ├── system realization/
│ │ │ │ ├── 226.csv/
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── acceleration/
│ │ ├── System ID Training Data/
│ │ │ ├── time/
│ │ │ │ └── 226.csv/
│ │ │ ├── dt/
│ │ │ │ └── 226.csv/
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.csv/
│ │ │ └── ...
│ │ └── ...
│ └── inelastic/
│ ├── field/
│ ├── displacement/
│ │ ├── System ID Training Data/
│ │ │ └── structure/
│ │ │ ├── 226.csv/
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.csv/
│ │ │ └── ...
│ │ └── ...
│ └── acceleration/
│ ├── System ID Training Data/
│ │ └── ...
│ └── System ID Results/
│ └── ...
└── bridge/
├── field/
│ ├── displacement/
│ │ ├── System ID Training Data/
│ │ │ └── structure/
│ │ │ ├── 226.csv/
│ │ │ └── ...
│ │ └── System ID Results/
│ │ ├── system realization/
│ │ │ ├── 226.csv/
│ │ │ └── ...
│ │ └── ...
│ └── acceleration/
│ ├── System ID Training Data/
│ │ ├── time/
│ │ │ └── 226.csv/
│ │ ├── dt/
│ │ │ └── 226.csv/
│ │ └── ...
│ └── System ID Results/
│ ├── system realization/
│ │ ├── 226.csv/
│ │ └── ...
│ └── ...
├── elastic/
│ ├── displacement/
│ │ ├── System ID Training Data/
│ │ │ └── structure/
│ │ │ └── ...
│ │ └── 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) |
Needed for system ID
- true input (truncated and aligned)
- true output displacement (truncated and aligned)
- true aoutputcceleration (truncated and aligned)
- time array (truncated and aligned)
Results of system ID
- system (A,B,C,D)
- frequency ID
- mode shapes
- predicted output: displacement
- predicted output: acceleration
- prediction error: displacement
- prediction error: acceleration
- heatmap (encompasses all events)
| Level | Name | Quantities |
|---|---|---|
| 1 | Structure | frame, bridge |
| 2 | Source | field, elastic, inelastic |
| 3 | Quantity | displacement, acceleration |
| 4a | System ID Training Data | time, dt, ground (true input), structure (true output), structure (predicted output) |
| 4b | System ID Results | system realization, frequency ID, mode shapes, heatmap, prediction, prediction error |
| 5 | Event | 1, 2, 3, ... or 226, 227, 228, ... etc. |
See below for list of System ID Training Data in each Quantities' subdirectory.
| Quantities | System ID Training Data |
|---|---|
| displacement | structure (true output), structure (predicted output) |
| acceleration | time, dt, ground (true input), structure (true output), structure (predicted 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