Compare commits
123 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb9dee10de | ||
|
|
93d720b676 | ||
|
|
52dccce7e2 | ||
|
|
bf0de65fb7 | ||
|
|
7ca70fbdc3 | ||
|
|
b35944ee3e | ||
|
|
8f51963d0f | ||
|
|
5c513e4629 | ||
|
|
38ece73768 | ||
|
|
76a09c0219 | ||
|
|
1a994fd59c | ||
|
|
cdb3010b78 | ||
|
|
e5b9806462 | ||
|
|
8dbb448b32 | ||
|
|
033d949325 | ||
|
|
643c0ebce1 | ||
|
|
4851a9aa5d | ||
|
|
8a3c1ae585 | ||
|
|
fd765b113f | ||
|
|
fe801b0a1c | ||
|
|
7b934d3fba | ||
|
|
dbc62fea32 | ||
|
|
1ad235866e | ||
|
|
05796d0165 | ||
|
|
f8e9ac93a0 | ||
|
|
04546f8c35 | ||
|
|
26450026bb | ||
|
|
3a17cc1331 | ||
|
|
e9f953f731 | ||
|
|
2c5c78b83c | ||
|
|
aaccad7ae8 | ||
|
|
2c453ec403 | ||
|
|
7da3179d08 | ||
|
|
254b24cb21 | ||
|
|
d151062115 | ||
|
|
a32415cebf | ||
|
|
12669ed24c | ||
|
|
b0bdb67efb | ||
|
|
4d5de37e30 | ||
|
|
92fd3acd05 | ||
|
|
e0fade285a | ||
|
|
b4fb0d64a2 | ||
|
|
b1e1edee77 | ||
|
|
2016f4e780 | ||
|
|
0cf2834095 | ||
|
|
d5f43ba48b | ||
|
|
a872ae144c | ||
|
|
452afd6580 | ||
|
|
3d2432f26e | ||
|
|
1533a6ce46 | ||
|
|
471eccb12c | ||
|
|
74ea4d412c | ||
|
|
9d526971d9 | ||
|
|
49adb273d8 | ||
|
|
ee004e55f4 | ||
|
|
f97c58e114 | ||
|
|
190cd0904e | ||
|
|
6105da57f0 | ||
|
|
63da3b6308 | ||
|
|
5634776d26 | ||
|
|
e65026f9ca | ||
|
|
eb1d2a87b4 | ||
|
|
1f275fad42 | ||
|
|
07ed6a9a13 | ||
|
|
1b20376700 | ||
|
|
104b72e624 | ||
|
|
e9568583e4 | ||
|
|
ae201d61fa | ||
|
|
921dc9245c | ||
|
|
bf3c43639d | ||
|
|
f38d44df1d | ||
|
|
5c70d7db51 | ||
|
|
702760cc5e | ||
|
|
43a0f40182 | ||
|
|
92a7143d90 | ||
|
|
5e08d4f8c6 | ||
|
|
907f725fa7 | ||
|
|
676b2b1a87 | ||
|
|
e0fbc23257 | ||
|
|
39f966e71b | ||
|
|
740680d1c7 | ||
|
|
2db5170366 | ||
|
|
f83b890055 | ||
|
|
7820dd580a | ||
|
|
6c0fb67b86 | ||
|
|
792ed64027 | ||
|
|
c57a916a1a | ||
|
|
ca668ffc5f | ||
|
|
8d09adefd4 | ||
|
|
05926e3857 | ||
|
|
d13dfdc34e | ||
|
|
6b866b9ed5 | ||
|
|
4a796694bf | ||
|
|
6357136e6c | ||
|
|
c7584e2dd8 | ||
|
|
80ee9a3ec4 | ||
|
|
f9f346a57e | ||
|
|
c8509aa728 | ||
|
|
4ebfb52635 | ||
|
|
cb380219f9 | ||
|
|
804c178175 | ||
|
|
1511012e11 | ||
|
|
db2947abdf | ||
|
|
36b36c41ba | ||
|
|
28681017ad | ||
|
|
ff64f3a3ab | ||
|
|
58a316d9c8 | ||
|
|
020028eed8 | ||
|
|
35e25ba4c6 | ||
|
|
8ed1437d6d | ||
|
|
96556a1186 | ||
|
|
0a63aab211 | ||
|
|
48ea879863 | ||
|
|
69afdb1ad1 | ||
|
|
db2d9299e6 | ||
|
|
d5ba1ac0cd | ||
|
|
144f406226 | ||
|
|
e6f8820989 | ||
|
|
2de04a6ea6 | ||
|
|
48075a590e | ||
|
|
b229967e05 | ||
|
|
f41edaaa91 | ||
|
|
e9c06e1ac1 |
115
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
115
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
name: Bug Report
|
||||
description: Report a bug or unexpected behavior
|
||||
title: "[BUG] "
|
||||
labels: ["bug"]
|
||||
assignees:
|
||||
- ${{github.actor}}
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Bug Description
|
||||
description: A clear and concise description of what the bug is
|
||||
placeholder: When I run the script, it crashes when processing large datasets...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: Steps to reproduce the behavior
|
||||
placeholder: |
|
||||
1. Go to notebook '...'
|
||||
2. Run cell #...
|
||||
3. See error
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: What did you expect to happen?
|
||||
placeholder: The analysis should complete successfully and generate the visualization
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: actual
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: What actually happened?
|
||||
placeholder: The script crashes with a memory error after processing 1000 samples
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Error Logs
|
||||
description: Paste any relevant logs or error messages
|
||||
render: shell
|
||||
placeholder: |
|
||||
Traceback (most recent call last):
|
||||
File "script.py", line 42, in <module>
|
||||
main()
|
||||
File "script.py", line 28, in main
|
||||
process_data(data)
|
||||
MemoryError: ...
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: dropdown
|
||||
id: component
|
||||
attributes:
|
||||
label: Component
|
||||
description: Which part of the thesis project is affected?
|
||||
options:
|
||||
- LaTeX Document
|
||||
- Python Source Code
|
||||
- Jupyter Notebook
|
||||
- Data Processing
|
||||
- ML Model
|
||||
- Visualization
|
||||
- Build/Environment
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Version/Commit
|
||||
description: Which version or commit hash are you using?
|
||||
placeholder: v0.2.3 or 8d5b9a7
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: Information about your environment
|
||||
placeholder: |
|
||||
- OS: [e.g. Ubuntu 22.04]
|
||||
- Python: [e.g. 3.9.5]
|
||||
- Relevant packages and versions:
|
||||
- numpy: 1.22.3
|
||||
- scikit-learn: 1.0.2
|
||||
- tensorflow: 2.9.1
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: additional
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: Any other context or screenshots about the problem
|
||||
placeholder: Add any other context about the problem here...
|
||||
validations:
|
||||
required: false
|
||||
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Documentation
|
||||
url: ../docs/README.md
|
||||
about: Check the documentation before creating an issue
|
||||
|
||||
# Template configurations
|
||||
templates:
|
||||
- name: bug_report.yml
|
||||
- name: feature_request.yml
|
||||
- name: experiment.yml
|
||||
- name: documentation.yml
|
||||
116
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
116
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
name: Documentation
|
||||
description: Improvements or additions to documentation
|
||||
title: "[DOC] "
|
||||
labels: ["documentation"]
|
||||
assignees:
|
||||
- ${{github.actor}}
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Use this template for documentation-related tasks for your thesis project.
|
||||
|
||||
- type: dropdown
|
||||
id: doc_type
|
||||
attributes:
|
||||
label: Documentation Type
|
||||
description: What type of documentation is this issue about?
|
||||
options:
|
||||
- Thesis Chapter/Section
|
||||
- Code Documentation
|
||||
- Experiment Documentation
|
||||
- README/Project Documentation
|
||||
- Literature Review
|
||||
- Methodology Description
|
||||
- Results Analysis
|
||||
- API Reference
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Describe what needs to be documented
|
||||
placeholder: Need to document the data preprocessing pipeline including all transformation steps and rationale
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: current_state
|
||||
attributes:
|
||||
label: Current State
|
||||
description: What's the current state of the documentation (if any)?
|
||||
placeholder: Currently there are some comments in the code but no comprehensive documentation of the preprocessing steps
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: proposed_changes
|
||||
attributes:
|
||||
label: Proposed Changes
|
||||
description: What specific documentation changes do you want to make?
|
||||
placeholder: |
|
||||
1. Create a dedicated markdown file describing each preprocessing step
|
||||
2. Add docstrings to all preprocessing functions
|
||||
3. Create a diagram showing the data flow
|
||||
4. Document parameter choices and their justification
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: location
|
||||
attributes:
|
||||
label: Documentation Location
|
||||
description: Where will this documentation be stored?
|
||||
placeholder: docs/data_preprocessing.md or src/preprocessing/README.md
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: priority
|
||||
attributes:
|
||||
label: Priority
|
||||
description: How important is this documentation?
|
||||
options:
|
||||
- Critical (required for thesis)
|
||||
- High (important for understanding)
|
||||
- Medium (helpful but not urgent)
|
||||
- Low (nice to have)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: audience
|
||||
attributes:
|
||||
label: Target Audience
|
||||
description: Who is the primary audience for this documentation?
|
||||
options:
|
||||
- Thesis Committee/Reviewers
|
||||
- Future Self
|
||||
- Other Researchers
|
||||
- Technical Readers
|
||||
- Non-technical Readers
|
||||
- Multiple Audiences
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: references
|
||||
attributes:
|
||||
label: References
|
||||
description: Any papers, documentation or other materials related to this documentation task
|
||||
placeholder: |
|
||||
- Smith et al. (2022). "Best practices in machine learning documentation"
|
||||
- Code in src/preprocessing/normalize.py
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: notes
|
||||
attributes:
|
||||
label: Additional Notes
|
||||
description: Any other relevant information
|
||||
placeholder: This documentation will be referenced in Chapter 3 of the thesis
|
||||
validations:
|
||||
required: false
|
||||
124
.github/ISSUE_TEMPLATE/experiment.yml
vendored
Normal file
124
.github/ISSUE_TEMPLATE/experiment.yml
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
# .github/ISSUE_TEMPLATE/experiment.yml
|
||||
name: Experiment
|
||||
description: Document a new ML experiment
|
||||
title: "[EXP] "
|
||||
labels: ["experiment"]
|
||||
assignees:
|
||||
- ${{github.actor}}
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Use this template to document a new experiment for your thesis.
|
||||
|
||||
- type: textarea
|
||||
id: hypothesis
|
||||
attributes:
|
||||
label: Hypothesis
|
||||
description: What is the hypothesis you're testing with this experiment?
|
||||
placeholder: Using a deeper network with residual connections will improve accuracy on the imbalanced dataset without increasing overfitting
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: background
|
||||
attributes:
|
||||
label: Background & Motivation
|
||||
description: Background context and why this experiment is important
|
||||
placeholder: Previous experiments showed promising results but suffered from overfitting. Recent literature suggests that...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: dataset
|
||||
attributes:
|
||||
label: Dataset
|
||||
description: What data will you use for this experiment?
|
||||
placeholder: |
|
||||
- Dataset: MNIST with augmentation
|
||||
- Preprocessing: Standardization + random rotation
|
||||
- Train/Test Split: 80/20
|
||||
- Validation strategy: 5-fold cross-validation
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: methodology
|
||||
attributes:
|
||||
label: Methodology
|
||||
description: How will you conduct the experiment?
|
||||
placeholder: |
|
||||
1. Implement ResNet architecture with varying depths (18, 34, 50)
|
||||
2. Train with early stopping (patience=10)
|
||||
3. Compare against baseline CNN from experiment #23
|
||||
4. Analyze learning curves and performance metrics
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: parameters
|
||||
attributes:
|
||||
label: Parameters & Hyperparameters
|
||||
description: List the key parameters for this experiment
|
||||
placeholder: |
|
||||
- Learning rate: 0.001 with Adam optimizer
|
||||
- Batch size: 64
|
||||
- Epochs: Max 100 with early stopping
|
||||
- Dropout rate: 0.3
|
||||
- L2 regularization: 1e-4
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: metrics
|
||||
attributes:
|
||||
label: Evaluation Metrics
|
||||
description: How will you evaluate the results?
|
||||
placeholder: |
|
||||
- Accuracy
|
||||
- F1-score (macro-averaged)
|
||||
- ROC-AUC
|
||||
- Training vs. validation loss curves
|
||||
- Inference time
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: notebook
|
||||
attributes:
|
||||
label: Notebook Location
|
||||
description: Where will the experiment notebook be stored?
|
||||
placeholder: notebooks/experiment_resnet_comparison.ipynb
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: dependencies
|
||||
attributes:
|
||||
label: Dependencies
|
||||
description: What other issues or tasks does this experiment depend on?
|
||||
placeholder: |
|
||||
- Depends on issue #42 (Data preprocessing pipeline)
|
||||
- Requires completion of issue #51 (Baseline model)
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: references
|
||||
attributes:
|
||||
label: References
|
||||
description: Any papers, documentation or other materials relevant to this experiment
|
||||
placeholder: |
|
||||
- He et al. (2016). "Deep Residual Learning for Image Recognition"
|
||||
- My previous experiment #23 (baseline CNN)
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: notes
|
||||
attributes:
|
||||
label: Additional Notes
|
||||
description: Any other relevant information
|
||||
placeholder: This experiment may require significant GPU resources. Expected runtime is ~3 hours on Tesla V100.
|
||||
validations:
|
||||
required: false
|
||||
99
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
99
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
# .github/ISSUE_TEMPLATE/feature_request.yml
|
||||
name: Feature Request
|
||||
description: Suggest a new feature or enhancement
|
||||
title: "[FEAT] "
|
||||
labels: ["enhancement"]
|
||||
assignees:
|
||||
- ${{github.actor}}
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to propose a new feature!
|
||||
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: Problem Statement
|
||||
description: What problem are you trying to solve with this feature?
|
||||
placeholder: I'm frustrated when trying to analyze different model results because I need to manually compare them...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: Proposed Solution
|
||||
description: Describe the solution you'd like to implement
|
||||
placeholder: Create a visualization utility that automatically compares results across multiple models and experiments
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Alternatives Considered
|
||||
description: Describe alternatives you've considered
|
||||
placeholder: I considered using an external tool, but integrating directly would provide better workflow
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: dropdown
|
||||
id: component
|
||||
attributes:
|
||||
label: Component
|
||||
description: Which part of the thesis project would this feature affect?
|
||||
options:
|
||||
- LaTeX Document
|
||||
- Python Source Code
|
||||
- Jupyter Notebook
|
||||
- Data Processing
|
||||
- ML Model
|
||||
- Visualization
|
||||
- Build/Environment
|
||||
- Multiple Components
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: priority
|
||||
attributes:
|
||||
label: Priority
|
||||
description: How important is this feature for your thesis progression?
|
||||
options:
|
||||
- Critical (blocks progress)
|
||||
- High (significantly improves workflow)
|
||||
- Medium (nice to have)
|
||||
- Low (minor improvement)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: implementation
|
||||
attributes:
|
||||
label: Implementation Ideas
|
||||
description: Any initial thoughts on how to implement this feature?
|
||||
placeholder: |
|
||||
- Could use matplotlib's subplot feature
|
||||
- Would need to standardize the model output format
|
||||
- Should include statistical significance tests
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Expected Benefits
|
||||
description: How will this feature benefit your thesis work?
|
||||
placeholder: This will save time in analysis and provide more consistent comparisons across experiments
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: additional
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: Any other context, screenshots, or reference material
|
||||
placeholder: Here's a paper that uses a similar approach...
|
||||
validations:
|
||||
required: false
|
||||
52
.github/workflows/latex-lint.yml
vendored
Normal file
52
.github/workflows/latex-lint.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
name: LaTeX Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
paths:
|
||||
- 'latex/**/*.tex'
|
||||
- 'latex/main.tex'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install chktex
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y chktex
|
||||
|
||||
- name: Run chktex inside latex/
|
||||
working-directory: latex
|
||||
run: |
|
||||
TEX_FILES=$(find . -type f -name "*.tex")
|
||||
if [ -z "$TEX_FILES" ]; then
|
||||
echo "No .tex files found in latex/. Skipping lint."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "🔍 Linting .tex files with chktex..."
|
||||
FAIL=0
|
||||
|
||||
for f in $TEX_FILES; do
|
||||
echo "▶ Checking $f"
|
||||
# Run chktex and show output; capture error status
|
||||
if ! chktex "$f"; then
|
||||
echo "::warning file=$f::ChkTeX found issues in $f"
|
||||
FAIL=1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $FAIL -ne 0 ]; then
|
||||
echo "::error::❌ Lint errors or warnings were found in one or more .tex files above."
|
||||
exit 1
|
||||
else
|
||||
echo "✅ All files passed chktex lint."
|
||||
fi
|
||||
102
.github/workflows/latexdiff.yml
vendored
Normal file
102
.github/workflows/latexdiff.yml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: LaTeX Diff
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
base_branch:
|
||||
description: 'Base branch (older version)'
|
||||
required: true
|
||||
compare_branch:
|
||||
description: 'Compare branch (new version)'
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
latexdiff:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/xu-cheng/texlive-full:latest
|
||||
options: --user root
|
||||
|
||||
steps:
|
||||
- name: Install latexpand (Perl script)
|
||||
run: |
|
||||
tlmgr init-usertree
|
||||
tlmgr install latexpand
|
||||
|
||||
- name: Checkout base branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.inputs.base_branch }}
|
||||
path: base
|
||||
|
||||
- name: Checkout compare branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.inputs.compare_branch }}
|
||||
path: compare
|
||||
|
||||
|
||||
- name: Create output folder
|
||||
run: mkdir -p diff_output
|
||||
|
||||
- name: Flatten base/main.tex (with latexpand)
|
||||
run: |
|
||||
cd base/latex
|
||||
echo "📂 Listing files in base/latex:"
|
||||
ls -R
|
||||
echo "🔄 Flattening with latexpand..."
|
||||
latexpand --verbose --keep-comments --output=../../diff_output/base_flat.tex main.tex
|
||||
echo "✅ Preview of base_flat.tex:"
|
||||
head -n 50 ../../diff_output/base_flat.tex
|
||||
|
||||
|
||||
- name: Flatten compare/main.tex (with latexpand)
|
||||
run: |
|
||||
cd compare/latex
|
||||
echo "📂 Listing files in compare/latex:"
|
||||
ls -R
|
||||
echo "🔄 Flattening with latexpand..."
|
||||
latexpand --verbose --keep-comments --output=../../diff_output/compare_flat.tex main.tex
|
||||
echo "✅ Preview of compare_flat.tex:"
|
||||
head -n 50 ../../diff_output/compare_flat.tex
|
||||
|
||||
- name: Generate diff.tex using latexdiff
|
||||
run: |
|
||||
latexdiff diff_output/base_flat.tex diff_output/compare_flat.tex > diff_output/diff.tex
|
||||
|
||||
- name: Copy thesis.cls to diff_output
|
||||
run: cp compare/latex/thesis.cls diff_output/
|
||||
|
||||
- name: Copy chapters/img into diff_output
|
||||
run: |
|
||||
# Create the same chapters/img path inside diff_output
|
||||
mkdir -p diff_output/chapters/img
|
||||
# Copy all images from compare branch into diff_output
|
||||
cp -R compare/latex/chapters/img/* diff_output/chapters/img/
|
||||
|
||||
- name: Copy .bib files into diff_output
|
||||
run: |
|
||||
mkdir -p diff_output
|
||||
cp compare/latex/*.bib diff_output/
|
||||
|
||||
- name: Override “\input{preamble/fonts}” in diff.tex
|
||||
run: |
|
||||
sed -i "/\\input{preamble\/fonts}/c % — replaced by CI: use TeX Gyre fonts instead of Times New Roman\/Arial\n\\\setmainfont{TeX Gyre Termes}\n\\\setsansfont{TeX Gyre Heros}\n\\\setmonofont{TeX Gyre Cursor}" diff_output/diff.tex
|
||||
|
||||
- name: Print preview of diff.tex (after font override)
|
||||
run: |
|
||||
echo "📄 Preview of diff_output/diff.tex after font override:"
|
||||
head -n 50 diff_output/diff.tex
|
||||
|
||||
- name: Compile diff.tex to PDF
|
||||
working-directory: diff_output
|
||||
continue-on-error: true
|
||||
run: |
|
||||
xelatex -interaction=nonstopmode diff.tex
|
||||
xelatex -interaction=nonstopmode diff.tex
|
||||
|
||||
- name: Upload diff output files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: latex-diff-output
|
||||
path: diff_output/
|
||||
29
.github/workflows/latexmk.yml
vendored
Normal file
29
.github/workflows/latexmk.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: Render XeLaTeX on PR to dev
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
build-pdf:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Compile XeLaTeX
|
||||
uses: dante-ev/latex-action@2021-A
|
||||
with:
|
||||
root_file: main.tex
|
||||
working_directory: latex
|
||||
compiler: xelatex
|
||||
args: -interaction=nonstopmode -halt-on-error -file-line-error
|
||||
extra_system_packages: "fonts-freefont-otf"
|
||||
|
||||
- name: Upload compiled PDF
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: compiled-pdf
|
||||
path: latex/main.pdf
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
||||
data/**/*.csv
|
||||
.venv/
|
||||
*.pyc
|
||||
*.egg-info/
|
||||
@@ -21,6 +21,7 @@
|
||||
#
|
||||
# Scope:
|
||||
# latex (changes to thesis LaTeX)
|
||||
# documentclass (LaTeX in-house document class changes)
|
||||
# src (changes to Python source code)
|
||||
# nb (changes to notebooks)
|
||||
# ml (ML model specific changes)
|
||||
|
||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"python.analysis.extraPaths": ["./code/src/features"]
|
||||
"python.analysis.extraPaths": ["./code/src/features"],
|
||||
"jupyter.notebookFileRoot": "${workspaceFolder}/code"
|
||||
}
|
||||
|
||||
7
LICENSE
7
LICENSE
@@ -0,0 +1,7 @@
|
||||
Copyright 2024 Rifqi D. Panuluh
|
||||
|
||||
All Rights Reserved.
|
||||
|
||||
This repository is for viewing purposes only. No part of this repository, including but not limited to the code, files, and documentation, may be copied, reproduced, modified, or distributed in any form or by any means without the prior written permission of the copyright holder.
|
||||
|
||||
Unauthorized use, distribution, or modification of this repository may result in legal action.
|
||||
|
||||
17
README.md
17
README.md
@@ -0,0 +1,17 @@
|
||||
## Summary
|
||||
|
||||
This repository contains the work related to my thesis, which focuses on damage localization prediction. The research explores the application of machine learning techniques to structural health monitoring.
|
||||
|
||||
**Note:** This repository does not contain the secondary data used in the analysis. The code is designed to work with data from the [QUGS (Qatar University Grandstand Simulator)](https://www.structuralvibration.com/benchmark/qugs/) dataset, which is not included here.
|
||||
|
||||
## Restrictions
|
||||
|
||||
- **No Derivative Works or Cloning:** Any form of copying, cloning, or creating derivative works based on this repository is strictly prohibited.
|
||||
|
||||
[LICENSE](https://github.com/nuluh/thesis?tab=License-1-ov-file#readme)
|
||||
|
||||
## How to Run `stft.ipynb`
|
||||
|
||||
1. run `pip install -e .` in root project first
|
||||
|
||||
2. run the notebook
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
57
code/src/ml/model_selection.py
Normal file
57
code/src/ml/model_selection.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import os
|
||||
from sklearn.model_selection import train_test_split as sklearn_split
|
||||
|
||||
|
||||
def create_ready_data(
|
||||
stft_data_path: str,
|
||||
stratify: np.ndarray = None,
|
||||
) -> tuple:
|
||||
"""
|
||||
Create a stratified train-test split from STFT data.
|
||||
|
||||
Parameters:
|
||||
-----------
|
||||
stft_data_path : str
|
||||
Path to the directory containing STFT data files (e.g. 'data/converted/raw/sensor1')
|
||||
stratify : np.ndarray, optional
|
||||
Labels to use for stratified sampling
|
||||
|
||||
Returns:
|
||||
--------
|
||||
tuple
|
||||
(X_train, X_test, y_train, y_test) - Split datasets
|
||||
"""
|
||||
ready_data = []
|
||||
for file in os.listdir(stft_data_path):
|
||||
ready_data.append(pd.read_csv(os.path.join(stft_data_path, file)))
|
||||
|
||||
y_data = [i for i in range(len(ready_data))]
|
||||
|
||||
# Combine all dataframes in ready_data into a single dataframe
|
||||
if ready_data: # Check if the list is not empty
|
||||
# Use pandas concat function instead of iterative concatenation
|
||||
combined_data = pd.concat(ready_data, axis=0, ignore_index=True)
|
||||
|
||||
print(f"Type of combined data: {type(combined_data)}")
|
||||
print(f"Shape of combined data: {combined_data.shape}")
|
||||
else:
|
||||
print("No data available in ready_data list")
|
||||
combined_data = pd.DataFrame()
|
||||
|
||||
# Store the result in x1a for compatibility with subsequent code
|
||||
X = combined_data
|
||||
|
||||
for i in range(len(y_data)):
|
||||
y_data[i] = [y_data[i]] * ready_data[i].shape[0]
|
||||
y_data[i] = np.array(y_data[i])
|
||||
|
||||
if y_data:
|
||||
# Use numpy concatenate function instead of iterative concatenation
|
||||
y = np.concatenate(y_data, axis=0)
|
||||
else:
|
||||
print("No labels available in y_data list")
|
||||
y = np.array([])
|
||||
|
||||
return X, y
|
||||
@@ -1,16 +1,298 @@
|
||||
import pandas as pd
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import numpy as np
|
||||
from colorama import Fore, Style, init
|
||||
from typing import TypedDict, Dict, List
|
||||
from joblib import load
|
||||
from pprint import pprint
|
||||
|
||||
# class DamageFilesIndices(TypedDict):
|
||||
# damage_index: int
|
||||
# files: list[int]
|
||||
OriginalSingleDamageScenarioFilePath = str
|
||||
DamageScenarioGroupIndex = int
|
||||
OriginalSingleDamageScenario = pd.DataFrame
|
||||
SensorIndex = int
|
||||
VectorColumnIndex = List[SensorIndex]
|
||||
VectorColumnIndices = List[VectorColumnIndex]
|
||||
DamageScenarioGroup = List[OriginalSingleDamageScenario]
|
||||
GroupDataset = List[DamageScenarioGroup]
|
||||
|
||||
|
||||
class DamageFilesIndices(TypedDict):
|
||||
damage_index: int
|
||||
files: List[str]
|
||||
|
||||
|
||||
def generate_damage_files_index(**kwargs) -> DamageFilesIndices:
|
||||
prefix: str = kwargs.get("prefix", "zzzAD")
|
||||
extension: str = kwargs.get("extension", ".TXT")
|
||||
num_damage: int = kwargs.get("num_damage")
|
||||
file_index_start: int = kwargs.get("file_index_start")
|
||||
col: int = kwargs.get("col")
|
||||
base_path: str = kwargs.get("base_path")
|
||||
|
||||
damage_scenarios = {}
|
||||
a = file_index_start
|
||||
b = col + 1
|
||||
for i in range(1, num_damage + 1):
|
||||
damage_scenarios[i] = range(a, b)
|
||||
a += col
|
||||
b += col
|
||||
|
||||
# return damage_scenarios
|
||||
|
||||
x = {}
|
||||
for damage, files in damage_scenarios.items():
|
||||
x[damage] = [] # Initialize each key with an empty list
|
||||
for i, file_index in enumerate(files, start=1):
|
||||
if base_path:
|
||||
x[damage].append(
|
||||
os.path.normpath(
|
||||
os.path.join(base_path, f"{prefix}{file_index}{extension}")
|
||||
)
|
||||
)
|
||||
# if not os.path.exists(file_path):
|
||||
# print(Fore.RED + f"File {file_path} does not exist.")
|
||||
# continue
|
||||
else:
|
||||
x[damage].append(f"{prefix}{file_index}{extension}")
|
||||
return x
|
||||
|
||||
# file_path = os.path.join(base_path, f"zzz{prefix}D{file_index}.TXT")
|
||||
# df = pd.read_csv( file_path, sep="\t", skiprows=10) # Read with explicit column names
|
||||
|
||||
|
||||
class DataProcessor:
|
||||
def __init__(self, file_index: DamageFilesIndices, cache_path: str = None):
|
||||
self.file_index = file_index
|
||||
if cache_path:
|
||||
self.data = load(cache_path)
|
||||
else:
|
||||
self.data = self._load_all_data()
|
||||
|
||||
def _extract_column_names(self, file_path: str) -> List[str]:
|
||||
"""
|
||||
Extracts column names from the header of the given file.
|
||||
Assumes the 6th line contains column names.
|
||||
|
||||
:param file_path: Path to the data file.
|
||||
:return: List of column names.
|
||||
"""
|
||||
with open(file_path, "r") as f:
|
||||
header_lines = [next(f) for _ in range(12)]
|
||||
|
||||
# Extract column names from the 6th line
|
||||
channel_line = header_lines[10].strip()
|
||||
tokens = re.findall(r'"([^"]+)"', channel_line)
|
||||
if not channel_line.startswith('"'):
|
||||
first_token = channel_line.split()[0]
|
||||
tokens = [first_token] + tokens
|
||||
|
||||
return tokens # Prepend 'Time' column if applicable
|
||||
|
||||
def _load_dataframe(self, file_path: str) -> OriginalSingleDamageScenario:
|
||||
"""
|
||||
Loads a single data file into a pandas DataFrame.
|
||||
|
||||
:param file_path: Path to the data file.
|
||||
:return: DataFrame containing the numerical data.
|
||||
"""
|
||||
col_names = self._extract_column_names(file_path)
|
||||
df = pd.read_csv(
|
||||
file_path, delim_whitespace=True, skiprows=11, header=None, memory_map=True
|
||||
)
|
||||
df.columns = col_names
|
||||
return df
|
||||
|
||||
def _load_all_data(self) -> GroupDataset:
|
||||
"""
|
||||
Loads all data files based on the grouping dictionary and returns a nested list.
|
||||
|
||||
:return: A nested list of DataFrames where the outer index corresponds to group_idx - 1.
|
||||
"""
|
||||
data = []
|
||||
# Find the maximum group index to determine the list size
|
||||
max_group_idx = max(self.file_index.keys()) if self.file_index else 0
|
||||
|
||||
# Initialize empty lists
|
||||
for _ in range(max_group_idx):
|
||||
data.append([])
|
||||
|
||||
# Fill the list with data
|
||||
for group_idx, file_list in self.file_index.items():
|
||||
# Adjust index to be 0-based
|
||||
list_idx = group_idx - 1
|
||||
data[list_idx] = [self._load_dataframe(file) for file in file_list]
|
||||
|
||||
return data
|
||||
|
||||
def get_group_data(self, group_idx: int) -> List[pd.DataFrame]:
|
||||
"""
|
||||
Returns the list of DataFrames for the given group index.
|
||||
|
||||
:param group_idx: Index of the group.
|
||||
:return: List of DataFrames.
|
||||
"""
|
||||
return self.data.get([group_idx, []])
|
||||
|
||||
def get_column_names(self, group_idx: int, file_idx: int = 0) -> List[str]:
|
||||
"""
|
||||
Returns the column names for the given group and file indices.
|
||||
|
||||
:param group_idx: Index of the group.
|
||||
:param file_idx: Index of the file in the group.
|
||||
:return: List of column names.
|
||||
"""
|
||||
if group_idx in self.data and len(self.data[group_idx]) > file_idx:
|
||||
return self.data[group_idx][file_idx].columns.tolist()
|
||||
return []
|
||||
|
||||
def get_data_info(self):
|
||||
"""
|
||||
Print information about the loaded data structure.
|
||||
Adapted for when self.data is a List instead of a Dictionary.
|
||||
"""
|
||||
if isinstance(self.data, list):
|
||||
# For each sublist in self.data, get the type names of all elements
|
||||
pprint(
|
||||
[
|
||||
(
|
||||
[type(item).__name__ for item in sublist]
|
||||
if isinstance(sublist, list)
|
||||
else type(sublist).__name__
|
||||
)
|
||||
for sublist in self.data
|
||||
]
|
||||
)
|
||||
else:
|
||||
pprint(
|
||||
{
|
||||
key: [type(df).__name__ for df in value]
|
||||
for key, value in self.data.items()
|
||||
}
|
||||
if isinstance(self.data, dict)
|
||||
else type(self.data).__name__
|
||||
)
|
||||
|
||||
def _create_vector_column_index(self) -> VectorColumnIndices:
|
||||
vector_col_idx: VectorColumnIndices = []
|
||||
y = 0
|
||||
for data_group in self.data: # len(data_group[i]) = 5
|
||||
for j in data_group: # len(j[i]) =
|
||||
c: VectorColumnIndex = [] # column vector c_{j}
|
||||
x = 0
|
||||
for _ in range(6): # TODO: range(6) should be dynamic and parameterized
|
||||
c.append(x + y)
|
||||
x += 5
|
||||
vector_col_idx.append(c)
|
||||
y += 1
|
||||
return vector_col_idx
|
||||
|
||||
def create_vector_column(self, overwrite=True) -> List[List[List[pd.DataFrame]]]:
|
||||
"""
|
||||
Create a vector column from the loaded data.
|
||||
|
||||
:param overwrite: Overwrite the original data with vector column-based data.
|
||||
"""
|
||||
idx = self._create_vector_column_index()
|
||||
# if overwrite:
|
||||
for i in range(len(self.data)):
|
||||
for j in range(len(self.data[i])):
|
||||
# Get the appropriate indices for slicing from idx
|
||||
indices = idx[j]
|
||||
|
||||
# Get the current DataFrame
|
||||
df = self.data[i][j]
|
||||
|
||||
# Keep the 'Time' column and select only specified 'Real' columns
|
||||
# First, we add 1 to all indices to account for 'Time' being at position 0
|
||||
real_indices = [index + 1 for index in indices]
|
||||
|
||||
# Create list with Time column index (0) and the adjusted Real indices
|
||||
all_indices = [0] + real_indices
|
||||
|
||||
# Apply the slicing
|
||||
self.data[i][j] = df.iloc[:, all_indices]
|
||||
# TODO: if !overwrite:
|
||||
|
||||
def create_limited_sensor_vector_column(self, overwrite=True):
|
||||
"""
|
||||
Create a vector column from the loaded data.
|
||||
|
||||
:param overwrite: Overwrite the original data with vector column-based data.
|
||||
"""
|
||||
idx = self._create_vector_column_index()
|
||||
# if overwrite:
|
||||
for i in range(len(self.data)): # damage(s)
|
||||
for j in range(len(self.data[i])): # col(s)
|
||||
# Get the appropriate indices for slicing from idx
|
||||
indices = idx[j]
|
||||
|
||||
# Get the current DataFrame
|
||||
df = self.data[i][j]
|
||||
|
||||
# Keep the 'Time' column and select only specifid 'Real' colmns
|
||||
# First, we add 1 to all indices to acount for 'Time' being at positiion 0
|
||||
real_indices = [index + 1 for index in indices]
|
||||
|
||||
# Create list with Time column index (0) and the adjustedd Real indices
|
||||
all_indices = [0] + [real_indices[0]] + [real_indices[-1]]
|
||||
|
||||
# Apply the slicing
|
||||
self.data[i][j] = df.iloc[:, all_indices]
|
||||
# TODO: if !overwrite:
|
||||
|
||||
def export_to_csv(self, output_dir: str, file_prefix: str = "DAMAGE"):
|
||||
"""
|
||||
Export the processed data to CSV files in the required folder structure.
|
||||
|
||||
:param output_dir: Directory to save the CSV files.
|
||||
:param file_prefix: Prefix for the output filenames.
|
||||
"""
|
||||
for group_idx, group in enumerate(self.data, start=1):
|
||||
group_folder = os.path.join(output_dir, f"{file_prefix}_{group_idx}")
|
||||
os.makedirs(group_folder, exist_ok=True)
|
||||
for test_idx, df in enumerate(group, start=1):
|
||||
# Ensure columns are named uniquely if duplicated
|
||||
df = df.copy()
|
||||
df.columns = ["Time", "Real_0", "Real_1"] # Rename
|
||||
|
||||
# Export first Real column
|
||||
out1 = os.path.join(
|
||||
group_folder, f"{file_prefix}_{group_idx}_TEST{test_idx}_01.csv"
|
||||
)
|
||||
df[["Time", "Real_0"]].rename(columns={"Real_0": "Real"}).to_csv(
|
||||
out1, index=False
|
||||
)
|
||||
|
||||
# Export last Real column
|
||||
out2 = os.path.join(
|
||||
group_folder, f"{file_prefix}_{group_idx}_TEST{test_idx}_02.csv"
|
||||
)
|
||||
df[["Time", "Real_1"]].rename(columns={"Real_1": "Real"}).to_csv(
|
||||
out2, index=False
|
||||
)
|
||||
|
||||
|
||||
def create_damage_files(base_path, output_base, prefix):
|
||||
# Initialize colorama
|
||||
init(autoreset=True)
|
||||
|
||||
# Generate column labels based on expected duplication in input files
|
||||
columns = ['Real'] + [f'Real.{i}' for i in range(1, 30)] # Explicitly setting column names
|
||||
columns = ["Real"] + [
|
||||
f"Real.{i}" for i in range(1, 30)
|
||||
] # Explicitly setting column names
|
||||
|
||||
sensor_end_map = {1: 'Real.25', 2: 'Real.26', 3: 'Real.27', 4: 'Real.28', 5: 'Real.29'}
|
||||
sensor_end_map = {
|
||||
1: "Real.25",
|
||||
2: "Real.26",
|
||||
3: "Real.27",
|
||||
4: "Real.28",
|
||||
5: "Real.29",
|
||||
}
|
||||
|
||||
# Define the damage scenarios and the corresponding original file indices
|
||||
damage_scenarios = {
|
||||
@@ -19,7 +301,7 @@ def create_damage_files(base_path, output_base, prefix):
|
||||
3: range(11, 16), # Damage 3 files from zzzAD11.csv to zzzAD15.csvs
|
||||
4: range(16, 21), # Damage 4 files from zzzAD16.csv to zzzAD20.csv
|
||||
5: range(21, 26), # Damage 5 files from zzzAD21.csv to zzzAD25.csv
|
||||
6: range(26, 31) # Damage 6 files from zzzAD26.csv to zzzAD30.csv
|
||||
6: range(26, 31), # Damage 6 files from zzzAD26.csv to zzzAD30.csv
|
||||
}
|
||||
damage_pad = len(str(len(damage_scenarios)))
|
||||
test_pad = len(str(30))
|
||||
@@ -27,27 +309,36 @@ def create_damage_files(base_path, output_base, prefix):
|
||||
for damage, files in damage_scenarios.items():
|
||||
for i, file_index in enumerate(files, start=1):
|
||||
# Load original data file
|
||||
file_path = os.path.join(base_path, f'zzz{prefix}D{file_index}.TXT')
|
||||
df = pd.read_csv(file_path, sep='\t', skiprows=10) # Read with explicit column names
|
||||
file_path = os.path.join(base_path, f"zzz{prefix}D{file_index}.TXT")
|
||||
df = pd.read_csv(
|
||||
file_path, sep="\t", skiprows=10
|
||||
) # Read with explicit column names
|
||||
|
||||
top_sensor = columns[i - 1]
|
||||
print(top_sensor, type(top_sensor))
|
||||
output_file_1 = os.path.join(output_base, f'DAMAGE_{damage}', f'DAMAGE{damage}_TEST{i}_01.csv')
|
||||
output_file_1 = os.path.join(
|
||||
output_base, f"DAMAGE_{damage}", f"DAMAGE{damage}_TEST{i}_01.csv"
|
||||
)
|
||||
print(f"Creating {output_file_1} from taking zzz{prefix}D{file_index}.TXT")
|
||||
print("Taking datetime column on index 0...")
|
||||
print(f"Taking `{top_sensor}`...")
|
||||
df[['Time', top_sensor]].to_csv(output_file_1, index=False)
|
||||
os.makedirs(os.path.dirname(output_file_1), exist_ok=True)
|
||||
df[["Time", top_sensor]].to_csv(output_file_1, index=False)
|
||||
print(Fore.GREEN + "Done")
|
||||
|
||||
bottom_sensor = sensor_end_map[i]
|
||||
output_file_2 = os.path.join(output_base, f'DAMAGE_{damage}', f'DAMAGE{damage}_TEST{i}_02.csv')
|
||||
output_file_2 = os.path.join(
|
||||
output_base, f"DAMAGE_{damage}", f"DAMAGE{damage}_TEST{i}_02.csv"
|
||||
)
|
||||
print(f"Creating {output_file_2} from taking zzz{prefix}D{file_index}.TXT")
|
||||
print("Taking datetime column on index 0...")
|
||||
print(f"Taking `{bottom_sensor}`...")
|
||||
df[['Time', bottom_sensor]].to_csv(output_file_2, index=False)
|
||||
os.makedirs(os.path.dirname(output_file_2), exist_ok=True)
|
||||
df[["Time", bottom_sensor]].to_csv(output_file_2, index=False)
|
||||
print(Fore.GREEN + "Done")
|
||||
print("---")
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: python convert.py <path_to_csv_files>")
|
||||
@@ -58,11 +349,12 @@ def main():
|
||||
prefix = sys.argv[3] # Define output directory
|
||||
|
||||
# Create output folders if they don't exist
|
||||
for i in range(1, 5):
|
||||
os.makedirs(os.path.join(output_base, f'DAMAGE_{i}'), exist_ok=True)
|
||||
# for i in range(1, 7):
|
||||
# os.makedirs(os.path.join(output_base, f'DAMAGE_{i}'), exist_ok=True)
|
||||
|
||||
create_damage_files(base_path, output_base, prefix)
|
||||
print(Fore.YELLOW + Style.BRIGHT + "All files have been created successfully.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
25
data/QUGS/test.py
Normal file
25
data/QUGS/test.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from convert import *
|
||||
from joblib import dump, load
|
||||
|
||||
# a = generate_damage_files_index(
|
||||
# num_damage=6, file_index_start=1, col=5, base_path="D:/thesis/data/dataset_A"
|
||||
# )
|
||||
|
||||
b = generate_damage_files_index(
|
||||
num_damage=6,
|
||||
file_index_start=1,
|
||||
col=5,
|
||||
base_path="D:/thesis/data/dataset_B",
|
||||
prefix="zzzBD",
|
||||
)
|
||||
# data_A = DataProcessor(file_index=a)
|
||||
# # data.create_vector_column(overwrite=True)
|
||||
# data_A.create_limited_sensor_vector_column(overwrite=True)
|
||||
# data_A.export_to_csv("D:/thesis/data/converted/raw")
|
||||
|
||||
data_B = DataProcessor(file_index=b)
|
||||
# data.create_vector_column(overwrite=True)
|
||||
data_B.create_limited_sensor_vector_column(overwrite=True)
|
||||
data_B.export_to_csv("D:/thesis/data/converted/raw_B")
|
||||
# a = load("D:/cache.joblib")
|
||||
# breakpoint()
|
||||
66
docs/CONTRIBUTING.md
Normal file
66
docs/CONTRIBUTING.md
Normal file
@@ -0,0 +1,66 @@
|
||||
This document outlines the process for developing and contributing to my own thesis project. By following these guidelines, this will ensure consistent quality and maintain a clear development history.
|
||||
|
||||
## Development Workflow
|
||||
|
||||
### 1. Issue Creation
|
||||
Before working on any new feature, experiment, or bug fix:
|
||||
- Create a GitHub issue using the appropriate template
|
||||
- Assign it to myself
|
||||
- Add relevant labels
|
||||
- Link it to the project board if applicable
|
||||
|
||||
### 2. Branching Strategy
|
||||
Use the following branch naming convention:
|
||||
- `feature/<issue-number>-short-description`
|
||||
- `bugfix/<issue-number>-short-description`
|
||||
- `experiment/<issue-number>-short-description`
|
||||
- `doc/<issue-number>-short-description`
|
||||
|
||||
Always branch from `main` for new features/experiments.
|
||||
|
||||
### 3. Development Process
|
||||
- Make regular, atomic commits following the commit message template
|
||||
- Include the issue number in commit messages (e.g., "#42")
|
||||
- Push changes at the end of each work session
|
||||
|
||||
### 4. Code Quality
|
||||
- Follow PEP 8 guidelines for Python code
|
||||
- Document functions with docstrings
|
||||
- Maintain test coverage for custom functions
|
||||
- Keep notebooks clean and well-documented
|
||||
|
||||
### 5. Pull Requests
|
||||
Even working alone, use PRs for significant changes:
|
||||
- Create a PR from your feature branch to `main`
|
||||
- Reference the issue(s) it resolves
|
||||
- Include a summary of changes
|
||||
- Self-review the PR before merging
|
||||
|
||||
### 6. Versioning
|
||||
Follow semantic versioning:
|
||||
- Major version: Significant thesis milestones or structural changes
|
||||
- Minor version: New experiments, features, or chapters
|
||||
- Patch version: Bug fixes and minor improvements
|
||||
|
||||
### 7. Documentation
|
||||
Update documentation with each significant change:
|
||||
- Keep README current
|
||||
- Update function documentation
|
||||
- Maintain clear experiment descriptions in notebooks
|
||||
- Record significant decisions and findings
|
||||
|
||||
## LaTeX Guidelines
|
||||
- Use consistent citation style
|
||||
- Break long sections into multiple files
|
||||
- Use meaningful label names for cross-references
|
||||
- Consider using version-control friendly LaTeX practices (one sentence per line)
|
||||
|
||||
## Experiment Tracking
|
||||
For each experiment:
|
||||
- Create an issue documenting the experiment design
|
||||
- Reference related papers and previous experiments
|
||||
- Document parameters and results in the notebook
|
||||
- Summarize findings in the issue before closing
|
||||
|
||||
## Commit Categories
|
||||
Use the categories defined in the commit template to clearly classify changes.
|
||||
41
latex/appendix/important/abdeljaber2017.tex
Normal file
41
latex/appendix/important/abdeljaber2017.tex
Normal file
@@ -0,0 +1,41 @@
|
||||
2 %Nomor
|
||||
|
||||
%for mult rows
|
||||
|
||||
& %Judul Jurnal
|
||||
Real-time vibration-based structural damage detection using one-dimensional convolutional neural networks \href{https://doi.org/10.1016/j.jsv.2016.10.043}{10.1016/j.jsv.
|
||||
2016.10.043}
|
||||
|
||||
%for mult rows
|
||||
|
||||
% & %Author
|
||||
% % Satish B Satpal; Yogesh Khandare; Anirban Guha; Sauvik Banerjee
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% International Journal of Advanced Structural Engineering (IJASE)
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% \href{http://dx.doi.org/10.1186/2008-6695-5-2}{ResearchGate}
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2020
|
||||
|
||||
% %for mult rows
|
||||
|
||||
& %Tujuan penelitian
|
||||
Mengidentifikasi lokasi kerusakan struktur secara \textit{real-time} dengan memproses sinyal getaran mentah yang diambil dari jaringan-jaringan akselerometer pada setiap titik tanpa proses tambahan atau ekstraksi fitur.
|
||||
|
||||
& %Kesimpulan
|
||||
% Studi ini menilai kemampuan mesin vektor pendukung untuk memprediksi intensitas kerusakan dan lokasi pada balok kantilever. Meskipun berhasil memprediksi kerusakan dengan sedikit kesalahan, tingkat kebisingan dan lokasi kerusakan memengaruhi keakuratan. Tingkat kebisingan yang tinggi mempengaruhi kinerja secara signifikan, terutama pada intensitas kerusakan yang lebih rendah.
|
||||
& % Gap Research
|
||||
\begin{enumerate}
|
||||
\item Riset ini hanya dilakukan dengan \textit{full-grid array} akselerometer yang diletakkan pada setiap \textit{node} kerusakan, sehingga memerlukan banyak perangkat akselerometer.
|
||||
|
||||
\item Tidak ada komparasi performa efisiensi dan akurasi dengan algoritma pembelajaran mesin lain yang lebih populer sebelumnya.
|
||||
\end{enumerate}
|
||||
68
latex/appendix/important/van2020.tex
Normal file
68
latex/appendix/important/van2020.tex
Normal file
@@ -0,0 +1,68 @@
|
||||
1
|
||||
|
||||
%for mult rows
|
||||
|
||||
&
|
||||
Statistical Feature Extraction in Machine Fault Detection using Vibration Signal (\href{https://doi.org/10.1109/ICTC49870.2020.9289285}{10.1109/ICTC49870.
|
||||
2020.9289285})
|
||||
%for mult rows
|
||||
|
||||
% &
|
||||
% Donghui Xu; Xiang Xu; Michael C. Forde; Antonio Caballero
|
||||
|
||||
%for mult rows
|
||||
|
||||
% &
|
||||
% Construction and Building Materials
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% &
|
||||
% \href{https://doi.org/10.1016/j.conbuildmat.2023.132596}{ScienceDirect}
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% &
|
||||
% 2023
|
||||
|
||||
% %for mult rows
|
||||
|
||||
&
|
||||
\begin{enumerate}[series=enum]
|
||||
\item Menginvestigasi cara mengklasifikasi kondisi \textit{gearbox} normal dan rusak menggunakan sinyal getaran berbasis pada kombinasi antara analisis statistik dan FFT dengan algoritma pembelajaran mesin (ANN, Logistic Regression, dan SVM)
|
||||
|
||||
\item Mengurangi waktu latih dan kompleksitas kalkulasi dengan analisis statistik sebagai input data meliputi sembilan fitur: mean, median, min, max, kurtosis, \textit{skewness}, \textit{standard deviation}, and \textit{range}.
|
||||
\end{enumerate}
|
||||
|
||||
&
|
||||
\begin{enumerate}[series=enum2]
|
||||
\item Nilai \textit{maximum} dan kurtosis adalah fitur yang paling signifikan untuk mengklasifikasi kelas label pembelajaran mesin.
|
||||
|
||||
\item ANN meraih akurasi 100\% pada input FFT penuh dan analisis statistik, sedangkan Regresi Logistik (LR) dan SVM meraih akurasi 100\% dengan input FFT penuh namun hanya mendapat akurasi 91\% dengan input analisis statistik
|
||||
\end{enumerate}
|
||||
|
||||
&
|
||||
\begin{enumerate}
|
||||
\item Lorem
|
||||
\item Ipsum
|
||||
\end{enumerate}
|
||||
|
||||
%-------------page break----------------
|
||||
% \\
|
||||
% &
|
||||
% &
|
||||
% &
|
||||
% &
|
||||
% &
|
||||
% &
|
||||
% &
|
||||
% \begin{enumerate}[resume=enum]
|
||||
% \item Menyajikan berbagai perkembangan penelitian, mendiskusikan dan membandingkannya kelebihan dan kekurangannya
|
||||
% \item Meringkas kesesuaian berbagai metode pembelajaran mesin untuk masalah SHM yang berbeda
|
||||
% \item Terakhir, tren masa depan
|
||||
% \end{enumerate}
|
||||
% &
|
||||
% \begin{enumerate}[resume=enum2]
|
||||
% \item SVM dan hutan acak kurang mendapat perhatian dibandingkan dengan jaringan saraf. Ini digunakan untuk klasifikasi kerusakan. Namun, pemrosesan awal data jauh lebih rumit.
|
||||
|
||||
% \end{enumerate}
|
||||
509
latex/appendix/summary_related_paper.tex
Normal file
509
latex/appendix/summary_related_paper.tex
Normal file
@@ -0,0 +1,509 @@
|
||||
\documentclass[12pt,a4paper]{report}
|
||||
\usepackage{hyperref}
|
||||
\usepackage[top=1cm,right=3cm,bottom=1cm,left=3cm]{geometry}
|
||||
\usepackage{multirow}
|
||||
\usepackage{array}
|
||||
% \usepackage{makecell}
|
||||
\usepackage{pdflscape}
|
||||
\usepackage{longtable,booktabs}
|
||||
\usepackage{colortbl,xcolor}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{pdfpages}
|
||||
\usepackage{caption}
|
||||
\usepackage[bahasa]{babel}
|
||||
\usepackage{xpatch,csquotes}
|
||||
\usepackage[backend=biber]{biblatex}
|
||||
\addbibresource{export.bib}
|
||||
\DeclareSourcemap{
|
||||
\maps[datatype = bibtex]{
|
||||
\map{
|
||||
\step[fieldsource = abstract,
|
||||
match = \regexp{([^\\])\%},
|
||||
replace = \regexp{\$1\\\%}]
|
||||
}
|
||||
}
|
||||
}
|
||||
% \usepackage{tablefootnote}
|
||||
% \usepackage{showframe}
|
||||
\definecolor{Gray}{gray}{0.95}
|
||||
\newcolumntype{a}{>{\columncolor{Gray}}p}
|
||||
\renewcommand{\thefootnote}{\textit{\alph{footnote}}}
|
||||
% \newcolumntype{b}{>{\raggedright\arraybackslash}p}
|
||||
|
||||
\title{Tugas 2 \\ Metode Penelitian}
|
||||
\author{Rifqi Damar Panuluh \\ 20210110224}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\begin{landscape}
|
||||
% Table generated by Excel2LaTeX from sheet 'Sheet1'
|
||||
% \begin{table}[h]
|
||||
\centering
|
||||
\begin{longtable}{
|
||||
>{\raggedleft\arraybackslash}p{0.02\linewidth} %1
|
||||
>{\raggedright\arraybackslash}a{0.1\linewidth} %2
|
||||
% >{\raggedright\arraybackslash}p{0.1\linewidth} %3
|
||||
% >{\raggedright\arraybackslash}a{0.075\linewidth} %4
|
||||
% p{0.065\linewidth} %5
|
||||
% >{\raggedleft\arraybackslash}p{0.05\linewidth} %6
|
||||
>{\raggedright\arraybackslash}p{0.25\linewidth} %7
|
||||
>{\raggedright\arraybackslash}a{0.25\linewidth} %8
|
||||
>{\raggedright\arraybackslash}p{0.25\linewidth} %9
|
||||
}
|
||||
|
||||
\caption{Tinjauan pustaka, topik: pemanfaatan data getaran untuk monitor kesehatan struktur jembatan}
|
||||
\label{tab:my_label}
|
||||
\\
|
||||
\toprule
|
||||
\toprule
|
||||
\rowcolor{white}
|
||||
No. %1
|
||||
&
|
||||
Judul %2
|
||||
% &
|
||||
% Nama Penulis %3
|
||||
% &
|
||||
% Nama Jurnal %4
|
||||
% &
|
||||
% Sumber %5
|
||||
% &
|
||||
% Tahun %6
|
||||
&
|
||||
Tujuan Penelitian %7
|
||||
&
|
||||
Kesimpulan %8
|
||||
&
|
||||
Gap Research %9
|
||||
|
||||
\\\midrule
|
||||
\endfirsthead
|
||||
\toprule
|
||||
\rowcolor{white}
|
||||
No. %1
|
||||
&
|
||||
Judul %2
|
||||
% &
|
||||
% Nama Penulis %3
|
||||
% &
|
||||
% Nama Jurnal %4
|
||||
% &
|
||||
% Sumber %5
|
||||
% &
|
||||
% Tahun %6
|
||||
&
|
||||
Tujuan Penelitian %7
|
||||
&
|
||||
Kesimpulan %8
|
||||
|
||||
\\\midrule
|
||||
\endhead
|
||||
\midrule
|
||||
\multicolumn{4}{r}{\textit{berlanjut di halaman berikutnya}}
|
||||
\endfoot
|
||||
\bottomrule
|
||||
\bottomrule
|
||||
\endlastfoot
|
||||
|
||||
%-----1
|
||||
\input{important/van2020}
|
||||
\\
|
||||
%-----2
|
||||
\input{important/abdeljaber2017}
|
||||
\\
|
||||
%------3
|
||||
\\
|
||||
3
|
||||
|
||||
& %Judul Jurnal
|
||||
Real-time nondestructive structural health monitoring using support vector machines and wavelets (Ahmet Bulut; Ambuj K. Singh; Peter Shin; Tony Fountain; Hector Jasso; Linjun Yan; Ahmed Elgamal)
|
||||
|
||||
%for mult rows
|
||||
|
||||
% & %Author
|
||||
% Ahmet Bulut; Ambuj K. Singh; Peter Shin; Tony Fountain; Hector Jasso; Linjun Yan; Ahmed Elgamal
|
||||
|
||||
%for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Case Studies in Construction Materials 13 (2020) e00406
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% SPIE
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2005
|
||||
|
||||
%for mult rows
|
||||
|
||||
& %Tujuan penelitian
|
||||
Eksplorasi efektivitas SVM dalam deteksi kerusakan; Validasi model SVM dengan data nyata jembatan
|
||||
|
||||
& %Kesimpulan
|
||||
\begin{enumerate} [series=enum]
|
||||
\item SVM menunjukkan akurasi tinggi dalam mengidentifikasi lokasi kerusakan
|
||||
\item Rekomendasi untuk penyetelan parameter SVM
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
|
||||
|
||||
%-----------4
|
||||
\\
|
||||
4
|
||||
|
||||
& %Judul Jurnal
|
||||
A novel approach of Structural Health Monitoring by the application of FFT and wavelet transform using an index of frequency dispersion (Fragkiskos P. Pentaris; John Stonham; John P. Makris)
|
||||
|
||||
%for mult rows
|
||||
|
||||
% & %Author
|
||||
% Fragkiskos P. Pentaris; John Stonham; John P. Makris
|
||||
|
||||
%for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% International Journal of Geology
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% Research Gate
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2013
|
||||
|
||||
%for mult rows
|
||||
|
||||
& %Tujuan penelitian
|
||||
\begin{enumerate}
|
||||
\item Memeriksa peran FFT dalam pemrosesan awal data getaran
|
||||
\item Menilai dampak FFT terhadap keakuratan deteksi kerusakan
|
||||
\end{enumerate}
|
||||
|
||||
& %Kesimpulan
|
||||
\begin{enumerate} [series=enum]
|
||||
\item FFT meningkatkan rasio \textit{signal-to-noise} dan meningkatkan deteksi kerusakan.
|
||||
\item Menyarankan integrasi dengan algoritme lain untuk meningkatkan akurasi.
|
||||
\end{enumerate}
|
||||
|
||||
\\ %-------------page break----------------
|
||||
|
||||
|
||||
|
||||
|
||||
%-----------4
|
||||
\\
|
||||
5
|
||||
|
||||
& %Judul Jurnal
|
||||
Review of Vibration-Based Structural Health Monitoring Using Deep Learning (Gyungmin Toh; Junhong Park)
|
||||
|
||||
%for mult rows
|
||||
|
||||
% & %Author
|
||||
% Gyungmin Toh;
|
||||
% Junhong Park
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Apllied Sciences
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% MDPI
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2020
|
||||
|
||||
%for mult rows
|
||||
|
||||
& %Tujuan penelitian
|
||||
\begin{enumerate}
|
||||
\item ringkasan studi penerapan algoritma pembelajaran mesin untuk kesalahan pemantauan (\textit{monitoring}) menggunakan faktor getaran untuk mengkategorikan penelitian.
|
||||
\item Menyediakan interpretasi singkat tentang jaringan saraf dalam untuk pengaplikasian lebih lanjut dalam analisis getaran struktural.
|
||||
\end{enumerate}
|
||||
|
||||
& %Kesimpulan
|
||||
\begin{enumerate} [series=enum]
|
||||
\item Deep learning has the advantage of being able to perform health monitoring on complex structures with high accuracy.
|
||||
\end{enumerate}
|
||||
%-------------page break----------------
|
||||
|
||||
|
||||
|
||||
|
||||
%-----------4
|
||||
\\
|
||||
6
|
||||
|
||||
& %Judul Jurnal
|
||||
A deep learning approach to condition monitoring of cantilever beams via time-frequency extended signatures (Habil. Darian M. Onchis)
|
||||
|
||||
%for mult rows
|
||||
|
||||
% & %Author
|
||||
% Habil. Darian M. Onchis
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Computers in Industry
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% Science Direct
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2019
|
||||
|
||||
%for mult rows
|
||||
|
||||
& %Tujuan penelitian
|
||||
\begin{enumerate}
|
||||
\item ringkasan studi penerapan algoritma pembelajaran mesin untuk kesalahan pemantauan (\textit{monitoring}) menggunakan faktor getaran untuk mengkategorikan penelitian.
|
||||
\item Menyediakan interpretasi singkat tentang jaringan saraf dalam untuk pengaplikasian lebih lanjut dalam analisis getaran struktural.
|
||||
\end{enumerate}
|
||||
|
||||
& %Kesimpulan
|
||||
\begin{enumerate} [series=enum]
|
||||
\item Deep learning has the advantage of being able to perform health monitoring on complex structures with high accuracy.
|
||||
\end{enumerate}
|
||||
|
||||
\\ %-------------page break----------------
|
||||
|
||||
|
||||
% %------------5
|
||||
% 5
|
||||
|
||||
% & %Judul Jurnal
|
||||
% Advances and development trends in eco-friendly pavements
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Author
|
||||
% Aimin Sha, Zhuangzhuang Liu, Wei Jiang, Lin Qi, Liqun Hu, Wenxiu Jiao ,Diego Maria Barbieri
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Journal of Road Engineering 1 (2021)
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% ScienceDirect
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2021
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tujuan penelitian
|
||||
% Mengembangkan solusi teknis untuk mengatasi tantangan yang terkait dengan penciptaan infrastruktur hijau dan berkelanjutan, misalnya, pengurangan dampak lingkungan, peningkatan keselamatan lalu lintas, dan efisiensi transportasi, dll.\cite{Sha2021}
|
||||
% &
|
||||
% \begin{enumerate} [series=enum]
|
||||
% \item Temuan penelitian terbaru terkait jalan ramah lingkungan
|
||||
% trotoar diringkas dan dibahas sesuai dengan enam kunci yang berbeda
|
||||
% karakteristik: permeabel, pengurangan kebisingan, luminescence diri, knalpot
|
||||
% dekomposisi, penyerapan panas rendah serta \textit{anti-icing} / \textit{de-icing}.\cite{Sha2021}
|
||||
% \end{enumerate}
|
||||
% \\
|
||||
% & %Judul Jurnal
|
||||
% Advances and development trends in eco-friendly pavements
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Author
|
||||
% Aimin Sha, Zhuangzhuang Liu, Wei Jiang, Lin Qi, Liqun Hu, Wenxiu Jiao ,Diego Maria Barbieri
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Journal of Road Engineering 1 (2021)
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% ScienceDirect
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2021
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tujuan penelitian
|
||||
% Mengembangkan solusi teknis untuk mengatasi tantangan yang terkait dengan penciptaan infrastruktur hijau dan berkelanjutan, misalnya, pengurangan dampak lingkungan, peningkatan keselamatan lalu lintas, dan efisiensi transportasi, dll.\cite{Sha2021}
|
||||
% &
|
||||
% \begin{enumerate}[resume=enum]
|
||||
% \item Teknologi ini dapat memecahkan beberapa tantangan utama yang terkait dengan konstruksi jalan dan lalu lintas (misalnya, kebisingan, efek pulau panas, dan pembangkitan polusi). Sebagian besar solusi saat ini hanya tersedia menampilkan satu fungsi ramah lingkungan pada satu waktu.\cite{Sha2021}
|
||||
% \end{enumerate}
|
||||
|
||||
% %-----------5
|
||||
% \\
|
||||
% 5
|
||||
|
||||
% & %Judul Jurnal
|
||||
% Micromobility injury events: Motor vehicle crashes and other transportation systems factors
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Author
|
||||
% Kevin Fang
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Transportation Research Interdisciplinary Perspectives 14 (2022) 100574
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% ScienceDirect
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2022
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tujuan penelitian
|
||||
% Menginformasikan transportasi strategi kebijakan untuk mencoba dan meningkatkan kinerja keselamatan, Dengan cara mengeksplorasi keadaan di mana cedera pengendara mikromobilitas mengalami cederanya, dengan fokus pada faktor-faktor yang berkaitan dengan sistem transportasi.\cite{Fang2022}
|
||||
% &
|
||||
% \begin{enumerate} [series=enum]
|
||||
% \item Kecelakaan kendaraan bermotor secara mengejutkan menjulang sebagai sesuatu yang kemungkinan adalah faktor umum dalam cedera mikromobilitas. Masalah perkerasan, konflik
|
||||
% dengan pengguna non-otomatis, dan medan juga muncul sebagai faktor cedera yang terukur.\cite{Fang2022}
|
||||
% \end{enumerate}
|
||||
% \\
|
||||
% & %Judul Jurnal
|
||||
% Micromobility injury events: Motor vehicle crashes and other transportation systems factors
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Author
|
||||
% Kevin Fang
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Transportation Research Interdisciplinary Perspectives 14 (2022) 100574
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% ScienceDirect
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2022
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tujuan penelitian
|
||||
% Menginformasikan transportasi strategi kebijakan untuk mencoba dan meningkatkan kinerja keselamatan, Dengan cara mengeksplorasi keadaan di mana cedera pengendara mikromobilitas mengalami cederanya, dengan fokus pada faktor-faktor yang berkaitan dengan sistem transportasi.\cite{Fang2022}
|
||||
% &
|
||||
% \begin{enumerate} [resume=enum]
|
||||
% \item Di antara faktor-faktor yang berhubungan dengan transportasi, analisis regresi
|
||||
% menunjukkan bahwa terluka dalam kecelakaan kendaraan bermotor atau di medan berbukit
|
||||
% sesuai dengan kemungkinan yang lebih besar dari rawat inap dan cedera kepala.\cite{Fang2022}
|
||||
% \end{enumerate}
|
||||
% \\
|
||||
% & %Judul Jurnal
|
||||
% Micromobility injury events: Motor vehicle crashes and other transportation systems factors
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Author
|
||||
% Kevin Fang
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Nama Jurnal
|
||||
% Transportation Research Interdisciplinary Perspectives 14 (2022) 100574
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Sumber
|
||||
% ScienceDirect
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tahun
|
||||
% 2022
|
||||
|
||||
% %for mult rows
|
||||
|
||||
% & %Tujuan penelitian
|
||||
% Menginformasikan transportasi strategi kebijakan untuk mencoba dan meningkatkan kinerja keselamatan, Dengan cara mengeksplorasi keadaan di mana cedera pengendara mikromobilitas mengalami cederanya, dengan fokus pada faktor-faktor yang berkaitan dengan sistem transportasi.\cite{Fang2022}
|
||||
% &
|
||||
% \begin{enumerate} [resume=enum]
|
||||
% \item Mitigasi yang berhasil yang memaksimalkan kinerja mode keselamatan mikromobilitas dapat membantu menarik dan mempertahankan pengguna dan menjaga kepercayaan dari pembuat kebijakan yang peduli keselamatan.\cite{Fang2022}
|
||||
% \end{enumerate}
|
||||
% \end{tabular}
|
||||
\end{longtable}
|
||||
% \end{table}
|
||||
\end{landscape}
|
||||
\clearpage
|
||||
\pagenumbering{roman}
|
||||
\setcounter{page}{2}
|
||||
\thispagestyle{empty}
|
||||
\printbibliography
|
||||
|
||||
\clearpage
|
||||
\begin{titlepage}
|
||||
\
|
||||
\vfill
|
||||
\centering\noindent \Huge{LAMPIRAN}
|
||||
\vfill
|
||||
\
|
||||
\end{titlepage}
|
||||
|
||||
|
||||
% \clearpage
|
||||
% \thispagestyle{empty}
|
||||
% \centering
|
||||
% \frame{\includegraphics[page=1,scale=.7]{assets/1-s2.0-S2095756420300295-main.pdf}}
|
||||
% \captionof{figure}{Halaman pertama jurnal pertama}
|
||||
|
||||
% \clearpage
|
||||
% \thispagestyle{empty}
|
||||
% \centering
|
||||
% \frame{\includegraphics[page=1,scale=.7]{assets/1-s2.0-S2214509520300024-main.pdf}}
|
||||
% \captionof{figure}{Halaman pertama jurnal kedua}
|
||||
|
||||
% \clearpage
|
||||
% \thispagestyle{empty}
|
||||
% \centering
|
||||
% \frame{\includegraphics[page=1,scale=.7]{assets/1-s2.0-S2214509520300784-main.pdf}}
|
||||
% \captionof{figure}{Halaman pertama jurnal ketiga}
|
||||
|
||||
% \clearpage
|
||||
% \thispagestyle{empty}
|
||||
% \centering
|
||||
% \frame{\includegraphics[page=1,scale=.7]{assets/1-s2.0-S2097049821000044-main.pdf}}
|
||||
% \captionof{figure}{Halaman pertama jurnal keempat}
|
||||
|
||||
% \clearpage
|
||||
% \thispagestyle{empty}
|
||||
% \centering
|
||||
% \frame{\includegraphics[page=1,scale=.7]{assets/1-s2.0-S2590198222000379-main.pdf}}
|
||||
% \captionof{figure}{Halaman pertama jurnal kelima}
|
||||
\end{document}
|
||||
@@ -0,0 +1,965 @@
|
||||
@article{abdeljaber2017,
|
||||
title = {Real-Time Vibration-Based Structural Damage Detection Using One-Dimensional Convolutional Neural Networks},
|
||||
author = {Abdeljaber, Osama and Avci, Onur and Kiranyaz, Serkan and Gabbouj, Moncef and Inman, Daniel J.},
|
||||
date = {2017-02},
|
||||
journaltitle = {Journal of Sound and Vibration},
|
||||
shortjournal = {Journal of Sound and Vibration},
|
||||
volume = {388},
|
||||
pages = {154--170},
|
||||
issn = {0022460X},
|
||||
doi = {10.1016/j.jsv.2016.10.043},
|
||||
url = {https://linkinghub.elsevier.com/retrieve/pii/S0022460X16306204},
|
||||
urldate = {2024-06-19},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\5WG6DL7B\Abdeljaber et al. - 2017 - Real-time vibration-based structural damage detect.pdf}
|
||||
}
|
||||
|
||||
@article{zhao2019,
|
||||
title = {Bolt Loosening Angle Detection Technology Using Deep Learning},
|
||||
author = {Zhao, Xuefeng and Zhang, Yang and Wang, Niannian},
|
||||
date = {2019-01},
|
||||
journaltitle = {Structural Control and Health Monitoring},
|
||||
shortjournal = {Struct Control Health Monit},
|
||||
volume = {26},
|
||||
number = {1},
|
||||
pages = {e2292},
|
||||
issn = {15452255},
|
||||
doi = {10.1002/stc.2292},
|
||||
url = {https://onlinelibrary.wiley.com/doi/10.1002/stc.2292},
|
||||
urldate = {2025-05-16},
|
||||
langid = {english}
|
||||
}
|
||||
|
||||
@article{abdelwahab1999,
|
||||
title = {{{PARAMETERIZATION OF DAMAGE IN REINFORCED CONCRETE STRUCTURES USING MODEL UPDATING}}},
|
||||
author = {Abdel Wahab, M.M. and De Roeck, G. and Peeters, B.},
|
||||
date = {1999-12},
|
||||
journaltitle = {Journal of Sound and Vibration},
|
||||
shortjournal = {Journal of Sound and Vibration},
|
||||
volume = {228},
|
||||
number = {4},
|
||||
pages = {717--730},
|
||||
issn = {0022460X},
|
||||
doi = {10.1006/jsvi.1999.2448},
|
||||
url = {https://linkinghub.elsevier.com/retrieve/pii/S0022460X99924483},
|
||||
urldate = {2024-12-29},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\P7FDZX9J\abdelwahab1999.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{avci2021,
|
||||
title = {A Review of Vibration-Based Damage Detection in Civil Structures: {{From}} Traditional Methods to {{Machine Learning}} and {{Deep Learning}} Applications},
|
||||
shorttitle = {A Review of Vibration-Based Damage Detection in Civil Structures},
|
||||
author = {Avci, Onur and Abdeljaber, Osama and Kiranyaz, Serkan and Hussein, Mohammed and Gabbouj, Moncef and Inman, Daniel J.},
|
||||
date = {2021-01-15},
|
||||
journaltitle = {Mechanical Systems and Signal Processing},
|
||||
shortjournal = {Mechanical Systems and Signal Processing},
|
||||
volume = {147},
|
||||
pages = {107077},
|
||||
issn = {0888-3270},
|
||||
doi = {10.1016/j.ymssp.2020.107077},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0888327020304635},
|
||||
urldate = {2025-05-09},
|
||||
abstract = {Monitoring structural damage is extremely important for sustaining and preserving the service life of civil structures. While successful monitoring provides resolute and staunch information on the health, serviceability, integrity and safety of structures; maintaining continuous performance of a structure depends highly on monitoring the occurrence, formation and propagation of damage. Damage may accumulate on structures due to different environmental and human-induced factors. Numerous monitoring and detection approaches have been developed to provide practical means for early warning against structural damage or any type of anomaly. Considerable effort has been put into vibration-based methods, which utilize the vibration response of the monitored structure to assess its condition and identify structural damage. Meanwhile, with emerging computing power and sensing technology in the last decade, Machine Learning (ML) and especially Deep Learning (DL) algorithms have become more feasible and extensively used in vibration-based structural damage detection with elegant performance and often with rigorous accuracy. While there have been multiple review studies published on vibration-based structural damage detection, there has not been a study where the transition from traditional methods to ML and DL methods are described and discussed. This paper aims to fulfill this gap by presenting the highlights of the traditional methods and provide a comprehensive review of the most recent applications of ML and DL algorithms utilized for vibration-based structural damage detection in civil structures.},
|
||||
keywords = {Artificial Neural Networks,Civil infrastructure,Deep Learning,Infrastructure health,Machine Learning,Structural damage detection,Structural Health Monitoring,Vibration-based methods},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\59EASW6K\\Avci et al. - 2021 - A review of vibration-based damage detection in ci.pdf;C\:\\Users\\damar\\Zotero\\storage\\GQZUKPQN\\10.1016@j.ymssp.2020.107077.pdf.pdf}
|
||||
}
|
||||
|
||||
@inproceedings{bulut2005,
|
||||
title = {Real-Time Nondestructive Structural Health Monitoring Using Support Vector Machines and Wavelets},
|
||||
author = {Bulut, Ahmet and Singh, Ambuj K. and Shin, Peter and Fountain, Tony and Jasso, Hector and Yan, Linjun and Elgamal, Ahmed},
|
||||
editor = {Meyendorf, Norbert and Baaklini, George Y. and Michel, Bernd},
|
||||
date = {2005-05-09},
|
||||
pages = {180},
|
||||
location = {San Diego, CA},
|
||||
doi = {10.1117/12.597685},
|
||||
url = {http://proceedings.spiedigitallibrary.org/proceeding.aspx?doi=10.1117/12.597685},
|
||||
urldate = {2024-04-09},
|
||||
eventtitle = {Nondestructive {{Evaulation}} for {{Health Monitoring}} and {{Diagnostics}}},
|
||||
file = {C:\Users\damar\Zotero\storage\PUABA5V7\bulut2005.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{caselles2022,
|
||||
title = {Estimators for {{Structural Damage Detection Using Principal Component Analysis}}},
|
||||
author = {Caselles, Oriol and Martín, Alejo and Vargas-Alzate, Yeudy F. and Gonzalez-Drigo, Ramon and Clapés, Jaume},
|
||||
date = {2022-09},
|
||||
journaltitle = {Heritage},
|
||||
volume = {5},
|
||||
number = {3},
|
||||
pages = {1805--1818},
|
||||
publisher = {Multidisciplinary Digital Publishing Institute},
|
||||
issn = {2571-9408},
|
||||
doi = {10.3390/heritage5030093},
|
||||
url = {https://www.mdpi.com/2571-9408/5/3/93},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {Structural damage detection is an important issue in conservation. In this research, principal component analysis (PCA) has been applied to the temporal variation of modal frequencies obtained from a dynamic test of a scaled steel structure subjected to different damages and different temperatures. PCA has been applied in order to reduce, as much as possible, the number of variables involved in the problem of structural damage detection. The aim of the PCA study is to determine the minimum number of principal components necessary to explain all the modal frequency variation. Three estimators have been studied: T2 (the square of the vector norm of the projection in the principal component plan), Q (the square of the norm of the residual vector), and the variance explained. In the study, the results related to the undamaged structure needed one principal component to explain the modal frequency variation. However, the high damage configurations need five principal components to explain the modal frequency. The T2 and Q estimators have been arranged in order of increasing damage for all the performed experimental tests. The results indicate that these estimators could be useful to detect damage and to distinguish among a range of intensities of structural damage.},
|
||||
issue = {3},
|
||||
langid = {english},
|
||||
keywords = {ambient temperature,damage configuration,historical structure,monitoring,non-destructive inspection,PCA},
|
||||
file = {C:\Users\damar\Zotero\storage\IWTRCID3\Caselles et al. - 2022 - Estimators for Structural Damage Detection Using P.pdf}
|
||||
}
|
||||
|
||||
@article{chen2017,
|
||||
title = {Self-{{Loosening Failure Analysis}} of {{Bolt Joints}} under {{Vibration}} Considering the {{Tightening Process}}},
|
||||
author = {Chen, Yan and Gao, Qiang and Guan, Zhenqun},
|
||||
date = {2017},
|
||||
journaltitle = {Shock and Vibration},
|
||||
shortjournal = {Shock and Vibration},
|
||||
volume = {2017},
|
||||
pages = {1--15},
|
||||
issn = {1070-9622, 1875-9203},
|
||||
doi = {10.1155/2017/2038421},
|
||||
url = {https://www.hindawi.com/journals/sv/2017/2038421/},
|
||||
urldate = {2025-05-16},
|
||||
abstract = {By considering the tightening process, a three-dimensional elastic finite element analysis is conducted to explore the mechanism of bolt self-loosening under transverse cyclic loading. According to the geometrical features of the thread, a hexahedral meshing is implemented by modifying the node coordinates based on cylinder meshes and an ABAQUS plug-in is made for parametric modeling. The accuracy of the finite element model is verified and validated by comparison with the analytical and experimental results on torque-tension relationship. And, then, the fastening states acquired by different means are compared. The results show that the tightening process cannot be replaced by a simplified method because its fastening state is different from the real process. With combining the tightening and self-loosening processes, this paper utilizes the relative rotation angles and velocities to investigate the slip states on contact surfaces instead of the Coulomb friction coefficient method, which is used in most previous researches. By contrast, this method can describe the slip states in greater detail. In addition, the simulation result reveals that there exists a creep slip phenomenon at contact surface, which causes the bolt self-loosening to occur even when some contact facets are stuck.},
|
||||
langid = {english},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\CHXWJ6ZF\\chen2017.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\EGAVQZ32\\Chen et al. - 2017 - Self-Loosening Failure Analysis of Bolt Joints und.pdf}
|
||||
}
|
||||
|
||||
@article{cortes1995,
|
||||
title = {Support-Vector Networks},
|
||||
author = {Cortes, Corinna and Vapnik, Vladimir},
|
||||
date = {1995-09-01},
|
||||
journaltitle = {Machine Learning},
|
||||
shortjournal = {Mach Learn},
|
||||
volume = {20},
|
||||
number = {3},
|
||||
pages = {273--297},
|
||||
issn = {1573-0565},
|
||||
doi = {10.1007/BF00994018},
|
||||
url = {https://doi.org/10.1007/BF00994018},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {Thesupport-vector network is a new learning machine for two-group classification problems. The machine conceptually implements the following idea: input vectors are non-linearly mapped to a very high-dimension feature space. In this feature space a linear decision surface is constructed. Special properties of the decision surface ensures high generalization ability of the learning machine. The idea behind the support-vector network was previously implemented for the restricted case where the training data can be separated without errors. We here extend this result to non-separable training data.},
|
||||
langid = {english},
|
||||
keywords = {efficient learning algorithms,neural networks,pattern recognition,polynomial classifiers,radial basis function classifiers},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\5W2CFHWN\\Cortes and Vapnik - 1995 - Support-vector networks.pdf;C\:\\Users\\damar\\Zotero\\storage\\9BK8NS3K\\cortes1995.pdf.pdf}
|
||||
}
|
||||
|
||||
@online{duval2017,
|
||||
title = {Answer to "{{Can STFT}} ({{Short-time Fourier Transform}} ) Be More Useful than {{FFT}} for Analyzing Stationary Signals under Some Circumstances?"},
|
||||
shorttitle = {Answer to "{{Can STFT}} ({{Short-time Fourier Transform}} ) Be More Useful than {{FFT}} for Analyzing Stationary Signals under Some Circumstances?},
|
||||
author = {Duval, Laurent},
|
||||
date = {2017-10-04},
|
||||
url = {https://dsp.stackexchange.com/a/44145},
|
||||
urldate = {2025-04-26},
|
||||
organization = {Signal Processing Stack Exchange},
|
||||
file = {C:\Users\damar\Zotero\storage\VKABC5YA\can-stft-short-time-fourier-transform-be-more-useful-than-fft-for-analyzing-s.html}
|
||||
}
|
||||
|
||||
@article{eraliev2022,
|
||||
title = {Vibration-{{Based Loosening Detection}} of a {{Multi-Bolt Structure Using Machine Learning Algorithms}}},
|
||||
author = {Eraliev, Oybek and Lee, Kwang-Hee and Lee, Chul-Hee},
|
||||
date = {2022-01},
|
||||
journaltitle = {Sensors},
|
||||
volume = {22},
|
||||
number = {3},
|
||||
pages = {1210},
|
||||
publisher = {Multidisciplinary Digital Publishing Institute},
|
||||
issn = {1424-8220},
|
||||
doi = {10.3390/s22031210},
|
||||
url = {https://www.mdpi.com/1424-8220/22/3/1210},
|
||||
urldate = {2024-05-10},
|
||||
abstract = {Since artificial intelligence (AI) was introduced into engineering fields, it has made many breakthroughs. Machine learning (ML) algorithms have been very commonly used in structural health monitoring (SHM) systems in the last decade. In this study, a vibration-based early stage of bolt loosening detection and identification technique is proposed using ML algorithms, for a motor fastened with four bolts (M8 × 1.5) to a stationary support. First, several cases with fastened and loosened bolts were established, and the motor was operated in three different types of working condition (800 rpm, 1000 rpm, and 1200 rpm), in order to obtain enough vibration data. Second, for feature extraction of the dataset, the short-time Fourier transform (STFT) method was performed. Third, different types of classifier of ML were trained, and a new test dataset was applied to evaluate the performance of the classifiers. Finally, the classifier with the greatest accuracy was identified. The test results showed that the capability of the classifier was satisfactory for detecting bolt loosening and identifying which bolt or bolts started to lose their preload in each working condition. The identified classifier will be implemented for online monitoring of the early stage of bolt loosening of a multi-bolt structure in future works.},
|
||||
issue = {3},
|
||||
langid = {english},
|
||||
keywords = {bolt loosening,bolt-loosening identification,loosening detection,machine learning,signal processing,vibration},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\QZSXUW39\\sensors-22-01210-with-cover.pdf;C\:\\Users\\damar\\Zotero\\storage\\T7TG2XEK\\Eraliev et al. - 2022 - Vibration-Based Loosening Detection of a Multi-Bol.pdf}
|
||||
}
|
||||
|
||||
@inproceedings{ganga2022,
|
||||
title = {{{SVM Based Vibration Analysis}} for {{Effective Classification}} of {{Machine Conditions}}},
|
||||
booktitle = {International {{Congress}} and {{Workshop}} on {{Industrial AI}} 2021},
|
||||
author = {Ganga, D. and Ramachandran, V.},
|
||||
editor = {Karim, Ramin and Ahmadi, Alireza and Soleimanmeigouni, Iman and Kour, Ravdeep and Rao, Raj},
|
||||
date = {2022},
|
||||
pages = {415--423},
|
||||
publisher = {Springer International Publishing},
|
||||
location = {Cham},
|
||||
doi = {10.1007/978-3-030-93639-6_36},
|
||||
abstract = {In condition monitoring, alarms have been the significant references for assessment of critical conditions. Generation of false alarms or suppression of defectiveness have often occurred while maintenance of machines due to incorrect setting of alarms appropriate to machine conditions. The evolution of data analytics and related technologies for real-time data acquisition as per industrial 4.0 standards will resolve such deceptive problems perceived till date. This paper attempts to elucidate a framework for identification and classification of vibration thresholds as per machine conditions using Internet of Things (IoT) based data acquisition and vibration analytics using support vector machines. The classification algorithm for the detection of higher vibrating range of machines has been tested with different sets of vibration features extracted. Incorporation of IoT devices facilitate unbounded and flexible data acquisition for carrying out detailed analytics in cloud environment. The kernel based support vector machine classifies the features extracted from signal processing into higher and lower vibrating levels of machine and fixes the higher vibration levels as thresholds for condition monitoring. The proposed alarm fixation model automatically classifies the maximum vibrating ranges of machines under different operating conditions. This automated condition monitoring model illustrates the efficacy of cloud environment for execution of exhaustive machine learning algorithms for condition monitoring. The performance analysis of the proposed model on the extracted vibration features validates the competence of machine learning algorithms for precise fixation of vibration thresholds and classification of machine conditions for effective maintenance.},
|
||||
isbn = {978-3-030-93639-6},
|
||||
langid = {english}
|
||||
}
|
||||
|
||||
@incollection{garrett2020,
|
||||
title = {String {{Theory}}},
|
||||
booktitle = {Understanding {{Acoustics}}: {{An Experimentalist}}’s {{View}} of {{Sound}} and {{Vibration}}},
|
||||
author = {Garrett, Steven L.},
|
||||
editor = {Garrett, Steven L.},
|
||||
date = {2020},
|
||||
pages = {133--178},
|
||||
publisher = {Springer International Publishing},
|
||||
location = {Cham},
|
||||
doi = {10.1007/978-3-030-44787-8_3},
|
||||
url = {https://doi.org/10.1007/978-3-030-44787-8_3},
|
||||
urldate = {2025-05-09},
|
||||
abstract = {The vibrating string has been employed by nearly every human culture to create musical instruments. Although the musical application has attracted the attention of mathematical and scientific analysts since the time of Pythagoras (570~BC–495~BC), we will study the string primarily because its vibrations are easy to visualize and string vibrations introduce concepts and techniques that will recur throughout our study of the vibration and the acoustics of continua. In this chapter, we will develop continuous mathematical functions of position and time that describe the shape of the entire string. The amplitude of such functions will describe the transverse displacement from equilibrium, y(x,\,t), at all positions along the string. The importance of boundary conditions at the ends of strings will be emphasized, and techniques to accommodate both ideal and “imperfect” boundary conditions will be introduced. Solutions that result in all parts of the string oscillating at the same frequency which satisfy the boundary conditions are called normal modes, and the calculation of those normal mode frequencies will be a focus of this chapter.},
|
||||
isbn = {978-3-030-44787-8},
|
||||
langid = {english},
|
||||
keywords = {Harmonic series,Normal modes,Radiation impedance,Standing waves,Transcendental equations,Traveling waves},
|
||||
file = {C:\Users\damar\Zotero\storage\PKXH58D2\Garrett - 2020 - String Theory.pdf}
|
||||
}
|
||||
|
||||
@incollection{giurgiutiu2020,
|
||||
title = {17 - {{Structural}} Health Monitoring ({{SHM}}) of Aerospace Composites},
|
||||
booktitle = {Polymer {{Composites}} in the {{Aerospace Industry}} ({{Second Edition}})},
|
||||
author = {Giurgiutiu, Victor},
|
||||
editor = {Irving, Philip and Soutis, Constantinos},
|
||||
date = {2020-01-01},
|
||||
series = {Woodhead {{Publishing Series}} in {{Composites Science}} and {{Engineering}}},
|
||||
pages = {491--558},
|
||||
publisher = {Woodhead Publishing},
|
||||
doi = {10.1016/B978-0-08-102679-3.00017-4},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/B9780081026793000174},
|
||||
urldate = {2025-05-09},
|
||||
abstract = {The chapter deals with structural health monitoring (SHM) of aerospace composites. After a brief introduction, the discussion focuses on the significant types of aerospace composite damage, which is substantially different from the damage usually encountered in aerospace metallic structures. Tension, compression, fastener holes, impact, fatigue damage types are discussed. Damage in composite sandwich structures and adhesive composite joints are also reviewed. The chapter continues with a presentation of the major sensor classes used in SHM practice with focus on advanced sensors, such as optical fiber Bragg gratings (FBG) and piezoelectric wafer active sensors (PWAS). Electrical sensing methods for composites SHM are also discussed. The last part of the chapter discusses the methods of SHM implementation, such as passive sensing SHM, active sensing SHM, local-area sensing with the electromechanical impedance spectroscopy (EMIS), active sensing SHM with electrical methods, and direct methods for impact damage detection. The chapter finishes with a summary, conclusion, and suggestions for further work.},
|
||||
isbn = {978-0-08-102679-3},
|
||||
keywords = {Active SHM,Aerospace composites,Barely visible damage,Barely visible impact damage,BVD,BVID,Composite damage,Damage detection,Electrical SHM,Electromechanical impedance spectroscopy,EMIS,FBG,Fiber Bragg gratings,Impact damage,Impact detection,Optical sensors,Passive SHM,Piezoelectric wafer active sensors,PWAS,SHM,Structural health monitoring},
|
||||
file = {C:\Users\damar\Zotero\storage\NYTBVDQN\Giurgiutiu - 2020 - 17 - Structural health monitoring (SHM) of aerospa.pdf}
|
||||
}
|
||||
|
||||
@article{gomez-cabrera2022,
|
||||
title = {Review of {{Machine-Learning Techniques Applied}} to {{Structural Health Monitoring Systems}} for {{Building}} and {{Bridge Structures}}},
|
||||
author = {Gomez-Cabrera, Alain and Escamilla-Ambrosio, Ponciano Jorge},
|
||||
date = {2022-01},
|
||||
journaltitle = {Applied Sciences},
|
||||
volume = {12},
|
||||
number = {21},
|
||||
pages = {10754},
|
||||
publisher = {Multidisciplinary Digital Publishing Institute},
|
||||
issn = {2076-3417},
|
||||
doi = {10.3390/app122110754},
|
||||
url = {https://www.mdpi.com/2076-3417/12/21/10754},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {This review identifies current machine-learning algorithms implemented in building structural health monitoring systems and their success in determining the level of damage in a hierarchical classification. The integration of physical models, feature extraction techniques, uncertainty management, parameter estimation, and finite element model analysis are used to implement data-driven model detection systems for SHM system design. A total of 68 articles using ANN, CNN and SVM, in combination with preprocessing techniques, were analyzed corresponding to the period 2011–2022. The application of these techniques in structural condition monitoring improves the reliability and performance of these systems.},
|
||||
issue = {21},
|
||||
langid = {english},
|
||||
keywords = {building structures,data-based model,machine learning,physics-based model,structural health monitoring},
|
||||
file = {C:\Users\damar\Zotero\storage\SAYFD8LC\Gomez-Cabrera and Escamilla-Ambrosio - 2022 - Review of Machine-Learning Techniques Applied to S.pdf}
|
||||
}
|
||||
|
||||
@article{goyal2016,
|
||||
title = {The {{Vibration Monitoring Methods}} and {{Signal Processing Techniques}} for {{Structural Health Monitoring}}: {{A Review}}},
|
||||
shorttitle = {The {{Vibration Monitoring Methods}} and {{Signal Processing Techniques}} for {{Structural Health Monitoring}}},
|
||||
author = {Goyal, D. and Pabla, B. S.},
|
||||
date = {2016-12},
|
||||
journaltitle = {Archives of Computational Methods in Engineering},
|
||||
shortjournal = {Arch Computat Methods Eng},
|
||||
volume = {23},
|
||||
number = {4},
|
||||
pages = {585--594},
|
||||
issn = {1134-3060, 1886-1784},
|
||||
doi = {10.1007/s11831-015-9145-0},
|
||||
url = {http://link.springer.com/10.1007/s11831-015-9145-0},
|
||||
urldate = {2024-04-09},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\5862GKAP\goyal2015.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{hassani2023,
|
||||
title = {A {{Systematic Review}} of {{Advanced Sensor Technologies}} for {{Non-Destructive Testing}} and {{Structural Health Monitoring}}},
|
||||
author = {Hassani, Sahar and Dackermann, Ulrike},
|
||||
date = {2023-01},
|
||||
journaltitle = {Sensors},
|
||||
volume = {23},
|
||||
number = {4},
|
||||
pages = {2204},
|
||||
publisher = {Multidisciplinary Digital Publishing Institute},
|
||||
issn = {1424-8220},
|
||||
doi = {10.3390/s23042204},
|
||||
url = {https://www.mdpi.com/1424-8220/23/4/2204},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {This paper reviews recent advances in sensor technologies for non-destructive testing (NDT) and structural health monitoring (SHM) of civil structures. The article is motivated by the rapid developments in sensor technologies and data analytics leading to ever-advancing systems for assessing and monitoring structures. Conventional and advanced sensor technologies are systematically reviewed and evaluated in the context of providing input parameters for NDT and SHM systems and for their suitability to determine the health state of structures. The presented sensing technologies and monitoring systems are selected based on their capabilities, reliability, maturity, affordability, popularity, ease of use, resilience, and innovation. A significant focus is placed on evaluating the selected technologies and associated data analytics, highlighting limitations, advantages, and disadvantages. The paper presents sensing techniques such as fiber optics, laser vibrometry, acoustic emission, ultrasonics, thermography, drones, microelectromechanical systems (MEMS), magnetostrictive sensors, and next-generation technologies.},
|
||||
issue = {4},
|
||||
langid = {english},
|
||||
keywords = {advanced sensor technologies,damage identification methods,machine learning,non-destructive evaluation,non-destructive testing,structural health monitoring},
|
||||
file = {C:\Users\damar\Zotero\storage\JIPPVCWI\Hassani and Dackermann - 2023 - A Systematic Review of Advanced Sensor Technologie.pdf}
|
||||
}
|
||||
|
||||
@article{hsu,
|
||||
title = {A {{Practical Guide}} to {{Support Vector Classification}}},
|
||||
author = {Hsu, Chih-Wei and Chang, Chih-Chung and Lin, Chih-Jen},
|
||||
abstract = {The support vector machine (SVM) is a popular classification technique. However, beginners who are not familiar with SVM often get unsatisfactory results since they miss some easy but significant steps. In this guide, we propose a simple procedure which usually gives reasonable results.},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\3D5K3FV4\Hsu et al. - A Practical Guide to Support Vector Classification.pdf}
|
||||
}
|
||||
|
||||
@inproceedings{j.h.park2015,
|
||||
title = {Image-Based {{Bolt-loosening Detection Technique}} of {{Bolt Joint}} in {{Steel Bridges}}},
|
||||
author = {{J. H. Park} and {T. H. Kim} and {J. T. Kim}},
|
||||
date = {2015},
|
||||
url = {https://api.semanticscholar.org/CorpusID:36521104},
|
||||
abstract = {This paper presents a novel bolt-loosening detection technique using image information of bolted joints in steel bridges. Firstly, existing bolt-loosening detection techniques are reviewed and their benefits and limitations are analyzed. Secondly, a bolt-loosening detection algorithm using image processing techniques is newly proposed for bolted joints in steel bridges. It consists of 3 steps: (1) taking a picture for a bolt joint, (2) segmenting the image to identify a splice plate and each nut, and (3) identifying rotation angle of each nut and detecting boltloosening. As a key technique, the Hough transform is used to identify rotation angles of nuts, and then boltloosening is detected by comparing the angles before and after bolt-loosening. Finally, the applicability of the proposed technique is evaluated by experimental tests with bolt-loosening scenarios. A bolted joint model which consists of a splice plate and 8 sets of bolts and nuts with 2×4 array is used for the tests.}
|
||||
}
|
||||
|
||||
@article{jang2023,
|
||||
title = {Vibration Data Feature Extraction and Deep Learning-Based Preprocessing Method for Highly Accurate Motor Fault Diagnosis},
|
||||
author = {Jang, Jun-Gyo and Noh, Chun-Myoung and Kim, Sung-Soo and Shin, Sung-Chul and Lee, Soon-Sup and Lee, Jae-Chul},
|
||||
date = {2023-01-11},
|
||||
journaltitle = {Journal of Computational Design and Engineering},
|
||||
volume = {10},
|
||||
number = {1},
|
||||
pages = {204--220},
|
||||
issn = {2288-5048},
|
||||
doi = {10.1093/jcde/qwac128},
|
||||
url = {https://academic.oup.com/jcde/article/10/1/204/6880159},
|
||||
urldate = {2024-09-11},
|
||||
abstract = {Abstract The environmental regulations on vessels being strengthened by the International Maritime Organization has led to a steady growth in the eco-friendly ship market. Related research is being actively conducted, including many studies on the maintenance and predictive maintenance of propulsion systems (including electric motors and rotating bodies) in electric propulsion vessels. The present study intends to enhance the artificial intelligence (AI)-based failure-diagnosis rate for electric propulsion vessel propulsion systems. To verify the proposed AI-based failure diagnosis algorithm for electric motors, this study utilized the vibration data of mechanical equipment (electric motors) in an urban railway station. Securing and preprocessing high-quality data is crucial for improving the failure-diagnosis rate, in addition to the performance of the diagnostic algorithm. However, the conventional wavelet transform method, which is generally used for machine signal processing, has a disadvantage of data loss when the data distribution is abnormal or skewed. This study, to overcome this shortcoming, proposes an AI-based denoising auto encoder (DAE) method that can remove noise while maintaining data characteristics for signal processing of mechanical equipment. This study preprocessed vibration data by using the DAE method, and extracted significant features from the data through the feature extraction method. The extracted features were utilized to train the one-class support vector machine model and to allow the model to diagnose the failure. Finally, the F-1 score was calculated by using the failure diagnosis results, and the most meaningful feature extraction method was determined for the vibration data. In addition, this study compared and evaluated the preprocessing performance based on the DAE and the wavelet transform methods.},
|
||||
langid = {english},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\H9L6XB8D\\Jang et al. - 2023 - Vibration data feature extraction and deep learnin.pdf;C\:\\Users\\damar\\Zotero\\storage\\WA37YR8L\\Jang et al. - 2023 - Vibration data feature extraction and deep learnin.pdf}
|
||||
}
|
||||
|
||||
@article{kumar2017,
|
||||
title = {Time-Frequency Analysis and Support Vector Machine in Automatic Detection of Defect from Vibration Signal of Centrifugal Pump},
|
||||
author = {Kumar, Anil and Kumar, Rajesh},
|
||||
date = {2017-10},
|
||||
journaltitle = {Measurement},
|
||||
shortjournal = {Measurement},
|
||||
volume = {108},
|
||||
pages = {119--133},
|
||||
issn = {02632241},
|
||||
doi = {10.1016/j.measurement.2017.04.041},
|
||||
url = {https://linkinghub.elsevier.com/retrieve/pii/S0263224117302750},
|
||||
urldate = {2024-03-18},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\B8JSREBK\kumar2017.pdf.pdf}
|
||||
}
|
||||
|
||||
@incollection{liu2022,
|
||||
title = {Hardware {{Acceleration}} for {{1D-CNN Based Real-Time Edge Computing}}},
|
||||
booktitle = {Network and {{Parallel Computing}}},
|
||||
author = {Liu, Xinyu and Sai, Gaole and Duan, Shengyu},
|
||||
editor = {Liu, Shaoshan and Wei, Xiaohui},
|
||||
date = {2022},
|
||||
volume = {13615},
|
||||
pages = {192--204},
|
||||
publisher = {Springer Nature Switzerland},
|
||||
location = {Cham},
|
||||
doi = {10.1007/978-3-031-21395-3_18},
|
||||
url = {https://link.springer.com/10.1007/978-3-031-21395-3_18},
|
||||
urldate = {2025-05-16},
|
||||
isbn = {978-3-031-21394-6 978-3-031-21395-3},
|
||||
langid = {english}
|
||||
}
|
||||
|
||||
@article{malekjafarian2019,
|
||||
title = {A {{Machine Learning Approach}} to {{Bridge-Damage Detection Using Responses Measured}} on a {{Passing Vehicle}}},
|
||||
author = {Malekjafarian, Abdollah and Golpayegani, Fatemeh and Moloney, Callum and Clarke, Siobhán},
|
||||
date = {2019-01},
|
||||
journaltitle = {Sensors},
|
||||
volume = {19},
|
||||
number = {18},
|
||||
pages = {4035},
|
||||
publisher = {Multidisciplinary Digital Publishing Institute},
|
||||
issn = {1424-8220},
|
||||
doi = {10.3390/s19184035},
|
||||
url = {https://www.mdpi.com/1424-8220/19/18/4035},
|
||||
urldate = {2024-04-02},
|
||||
abstract = {This paper proposes a new two-stage machine learning approach for bridge damage detection using the responses measured on a passing vehicle. In the first stage, an artificial neural network (ANN) is trained using the vehicle responses measured from multiple passes (training data set) over a healthy bridge. The vehicle acceleration or Discrete Fourier Transform (DFT) spectrum of the acceleration is used. The vehicle response is predicted from its speed for multiple passes (monitoring data set) over the bridge. Root-mean-square error is used to calculate the prediction error, which indicates the differences between the predicted and measured responses for each passage. In the second stage of the proposed method, a damage indicator is defined using a Gaussian process that detects the changes in the distribution of the prediction errors. It is suggested that if the bridge condition is healthy, the distribution of the prediction errors will remain low. A recognizable change in the distribution might indicate a damage in the bridge. The performance of the proposed approach was evaluated using numerical case studies of vehicle–bridge interaction. It was demonstrated that the approach could successfully detect the damage in the presence of road roughness profile and measurement noise, even for low damage levels.},
|
||||
issue = {18},
|
||||
langid = {english},
|
||||
keywords = {artificial neural network,bridge,damage detection,drive-by,machine learning},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\7WYKNBEK\\Malekjafarian et al. - 2019 - A Machine Learning Approach to Bridge-Damage Detec.pdf;C\:\\Users\\damar\\Zotero\\storage\\W9XNXSBP\\malekjafarian2019.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{mariani2024,
|
||||
title = {Data-Driven Modeling of Long Temperature Time-Series to Capture the Thermal Behavior of Bridges for {{SHM}} Purposes},
|
||||
author = {Mariani, S. and Kalantari, A. and Kromanis, R. and Marzani, A.},
|
||||
date = {2024-01-01},
|
||||
journaltitle = {Mechanical Systems and Signal Processing},
|
||||
shortjournal = {Mechanical Systems and Signal Processing},
|
||||
volume = {206},
|
||||
pages = {110934},
|
||||
issn = {0888-3270},
|
||||
doi = {10.1016/j.ymssp.2023.110934},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0888327023008427},
|
||||
urldate = {2024-05-08},
|
||||
abstract = {Bridges experience complex heat propagation phenomena that are governed by external thermal loads, such as solar radiation and air convection, as well as internal factors, such as thermal inertia and geometrical properties of the various components. This dynamics produces internal temperature distributions which cause changes in some measurable structural responses that often surpass those produced by any other load acting on the structure or by the insurgence or growth of damage. This article advocates the use of regression models that are capable of capturing the dynamics buried within long sequences of temperature measurements and of relating that to some measured structural response, such as strain as in the test structure used in this study. Two such models are proposed, namely the multiple linear regression (MLR) and a deep learning (DL) method based on one-dimensional causal dilated convolutional neural networks, and their ability to predict strain is evaluated in terms of the coefficient of determination R2. Simple linear regression (LR), which only uses a single temperature reading to predict the structural response, is also tested and used as a benchmark. It is shown that both MLR and the DL method largely outperform LR, with the DL method providing the best results overall, though at a higher computational cost. These findings confirm the need to consider the evolution of temperature if one wishes to setup a temperature-based data-driven strategy for the SHM of large structures such as bridges, an example of which is given and discussed towards the end of the article.},
|
||||
keywords = {Bridges,Regression,SHM,Thermal inertia,Time-lag,WaveNet},
|
||||
file = {C:\Users\damar\Zotero\storage\CNNQXVU3\Mariani et al. - 2024 - Data-driven modeling of long temperature time-seri.pdf}
|
||||
}
|
||||
|
||||
@article{melhem2003,
|
||||
title = {Damage {{Detection}} in {{Concrete}} by {{Fourier}} and {{Wavelet Analyses}}},
|
||||
author = {Melhem, Hani and Kim, Hansang},
|
||||
date = {2003-05-01},
|
||||
journaltitle = {Journal of Engineering Mechanics},
|
||||
volume = {129},
|
||||
number = {5},
|
||||
pages = {571--577},
|
||||
publisher = {American Society of Civil Engineers},
|
||||
issn = {0733-9399},
|
||||
doi = {10.1061/(ASCE)0733-9399(2003)129:5(571)},
|
||||
url = {https://ascelibrary.org/doi/10.1061/%28ASCE%290733-9399%282003%29129%3A5%28571%29},
|
||||
urldate = {2024-03-19},
|
||||
abstract = {The effectiveness of vibration-based methods in damage detection of a typical highway structure is investigated. Two types of full-scale concrete structures subjected to fatigue loads are studied: (1) Portland cement concrete pavements on grade; and (2) a ...},
|
||||
langid = {english},
|
||||
keywords = {concrete,Concrete structures,crack detection,Damage,dynamic response,fatigue,Fourier transform,Fourier transforms,nondestructive testing,Nondestructive tests,vibrations,wavelet transforms},
|
||||
file = {C:\Users\damar\Zotero\storage\6ZTIUGQL\melhem2003.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{miao2020,
|
||||
title = {A {{New Method}} of {{Denoising}} of {{Vibration Signal}} and {{Its Application}}},
|
||||
author = {Miao, Feng and Zhao, Rongzhen and Wang, Xianli},
|
||||
date = {2020-05-30},
|
||||
journaltitle = {Shock and Vibration},
|
||||
shortjournal = {Shock and Vibration},
|
||||
volume = {2020},
|
||||
pages = {1--8},
|
||||
issn = {1070-9622, 1875-9203},
|
||||
doi = {10.1155/2020/7587840},
|
||||
url = {https://www.hindawi.com/journals/sv/2020/7587840/},
|
||||
urldate = {2024-09-10},
|
||||
abstract = {In order to improve the performance of the denoising method for vibration signals of rotating machinery, a new method of signal denoising based on the improved median filter and wavelet packet technology is proposed through analysing the characteristics of noise components and relevant denoising methods. Firstly, the window width of the median filter is calculated according to the sampling frequency so that the impulse noise and part of the white noise can be effectively filtered out. Secondly, an improved self-adaptive wavelet packet denoising technique is used to remove the residual white noise. Finally, useful vibration signals are obtained after the previous processing. Simulation signals and rotor experimental vibration signals were used to verify the performance of the method. Experiment results show that the method can not only effectively eliminate the mixed complex noises but also preserve the fault character details, which demonstrates that the proposed method outperforms the method based on the wavelet-domain median filter.},
|
||||
langid = {english},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\LNJIL8MM\\miao2020.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\P8Z2YJPH\\Miao et al. - 2020 - A New Method of Denoising of Vibration Signal and .pdf}
|
||||
}
|
||||
|
||||
@inproceedings{mironovova2015,
|
||||
title = {Fast Fourier Transform for Feature Extraction and Neural Network for Classification of Electrocardiogram Signals},
|
||||
booktitle = {2015 {{Fourth International Conference}} on {{Future Generation Communication Technology}} ({{FGCT}})},
|
||||
author = {Mironovova, Martina and Bíla, Jirí},
|
||||
date = {2015-07},
|
||||
pages = {1--6},
|
||||
issn = {2377-2638},
|
||||
doi = {10.1109/FGCT.2015.7300244},
|
||||
url = {https://ieeexplore.ieee.org/document/7300244},
|
||||
urldate = {2024-09-03},
|
||||
abstract = {This paper presents a novel approach to complex classification of heart abnormalities registered by electrocardiogram signals. It uses a combined approach of a Fast Fourier Technique for signal filtering and R-peaks detection and heart rate extraction, followed by signal modelling and classification by neural network based on recording of ECG. Obtained information is processed together for a complex evaluation of the signal in time.},
|
||||
eventtitle = {2015 {{Fourth International Conference}} on {{Future Generation Communication Technology}} ({{FGCT}})},
|
||||
keywords = {Data Filtering,Databases,Electrocardiogram Signal,Electrocardiography,Fast Fourier Transform,Heart beat,Heart rate variability,Neural Network,Neural networks,R-Peak Detection},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\KTRQVNQL\\mironovova2015.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\5Z2M5IAW\\7300244.html}
|
||||
}
|
||||
|
||||
@article{nichols2004,
|
||||
title = {Use of Data-Driven Phase Space Models in Assessing the Strength of a Bolted Connection in a Composite Beam},
|
||||
author = {Nichols, J M and Nichols, C J and Todd, M D and Seaver, M and Trickey, S T and Virgin, L N},
|
||||
date = {2004-04-01},
|
||||
journaltitle = {Smart Materials and Structures},
|
||||
shortjournal = {Smart Mater. Struct.},
|
||||
volume = {13},
|
||||
number = {2},
|
||||
pages = {241--250},
|
||||
issn = {0964-1726, 1361-665X},
|
||||
doi = {10.1088/0964-1726/13/2/001},
|
||||
url = {https://iopscience.iop.org/article/10.1088/0964-1726/13/2/001},
|
||||
urldate = {2025-05-16}
|
||||
}
|
||||
|
||||
@article{onchis2019,
|
||||
title = {A Deep Learning Approach to Condition Monitoring of Cantilever Beams via Time-Frequency Extended Signatures},
|
||||
author = {Onchis, Habil. Darian M.},
|
||||
date = {2019-02},
|
||||
journaltitle = {Computers in Industry},
|
||||
shortjournal = {Computers in Industry},
|
||||
volume = {105},
|
||||
pages = {177--181},
|
||||
issn = {01663615},
|
||||
doi = {10.1016/j.compind.2018.12.005},
|
||||
url = {https://linkinghub.elsevier.com/retrieve/pii/S0166361518305669},
|
||||
urldate = {2024-04-10},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\VMTHSXPK\37f540b431ff7b297a2ca5b8f2eb1454.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{pentaris2013,
|
||||
title = {A Novel Approach of {{Structural Health Monitoring}} by the Application of {{FFT}} and Wavelet Transform Using an Index of Frequency Dispersion},
|
||||
author = {Pentaris, Fragkiskos and Stonham, John and Makris, John},
|
||||
date = {2013-01-01},
|
||||
journaltitle = {International Journal of Geology},
|
||||
shortjournal = {International Journal of Geology},
|
||||
volume = {7},
|
||||
pages = {39--48},
|
||||
file = {C:\Users\damar\Zotero\storage\ADJEVL7C\Pentaris et al. - 2013 - A novel approach of Structural Health Monitoring b.pdf}
|
||||
}
|
||||
|
||||
@article{rabi2024,
|
||||
title = {Effectiveness of {{Vibration-Based Techniques}} for {{Damage Localization}} and {{Lifetime Prediction}} in {{Structural Health Monitoring}} of {{Bridges}}: {{A Comprehensive Review}}},
|
||||
shorttitle = {Effectiveness of {{Vibration-Based Techniques}} for {{Damage Localization}} and {{Lifetime Prediction}} in {{Structural Health Monitoring}} of {{Bridges}}},
|
||||
author = {Rabi, Raihan Rahmat and Vailati, Marco and Monti, Giorgio},
|
||||
date = {2024-04},
|
||||
journaltitle = {Buildings},
|
||||
volume = {14},
|
||||
number = {4},
|
||||
pages = {1183},
|
||||
publisher = {Multidisciplinary Digital Publishing Institute},
|
||||
issn = {2075-5309},
|
||||
doi = {10.3390/buildings14041183},
|
||||
url = {https://www.mdpi.com/2075-5309/14/4/1183},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {Bridges are essential to infrastructure and transportation networks, but face challenges from heavier traffic, higher speeds, and modifications like busway integration, leading to potential overloading and costly maintenance. Structural Health Monitoring (SHM) plays a crucial role in assessing bridge conditions and predicting failures to maintain structural integrity. Vibration-based condition monitoring employs non-destructive, in situ sensing and analysis of system dynamics across time, frequency, or modal domains. This method detects changes indicative of damage or deterioration, offering a proactive approach to maintenance in civil engineering. Such monitoring systems hold promise for optimizing the management and upkeep of modern infrastructure, potentially reducing operational costs. This paper aims to assist newcomers, practitioners, and researchers in navigating various methodologies for damage identification using sensor data from real structures. It offers a comprehensive review of prevalent anomaly detection approaches, spanning from traditional techniques to cutting-edge methods. Additionally, it addresses challenges inherent in Vibration-Based Damage (VBD) SHM applications, including establishing damage thresholds, corrosion detection, and sensor drift.},
|
||||
issue = {4},
|
||||
langid = {english},
|
||||
keywords = {challenges,damage thresholds,sensors,vibration-based SHM},
|
||||
file = {C:\Users\damar\Zotero\storage\2X8PMPF3\Rabi et al. - 2024 - Effectiveness of Vibration-Based Techniques for Da.pdf}
|
||||
}
|
||||
|
||||
@article{rao2022,
|
||||
title = {A {{Novel Feature-Based SHM Assessment}} and {{Predication Approach}} for {{Robust Evaluation}} of {{Damage Data Diagnosis Systems}}},
|
||||
author = {Rao, M. Vishnu Vardhana and Chaparala, Aparna},
|
||||
date = {2022-06-01},
|
||||
journaltitle = {Wireless Personal Communications},
|
||||
shortjournal = {Wireless Pers Commun},
|
||||
volume = {124},
|
||||
number = {4},
|
||||
pages = {3387--3411},
|
||||
issn = {1572-834X},
|
||||
doi = {10.1007/s11277-022-09518-z},
|
||||
url = {https://doi.org/10.1007/s11277-022-09518-z},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {Structural Health Monitoring (SHM) involves periodic recording and analysis in buildings and infrastructure prone to face external forces, ambient vibration, or natural climate changes. The sensors which are mounted on each floor capture the vibrations and create data with various features. SHM is vital in tracking the rate of deterioration of a structure and detecting damage, thereby maintaining safety. Feature selection, which indicates the process of choosing attributes in the dataset that can provide the best possible output accuracy, plays an important role in the analysis of a Damage Diagnosis system. The present paper proposes to use a combination of Mutual Information and Rough Set Theory for feature selection. After that, the paper proposes the hybrid technique of Support Vector Machine and Artificial Neural Network for increasing prediction accuracy. Comparison with various other commonly used techniques shows that the proposed approach provides a better classification accuracy.},
|
||||
langid = {english},
|
||||
keywords = {ANN (Artificial neural network),Data mining (DM),Feature selection (FS),Mutual information (MI),Neural networks (NN),Rough set theory (RST),SVM (Support vector machine)}
|
||||
}
|
||||
|
||||
@inproceedings{rashinkar2017,
|
||||
title = {An Overview of Data Fusion Techniques},
|
||||
booktitle = {2017 {{International Conference}} on {{Innovative Mechanisms}} for {{Industry Applications}} ({{ICIMIA}})},
|
||||
author = {Rashinkar, Pratiksha and Krushnasamy, V. S.},
|
||||
date = {2017-02},
|
||||
pages = {694--697},
|
||||
doi = {10.1109/ICIMIA.2017.7975553},
|
||||
url = {https://ieeexplore.ieee.org/abstract/document/7975553/figures#figures},
|
||||
urldate = {2024-08-26},
|
||||
abstract = {Multi sensor data fusion is a tool used to combine the data from various sensors and gives a more reliable and accurate output. It is the integration of data and knowledge from several sources. This paper has reviewed the various technologies, the advantages and the classification of the data fusion.},
|
||||
eventtitle = {2017 {{International Conference}} on {{Innovative Mechanisms}} for {{Industry Applications}} ({{ICIMIA}})},
|
||||
keywords = {Data integration,Data models,Feature extraction,Industry applications,Process control,Robot sensing systems,Tutorials},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\XD9NDF48\\rashinkar2017.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\74DF6YBS\\figures.html}
|
||||
}
|
||||
|
||||
@article{razi2013,
|
||||
title = {Improvement of a Vibration-Based Damage Detection Approach for Health Monitoring of Bolted Flange Joints in Pipelines},
|
||||
author = {Razi, Pejman and Esmaeel, Ramadan A and Taheri, Farid},
|
||||
date = {2013-05},
|
||||
journaltitle = {Structural Health Monitoring},
|
||||
shortjournal = {Structural Health Monitoring},
|
||||
volume = {12},
|
||||
number = {3},
|
||||
pages = {207--224},
|
||||
issn = {1475-9217, 1741-3168},
|
||||
doi = {10.1177/1475921713479641},
|
||||
url = {https://journals.sagepub.com/doi/10.1177/1475921713479641},
|
||||
urldate = {2025-05-16},
|
||||
abstract = {Early detection of bolt loosening is a major concern in the oil and gas industry. In this study, a vibration-based health monitoring strategy has been developed for detecting the loosening of bolts in a pipeline’s bolted flange joint. Both numerical and experimental studies are conducted to verify the integrity of our implementation as well as of an enhancement developed along with it. Several damage scenarios are simulated by the loosening of the bolts through varying the applied torque on each bolt. An electric impact hammer is used to vibrate (excite) the system in a consistent manner. The induced vibration signals are collected via piezoceramic sensors bonded onto the pipe and flange. These signals are transferred remotely by a wireless data acquisition module and then processed with a code developed in-house in the MATLAB environment. After normalization and filtering of the signals, the empirical mode decomposition is applied to establish an effective energy-based damage index. The assessment of the damage indices thus obtained for the various scenarios verifies the integrity of the proposed methodology for identifying the damage and its progression in bolted joints as well as the major enhancements applied onto the methodology.},
|
||||
langid = {english}
|
||||
}
|
||||
|
||||
@inproceedings{sandirasegaram2005,
|
||||
title = {Comparative Analysis of Feature Extraction ({{2D FFT}} and Wavelet) and Classification ({{L}} p Metric Distances, {{MLP NN}}, and {{HNeT}}) Algorithms for {{SAR}} Imagery},
|
||||
author = {Sandirasegaram, Nicholas and English, Ryan},
|
||||
editor = {Zelnio, Edmund G. and Garber, Frederick D.},
|
||||
date = {2005-05-19},
|
||||
pages = {314},
|
||||
location = {Orlando, Florida, USA},
|
||||
doi = {10.1117/12.597305},
|
||||
url = {http://proceedings.spiedigitallibrary.org/proceeding.aspx?doi=10.1117/12.597305},
|
||||
urldate = {2024-09-03},
|
||||
eventtitle = {Defense and {{Security}}},
|
||||
file = {C:\Users\damar\Zotero\storage\GBAFVQY7\sandirasegaram2005.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{satpal2013,
|
||||
title = {Structural Health Monitoring of a Cantilever Beam Using Support Vector Machine},
|
||||
author = {Satpal, Satish B and Khandare, Yogesh and Guha, Anirban and Banerjee, Sauvik},
|
||||
date = {2013-12},
|
||||
journaltitle = {International Journal of Advanced Structural Engineering},
|
||||
shortjournal = {Int J Adv Struct Eng},
|
||||
volume = {5},
|
||||
number = {1},
|
||||
pages = {2},
|
||||
issn = {2008-3556, 2008-6695},
|
||||
doi = {10.1186/2008-6695-5-2},
|
||||
url = {https://link.springer.com/10.1186/2008-6695-5-2},
|
||||
urldate = {2024-04-02},
|
||||
abstract = {In this article, the effectiveness of support vector machine (SVM) is examined for health monitoring of beam-like structures using vibration-induced modal displacement data. The SVM is used to predict the intensity or location of damage in a simulated cantilever beam from displacements of the first mode shape. Twelve levels of damage intensities have been simulated at 12 locations, and six levels of white Gaussian noise have been added, thereby obtaining 1,008 simulations. About 90\% of these are used for training the SVM, and the remaining are used for testing. The trained SVM is able to predict damage intensity and location of all the training set data with nearly 100\% accuracy. The test set data reveal that SVM is able to predict damage intensity and damage location with errors varying from 0.28\% to 4.57\% and 0\% to 20.3\%, respectively, when there is no noise in the data. Addition of noise degrades the performance of SVM, the degradation being significant for intensity prediction and less for damage location prediction. The results demonstrate the use of SVM as a powerful tool for structural health monitoring without using the data of healthy state.},
|
||||
langid = {english},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\GBKEW3FA\\Satpal et al. - 2013 - Structural health monitoring of a cantilever beam .pdf;C\:\\Users\\damar\\Zotero\\storage\\LQ3G7S3Y\\satpal2013.pdf.pdf}
|
||||
}
|
||||
|
||||
@inproceedings{shahid2022,
|
||||
title = {Performance {{Comparison}} of {{1D}} and {{2D Convolutional Neural Networks}} for {{Real-Time Classification}} of {{Time Series Sensor Data}}},
|
||||
booktitle = {2022 {{International Conference}} on {{Information Networking}} ({{ICOIN}})},
|
||||
author = {Shahid, Syed Maaz and Ko, Sunghoon and Kwon, Sungoh},
|
||||
date = {2022-01-12},
|
||||
pages = {507--511},
|
||||
publisher = {IEEE},
|
||||
location = {Jeju-si, Korea, Republic of},
|
||||
doi = {10.1109/ICOIN53446.2022.9687284},
|
||||
url = {https://ieeexplore.ieee.org/document/9687284/},
|
||||
urldate = {2025-05-16},
|
||||
eventtitle = {2022 {{International Conference}} on {{Information Networking}} ({{ICOIN}})},
|
||||
isbn = {978-1-66541-332-9}
|
||||
}
|
||||
|
||||
@article{shang2021,
|
||||
title = {Vibration-Based Damage Detection for Bridges by Deep Convolutional Denoising Autoencoder},
|
||||
author = {Shang, Zhiqiang and Sun, Limin and Xia, Ye and Zhang, Wei},
|
||||
date = {2021-07-01},
|
||||
journaltitle = {Structural Health Monitoring},
|
||||
shortjournal = {Structural Health Monitoring},
|
||||
volume = {20},
|
||||
number = {4},
|
||||
pages = {1880--1903},
|
||||
publisher = {SAGE Publications},
|
||||
issn = {1475-9217},
|
||||
doi = {10.1177/1475921720942836},
|
||||
url = {https://doi.org/10.1177/1475921720942836},
|
||||
urldate = {2024-09-11},
|
||||
abstract = {One of the main challenges for structural damage detection using monitoring data is to acquire features that are sensitive to damages but insensitive to noise (e.g. sensor measurement noise) as well as environmental and operational effects (e.g. temperature effect). Inspired by the capabilities of deep learning methods in representation learning, various deep neural networks have been developed to obtain effective damage features from raw vibration data. However, most of the available deep neural networks are supervised, resulting in practical difficulties owing to the lack of damage labels. This article proposes a damage detection strategy based on an unsupervised deep neural network, referred to as deep convolutional denoising autoencoder, which accepts multi-dimensional cross-correlation functions as input. The strategy aims to extract damage features from field measurements of undamaged structures under the influence of noise and temperature uncertainties. In the proposed strategy, cross-correlation functions of vibration data are first calculated as basic features; then deep convolutional denoising autoencoder is developed to reconstruct cross-correlation functions from their noise-corrupted versions to extract desired features; exponentially weighted moving average control charts are finally established for these features to identify minor structural damages. The strategy is evaluated through a numerical simply supported beam model and an experimental continuous beam model. The mechanism of deep convolutional denoising autoencoder to extract damage features is interpreted by visualizing feature maps of convolutional layers in the encoder. It is found that these layers perform rough estimations of modal properties and preserve the damage information as the general trend of these properties in multiple extra frequency bands. The results show that the proposed strategy is competent for structural damage detection under the exposed environment and worth further exploring its capabilities in applications of real bridges.},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\2VCZ5JD7\10.1177@1475921720942836.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{shi2003,
|
||||
title = {Hilbert-Huang Transform and Wavelet Analysis of Time History Signal},
|
||||
author = {Shi, Chun-xiang and Luo, Qi-feng},
|
||||
date = {2003-07-01},
|
||||
journaltitle = {Acta Seismologica Sinica},
|
||||
shortjournal = {Acta Seimol. Sin.},
|
||||
volume = {16},
|
||||
number = {4},
|
||||
pages = {422--429},
|
||||
issn = {1993-1344},
|
||||
doi = {10.1007/s11589-003-0075-9},
|
||||
url = {https://doi.org/10.1007/s11589-003-0075-9},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {The brief theories of wavelet analysis and Hilbert-Huang transform (HHT) are introduced firstly in the present paper. Then several signal data were analyzed by using wavelet and HHT methods, respectively. The comparison shows that HHT is not only an effective method for analyzing non-stationary data, but also is a useful tool for examining detailed characters of time history signal.},
|
||||
langid = {english},
|
||||
keywords = {Hilbert-Huang transform,intrinsic mode functions,mother wavelet,P315.63,spectral analysis,wavelet analysis},
|
||||
file = {C:\Users\damar\Zotero\storage\DCVA28MB\shi2003.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{tang2012,
|
||||
title = {Feature Extraction and Selection Based on Vibration Spectrum with Application to Estimating the Load Parameters of Ball Mill in Grinding Process},
|
||||
author = {Tang, Jian and Chai, Tianyou and Yu, Wen and Zhao, Lijie},
|
||||
date = {2012-10-01},
|
||||
journaltitle = {Control Engineering Practice},
|
||||
shortjournal = {Control Engineering Practice},
|
||||
series = {4th {{Symposium}} on {{Advanced Control}} of {{Industrial Processes}} ({{ADCONIP}})},
|
||||
volume = {20},
|
||||
number = {10},
|
||||
pages = {991--1004},
|
||||
issn = {0967-0661},
|
||||
doi = {10.1016/j.conengprac.2012.03.020},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0967066112000846},
|
||||
urldate = {2024-09-03},
|
||||
abstract = {Feature extraction and selection are important issues in soft sensing and complex nonlinear system modeling. In this paper, a new feature extraction and selection approach based on the vibration frequency spectrum is proposed to estimate the load parameters of wet ball mill in grinding process. This approach can simplify the modeling process. In this study, the vibration acceleration signals are first transformed into the frequency spectrum by fast Fourier transform (FFT). Then the candidate features are extracted and selected from the frequency spectrum, which include characteristic frequency sub-bands, spectral principal components, and features of local peaks. Mutual information, spectral segment clustering and kernel principal component analysis are used to obtain these candidate features. Finally, a combinatorial optimization method based on adaptive genetic algorithm selects the input sub-set and parameters of the soft sensor model simultaneously. This approach is successfully applied in a laboratory scale wet ball mill. The test results show that the proposed approach is effective for modeling the parameters of mill load.},
|
||||
keywords = {Combinatorial optimization,Feature extraction,Feature selection,Frequency spectrum,Mill load,Soft sensor}
|
||||
}
|
||||
|
||||
@article{toh2020,
|
||||
title = {Review of {{Vibration-Based Structural Health Monitoring Using Deep Learning}}},
|
||||
author = {Toh, Gyungmin and Park, Junhong},
|
||||
date = {2020-01},
|
||||
journaltitle = {Applied Sciences},
|
||||
volume = {10},
|
||||
number = {5},
|
||||
pages = {1680},
|
||||
publisher = {Multidisciplinary Digital Publishing Institute},
|
||||
issn = {2076-3417},
|
||||
doi = {10.3390/app10051680},
|
||||
url = {https://www.mdpi.com/2076-3417/10/5/1680},
|
||||
urldate = {2024-03-19},
|
||||
abstract = {With the rapid progress in the deep learning technology, it is being used for vibration-based structural health monitoring. When the vibration is used for extracting features for system diagnosis, it is important to correlate the measured signal to the current status of the structure. The measured vibration responses show large deviation in spectral and transient characteristics for systems to be monitored. Consequently, the diagnosis using vibration requires complete understanding of the extracted features to discard the influence of surrounding environments or unnecessary variations. The deep-learning-based algorithms are expected to find increasing application in these complex problems due to their flexibility and robustness. This review provides a summary of studies applying machine learning algorithms for fault monitoring. The vibration factors were used to categorize the studies. A brief interpretation of deep neural networks is provided to guide further applications in the structural vibration analysis.},
|
||||
issue = {5},
|
||||
langid = {english},
|
||||
keywords = {deep neural network,health monitoring,vibration},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\6XITVIKY\\toh2020.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\9L9KXB7V\\Toh and Park - 2020 - Review of Vibration-Based Structural Health Monito.pdf}
|
||||
}
|
||||
|
||||
@inproceedings{van2020,
|
||||
title = {Statistical {{Feature Extraction}} in {{Machine Fault Detection}} Using {{Vibration Signal}}},
|
||||
booktitle = {2020 {{International Conference}} on {{Information}} and {{Communication Technology Convergence}} ({{ICTC}})},
|
||||
author = {Van, Bui and Van Hoa, Nguyen and Nguyen, Huy and Jang, Yeong Min},
|
||||
date = {2020-10},
|
||||
pages = {666--669},
|
||||
issn = {2162-1233},
|
||||
doi = {10.1109/ICTC49870.2020.9289285},
|
||||
url = {https://ieeexplore.ieee.org/document/9289285/figures#figures},
|
||||
urldate = {2024-08-26},
|
||||
abstract = {Gearbox faults are one of the most common types in the industrial factory environment. Early detection of these faults allows fast replacement rather than a costly emergency. Nowadays, early machine fault detection application is improving due to the improvement of the IoT network and real-time analysis. The vibration signal is collected from Spectra Quest's Gearbox Prognostics Simulator and analyzed for fault classification. The preprocessing includes fast Fourier transform and statistical feature extraction. The AI algorithms are Artificial Neural Network, Logistic Regression, and Support Vector Machine. The highest accuracy reached is 100\%.},
|
||||
eventtitle = {2020 {{International Conference}} on {{Information}} and {{Communication Technology Convergence}} ({{ICTC}})},
|
||||
keywords = {ANN,Fault detection,Feature extraction,LR,Machine Learning,Manufacturing,Production facilities,Real-time systems,Support vector machines,SVM,Vibration Signal,Vibrations},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\TW69QG8K\\van2020.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\AZM769D7\\figures.html}
|
||||
}
|
||||
|
||||
@article{vos2022,
|
||||
title = {Vibration-Based Anomaly Detection Using {{LSTM}}/{{SVM}} Approaches},
|
||||
author = {Vos, Kilian and Peng, Zhongxiao and Jenkins, Christopher and Shahriar, Md Rifat and Borghesani, Pietro and Wang, Wenyi},
|
||||
date = {2022-04},
|
||||
journaltitle = {Mechanical Systems and Signal Processing},
|
||||
shortjournal = {Mechanical Systems and Signal Processing},
|
||||
volume = {169},
|
||||
pages = {108752},
|
||||
issn = {08883270},
|
||||
doi = {10.1016/j.ymssp.2021.108752},
|
||||
url = {https://linkinghub.elsevier.com/retrieve/pii/S0888327021010682},
|
||||
urldate = {2024-03-18},
|
||||
langid = {english}
|
||||
}
|
||||
|
||||
@article{wang2013,
|
||||
title = {Review of {{Bolted Connection Monitoring}}},
|
||||
author = {Wang, Tao and Song, Gangbing and Liu, Shaopeng and Li, Yourong and Xiao, Han},
|
||||
date = {2013-12-01},
|
||||
journaltitle = {International Journal of Distributed Sensor Networks},
|
||||
shortjournal = {International Journal of Distributed Sensor Networks},
|
||||
volume = {9},
|
||||
number = {12},
|
||||
pages = {871213},
|
||||
issn = {1550-1477, 1550-1477},
|
||||
doi = {10.1155/2013/871213},
|
||||
url = {http://journals.sagepub.com/doi/10.1155/2013/871213},
|
||||
urldate = {2025-05-16},
|
||||
abstract = {This paper reviews the research of monitoring technologies for bolted structural connections. The acoustoelastic effect based method, the piezoelectric active sensing method, and the piezoelectric impedance method are the three commonly used to monitor bolted connections. The basic principle and the applications of these three methods are discussed in detail in this paper. In addition, this paper presents a comparison of these methods and discusses their suitability for in situ or real-time bolt connection monitoring.},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\YVAKDMU9\wang2013.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{wang2016,
|
||||
title = {Damage Detection Using Frequency Shift Path},
|
||||
author = {Wang, Longqi and Lie, Seng Tjhen and Zhang, Yao},
|
||||
date = {2016-01-01},
|
||||
journaltitle = {Mechanical Systems and Signal Processing},
|
||||
shortjournal = {Mechanical Systems and Signal Processing},
|
||||
volume = {66--67},
|
||||
pages = {298--313},
|
||||
issn = {0888-3270},
|
||||
doi = {10.1016/j.ymssp.2015.06.028},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0888327015003167},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {This paper introduces a novel concept called FREquency Shift (FRESH) path to describe the dynamic behavior of structures with auxiliary mass. FRESH path combines the effects of frequency shifting and amplitude changing into one space curve, providing a tool for analyzing structure health status and properties. A damage index called FRESH curvature is then proposed to detect local stiffness reduction. FRESH curvature can be easily adapted for a particular problem since the sensitivity of the index can be adjusted by changing auxiliary mass or excitation power. An algorithm is proposed to adjust automatically the contribution from frequency and amplitude in the method. Because the extraction of FRESH path requires highly accurate frequency and amplitude estimators; therefore, a procedure based on discrete time Fourier transform is introduced to extract accurate frequency and amplitude with the time complexity of O(nlogn), which is verified by simulation signals. Moreover, numerical examples with different damage sizes, severities and damping are presented to demonstrate the validity of the proposed damage index. In addition, applications of FRESH path on two steel beams with different damages are presented and the results show that the proposed method is valid and computational efficient.},
|
||||
keywords = {Auxiliary mass,Damage detection,Discrete time Fourier transform,Frequency shift path},
|
||||
file = {C:\Users\damar\Zotero\storage\8KYYV56B\wang2016.pdf.pdf}
|
||||
}
|
||||
|
||||
@incollection{wanhammar1999,
|
||||
title = {Digital {{Signal Processing}}},
|
||||
booktitle = {{{DSP Integrated Circuits}}},
|
||||
author = {Wanhammar, Lars},
|
||||
date = {1999},
|
||||
pages = {59--114},
|
||||
publisher = {Elsevier},
|
||||
doi = {10.1016/B978-012734530-7/50003-9},
|
||||
url = {https://linkinghub.elsevier.com/retrieve/pii/B9780127345307500039},
|
||||
urldate = {2024-03-18},
|
||||
isbn = {978-0-12-734530-7},
|
||||
langid = {english}
|
||||
}
|
||||
|
||||
@article{widodo2007,
|
||||
title = {Support Vector Machine in Machine Condition Monitoring and Fault Diagnosis},
|
||||
author = {Widodo, Achmad and Yang, Bo-Suk},
|
||||
date = {2007-08-01},
|
||||
journaltitle = {Mechanical Systems and Signal Processing},
|
||||
shortjournal = {Mechanical Systems and Signal Processing},
|
||||
volume = {21},
|
||||
number = {6},
|
||||
pages = {2560--2574},
|
||||
issn = {0888-3270},
|
||||
doi = {10.1016/j.ymssp.2006.12.007},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0888327007000027},
|
||||
urldate = {2024-09-08},
|
||||
abstract = {Recently, the issue of machine condition monitoring and fault diagnosis as a part of maintenance system became global due to the potential advantages to be gained from reduced maintenance costs, improved productivity and increased machine availability. This paper presents a survey of machine condition monitoring and fault diagnosis using support vector machine (SVM). It attempts to summarize and review the recent research and developments of SVM in machine condition monitoring and diagnosis. Numerous methods have been developed based on intelligent systems such as artificial neural network, fuzzy expert system, condition-based reasoning, random forest, etc. However, the use of SVM for machine condition monitoring and fault diagnosis is still rare. SVM has excellent performance in generalization so it can produce high accuracy in classification for machine condition monitoring and diagnosis. Until 2006, the use of SVM in machine condition monitoring and fault diagnosis is tending to develop towards expertise orientation and problem-oriented domain. Finally, the ability to continually change and obtain a novel idea for machine condition monitoring and fault diagnosis using SVM will be future works.},
|
||||
keywords = {Fault diagnosis,Machine condition monitoring,Support vector machine},
|
||||
file = {C:\Users\damar\Zotero\storage\KGSTJGAQ\widodo2007.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{pham2020,
|
||||
title = {Bolt-{{Loosening Monitoring Framework Using}} an {{Image-Based Deep Learning}} and {{Graphical Model}}},
|
||||
author = {Pham, Hai Chien and Ta, Quoc-Bao and Kim, Jeong-Tae and Ho, Duc-Duy and Tran, Xuan-Linh and Huynh, Thanh-Canh},
|
||||
date = {2020-06-15},
|
||||
journaltitle = {Sensors},
|
||||
shortjournal = {Sensors},
|
||||
volume = {20},
|
||||
number = {12},
|
||||
pages = {3382},
|
||||
issn = {1424-8220},
|
||||
doi = {10.3390/s20123382},
|
||||
url = {https://www.mdpi.com/1424-8220/20/12/3382},
|
||||
urldate = {2025-05-16},
|
||||
abstract = {In this study, we investigate a novel idea of using synthetic images of bolts which are generated from a graphical model to train a deep learning model for loosened bolt detection. Firstly, a framework for bolt-loosening detection using image-based deep learning and computer graphics is proposed. Next, the feasibility of the proposed framework is demonstrated through the bolt-loosening monitoring of a lab-scaled bolted joint model. For practicality, the proposed idea is evaluated on the real-scale bolted connections of a historical truss bridge in Danang, Vietnam. The results show that the deep learning model trained by the synthesized images can achieve accurate bolt recognitions and looseness detections. The proposed methodology could help to reduce the time and cost associated with the collection of high-quality training data and further accelerate the applicability of vision-based deep learning models trained on synthetic data in practice.},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\H59BPKEK\10.3390@s20123382.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{garrido2016,
|
||||
title = {The {{Feedforward Short-Time Fourier Transform}}},
|
||||
author = {Garrido, Mario},
|
||||
date = {2016-09},
|
||||
journaltitle = {IEEE Transactions on Circuits and Systems II: Express Briefs},
|
||||
shortjournal = {IEEE Trans. Circuits Syst. II},
|
||||
volume = {63},
|
||||
number = {9},
|
||||
pages = {868--872},
|
||||
issn = {1549-7747, 1558-3791},
|
||||
doi = {10.1109/TCSII.2016.2534838},
|
||||
url = {http://ieeexplore.ieee.org/document/7419878/},
|
||||
urldate = {2025-05-16},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\RD6LN5MR\\Garrido - 2016 - The Feedforward Short-Time Fourier Transform.pdf;C\:\\Users\\damar\\Zotero\\storage\\X8TBD546\\garrido2016.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{zhang2023,
|
||||
title = {Signal {{Enhancement Methods Based}} on {{Wavelet Transform}}, {{Fractional Fourier Transform}} and {{Short-time Fourier Transform}}},
|
||||
author = {Zhang, Xindan and Zheng, Haoyuan},
|
||||
date = {2023-12-31},
|
||||
journaltitle = {Highlights in Science, Engineering and Technology},
|
||||
shortjournal = {HSET},
|
||||
volume = {76},
|
||||
pages = {222--230},
|
||||
issn = {2791-0210},
|
||||
doi = {10.54097/eyfndn07},
|
||||
url = {https://drpress.org/ojs/index.php/HSET/article/view/15890},
|
||||
urldate = {2025-05-16},
|
||||
abstract = {This review paper mainly focuses on different signal enhancement methods such as wavelet transform, fractional Fourier transform (FrFT) and short-time Fourier transform (STFT). First, this paper introduces the concept and importance of signal enhancement, as well as some current issues and challenges. Then, in recent years, the application of the three methods in wavelet transform, fractional Fourier transform and short-time Fourier transform is described. In terms of wavelet transform, this paper discusses the application of wavelet function to image enhancement and the specific steps, and analyzes its advantages and application in signal enhancement. In terms of fractional Fourier transform, this paper introduces its difference from traditional Fourier transform, and discusses its application in combination with adaptive filtering technology and the application of multi-level FrFT in the field of speech enhancement. Finally, in terms of short-time Fourier transform, this paper discusses its application in the fields of image enhancement and speech enhancement. The review paper finally discusses the characteristics, advantages and limitations of these three methods in signal enhancement, and looks forward to the future research directions. Through the research of this review paper, it can provide some reference and guidance for the research in the field of signal enhancement.}
|
||||
}
|
||||
|
||||
@article{kong2018,
|
||||
title = {Tapping and Listening: A New Approach to Bolt Looseness Monitoring},
|
||||
shorttitle = {Tapping and Listening},
|
||||
author = {Kong, Qingzhao and Zhu, Junxiao and Ho, Siu Chun Michael and Song, Gangbing},
|
||||
date = {2018-07-01},
|
||||
journaltitle = {Smart Materials and Structures},
|
||||
shortjournal = {Smart Mater. Struct.},
|
||||
volume = {27},
|
||||
number = {7},
|
||||
pages = {07LT02},
|
||||
issn = {0964-1726, 1361-665X},
|
||||
doi = {10.1088/1361-665X/aac962},
|
||||
url = {https://iopscience.iop.org/article/10.1088/1361-665X/aac962},
|
||||
urldate = {2025-05-16},
|
||||
file = {C:\Users\damar\Zotero\storage\VR74RNZF\kong2018.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{wu2020,
|
||||
title = {Data Fusion Approaches for Structural Health Monitoring and System Identification: {{Past}}, Present, and Future},
|
||||
shorttitle = {Data Fusion Approaches for Structural Health Monitoring and System Identification},
|
||||
author = {Wu, Rih-Teng and Jahanshahi, Mohammad Reza},
|
||||
date = {2020-03-01},
|
||||
journaltitle = {Structural Health Monitoring},
|
||||
shortjournal = {Structural Health Monitoring},
|
||||
volume = {19},
|
||||
number = {2},
|
||||
pages = {552--586},
|
||||
publisher = {SAGE Publications},
|
||||
issn = {1475-9217},
|
||||
doi = {10.1177/1475921718798769},
|
||||
url = {https://doi.org/10.1177/1475921718798769},
|
||||
urldate = {2024-05-07},
|
||||
abstract = {During the past decades, significant efforts have been dedicated to develop reliable methods in structural health monitoring. The health assessment for the target structure of interest is achieved through the interpretation of collected data. At the beginning of the 21st century, the rapid advances in sensor technologies and data acquisition platforms have led to the new era of Big Data, where a huge amount of heterogeneous data are collected by a variety of sensors. The increasing accessibility and diversity of the data resources provide new opportunities for structural health monitoring, while the aggregation of information obtained from multiple sensors to make robust decisions remains a challenging problem. This article presents a comprehensive review of the recent data fusion applications in structural health monitoring. State-of-the-art theoretical concepts and applications of data fusion in structural health monitoring are presented. Challenges for data fusion in structural health monitoring are discussed, and a roadmap is provided for future research in this area.},
|
||||
langid = {english}
|
||||
}
|
||||
|
||||
@article{yang2020,
|
||||
title = {Data-{{Driven Feature Extraction}} for {{Analog Circuit Fault Diagnosis Using}} 1-{{D Convolutional Neural Network}}},
|
||||
author = {Yang, Huahui and Meng, Chen and Wang, Cheng},
|
||||
date = {2020},
|
||||
journaltitle = {IEEE Access},
|
||||
shortjournal = {IEEE Access},
|
||||
volume = {8},
|
||||
pages = {18305--18315},
|
||||
issn = {2169-3536},
|
||||
doi = {10.1109/ACCESS.2020.2968744},
|
||||
url = {https://ieeexplore.ieee.org/document/8966245/},
|
||||
urldate = {2025-05-16},
|
||||
file = {C:\Users\damar\Zotero\storage\3FYS28EI\Yang et al. - 2020 - Data-Driven Feature Extraction for Analog Circuit .pdf}
|
||||
}
|
||||
|
||||
@article{yin2018,
|
||||
title = {Probabilistic {{Damage Detection}} of a {{Steel Truss Bridge Model}} by {{Optimally Designed Bayesian Neural Network}}},
|
||||
author = {Yin, Tao and Zhu, Hong-ping},
|
||||
date = {2018-10-09},
|
||||
journaltitle = {Sensors},
|
||||
shortjournal = {Sensors},
|
||||
volume = {18},
|
||||
number = {10},
|
||||
pages = {3371},
|
||||
issn = {1424-8220},
|
||||
doi = {10.3390/s18103371},
|
||||
url = {https://www.mdpi.com/1424-8220/18/10/3371},
|
||||
urldate = {2024-12-29},
|
||||
abstract = {Excellent pattern matching capability makes artificial neural networks (ANNs) a very promising approach for vibration-based structural health monitoring (SHM). The proper design of the network architecture with the suitable complexity is vital to the ANN-based structural damage detection. In addition to the number of hidden neurons, the type of transfer function used in the hidden layer cannot be neglected for the ANN design. Neural network learning can be further presented in the framework of Bayesian statistics, but the issues of selection for the hidden layer transfer function with respect to the Bayesian neural network has not yet been reported in the literature. In addition, most of the research works in the literature for addressing the predictive distribution of neural network output is only for a single target variable, while multiple target variables are rarely involved. In the present paper, for the purpose of probabilistic structural damage detection, Bayesian neural networks with multiple target variables are optimally designed, and the selection of the number of neurons, and the transfer function in the hidden layer, are carried out simultaneously to achieve a neural network architecture with suitable complexity. Furthermore, the nonlinear network function can be approximately linear by assuming the posterior distribution of network parameters is a sufficiently narrow Gaussian, and then the input-dependent covariance matrix of the predictive distribution of network output can be obtained with the Gaussian assumption for the situation of multiple target variables. Structural damage detection is conducted for a steel truss bridge model to verify the proposed method through a set of numerical case studies.},
|
||||
langid = {english},
|
||||
file = {C:\Users\damar\Zotero\storage\9K8YXV76\a1274f7304475ebcd1c70132b01411b0.pdf.pdf}
|
||||
}
|
||||
|
||||
@inproceedings{yumang2020,
|
||||
title = {Combination of {{Acoustic}} and {{Vibration Sensor Data Using Support Vector Machines}} and {{One-Versus-All Technique Data Fusion}} for {{Detecting Objects}}},
|
||||
booktitle = {Proceedings of the 2020 12th {{International Conference}} on {{Computer}} and {{Automation Engineering}}},
|
||||
author = {Yumang, Analyn N. and Cruz, Geriel Angelo and Fontanilla, Llanz Adeo},
|
||||
date = {2020-05-16},
|
||||
series = {{{ICCAE}} 2020},
|
||||
pages = {56--59},
|
||||
publisher = {Association for Computing Machinery},
|
||||
location = {New York, NY, USA},
|
||||
doi = {10.1145/3384613.3384626},
|
||||
url = {https://doi.org/10.1145/3384613.3384626},
|
||||
urldate = {2024-08-26},
|
||||
abstract = {This paper aims to create a device that will be able to detect the presence of an object and classify the object into human, animal, or vehicle by using the information obtained from acoustic and seismic signals. The specific objectives are to develop a hardware device based from Raspberry Pi Minicomputer with seismic and acoustic sensors and transmit sensor signals to a computer for feature extraction and data fusion, to develop a software using Python, MATLAB, and use Data Fusion with the use of Support Vector Machine with One-Versus-All technique, to accurately classify the object into human, animal (canine), or vehicle, to use statistical treatment using multi-class confusion matrix to determine the F-score or accuracy of the classifiers, as an aid for answering the formulated hypotheses. In the testing phase, blind test was performed for the classifiers, using different gathered samples. The F-score of the human, animal, and vehicle classifiers were, respectively, 93.549\%, 98.305\%, and 100\%. The researchers recommend a ground-mounted seismic sensor for comparison of its F-score contribution with the used seismic sensor. Training the SVM models with different parameters could also lead to potential increase in accuracy, such as the number of k-fold cross validations. SVM can as well be compared to other classifier models.},
|
||||
isbn = {978-1-4503-7678-5},
|
||||
file = {C:\Users\damar\Zotero\storage\M6RVFMLR\yumang2020.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{zhan2021,
|
||||
title = {A {{Step-by-Step Damage Identification Method Based}} on {{Frequency Response Function}} and {{Cross Signature Assurance Criterion}}},
|
||||
author = {Zhan, Jiawang and Zhang, Fei and Siahkouhi, Mohammad},
|
||||
date = {2021-02-03},
|
||||
journaltitle = {Sensors},
|
||||
shortjournal = {Sensors},
|
||||
volume = {21},
|
||||
number = {4},
|
||||
pages = {1029},
|
||||
issn = {1424-8220},
|
||||
doi = {10.3390/s21041029},
|
||||
url = {https://www.mdpi.com/1424-8220/21/4/1029},
|
||||
urldate = {2024-12-29},
|
||||
abstract = {This paper aims to present a method for quantitative damage identification of a simply supported beam, which integrates the frequency response function (FRF) and model updating. The objective function is established using the cross-signature assurance criterion (CSAC) indices of the FRFs between the measurement points and the natural frequency. The CSAC index in the frequency range between the first two frequencies is found to be sensitive to damage. The proposed identification procedure is tried to identify the single and multiple damages. To verify the effectiveness of the method, numerical simulation and laboratory testing were conducted on some model steel beams with simulated damage by cross-cut sections, and the identification results were compared with the real ones. The analysis results show that the proposed damage evaluation method is insensitive to the systematic test errors and is able to locate and quantify the damage within the beam structures step by step.},
|
||||
langid = {english},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\3UBKNCJL\\zhan2021.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\IFFPNAQV\\Zhan et al. - 2021 - A Step-by-Step Damage Identification Method Based .pdf}
|
||||
}
|
||||
|
||||
@article{zhang2020,
|
||||
title = {Autonomous Bolt Loosening Detection Using Deep Learning},
|
||||
author = {Zhang, Yang and Sun, Xiaowei and Loh, Kenneth J and Su, Wensheng and Xue, Zhigang and Zhao, Xuefeng},
|
||||
date = {2020-01},
|
||||
journaltitle = {Structural Health Monitoring},
|
||||
shortjournal = {Structural Health Monitoring},
|
||||
volume = {19},
|
||||
number = {1},
|
||||
pages = {105--122},
|
||||
issn = {1475-9217, 1741-3168},
|
||||
doi = {10.1177/1475921719837509},
|
||||
url = {https://journals.sagepub.com/doi/10.1177/1475921719837509},
|
||||
urldate = {2025-05-16},
|
||||
abstract = {Machine vision-based structural health monitoring is gaining popularity due to the rich information one can extract from video and images. However, the extraction of characteristic parameters from images often requires manual intervention, thereby limiting its scalability and effectiveness. In contrast, deep learning overcomes the aforementioned shortcoming in that it can autonomously extract feature parameters (e.g. structural damage) from image datasets. Therefore, this study aims to validate the use of machine vision and deep learning for structural health monitoring by focusing on a particular application of detecting bolt loosening. First, a dataset that contains 300 images was collected. The dataset includes two bolt states, namely, tight and loosened. Second, a faster region-based convolutional neural network was trained and evaluated. The test results showed that the average precision of bolt damage detection is 0.9503. Thereafter, bolts were loosened to various screw heights, and images obtained from different angles, lighting conditions, and vibration conditions were identified separately. The trained model was then employed to validate that bolt loosening could be detected with sufficient accuracy using various types of images. Finally, the trained model was connected with a webcam to realize real-time bolt loosening damage monitoring.},
|
||||
langid = {english},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\4W5HFTDL\\Zhang et al. - 2020 - Autonomous bolt loosening detection using deep lea.pdf;C\:\\Users\\damar\\Zotero\\storage\\C7HSH97N\\10.1177@1475921719837509.pdf.pdf}
|
||||
}
|
||||
|
||||
@article{zhang2020a,
|
||||
title = {Autonomous Bolt Loosening Detection Using Deep Learning},
|
||||
author = {Zhang, Yang and Sun, Xiaowei and Loh, Kenneth J and Su, Wensheng and Xue, Zhigang and Zhao, Xuefeng},
|
||||
date = {2020-01},
|
||||
journaltitle = {Structural Health Monitoring},
|
||||
shortjournal = {Structural Health Monitoring},
|
||||
volume = {19},
|
||||
number = {1},
|
||||
pages = {105--122},
|
||||
issn = {1475-9217, 1741-3168},
|
||||
doi = {10.1177/1475921719837509},
|
||||
url = {https://journals.sagepub.com/doi/10.1177/1475921719837509},
|
||||
urldate = {2025-05-16},
|
||||
abstract = {Machine vision-based structural health monitoring is gaining popularity due to the rich information one can extract from video and images. However, the extraction of characteristic parameters from images often requires manual intervention, thereby limiting its scalability and effectiveness. In contrast, deep learning overcomes the aforementioned shortcoming in that it can autonomously extract feature parameters (e.g. structural damage) from image datasets. Therefore, this study aims to validate the use of machine vision and deep learning for structural health monitoring by focusing on a particular application of detecting bolt loosening. First, a dataset that contains 300 images was collected. The dataset includes two bolt states, namely, tight and loosened. Second, a faster region-based convolutional neural network was trained and evaluated. The test results showed that the average precision of bolt damage detection is 0.9503. Thereafter, bolts were loosened to various screw heights, and images obtained from different angles, lighting conditions, and vibration conditions were identified separately. The trained model was then employed to validate that bolt loosening could be detected with sufficient accuracy using various types of images. Finally, the trained model was connected with a webcam to realize real-time bolt loosening damage monitoring.},
|
||||
langid = {english},
|
||||
file = {C\:\\Users\\damar\\Zotero\\storage\\PC2JD3K8\\10.1177@1475921719837509.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\Y98JZ4NQ\\Zhang et al. - 2020 - Autonomous bolt loosening detection using deep lea.pdf}
|
||||
}
|
||||
|
||||
@online{zotero-437,
|
||||
title = {Scipy.Fft.Fft — {{SciPy}} v1.13.0 {{Manual}}},
|
||||
url = {https://docs.scipy.org/doc/scipy/reference/generated/scipy.fft.fft.html},
|
||||
urldate = {2024-05-07}
|
||||
}
|
||||
|
||||
@thesis{zotero-622,
|
||||
type = {thesis}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
\chapter{PENDAHULUAN}
|
||||
|
||||
\section{Latar Belakang}
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc consequat lectus dolor, a commodo odio suscipit nec. Aliquam posuere elit eget tellus dapibus, auctor ornare mi porttitor. Donec auctor aliquet nisl, quis convallis ligula rutrum id. Duis tortor ipsum, scelerisque vestibulum viverra eu, maximus vel mi. Nullam volutpat nunc et varius tempor. Vivamus convallis mi eros, aliquam semper dui tincidunt a. Morbi nunc dui, accumsan ac arcu nec, condimentum efficitur mauris. Etiam sed mauris semper, volutpat justo eu, placerat mauris. Suspendisse at erat eu arcu gravida mattis et id nunc. Aliquam malesuada magna odio, ac dictum erat vestibulum a. Mauris vel nisi sit amet elit tempor bibendum sit amet a velit. Morbi dignissim facilisis placerat.\par
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.5\linewidth]{frontmatter/img/slice1.jpg}
|
||||
\caption{Enter Caption}
|
||||
\label{fig:enter-label}
|
||||
\end{figure}
|
||||
|
||||
Pellentesque vel accumsan lorem, id vulputate metus. Nulla mollis orci ante, et euismod erat venenatis eget. Proin tempus lobortis feugiat. Fusce vitae sem quis lacus iaculis dignissim ut eget turpis. Vivamus ut nisl in enim porttitor fringilla vel et mauris. Mauris quis porttitor magna. Pellentesque molestie viverra arcu at tincidunt. Maecenas non elit arcu.\par
|
||||
|
||||
Etiam feugiat enim sit amet tortor interdum lobortis. Curabitur elementum faucibus sapien. Morbi eget facilisis lorem. In sed suscipit metus. Etiam porttitor, libero sit amet sodales hendrerit, libero dolor hendrerit nulla, sed convallis risus leo posuere metus. Cras gravida ac elit viverra ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Maecenas dictum urna elit, nec eleifend nulla mattis sit amet. Pellentesque suscipit metus vitae leo suscipit, a vehicula quam pretium. Sed eu est ut risus convallis hendrerit a vulputate justo. Nulla sollicitudin quam ut risus euismod, quis consequat dui mattis. Mauris id eros varius, pellentesque quam quis, venenatis tellus. Nulla vitae condimentum nisl. Vestibulum suscipit scelerisque dui, non posuere purus finibus nec. Nulla ultrices felis quis vestibulum porta. Suspendisse potenti.\par
|
||||
|
||||
Nam tempus tincidunt interdum. Pellentesque at ligula ac massa semper efficitur vitae non ante. Suspendisse potenti. Cras vitae interdum erat, nec facilisis urna. Nulla commodo porttitor tellus non posuere. Vestibulum tristique ut urna quis porttitor. Sed pellentesque lectus sit amet ultrices aliquam. Aliquam erat volutpat. Nam dictum eu erat a mollis. Donec eget nulla vel risus aliquet suscipit sed at libero.\par
|
||||
|
||||
|
||||
|
||||
Maecenas hendrerit pharetra bibendum. Donec ut tortor ac augue aliquam ullamcorper nec id eros. Quisque consectetur elementum ipsum vitae posuere. Sed ultricies ipsum nibh, vitae volutpat neque bibendum at. Morbi dictum metus eu bibendum malesuada. Nam scelerisque purus erat, id dictum nisl pretium vitae. Curabitur finibus commodo dui ac molestie. In sed sem ac dui dapibus ullamcorper. Aenean molestie nulla eu lorem maximus hendrerit. Vivamus viverra velit dolor, in vehicula eros facilisis at. Vivamus in rhoncus sem.
|
||||
\section{Lingkup Penelitian}
|
||||
\section{Tujuan Penelitian}
|
||||
\section{Manfaat Penelitian}
|
||||
% \subsubsection{Dolor}
|
||||
10
latex/chapters/en/02_literature_review/index.tex
Normal file
10
latex/chapters/en/02_literature_review/index.tex
Normal file
@@ -0,0 +1,10 @@
|
||||
\chapter{LITERATURE REVIEW AND THEORETICAL FOUNDATION}
|
||||
\section{Literature Review}
|
||||
\input{chapters/id/02_literature_review/literature_review/abdeljaber2017}
|
||||
|
||||
\section{Theoretical Foundation}
|
||||
\input{chapters/id/02_literature_review/theoritical_foundation/stft}
|
||||
\input{chapters/id/02_literature_review/theoritical_foundation/machine_learning}
|
||||
|
||||
\bigskip
|
||||
These theoretical foundations provide the methodological framework for implementing and evaluating the proposed damage localization system in this research. The combination of time-frequency analysis using STFT and classical machine learning classifiers enables an efficient and interpretable approach to structural health monitoring.
|
||||
@@ -0,0 +1,6 @@
|
||||
Traditional structural health monitoring methods often rely on hand-crafted features and manually tuned classifiers, which pose challenges in terms of generalization, reliability, and computational efficiency. As highlighted by [Author(s), Year], these approaches frequently require a trial-and-error process for feature and classifier selection, which not only reduces their robustness across structures but also hinders their deployment in real-time applications due to the computational load of the feature extraction phase.
|
||||
|
||||
[Author(s), Year] introduced a CNN-based structural damage detection approach validated through a large-scale grandstand simulator at Qatar University. The structure, designed to replicate modern stadiums, was equipped with 30 accelerometers and subjected to controlled damage by loosening beam-to-girder bolts. Acceleration data, collected under band-limited white noise excitation and sampled at 1024 Hz, were segmented into 128-sample frames for training localized 1D CNNs—one per joint—creating a decentralized detection system. Across two experimental phases, involving both partial and full-structure monitoring, the method demonstrated high accuracy in damage localization, achieving a training classification error of just 0.54\%. While performance remained strong even under double-damage scenarios, some misclassifications occurred in symmetric or adjacent damage cases. Overall, the proposed method presents a highly efficient and accurate solution for real-time SHM applications.
|
||||
|
||||
In the context of this thesis, the dataset and experimental setup introduced by [Author(s), Year] form the foundation for comparative analysis and algorithm testing. The authors have not only demonstrated the efficacy of a compact 1D CNN-based system for vibration-based structural damage detection, but also highlighted the value of using output-only acceleration data—a constraint shared in this thesis’s methodology. The decentralized design of their system, which allows each CNN to process only locally available data, is particularly aligned with this thesis's focus on efficient, sensor-level data analysis without requiring full-system synchronization. Furthermore, since the authors indicate plans to publicly release their dataset and source code, this thesis leverages that open data for applying alternative analysis methods such as support vector machines (SVM) or frequency domain feature extraction techniques, allowing a direct performance comparison between classical and deep learning-based SHM approaches. Thus, this work serves as both a benchmark reference and a data source in the development and evaluation of more accessible, lower-complexity alternatives for structural health monitoring systems.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
\subsection{Classification Algorithms}
|
||||
|
||||
This research evaluates five classical machine learning algorithms to perform the classification task of damage localization. Each algorithm has different strengths and limitations, and their performance is benchmarked to identify the most suitable one for the given dataset.
|
||||
|
||||
\subsubsection{Support Vector Machine (SVM)}
|
||||
|
||||
SVM is a supervised learning algorithm that seeks an optimal hyperplane that separates data into classes with maximum margin. SVM performs well in high-dimensional spaces and is robust to overfitting, especially in cases with a clear margin of separation.
|
||||
|
||||
SVM is appropriate for vibration signal classification due to its capability to handle nonlinear decision boundaries when equipped with kernel functions.
|
||||
|
||||
\subsubsection{K-Nearest Neighbors (KNN)}
|
||||
|
||||
KNN is a non-parametric, instance-based learning algorithm. It classifies a new data point based on the majority vote of its $k$ nearest neighbors in the feature space. Although simple, KNN can be effective when the data is well-distributed and class boundaries are smooth.
|
||||
|
||||
Its performance is sensitive to the choice of $k$ and distance metric. For high-dimensional data like STFT features, dimensionality reduction or careful scaling may be required.
|
||||
|
||||
\subsubsection{Decision Tree (DT)}
|
||||
|
||||
Decision Tree is a rule-based classifier that splits data into classes using feature thresholds. It builds a tree where each internal node represents a feature, each branch a decision rule, and each leaf a class label. DTs are easy to interpret and can capture non-linear relationships.
|
||||
|
||||
However, they are prone to overfitting, especially with noisy or small datasets.
|
||||
|
||||
\subsubsection{Random Forest (RF)}
|
||||
|
||||
Random Forest is an ensemble learning method based on constructing multiple decision trees during training and outputting the mode of the classes for classification. It improves the generalization capability of individual trees and reduces overfitting.
|
||||
|
||||
RF is suitable for damage detection as it provides robustness to noise and variance, making it ideal for real-world sensor data.
|
||||
|
||||
\subsubsection{Naïve Bayes (NB)}
|
||||
|
||||
Naïve Bayes is a probabilistic classifier based on Bayes' theorem, assuming feature independence. Despite its simplicity, it often performs well in high-dimensional problems and with small datasets.
|
||||
|
||||
NB is particularly effective when class-conditional independence holds approximately, which may occur when STFT features are well-separated in distribution.
|
||||
@@ -0,0 +1,11 @@
|
||||
\subsection{Short-Time Fourier Transform (STFT)}
|
||||
|
||||
The Short-Time Fourier Transform (STFT) is a fundamental technique used to analyze non-stationary signals, such as those generated by structures under dynamic load or white noise excitation. While the traditional Fourier Transform provides frequency-domain information, it lacks time resolution. STFT overcomes this limitation by applying the Fourier Transform over short overlapping segments of the signal, thereby producing a time-frequency representation.
|
||||
|
||||
Mathematically, the STFT of a signal $x(t)$ is given by:
|
||||
\begin{equation}
|
||||
X(t, \omega) = \int_{-\infty}^{\infty} x(\tau) w(\tau - t) e^{-j \omega \tau} d\tau
|
||||
\end{equation}
|
||||
where $w(\tau - t)$ is a window function centered at time $t$, and $\omega$ is the angular frequency.
|
||||
|
||||
In this study, the STFT is employed to extract the time-frequency features of the vibration signals collected from the structure. These features are then used as inputs to machine learning classifiers. This process captures localized frequency content over time, which is crucial in identifying structural changes due to damage.
|
||||
31
latex/chapters/id/02_literature_review/index.tex
Normal file
31
latex/chapters/id/02_literature_review/index.tex
Normal file
@@ -0,0 +1,31 @@
|
||||
\chapter{TINJAUAN PUSTAKA DAN LANDASAN TEORI}
|
||||
\section{Tinjauan Pustaka}
|
||||
% \input{chapters/id/02_literature_review/index}
|
||||
Metode monitor kesehatan struktur (SHM) tradisional sering kali mengandalkan fitur yang dibuat secara manual dan pengklasifikasi (\textit{classifier}) yang diatur secara manual, yang menimbulkan tantangan dalam hal generalisasi, keandalan, dan efisiensi komputasi. Seperti yang disorot oleh \textcite{abdeljaber2017}, pendekatan-pendekatan ini umumnya memerlukan proses \textit{trial-and-error} dalam pemilihan fitur dan pengklasifikasi yang tidak hanya mengurangi ketangguhan metode tersebut di berbagai jenis struktur, tetapi juga menghambat penerapannya dalam aplikasi \textit{real-time} karena beban komputasi pada fase ekstraksi fitur.
|
||||
|
||||
\textcite{abdeljaber2017} memperkenalkan pendekatan deteksi kerusakan struktur berbasis CNN yang divalidasi melalui \textit{large-scale grandstand simulator} di Qatar University. Struktur tersebut dirancang untuk mereplikasi stadion modern, dilengkapi dengan 30 akselerometer, dan dikenai kerusakan terkontrol melalui pelonggaran baut sambungan antara balok dan gelagar. Data percepatan yang dikumpulkan di bawah eksitasi \textit{band-limited white noise} dan disampel pada 1024 Hz, kemudian dibagi menjadi bingkai berukuran 128 sampel untuk melatih 1-D CNN yang dilokalkan—satu untuk setiap sambungan (\textit{joint})—menciptakan sistem deteksi terdesentralisasi. Dalam dua fase (skenario) eksperimen, yang melibatkan pemantauan sebagian dan seluruh struktur, metode ini menunjukkan akurasi tinggi dalam pelokalisasian kerusakan, dengan kesalahan klasifikasi saat pelatihan hanya sebesar 0.54\%. Meskipun performa tetap andal bahkan dalam skenario kerusakan ganda, beberapa salah klasifikasi terjadi pada kasus kerusakan yang simetris atau berdekatan. Secara keseluruhan, metode yang diusulkan ini menawarkan solusi yang sangat efisien dan akurat untuk aplikasi SHM secara \textit{real-time}.
|
||||
|
||||
\textcite{eraliev2022} memperkenalkan teknik baru untuk mendeteksi dan mengidentifikasi tahap awal kelonggaran pada sambungan baut ganda menggunakan algoritma pembelajaran mesin. Studi ini difokuskan pada sebuah motor yang dikencangkan dengan empat baut dan dioperasikan dalam tiga kondisi putaran berbeda (800 rpm, 1000 rpm, dan 1200 rpm) guna mengumpulkan data getaran yang cukup untuk dianalisis. Studi ini menyoroti keterbatasan metode inspeksi tradisional, seperti inspeksi visual dan teknik pukulan palu, yang dinilai memakan waktu dan rentan terhadap gangguan kebisingan lingkungan \parencite{j.h.park2015, kong2018}.
|
||||
|
||||
Untuk meningkatkan akurasi deteksi, \textcite{eraliev2022} menggunakan transformasi Fourier waktu-singkat (STFT) sebagai metode ekstraksi fitur, yang menghasilkan 513 fitur frekuensidari sinyal getaran. Berbagai pengklasifikasi model pemelajaran mesin dilatih dan dievaluasi, dengan hasil menunjukkan performa yang memuaskan dalam mendeteksi baut longgar serta mengidentifikasi baut spesifik yang mulai kehilangan tegangan awal (preload). Studi ini juga menekankan pentingnya penempatan sensor, karena posisi sensor sangat memengaruhi akurasi dari pengklasifikasi yang digunakan \parencite{pham2020}. Temuan penelitian ini menunjukkan bahwa pengklasifikasi pada studi ini dapat digunakan untuk sistem pemantauan baut yang longgar secara daring (\textit{online monitoring}) pada pengaplikasian di masa depan, sehingga berkontribusi dalam pengembangan sistem pemantauan kesehatan struktur yang lebih baik.
|
||||
|
||||
STFT diidentifikasi sebagai metode peningkatan sinyal yang efektif, bersanding dengan \textit{wavelet transform} dan \textit{fractional fourier transform}. Keunggulan STFT terletak pada kemampuannya dalam menganalisis sinyal non-stasioner secara lokal, yang dapat meningkatkan kualitas fitur dalam mengenali pola, termasuk dalam tugas-tugas klasifikasi berbasis respon getaran struktur \parencite{zhang2023}.
|
||||
|
||||
Lebih lanjut, pendekatan yang dikembangkan oleh \textcite{garrido2016} menunjukkan potensi untuk menjembatani efektivitas fitur domain waktu-frekuensi dengan efisiensi pemrosesan model \textit{end-to-end}. Model ini mengintegrasikan proses STFT langsung ke dalam arsitektur jaringan \textit{feedforward}, memungkinkan sistem untuk tetap menggunakan representasi waktu-frekuensi namun tanpa biaya komputasi berat dari transformasi eksplisit di luar jaringan. Dengan demikian, pendekatan ini menawarkan jalan tengah yang menjanjikan antara kompleksitas 1-D CNN berbasis \textit{real-time raw signal} dan keunggulan struktural dari representasi domain frekuensi. Dalam konteks penelitian ini, meskipun transformasi dilakukan secara eksplisit, gagasan ini mendukung hipotesis bahwa representasi STFT dapat menjadi alternatif yang efisien dan kompetitif dibanding pemrosesan sinyal mentah dalam skenario pembelajaran mesin dengan sensor terbatas.
|
||||
|
||||
|
||||
% \indent Metode berbasis getaran merupakan salah satu teknik paling umum dalam sistem pemantauan kesehatan struktur (SHM) karena kemampuannya dalam mendeteksi perubahan kondisi struktur secara non-destruktif. Pendekatan ini bergantung pada prinsip bahwa kerusakan pada suatu struktur, seperti kelonggaran sambungan atau penurunan kekakuan elemen, akan mengubah karakteristik dinamikanya, seperti frekuensi alami, bentuk mode, dan respons getaran terhadap eksitasi tertentu.
|
||||
|
||||
% \indent Salah satu jenis kerusakan struktural yang umum dijumpai dalam sambungan mekanis adalah baut yang longgar akibat beban dinamis berulang, seperti getaran atau kejutan. Kondisi ini dapat menyebabkan penurunan integritas struktur dan berujung pada kegagalan sistem jika tidak terdeteksi sejak dini. Oleh karena itu, deteksi baut yang longgar secara dini telah menjadi perhatian utama dalam bidang teknik sipil, mesin, maupun dirgantara [1, 11].
|
||||
|
||||
\indent Teknik deteksi berbasis getaran terbukti efektif dalam mengidentifikasi tanda-tanda awal anomali pada sambungan. Hal ini dilakukan dengan menganalisis perubahan spektrum frekuensi atau energi getaran antar kondisi sehat dan rusak. Dalam praktiknya, data getaran biasanya dikumpulkan melalui akselerometer yang dipasang pada titik-titik tertentu dalam struktur. Perubahan karakteristik getaran, seperti penurunan amplitudo, pergeseran frekuensi dominan, atau pola spektral lainnya, menjadi indikator keberadaan dan lokasi kerusakan. Misalnya, studi oleh \textcite{zhao2019, eraliev2022} menunjukkan bahwa perubahan rotasi kepala baut akibat kelonggaran dapat dikaitkan dengan pola getaran tertentu. Sementara itu, pendekatan yang lebih umum dalam domain teknik sipil adalah memanfaatkan sinyal akselerasi dari sambungan kolom atau balok sebagai masukan untuk sistem klasifikasi kerusakan berbasis pembelajaran mesin.
|
||||
|
||||
\indent Kelebihan utama dari pendekatan berbasis getaran dibanding metode visual atau inspeksi manual adalah kemampuannya dalam mendeteksi kerusakan mikro secara lebih dini, bahkan sebelum tampak secara fisik. Namun, tantangan tetap ada, terutama dalam penempatan sensor yang optimal, pemrosesan sinyal, dan interpretasi pola dinamik yang kompleks dalam struktur grid. Oleh karena itu, kombinasi antara teknik transformasi sinyal seperti Short-Time Fourier Transform (STFT) dan algoritma pembelajaran mesin menjadi arah baru yang menjanjikan dalam riset SHM masa kini.
|
||||
|
||||
\section{Dasar Teori}
|
||||
\input{chapters/id/02_literature_review/theoritical_foundation/stft}
|
||||
\input{chapters/id/02_literature_review/theoritical_foundation/role_windowing}
|
||||
\input{chapters/id/02_literature_review/theoritical_foundation/hann}
|
||||
\input{chapters/id/02_literature_review/theoritical_foundation/machine_learning}
|
||||
|
||||
Dasar teori ini memberikan kerangka metodologi untuk mengimplementasi dan mengevaluasi usulan sistem lokalisasi kerusakan pada penelitian ini. Kokmbinasi dari analisis waktu-frekuensi menggunakan STFT dan klasifikasi pemelajaran mesin klasik memungkinkan ketercapaian monitor kesehatan struktur yang efisien dan mudah diterapkan.
|
||||
@@ -0,0 +1,3 @@
|
||||
Metode monitor kesehatan struktur (SHM) tradisional sering kali mengandalkan fitur yang dibuat secara manual dan pengklasifikasi (\textit{classifier}) yang diatur secara manual, yang menimbulkan tantangan dalam hal generalisasi, keandalan, dan efisiensi komputasi. Seperti yang disorot oleh \textcite{abdeljaber2017}, pendekatan-pendekatan ini umumnya memerlukan proses \textit{trial-and-error} dalam pemilihan fitur dan pengklasifikasi yang tidak hanya mengurangi ketangguhan metode tersebut di berbagai jenis struktur, tetapi juga menghambat penerapannya dalam pengaplikasian secara \textit{real-time} karena beban komputasi pada fase ekstraksi fitur.
|
||||
|
||||
\textcite{abdeljaber2017} memperkenalkan pendekatan deteksi kerusakan struktur berbasis CNN yang divalidasi melalui \textit{large-scale grandstand simulator} di Qatar University. Struktur tersebut dirancang untuk mereplikasi stadion modern, dilengkapi dengan 30 akselerometer, dan dikenai kerusakan terkontrol melalui pelonggaran baut sambungan antara balok dan gelagar. Data percepatan yang dikumpulkan di bawah eksitasi \textit{band-limited white noise} dan disampel pada 1024 Hz, kemudian dibagi menjadi bingkai berukuran 128 sampel untuk melatih 1-D CNN yang dilokalkan—satu untuk setiap sambungan (\textit{joint})—menciptakan sistem deteksi terdesentralisasi. Dalam dua fase (skenario) eksperimen, yang melibatkan pemantauan sebagian dan seluruh struktur, metode ini menunjukkan akurasi tinggi dalam pelokalisasian kerusakan, dengan kesalahan klasifikasi saat pelatihan hanya sebesar 0.54\%. Meskipun performa tetap andal bahkan dalam skenario kerusakan ganda, beberapa salah klasifikasi terjadi pada kasus kerusakan yang simetris atau berdekatan. Secara keseluruhan, metode yang diusulkan ini menawarkan solusi yang sangat efisien dan akurat untuk aplikasi SHM secara \textit{real-time}.
|
||||
@@ -0,0 +1,13 @@
|
||||
Metode monitor kesehatan struktur (SHM) tradisional sering kali mengandalkan fitur yang dibuat secara manual dan pengklasifikasi (\textit{classifier}) yang diatur secara manual, yang menimbulkan tantangan dalam hal generalisasi, keandalan, dan efisiensi komputasi. Seperti yang disorot oleh \textcite{abdeljaber2017}, pendekatan-pendekatan ini umumnya memerlukan proses \textit{trial-and-error} dalam pemilihan fitur dan pengklasifikasi yang tidak hanya mengurangi ketangguhan metode tersebut di berbagai jenis struktur, tetapi juga menghambat penerapannya dalam pengaplikasian secara \textit{real-time} karena beban komputasi pada fase ekstraksi fitur.
|
||||
|
||||
\textcite{abdeljaber2017} memperkenalkan pendekatan deteksi kerusakan struktur berbasis CNN yang divalidasi melalui \textit{large-scale grandstand simulator} di Qatar University. Struktur tersebut dirancang untuk mereplikasi stadion modern, dilengkapi dengan 30 akselerometer, dan dikenai kerusakan terkontrol melalui pelonggaran baut sambungan antara balok dan gelagar. Data percepatan yang dikumpulkan di bawah eksitasi \textit{band-limited white noise} dan disampel pada 1024 Hz, kemudian dibagi menjadi bingkai berukuran 128 sampel untuk melatih 1-D CNN yang dilokalkan—satu untuk setiap sambungan (\textit{joint})—menciptakan sistem deteksi terdesentralisasi. Dalam dua fase (skenario) eksperimen, yang melibatkan pemantauan sebagian dan seluruh struktur, metode ini menunjukkan akurasi tinggi dalam pelokalisasian kerusakan, dengan kesalahan klasifikasi saat pelatihan hanya sebesar 0.54\%. Meskipun performa tetap andal bahkan dalam skenario kerusakan ganda, beberapa salah klasifikasi terjadi pada kasus kerusakan yang simetris atau berdekatan. Secara keseluruhan, metode yang diusulkan ini menawarkan solusi yang sangat efisien dan akurat untuk aplikasi SHM secara\textit{real-time}.
|
||||
|
||||
\indent Metode berbasis getaran merupakan salah satu teknik paling umum dalam sistem pemantauan kesehatan struktur (SHM) karena kemampuannya dalam mendeteksi perubahan kondisi struktur secara non-destruktif. Pendekatan ini bergantung pada prinsip bahwa kerusakan pada suatu struktur, seperti kelonggaran sambungan atau penurunan kekakuan elemen, akan mengubah karakteristik dinamikanya, seperti frekuensi alami, bentuk mode, dan respons getaran terhadap eksitasi tertentu.
|
||||
|
||||
\indent Salah satu jenis kerusakan struktural yang umum dijumpai dalam sambungan mekanis adalah kelonggaran baut akibat beban dinamis berulang, seperti getaran atau kejutan. Kondisi ini dapat menyebabkan penurunan integritas struktur dan berujung pada kegagalan sistem jika tidak terdeteksi sejak dini. Oleh karena itu, deteksi kelonggaran baut secara dini telah menjadi perhatian utama dalam bidang teknik sipil, mesin, maupun dirgantara [1, 11].
|
||||
|
||||
\indent Teknik deteksi berbasis getaran terbukti efektif dalam mengidentifikasi tanda-tanda awal kelonggaran sambungan. Hal ini dilakukan dengan menganalisis perubahan spektrum frekuensi atau energi getaran antar kondisi sehat dan rusak. Dalam praktiknya, data getaran biasanya dikumpulkan melalui akselerometer yang dipasang pada titik-titik tertentu dalam struktur. Perubahan karakteristik getaran, seperti penurunan amplitudo, pergeseran frekuensi dominan, atau pola spektral lainnya, menjadi indikator keberadaan dan lokasi kerusakan.
|
||||
|
||||
\indent Sejumlah penelitian telah menerapkan teknik ini dalam konteks struktur kompleks seperti sambungan multi-baut atau grid struktural. Misalnya, studi oleh Zhao et al. [10] menunjukkan bahwa perubahan rotasi kepala baut akibat kelonggaran dapat dikaitkan dengan pola getaran tertentu. Sementara itu, pendekatan yang lebih umum dalam domain teknik sipil adalah memanfaatkan sinyal akselerasi dari sambungan kolom atau balok sebagai masukan untuk sistem klasifikasi kerusakan berbasis pembelajaran mesin [12].
|
||||
|
||||
\indent Kelebihan utama dari pendekatan berbasis getaran dibanding metode visual atau inspeksi manual adalah kemampuannya dalam mendeteksi kerusakan mikro secara lebih dini, bahkan sebelum tampak secara fisik. Namun, tantangan tetap ada, terutama dalam penempatan sensor yang optimal, pemrosesan sinyal, dan interpretasi pola dinamik yang kompleks dalam struktur grid. Oleh karena itu, kombinasi antara teknik transformasi sinyal seperti Short-Time Fourier Transform (STFT) dan algoritma pembelajaran mesin menjadi arah baru yang menjanjikan dalam riset SHM masa kini.
|
||||
@@ -0,0 +1,20 @@
|
||||
\subsubsection{Hann window}
|
||||
Salah satu fungsi \textit{windowing} yang paling umum digunakan dalam STFT adalah \textit{Hann window}. Jendela ni adalah jenis jendela kosinus yang memberikan hasil yang baik antara resolusi frekuensi dan kebocoran spektral. \textit{Hann windowing} diskret dengan panjang $N$ didefinisikan sebagai:
|
||||
|
||||
\begin{equation}
|
||||
w(n) = 0{.}5 \left(1 - \cos\left( \frac{2\pi n}{N - 1} \right) \right), \quad 0 \leq n \leq N - 1
|
||||
\end{equation}
|
||||
|
||||
Fungsi ini secara halus meruncingkan sinyal menjadi nol di kedua ujungnya, sehingga mengurangi \textit{side lobe} dalam domain frekuensi sambil mempertahankan lebar \textit{lobe} utama yang relatif sempit. Dibandingkan dengan jendela persegi (rectangular window) yang memiliki tepi tajam, jendela Hann mengurangi fenomena Gibbs dan sangat cocok untuk aplikasi yang melibatkan estimasi spektral.
|
||||
|
||||
% \subsubsection*{Alasan Penggunaan dalam STFT}
|
||||
|
||||
% Jendela Hann sangat efektif digunakan dalam STFT karena keseimbangannya antara pelokalan waktu dan frekuensi:
|
||||
|
||||
% \begin{itemize}
|
||||
% \item \textbf{Lebar lobe utama}: Menentukan resolusi frekuensi. Jendela Hann memiliki lobe utama yang sedikit lebih lebar dibandingkan beberapa alternatif, yang berarti resolusinya sedikit berkurang namun kebocoran spektralnya lebih baik ditekan.
|
||||
% \item \textbf{Redaman side lobe}: Side lobe pertama sekitar -31 dB, yang secara signifikan mengurangi kebocoran dibandingkan jendela persegi.
|
||||
% \item \textbf{Kelembutan dalam domain waktu}: Turunan pertama yang kontinu mengurangi transisi mendadak pada tepi segmen sinyal yang dijendela.
|
||||
% \end{itemize}
|
||||
|
||||
% Hal ini membuat jendela Hann cocok untuk menganalisis sinyal dengan konten frekuensi yang berubah secara halus, seperti sinyal getaran, suara, atau sinyal biomedis.
|
||||
@@ -0,0 +1,45 @@
|
||||
\subsection{Algoritma Klasifikasi}
|
||||
|
||||
Penelitian ini mengevaluasi lima algoritma pemelajaran mesin klasik untuk melakukan tugas pengklasifikasian terhadap lokalisasi kerusakan. Setiap algoritma memiliki keunggulan dan limitasi masing-masing, dan performa untuk setiap algoritma dijadikan tolok ukur untuk mengidentifikasi manakah algoritma yang paling sesuai untuk setiap \textit{dataset} yang diberikan.
|
||||
|
||||
\subsubsection{Support Vector Machine (SVM)}
|
||||
|
||||
Mesin vektor pendukung (SVM) adalah sebuah algoritma pemelajaran mesin terarah yang mencari \textit{hyperplane} optimal dengan cara memisahkan data ke dalam kelas-kelas dengan margin maksimum. SVM bekerja dengan baik pada ruang dimensi tinggi dan cukup kokoh terhadap \textit{overfitting}, terutama pada kasus yang membutuhkan batasan margin secara jelas \parencite{cortes1995}.
|
||||
|
||||
SVM sesuai untuk klasifikasi sinyal getaran karena kemampuannya untuk mengatasi keputusan batasan-batasan non-linier apabila dilengkapi dengan fungsi kernel, seperti fungsi kernel berbasis radial (RBF).
|
||||
|
||||
\subsubsection{K-Nearest Neighbors (KNN)}
|
||||
|
||||
KNN merupakan sebuah algoritma pemelajaran non-parametrik, berbasis contoh. Algoritma ini mengklasifikasi titik data yang berbasis pada pungutan suara terbanyak dari tetangga terdekat $k$ pada ruang fitur. Meskipun dinilai sederhana, KNN dapat dinilai efektif ketika datanya terdistribusi dengan baik dan batasan-batasan pada kelasnya merata.
|
||||
|
||||
Performa algoritma ini sensitif pada pemilihan $k$ dan jarak metriknya. Untuk data dengan dimensi tinggi seperti fitur STFT, mungkin diperlukan optimalisasi atau penskalaan dimensi.
|
||||
|
||||
\subsubsection{Decision Tree (DT)}
|
||||
|
||||
Decision Tree adalah algoritma pemelajaran terarah (\textit{supervised learning}) berbasis struktur pohon, di mana setiap \textit{node} internal mewakili suatu keputusan berdasarkan atribut tertentu, setiap cabang mewakili hasil dari keputusan tersebut, dan setiap daun (leaf node) mewakili label kelas. Algoritma ini secara rekursif membagi data ke dalam subset berdasarkan fitur yang memberikan informasi paling tinggi, seperti diukur dengan Gini index atau entropi (information gain).
|
||||
|
||||
Kelebihan dari Decision Tree adalah interpretabilitasnya yang tinggi dan kemampuannya menangani data numerik maupun kategorikal. Namun, pohon keputusan rentan terhadap \textit{overfitting}, terutama jika kedalaman pohon tidak dikontrol.
|
||||
|
||||
\subsubsection{Random Forest (RF)}
|
||||
|
||||
Random Forest adalah metode ensemble yang terdiri dari banyak Decision Tree yang dilatih pada subset data dan subset fitur yang diacak. Setiap pohon dalam hutan memberikan prediksi, dan hasil akhir ditentukan melalui agregasi (misalnya, voting mayoritas untuk klasifikasi).
|
||||
|
||||
Dengan menggabungkan banyak pohon, Random Forest mengurangi varian model dan meningkatkan generalisasi. Teknik ini efektif untuk dataset yang kompleks dan sangat cocok untuk menghindari \textit{overfitting} yang umum terjadi pada satu pohon keputusan tunggal.
|
||||
|
||||
\subsubsection{Bagged Trees (BT)}
|
||||
|
||||
\textit{Bagged Trees} atau \textit{Bootstrap Aggregated Trees} adalah pendekatan \textit{ensemble} yang mirip dengan Random Forest, namun perbedaannya terletak pada pemilihan fitur. Dalam \textit{Bagged Trees}, pohon-pohon dibangun dari sampel acak \textit{bootstrap} dari dataset pelatihan, tetapi tanpa pengacakan subset fitur seperti pada Random Forest.
|
||||
|
||||
\subsubsection{XGBoost (Extreme Gradient Boosting)}
|
||||
|
||||
XGBoost adalah algoritma pemelajaran mesin berbasis \textit{gradient boosting} yang dirancang untuk efisiensi dan performa tinggi. Algoritma ini bekerja dengan membangun model secara bertahap, di mana setiap pohon selanjutnya mencoba memperbaiki kesalahan dari pohon sebelumnya dengan mengoptimasi fungsi kerugian (\textit{loss function}) menggunakan metode gradien.
|
||||
|
||||
XGBoost menggabungkan beberapa teknik seperti regularisasi $L1$ dan $L2$, pemangkasan pohon (\textit{pruning}), dan pemrosesan paralel, sehingga menghindari terjadinya \textit{overfitting} dan unggul dalam akurasi prediksi dibanding metode pohon lainnya. Algoritma ini sangat populer dalam kompetisi data karena kemampuannya menangani data besar, fitur multivariat, dan klasifikasi multi-kelas secara efisien.
|
||||
|
||||
\subsubsection{Linear Discriminant Analysis (LDA)}
|
||||
|
||||
Linear Discriminant Analysis (LDA) adalah teknik klasifikasi dan reduksi dimensi yang mengasumsikan bahwa data berasal dari distribusi normal multivariat dan memiliki kovarians yang seragam untuk setiap kelas. LDA bertujuan untuk memproyeksikan data ke ruang berdimensi lebih rendah yang memaksimalkan pemisahan antar kelas (rasio varians antar kelas terhadap varians dalam kelas).
|
||||
|
||||
LDA sangat cocok ketika distribusi data mendekati normal dan jumlah fitur tidak terlalu besar dibanding jumlah sampel. Selain sebagai klasifikator, LDA juga sering digunakan sebagai teknik prapemrosesan untuk ekstraksi fitur sebelum digunakan dalam algoritma lain.
|
||||
|
||||
\bigskip
|
||||
@@ -0,0 +1,2 @@
|
||||
\subsubsection{Fungsi \textit{Windowing}}
|
||||
Fungsi jendela $w(n)$ berfungsi untuk melokalisasi sinyal dalam domain waktu, dengan meruncingkan sinyal di kedua ujungnya guna meminimalkan diskontinuitas. Hal ini sangat penting untuk mengurangi kebocoran spektral—sebuah fenomena di mana energi sinyal menyebar ke bin frekuensi di sekitarnya akibat pemotongan sinyal secara tiba-tiba. Pemilihan jenis jendela sangat memengaruhi resolusi dan akurasi representasi waktu-frekuensi.
|
||||
@@ -0,0 +1,13 @@
|
||||
\subsection{Short-Time Fourier Transform (STFT)}
|
||||
|
||||
Short-Time Fourier Transform (STFT) adalah teknik fundamental yang digunakan untuk menganalisis sinyal non-stasioner, seperti yang diperoleh dari struktur dalam keadaan menerima beban dinamik atau eksitasi derau putih. Meskipun tradisional transformasi fourier memberikan informasi domain frekuensi, teknik ini tidak memiliki resolusi waktu. STFT mengatasi limitasi tersebut dengan menerapkan transformasi fourier segment-segment sinyal pendek yang tumpang tindih, dengan demikian diperoleh representasi waktu-frekuensi.
|
||||
|
||||
Secara matematis, STFT dari sinyal $x(t)$ diberikan sebagai berikut:
|
||||
\begin{equation}
|
||||
X(m, \omega) = \sum_{n=-\infty}^{\infty} x[n] \cdot w[n - m] \cdot e^{-j \omega n}
|
||||
\end{equation}
|
||||
|
||||
|
||||
dengan $w(\tau - t)$ adalah sebuah fungsi \textit{windowing} berpusat pada waktu $t$ dan $\omega$ adalah frekuensi angular.
|
||||
|
||||
Pada studi ini, STFT digunakan untuk mengekstrak domain waktu-frekuensi dari sinyal getaran yang diperoleh dari dari respon struktur terhadap getaran yang diberikan oleh mesin \textit{shaker}. Fitur-fitur ini kemudian digunakan sebagai input pada klasifikasi pemelajaran mesin. Proces ini merekap frekuensi lokal setiap waktu, yang dinilai krusial pada pengidentifikasian perubahan struktur akibat kerusakan.
|
||||
151
latex/chapters/id/03_methodology/data_analysis/index.tex
Normal file
151
latex/chapters/id/03_methodology/data_analysis/index.tex
Normal file
@@ -0,0 +1,151 @@
|
||||
\section{Analisis Data}
|
||||
\subsection{Grid, Kode \textit{Joint}, dan Nama File}
|
||||
|
||||
% \begin{figure}[ht]
|
||||
% \centering
|
||||
% \input{chapters/img/specimen}
|
||||
% \caption{Caption}
|
||||
% \label{fig:enter-label}
|
||||
% \end{figure}
|
||||
% Dimulai dengan memberi indeks pada setiap node pengukuran dari struktur grid berukuran 6$\times$5 menggunakan sebuah bilangan bulat tunggal \(k\) dari nol hingga dua puluh sembilan. Setiap sinyal domain waktu mentah disimpan dalam file yang dinamai berdasarkan indeks ini:
|
||||
% \begin{equation*}
|
||||
% F_{k} = \texttt{``zzzAD}k\texttt{.TXT,''}
|
||||
% \quad k = 0,1,\dots,29.
|
||||
% \end{equation*}
|
||||
|
||||
Direpresentasikan \(F_{k}\) di sini sebagai nama file untuk \textit{node} ke-\(k\). Kemudian dilampirkan nama file tersebut sebagai superskrip pada simbol \textit{node}:
|
||||
\begin{equation*}
|
||||
n_{k}^{F_{k}}
|
||||
\quad\text{adalah \textit{node} dengan indeks }k\text{ yang datanya diambil dari \textit{file} }F_{k}.
|
||||
\end{equation*}
|
||||
|
||||
\subsection{Pemetaan Sensor}
|
||||
|
||||
Semua tiga puluh node dikelompokkan ke dalam enam folder ``damage-case``, dilabeli \(d_{i}\) untuk \(i=0,\dots,5\). Setiap folder berisi tepat lima node berurutan, yang merepresentasikan satu skenario kerusakan:
|
||||
\begin{equation*}
|
||||
d_{i} = \bigl\{\,n_{5i}^{F_{5i}},\;n_{5i+1}^{F_{5i+1}},\;\dots,\;n_{5i+4}^{F_{5i+4}}\bigr\},
|
||||
\quad i = 0,\dots,5.
|
||||
\end{equation*}
|
||||
Atau secara konkrit,
|
||||
\begin{align*}
|
||||
d_0&=\{n_{0}^{F_0},\;n_{1}^{F_1},\;n_{2}^{F_2},\;n_{3}^{F_3},\;n_{4}^{F_4}\}\\
|
||||
d_1&=\{n_{5}^{F_5},\;n_{6}^{F_6},\;n_{7}^{F_7},\;n_{8}^{F_8},\;n_{9}^{F_9}\}\\
|
||||
\;\;\vdots\\
|
||||
d_5&=\{n_{25}^{F_{25}},\;n_{26}^{F_{26}},\;n_{27}^{F_{27}},\;n_{28}^{F_{28}},\;n_{29}^{F_{29}}\}\\
|
||||
\end{align*}
|
||||
|
||||
\subsection{Seleksi Sensor \textit{Node} Ujung-Ujung (Domain Waktu)}
|
||||
|
||||
Dari setiap folder kerusakan, kita hanya menyimpan \textit{node} pertama dan terakhir untuk mensimulasikan tata letak sensor terbatas. Subset domain waktu ini dilambangkan dengan \(d_{i}^{\mathrm{TD}}\):
|
||||
\begin{equation*}
|
||||
d_{i}^{\mathrm{TD}}
|
||||
= \bigl\{\,n_{5i}^{F_{5i}},\;n_{5i+4}^{F_{5i+4}}\bigr\},
|
||||
\quad |d_{i}^{\mathrm{TD}}| = 2.
|
||||
\end{equation*}
|
||||
|
||||
\subsection{Ekstraksi Fitur}
|
||||
|
||||
Kemudian, didefinisikan operator STFT \(\mathcal{T}\) untuk memetakan sinyal domain waktu mentah dengan panjang \(L=262144\) sampel menjadi sebuah spektrogram berukuran \(513\times513\). Kemudian digunakan \textit{Hanning window} dengan panjang \(N_{w}=1024\) dan hop size \(N_{h}=512\). Bentuk kompleks dari STFT adalah:
|
||||
\begin{equation*}
|
||||
\begin{aligned}
|
||||
\text{(1) Window function:}\quad
|
||||
w[n] &= \frac12\Bigl(1 - \cos\frac{2\pi n}{N_w - 1}\Bigr),
|
||||
\quad n=0,\ldots,N_w-1; \\[1ex]
|
||||
\text{(2) STFT:}\quad
|
||||
S_k(p,t)
|
||||
&= \sum_{n=0}^{N_w-1}
|
||||
x_k\bigl[t\,N_h + n\bigr]
|
||||
\;w[n]\;
|
||||
e^{-j2\pi p n / N_w},\\
|
||||
&\quad
|
||||
p = 0,\ldots,512,\quad t = 0,\ldots,512.
|
||||
\end{aligned}
|
||||
\end{equation*}
|
||||
|
||||
Pengambilan magnitudo menghasilkan matriks spektrogram pada bilah frekuensi $p$ dan \textit{frame} waktu $t$ untuk \textit{node} $k$
|
||||
\begin{equation*}
|
||||
\widetilde n_{k}^{F_{k}}(p,t) \;=\; \bigl|S_{k}(p,t)\bigr|
|
||||
\;\in\;\mathbb{R}^{513\times513}.
|
||||
\end{equation*}
|
||||
Dengan demikian operatornya adalah
|
||||
\begin{equation*}
|
||||
\mathcal{T}:\; n_{k}^{F_{k}}\in\mathbb{R}^{262144}
|
||||
\;\longmapsto\;
|
||||
\widetilde n_{k}^{F_{k}}\in\mathbb{R}^{513\times513}.
|
||||
\end{equation*}
|
||||
|
||||
\subsection{Subset Domain Frekuensi}
|
||||
|
||||
Kemudian, \(\mathcal{T}\) diterapkan pada \textit{node} ujung-ujung yang telah dipilih, dihasilkan:
|
||||
\begin{equation*}
|
||||
d_{i}^{\mathrm{FD}}
|
||||
= \bigl\{\,
|
||||
\widetilde n_{5i}^{F_{5i}},\;
|
||||
\widetilde n_{5i+4}^{F_{5i+4}}
|
||||
\,\bigr\},
|
||||
\quad
|
||||
|d_{i}^{\mathrm{FD}}| = 2.
|
||||
\end{equation*}
|
||||
|
||||
\subsection{Pengelompokan Berdasarkan Letak Ujung Sensor}
|
||||
|
||||
Sensor-sensor ujung bagian bawah dilabeli sebagai Sensor A dan Sensor-sensor ujung bagian atas dilabeli sebagai Sensor B. Semua enam kasus kerusakan dikumpulkan menjadi satu menghasilkan dua himpunan spektrogram, masing-masing berisi enam (kasus kerusakan):
|
||||
\begin{equation*}
|
||||
\text{Sensor A}
|
||||
=
|
||||
\bigl\{\,
|
||||
\widetilde n_{0}^{F_{0}},\,
|
||||
\widetilde n_{5}^{F_{5}},\,
|
||||
\dots,\,
|
||||
\widetilde n_{25}^{F_{25}}
|
||||
\bigr\},
|
||||
\quad
|
||||
\text{Sensor B}
|
||||
=
|
||||
\bigl\{\,
|
||||
\widetilde n_{4}^{F_{4}},\,
|
||||
\widetilde n_{9}^{F_{9}},\,
|
||||
\dots,\,
|
||||
\widetilde n_{29}^{F_{29}}
|
||||
\bigr\}.
|
||||
\end{equation*}
|
||||
|
||||
\subsection{Perakitan Baris dan Pelabelan}
|
||||
|
||||
Setiap spektrogram berukuran \(513\times513\) diartikan sebagai 513 vektor fitur berdimensi 513. Kemudian diberikan indeks pengulangan dalam satu kasus kerusakan dengan \(r\in\{0,\dots,4\}\) dan potongan waktu dengan \(t\in\{0,\dots,512\}\). Misalkan
|
||||
\begin{equation*}
|
||||
\mathbf{x}_{i,s,r,t}\in\mathbb{R}^{513}
|
||||
\end{equation*}
|
||||
menunjukkan baris (atau kolom) ke-\(t\) dari spektrogram ke-\(r\) untuk kasus kerusakan \(i\) dan sensor \(s\). Label skalar untuk kasus kerusakan tersebut adalah
|
||||
\begin{equation*}
|
||||
y_{i} = i,\quad i=0,\dots,5.
|
||||
\end{equation*}
|
||||
Kemudian didefinisikan fungsi \textit{slicing} sebagai
|
||||
\begin{equation*}
|
||||
\Lambda(i,s,r,t)
|
||||
\;=\;
|
||||
\bigl[\,
|
||||
\mathbf{x}_{i,s,r,t},
|
||||
\;y_{i}
|
||||
\bigr]
|
||||
\;\in\;\mathbb{R}^{513+1}.
|
||||
\end{equation*}
|
||||
|
||||
\subsection{Bentuk Akhir Data untuk Pelatihan}
|
||||
|
||||
Seluruh baris dari enam kasus kerusakan, lima pengulangan, dan 513 potongan waktu dikumpulkan menghasilkan \textit{dataset} untuk satu sisi sensor:
|
||||
\begin{equation*}
|
||||
\mathcal{D}^{(s)}
|
||||
=
|
||||
\bigl\{
|
||||
\Lambda(i,s,r,t)
|
||||
\;\big|\;
|
||||
i=0,\dots,5,\;
|
||||
r=0,\dots,4,\;
|
||||
t=0,\dots,512
|
||||
\bigr\}.
|
||||
\end{equation*}
|
||||
Karena terdapat total \(6\times5\times513=15{,}390\) baris dan setiap baris memiliki \(513\) fitur ditambah satu kolom label, maka bentuk akhir dari data untuk satu sisi sensor yang siap digunakan untuk pelatihan adalah
|
||||
\begin{equation*}
|
||||
|\mathcal{D}^{(s)}| = 15\,390 \times 514.
|
||||
\end{equation*}
|
||||
7
latex/chapters/id/03_methodology/index.tex
Normal file
7
latex/chapters/id/03_methodology/index.tex
Normal file
@@ -0,0 +1,7 @@
|
||||
\chapter{METODE PENELITIAN}
|
||||
|
||||
\input{chapters/id/03_methodology/material/index}
|
||||
\input{chapters/id/03_methodology/tool/index}
|
||||
\clearpage
|
||||
\input{chapters/id/03_methodology/steps/index}
|
||||
\input{chapters/id/03_methodology/data_analysis/index}
|
||||
26
latex/chapters/id/03_methodology/material/index.tex
Normal file
26
latex/chapters/id/03_methodology/material/index.tex
Normal file
@@ -0,0 +1,26 @@
|
||||
\section{Benda Uji}
|
||||
|
||||
Penelitian ini menggunakan data sekunder dari \textcite{abdeljaber2017}, yang tersedia secara publik dan diperoleh melalui eksperimen menggunakan \textit{Queen's University Grandstand Simulator}. Adapun rincian data yang digunakan adalah sebagai berikut:
|
||||
|
||||
\begin{itemize}
|
||||
\item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer.
|
||||
\item Setiap skenario dalam dataset mencakup satu kasus struktur tanpa kerusakan (healthy) dan 30 kasus kerusakan tunggal pada masing-masing sambungan (\textit{single-joint damage}).
|
||||
\item Sinyal getaran direkam dengan frekuensi pengambilan sampel sebesar 1024 Hz selama durasi 256 detik untuk tiap skenario.
|
||||
\item Kerusakan struktur disimulasikan dengan cara mengendurkan baut pada sambungan-sambungan tertentu.
|
||||
\end{itemize}
|
||||
|
||||
Struktur dataset yang digunakan ditampilkan pada Gambar~\ref{fig:specimen-photo}.
|
||||
|
||||
% \begin{figure}[!ht]
|
||||
% \centering
|
||||
% \includegraphics[width=0.5\textwidth]{chapters/img/original_data.png}
|
||||
% \caption{Overview of the original data used from Abdeljaber et al. (2017)}
|
||||
% \label{fig:original-data}
|
||||
% \end{figure}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=0.75\linewidth]{chapters/img/specimen.png}
|
||||
\caption{Bentuk benda uji}
|
||||
\label{fig:specimen-photo}
|
||||
\end{figure}
|
||||
33
latex/chapters/id/03_methodology/steps/data_acquisition.tex
Normal file
33
latex/chapters/id/03_methodology/steps/data_acquisition.tex
Normal file
@@ -0,0 +1,33 @@
|
||||
Dataset yang digunakan dalam penelitian ini bersumber dari basis data getaran yang dipublikasi oleh \textcite{abdeljaber2017}.
|
||||
|
||||
Dataset terdiri dari dua folder:
|
||||
\begin{itemize}
|
||||
\item \texttt{Dataset A/} – biasanya digunakan untuk pelatihan (training)
|
||||
\item \texttt{Dataset B/} – biasanya digunakan untuk pengujian (testing)
|
||||
\end{itemize}
|
||||
|
||||
Setiap folder berisi 31 berkas dalam format \texttt{.TXT}, yang dinamai sesuai dengan kondisi kerusakan struktur. Pola penamaan berkas adalah sebagai berikut:
|
||||
|
||||
\begin{itemize}
|
||||
\item \texttt{zzzAU.TXT}, \texttt{zzzBU.TXT} — struktur tanpa kerusakan (sehat)
|
||||
\item \texttt{zzzAD1.TXT}, \texttt{zzzAD2.TXT}, ..., \texttt{zzzAD30.TXT} — Dataset A, kerusakan pada sambungan 1–30
|
||||
\item \texttt{zzzBD1.TXT}, \texttt{zzzBD2.TXT}, ..., \texttt{zzzBD30.TXT} — Dataset B, kerusakan pada sambungan 1–30
|
||||
\end{itemize}
|
||||
|
||||
Sepuluh baris pertama dari setiap berkas berisi metadata yang menjelaskan konfigurasi pengujian, laju sampling, dan informasi kanal. Oleh karena itu, data deret waktu percepatan dimulai dari baris ke-11 yang berisi 31 kolom:
|
||||
\begin{itemize}
|
||||
\item \textbf{Kolom 1:} Waktu dalam detik
|
||||
\item \textbf{Kolom 2–31:} Magnitudo percepatan dari \textit{joint} 1 hingga 30
|
||||
\end{itemize}
|
||||
|
||||
Setiap sinyal di-\textit{sampling} pada frekuensi $f_s = 1024$ Hz dan direkam selama durasi total $T = 256$ detik, sehingga menghasilkan:
|
||||
|
||||
\begin{equation*}
|
||||
N = f_s \cdot T = 1024 \times 256 = 262{,}144 \quad \text{sampel per kanal}
|
||||
\end{equation*}
|
||||
|
||||
Dengan demikian, setiap berkas dapat direpresentasikan sebagai matriks:
|
||||
\begin{equation*}
|
||||
\mathbf{X}^{(c)} \in \mathbb{R}^{262{,}144 \times 31}, \quad c = 0, 1, \dots, 30
|
||||
\end{equation*}
|
||||
di mana $c$ mengacu pada indeks kasus (0 = sehat, 1–30 = kerusakan pada \textit{joint}n ke-$c$), dan setiap baris merepresentasikan pengukuran berdasarkan waktu di seluruh 30 kanal sensor.
|
||||
29
latex/chapters/id/03_methodology/steps/index.tex
Normal file
29
latex/chapters/id/03_methodology/steps/index.tex
Normal file
@@ -0,0 +1,29 @@
|
||||
\section{Tahapan Penelitian}
|
||||
Alur keseluruhan penelitian ini dilakukan melalui tahapan-tahapan sebagai berikut:
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.3\linewidth]{chapters/id/flow.png}
|
||||
\caption{Diagram alir tahapan penelitian}
|
||||
\label{fig:flowchart}
|
||||
\end{figure}
|
||||
|
||||
\begin{enumerate}
|
||||
\item \textbf{Akuisisi Data:} Mengunduh dataset dari \textcite{abdeljaber2017} yang berisi sinyal percepatan untuk 31 kondisi struktur (1 kondisi sehat dan 30 kondisi kerusakan tunggal).
|
||||
|
||||
% \item \textbf{Seleksi Sensor:} Memilih sinyal dari sejumlah sensor terbatas pada garis vertikal tertentu (misalnya, node 1 dan 26) untuk mensimulasikan konfigurasi sensor yang direduksi.
|
||||
|
||||
\item \textbf{Pra-pemrosesan:} Melakukan normalisasi dan mengubah sinyal domain waktu mentah menjadi domain waktu-frekuensi menggunakan metode Short-Time Fourier Transform (STFT).
|
||||
|
||||
\item \textbf{Ekstraksi Fitur:} Menghasilkan \textit{data frame} frekuensi dalam domain waktu.
|
||||
|
||||
\item \textbf{Pengembangan Model:} Membangun dan melatih model klasifikasi berbasis algoritma pemelajaran mesin klasik (SVM, LDA, Bagged Trees, Random Forest, XGBoost) untuk mengklasifikasikan lokasi kerusakan struktur.
|
||||
|
||||
\item \textbf{Evaluasi:} Mengevaluasi kinerja model menggunakan metrik akurasi, presisi, dan confusion matrix pada berbagai skenario pengujian.
|
||||
\end{enumerate}
|
||||
|
||||
\subsection{Akuisisi Data}
|
||||
\input{chapters/id/03_methodology/steps/data_acquisition}
|
||||
|
||||
% \subsection{Prapemrosesan Data dan Ekstraksi Fitur}
|
||||
|
||||
39
latex/chapters/id/03_methodology/tool/hardware.tex
Normal file
39
latex/chapters/id/03_methodology/tool/hardware.tex
Normal file
@@ -0,0 +1,39 @@
|
||||
Data getaran struktur yang digunakan dalam penelitian ini diperoleh dari penelitian oleh \textcite{abdeljaber2017}, yang dilakukan menggunakan simulator struktur baja Grandstand di Queen’s University. Dalam eksperimen tersebut, struktur baja dipasang dengan akselerometer pada setiap sambungan-sambungan (\textit{joints}). Rangkaian perangkat keras yang digunakan untuk pengambilan data meliputi:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{27 akselerometer PCB model 393B04} (Gambar~\ref{fig:pcb393}) untuk merekam respons percepatan pada sebagian besar titik pengukuran.
|
||||
\item \textbf{3 akselerometer B\&K model 8344} (Gambar~\ref{fig:bk8344}) digunakan pada beberapa lokasi untuk validasi tambahan.
|
||||
\item \textbf{Mounting magnetic PCB model 080A121} digunakan untuk menempelkan akselerometer secara aman pada struktur baja.
|
||||
\item \textbf{Modal shaker (Model 2100E11)} digunakan untuk memberikan eksitasi getaran terkontrol pada struktur (Gambar~\ref{fig:shaker}). Sinyal input untuk shaker dihasilkan melalui \textbf{penguat daya SmartAmp 2100E21-400}.
|
||||
\item \textbf{Dua perangkat akuisisi data 16-kanal (DT9857E-16)} digunakan secara simultan: satu untuk menghasilkan sinyal input ke shaker dan satu lagi untuk merekam data keluaran dari akselerometer (Gambar~\ref{fig:datalogger}).
|
||||
\end{itemize}
|
||||
|
||||
Seluruh perangkat ini memungkinkan pengambilan data getaran dengan fidelitas tinggi, dengan laju pengambilan sampel sebesar 1024 Hz per kanal selama 256 detik untuk setiap skenario pengujian.
|
||||
|
||||
Adapun sumberdaya komputasi yang digunakan untuk pemrosesan semua data dan pemodelan pada skripsi ini, yaitu:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{\textit{Processor}:} Intel Core i7 11th-gen @ 2.8 GHz
|
||||
\item \textbf{RAM:} 2$\times$8 GB LPDDR4X
|
||||
% \item \textbf{GPU:} Intel iris Xe Graphics (16 GB VRAM \textit{shared})
|
||||
\item \textbf{Sistem Operasi:} Windows 10 64-bit
|
||||
\end{itemize}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{chapters/img/accel393.png}
|
||||
\caption{Akselerometer yang digunakan: (a) PCB 393B04, (b) B\&K 8344}
|
||||
\label{fig:accel393}
|
||||
\end{figure}
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.4\textwidth]{chapters/img/shaker.png}
|
||||
\caption{Modal shaker (TMS 2100E11) yang dipasang pada struktur uji}
|
||||
\label{fig:shaker}
|
||||
\end{figure}
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.7\textwidth]{chapters/img/datalogger.png}
|
||||
\caption{Perangkat akuisisi data (DT9857E-16) dan penguat daya SmartAmp 2100E21-400}
|
||||
\label{fig:datalogger}
|
||||
\end{figure}
|
||||
7
latex/chapters/id/03_methodology/tool/index.tex
Normal file
7
latex/chapters/id/03_methodology/tool/index.tex
Normal file
@@ -0,0 +1,7 @@
|
||||
\section{Alat}
|
||||
|
||||
\subsection{Alat Perangkat Keras}
|
||||
\input{chapters/id/03_methodology/tool/hardware}
|
||||
|
||||
\subsection{Alat Perangkat Lunak}
|
||||
\input{chapters/id/03_methodology/tool/software}
|
||||
11
latex/chapters/id/03_methodology/tool/software.tex
Normal file
11
latex/chapters/id/03_methodology/tool/software.tex
Normal file
@@ -0,0 +1,11 @@
|
||||
Berikut merupakan perangkat lunak yang digunakan selama proses penelitian ini:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Python 3.11} – digunakan untuk proses pra-pemrosesan data, pemodelan, dan evaluasi.
|
||||
\item \textbf{NumPy 1.22.4} – digunakan untuk perhitungan deret numerik.
|
||||
\item \textbf{Pandas 1.5.1} – digunakan untuk memanipulasi struktur data.
|
||||
\item \textbf{Pandas 1.7.3} – digunakan untuk memproses sinyal.
|
||||
\item \textbf{Matplotlib 3.7.1} – digunakan untuk menghasilkan plot data.
|
||||
\item \textbf{Scikit-Learn 1.5.1} – digunakan untuk membangun dan melatih model dengan algoritma pemelajaran mesin klasik.
|
||||
\item \textbf{Jupyter Notebook} – digunakan untuk pelatihan model dan percobaan eksperimental secara interaktif.
|
||||
\end{itemize}
|
||||
BIN
latex/chapters/img/flow.png
Normal file
BIN
latex/chapters/img/flow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 217 KiB |
BIN
latex/chapters/img/specimen.png
Normal file
BIN
latex/chapters/img/specimen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 976 KiB |
13
latex/chapters/img/specimen.tex
Normal file
13
latex/chapters/img/specimen.tex
Normal file
@@ -0,0 +1,13 @@
|
||||
\begin{matrix}
|
||||
N_{6,5} & \text{---} & N_{6,4} & \text{---} & N_{6,3} & \text{---} & N_{6,2} & \text{---} & N_{6,1} \\
|
||||
\vert & & \vert & & \vert & & \vert & & \vert \\
|
||||
N_{5,5} & \text{---} & N_{5,4} & \text{---} & N_{5,3} & \text{---} & N_{5,2} & \text{---} & N_{5,1} \\
|
||||
\vert & & \vert & & \vert & & \vert & & \vert \\
|
||||
N_{4,5} & \text{---} & N_{4,4} & \text{---} & N_{4,3} & \text{---} & N_{4,2} & \text{---} & N_{4,1} \\
|
||||
\vert & & \vert & & \vert & & \vert & & \vert \\
|
||||
N_{3,5} & \text{---} & N_{3,4} & \text{---} & N_{3,3} & \text{---} & N_{3,2} & \text{---} & N_{3,1} \\
|
||||
\vert & & \vert & & \vert & & \vert & & \vert \\
|
||||
N_{2,5} & \text{---} & N_{2,4} & \text{---} & N_{2,3} & \text{---} & N_{2,2} & \text{---} & N_{2,1} \\
|
||||
\vert & & \vert & & \vert & & \vert & & \vert \\
|
||||
N_{1,5} & \text{---} & N_{1,4} & \text{---} & N_{1,3} & \text{---} & N_{1,2} & \text{---} & N_{1,1} \\
|
||||
\end{matrix}
|
||||
65
latex/frontmatter/approval.tex
Normal file
65
latex/frontmatter/approval.tex
Normal file
@@ -0,0 +1,65 @@
|
||||
% frontmatter/endorsement.tex
|
||||
\setmainfont{Times New Roman}
|
||||
\addcontentsline{toc}{chapter}{LEMBAR PERSETUJUAN TUGAS AKHIR}
|
||||
|
||||
\begin{center}
|
||||
\textbf{\Large LEMBAR PERSETUJUAN TUGAS AKHIR} \\[0.5em]
|
||||
\textit{APPROVAL SHEET}
|
||||
\end{center}
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
\renewcommand{\arraystretch}{1.2}
|
||||
\begin{tabular}{llp{10cm}}
|
||||
\textbf{Judul} & : & \thesistitle \\
|
||||
\textit{Title} & & \\
|
||||
|
||||
\textbf{Mahasiswa} & : & \studentname \\
|
||||
\textit{Student} & & \\
|
||||
|
||||
\textbf{Nomor Mahasiswa} & : &\studentid \\
|
||||
\textit{Student ID.} & & \\
|
||||
|
||||
\textbf{Dosen Pembimbing} & : & 1. \firstadvisor \\
|
||||
\textit{Advisors} & & 2. \secondadvisor
|
||||
\end{tabular}
|
||||
|
||||
\vspace{1em}
|
||||
\textbf{Telah disetujui oleh Tim Penguji:} \\
|
||||
\textit{Approved by the Committee on Oral Examination}
|
||||
|
||||
\vspace{1em}
|
||||
\begin{tabular}{lp{5cm}}
|
||||
\textbf{\firstadvisor} &:
|
||||
% \vspace{2cm} % signature space
|
||||
% \\[1em] % pull up next row
|
||||
\\
|
||||
\textit{Ketua Tim Penguji} &
|
||||
\noindent\makebox[5cm]{\hrulefill}\\[-0.5em]
|
||||
\textit{\small Chair} & \small Yogyakarta, \dotfill 2020
|
||||
\\
|
||||
\textbf{\secondadvisor} &:
|
||||
% \vspace{2cm} % signature space
|
||||
% \\[1em] % pull up next row
|
||||
\\
|
||||
\textit{Ketua Tim Penguji} &
|
||||
\noindent\makebox[5cm]{\hrulefill}\\[-0.5em]
|
||||
\textit{\small Chair} & \small Yogyakarta, \dotfill 2020 \\
|
||||
\end{tabular}
|
||||
|
||||
\vspace{1em}
|
||||
\noindent
|
||||
\textbf{Diterima dan disetujui sebagai persyaratan untuk memperoleh gelar Sarjana Teknik} \\
|
||||
\textit{Accepted in partial fulfillment of the requirements for the degree of Bachelor of Engineering}
|
||||
|
||||
\vspace{2em}
|
||||
\begin{center}
|
||||
\textbf{Ketua Program Studi} \\
|
||||
\textit{Head of Department}
|
||||
\end{center}
|
||||
|
||||
\vspace{3em}
|
||||
\begin{center}
|
||||
\textbf{\headdepartement} \\
|
||||
NIK. \headdepartementid
|
||||
\end{center}
|
||||
7
latex/frontmatter/endorsement.tex
Normal file
7
latex/frontmatter/endorsement.tex
Normal file
@@ -0,0 +1,7 @@
|
||||
% frontmatter/endorsement.tex
|
||||
\setmainfont{Times New Roman}
|
||||
|
||||
\chapter*{LEMBAR PENGESAHAN TUGAS AKHIR}
|
||||
\begin{center}
|
||||
{\normalsize\textit{ENDORSEMENT SHEET}}
|
||||
\end{center}
|
||||
BIN
latex/frontmatter/img/logo.png
Normal file
BIN
latex/frontmatter/img/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 253 KiB |
30
latex/frontmatter/maketitle.tex
Normal file
30
latex/frontmatter/maketitle.tex
Normal file
@@ -0,0 +1,30 @@
|
||||
\begin{titlepage}
|
||||
\centering
|
||||
\vspace*{1cm}
|
||||
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par}
|
||||
\vspace{1.5cm}
|
||||
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par}
|
||||
\vspace{1.5cm}
|
||||
|
||||
\includegraphics[width=5cm]{frontmatter/img/logo.png}
|
||||
\vspace{1.5cm}
|
||||
|
||||
|
||||
\textbf{Disusun oleh:} \\
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\studentid}} \\
|
||||
|
||||
|
||||
\vfill
|
||||
|
||||
{\fontsize{12pt}{14pt}\selectfont
|
||||
\textbf{\program} \\
|
||||
\textbf{\faculty} \\
|
||||
\textbf{\university} \\
|
||||
\textbf{\yearofsubmission}
|
||||
}
|
||||
|
||||
\end{titlepage}%
|
||||
|
||||
29
latex/frontmatter/maketitle_secondary.tex
Normal file
29
latex/frontmatter/maketitle_secondary.tex
Normal file
@@ -0,0 +1,29 @@
|
||||
\begin{titlepage}
|
||||
\centering
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par}
|
||||
\vspace{1.5cm}
|
||||
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par}
|
||||
\vspace{1cm}
|
||||
{\normalsize\selectfont Diajukan guna melengkapi persyaratan untuk memenuhi gelar Sarjana Teknik di Program Studi Teknik Sipil, Fakultas Teknik, Universitas Muhammadiyah Yogyakarta\par}
|
||||
\vspace{1.5cm}
|
||||
|
||||
\includegraphics[width=5cm]{frontmatter/img/logo.png}
|
||||
\vspace{1.5cm}
|
||||
|
||||
|
||||
\textbf{Disusun oleh:} \\
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\
|
||||
{\fontsize{14pt}{16pt}\selectfont \textbf{\studentid}} \\
|
||||
|
||||
|
||||
\vfill
|
||||
|
||||
{\fontsize{12pt}{14pt}\selectfont
|
||||
\textbf{\program} \\
|
||||
\textbf{\faculty} \\
|
||||
\textbf{\university} \\
|
||||
\textbf{\yearofsubmission}
|
||||
}
|
||||
|
||||
\end{titlepage}%
|
||||
40
latex/frontmatter/originality.tex
Normal file
40
latex/frontmatter/originality.tex
Normal file
@@ -0,0 +1,40 @@
|
||||
% frontmatter/originality.tex
|
||||
\setmainfont{Times New Roman}
|
||||
|
||||
\chapter*{PERNYATAAN KEASLIAN}
|
||||
\addcontentsline{toc}{chapter}{PERNYATAAN KEASLIAN}
|
||||
% \begin{center}
|
||||
% {\normalsize\textit{ORIGINALITY STATEMENT}}
|
||||
% \end{center}
|
||||
Saya yang bertanda tangan di bawah ini:
|
||||
\renewcommand{\arraystretch}{1.2}
|
||||
\begin{center}
|
||||
\begin{tabular}{llp{10cm}}
|
||||
\textbf{Nama} & : & \studentname \\
|
||||
\textbf{Nomor Mahasiswa} & : & \studentid \\
|
||||
\textbf{Judul} & : & \thesistitle \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
Menyatakan dengan sebenarnya bahwa tugas akhir ini merupakan karya says sendiri. Apabila terdapat karya orang lain yang saya kutip, maka saya akan mencantumkan sumber secara jelas. Jika dikemudian hari ditemukan dengan ketidakbenaran dalam pernyataan in, maka saya bersedia menerima sanksi dengan aturan yang berlaku. Demikian pernyataan ini saya buat tanpa ada paksaan dari pihak mana pun.\par
|
||||
|
||||
\begin{flushright}
|
||||
\begin{minipage}{0.5\textwidth}
|
||||
\centering
|
||||
Yogyakarta, \today \\[1em]
|
||||
Yang membuat pernyataan, \\[0.5cm] % space for signature
|
||||
% Materai box
|
||||
\hspace*{-2cm}% shift the box slightly left
|
||||
\begin{tabular}{@{}c@{}}
|
||||
\fbox{
|
||||
\begin{minipage}[c][2cm][c]{2.5cm}
|
||||
\centering
|
||||
Materai\\
|
||||
6000
|
||||
\end{minipage}
|
||||
}
|
||||
\end{tabular}
|
||||
\\[1cm]
|
||||
% \rule{6cm}{0.4pt} % signature line
|
||||
Rifqi Damar Panuluh
|
||||
\end{minipage}
|
||||
\end{flushright}
|
||||
@@ -0,0 +1,40 @@
|
||||
\documentclass[draftmark]{thesis}
|
||||
|
||||
% Title Information
|
||||
\setthesisinfo
|
||||
{Prediksi Lokasi Kerusakan dengan Machine Learning}
|
||||
{Rifqi Damar Panuluh}
|
||||
{20210110224}
|
||||
{PROGRAM STUDI TEKNIK SIPIL}
|
||||
{FAKULTAS TEKNIK}
|
||||
{UNIVERSITAS MUHAMMADIYAH YOGYAKARTA}
|
||||
{2025}
|
||||
|
||||
% Input preamble
|
||||
\input{preamble/packages}
|
||||
% \input{preamble/fonts}
|
||||
\input{preamble/macros}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
\frontmatter
|
||||
\input{frontmatter/approval}\clearpage
|
||||
\input{frontmatter/originality}\clearpage
|
||||
\input{frontmatter/acknowledgement}\clearpage
|
||||
\tableofcontents
|
||||
\clearpage
|
||||
\mainmatter
|
||||
\pagestyle{fancyplain}
|
||||
% Include content
|
||||
\include{content/abstract}
|
||||
\include{content/introduction}
|
||||
\include{chapters/01_introduction}
|
||||
\include{content/chapter2}
|
||||
\include{content/conclusion}
|
||||
|
||||
% Bibliography
|
||||
% \bibliographystyle{IEEEtran}
|
||||
% \bibliography{references}
|
||||
|
||||
\end{document}
|
||||
11
latex/metadata.tex
Normal file
11
latex/metadata.tex
Normal file
@@ -0,0 +1,11 @@
|
||||
\newcommand{\studentname}{Rifqi Damar Panuluh}
|
||||
\newcommand{\studentid}{20210110224}
|
||||
\newcommand{\thesistitle}{Prediksi Lokasi Kerusakan dengan Machine Learning}
|
||||
\newcommand{\firstadvisor}{Ir. Muhammad Ibnu Syamsi, Ph.D.}
|
||||
\newcommand{\secondadvisor}{}
|
||||
\newcommand{\headdepartement}{Puji Harsanto, S.T. M.T., Ph.D.}
|
||||
\newcommand{\headdepartementid}{19740607201404123064}
|
||||
\newcommand{\faculty}{Fakultas Teknik}
|
||||
\newcommand{\program}{Teknik Sipil}
|
||||
\newcommand{\university}{Universitas Muhammadiyah Yogyakarta}
|
||||
\newcommand{\yearofsubmission}{2025}
|
||||
5
latex/preamble/macros.tex
Normal file
5
latex/preamble/macros.tex
Normal file
@@ -0,0 +1,5 @@
|
||||
\newcommand{\eg}{\textit{e.g.},\ }
|
||||
\newcommand{\ie}{\textit{i.e.},\ }
|
||||
\newcommand{\etal}{\textit{et al.}}
|
||||
|
||||
\let\oldtableofcontents\tableofcontents % backup
|
||||
3
latex/preamble/packages.tex
Normal file
3
latex/preamble/packages.tex
Normal file
@@ -0,0 +1,3 @@
|
||||
\usepackage{amsmath, amssymb, siunitx}
|
||||
\usepackage{caption}
|
||||
\usepackage{subcaption}
|
||||
178
latex/thesis.cls
Normal file
178
latex/thesis.cls
Normal file
@@ -0,0 +1,178 @@
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesClass{thesis}[2025/05/10 Bachelor Thesis Class]
|
||||
|
||||
\newif\if@draftmark
|
||||
\@draftmarkfalse
|
||||
|
||||
\DeclareOption{draftmark}{\@draftmarktrue}
|
||||
\ProcessOptions \relax
|
||||
\LoadClass[a4paper,12pt,oneside]{book}
|
||||
|
||||
% Load common packages
|
||||
\RequirePackage{polyglossia}
|
||||
\RequirePackage{fontspec}
|
||||
\RequirePackage{titlesec}
|
||||
\RequirePackage{fancyhdr}
|
||||
\RequirePackage{geometry}
|
||||
\RequirePackage{setspace}
|
||||
\RequirePackage{graphicx}
|
||||
\RequirePackage{hyperref}
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{tocloft}
|
||||
\RequirePackage{tocbibind}
|
||||
\RequirePackage{amsmath,amsfonts,amssymb}
|
||||
\RequirePackage{svg} % Allows including SVG images directly
|
||||
\RequirePackage{indentfirst} % Makes first paragraph after headings indented
|
||||
\RequirePackage{float} % Provides [H] option to force figure/table placement
|
||||
|
||||
% Polyglossia set language
|
||||
+ \setdefaultlanguage[variant=indonesian]{malay} % Proper Indonesian language setup
|
||||
+ \setotherlanguage{english} % Enables English as secondary language
|
||||
|
||||
+ \DefineBibliographyStrings{english}{% % Customizes bibliography text
|
||||
+ andothers={dkk\adddot}, % Changes "et al." to "dkk."
|
||||
+ pages={hlm\adddot}, % Changes "pp." to "hlm."
|
||||
+ }
|
||||
|
||||
% Conditionally load the watermark package and settings
|
||||
\if@draftmark
|
||||
\RequirePackage{draftwatermark}
|
||||
\SetWatermarkText{nuluh/thesis (wip) draft: \today}
|
||||
\SetWatermarkColor[gray]{0.8} % Opacity: 0.8 = 20% transparent
|
||||
\SetWatermarkFontSize{1.5cm}
|
||||
\SetWatermarkAngle{90}
|
||||
\SetWatermarkHorCenter{1.5cm}
|
||||
\fi
|
||||
|
||||
% Page layout
|
||||
\geometry{left=3cm, top=3cm, right=3cm, bottom=3cm}
|
||||
\setlength{\parskip}{0.5em}
|
||||
\setlength{\parindent}{0pt}
|
||||
\onehalfspacing
|
||||
|
||||
% Fonts
|
||||
\defaultfontfeatures{Ligatures=TeX}
|
||||
\setmainfont{Times New Roman}
|
||||
\setsansfont{Arial}
|
||||
\setmonofont{Courier New}
|
||||
|
||||
% Metadata commands
|
||||
\input{metadata}
|
||||
|
||||
\newcommand{\setthesisinfo}[7]{%
|
||||
\renewcommand{\thesistitle}{#1}%
|
||||
\renewcommand{\studentname}{#2}%
|
||||
\renewcommand{\studentid}{#3}%
|
||||
\renewcommand{\program}{#4}%
|
||||
\renewcommand{\faculty}{#5}%
|
||||
\renewcommand{\university}{#6}%
|
||||
\renewcommand{\yearofsubmission}{#7}%
|
||||
}
|
||||
|
||||
% % Header and footer
|
||||
\fancypagestyle{fancy}{%
|
||||
\fancyhf{}
|
||||
\fancyhead[R]{\nouppercase{\rightmark}}
|
||||
\fancyhead[L]{\nouppercase{\leftmark}}
|
||||
\fancyfoot[C]{\thepage}
|
||||
}
|
||||
\fancypagestyle{fancyplainfrontmatter}{%
|
||||
\renewcommand{\headrulewidth}{0pt}
|
||||
\fancyfoot[C]{\thepage}
|
||||
}
|
||||
\fancypagestyle{fancyplain}{%
|
||||
\fancyhf{}
|
||||
\renewcommand{\headrulewidth}{0pt}
|
||||
\fancyhead[R]{\thepage}
|
||||
}
|
||||
|
||||
% Chapter formatting
|
||||
\titlespacing{\chapter}{0pt}{0cm}{*1.5} % 0pt→0cm: same value, different unit
|
||||
% 0pt = no space above chapter title
|
||||
% *1.5 = 1.5× line spacing after title
|
||||
|
||||
\titleformat{\chapter}[display]
|
||||
{\normalsize\bfseries\centering}
|
||||
{BAB~\Roman{chapter}} % << display format
|
||||
{1ex}
|
||||
{\MakeUppercase}
|
||||
\titleformat{\section}
|
||||
{\normalsize\bfseries}{\thesection}{1em}{}
|
||||
|
||||
\titleformat{\subsection}
|
||||
{\normalsize\bfseries}{\thesubsection}{1em}{}
|
||||
|
||||
% Section numbering depth
|
||||
\setcounter{secnumdepth}{3} % Enables numbering for:
|
||||
% 1 = chapters, 2 = sections, 3 = subsections
|
||||
|
||||
% Ensure chapter reference in TOC matches
|
||||
\renewcommand{\cftchappresnum}{BAB~}
|
||||
\renewcommand{\cftchapaftersnum}{\quad}
|
||||
|
||||
% \titlespacing*{\chapter}{0pt}{-10pt}{20pt}
|
||||
|
||||
% Redefine \maketitle
|
||||
\renewcommand{\maketitle}{\input{frontmatter/maketitle}}
|
||||
|
||||
% Chapter & Section format
|
||||
\renewcommand{\cftchapfont}{\normalsize\MakeUppercase}
|
||||
% \renewcommand{\cftsecfont}{}
|
||||
% \renewcommand{\cftsubsecfont}{\itshape}
|
||||
% \renewcommand{\thesection}{\textup{\Roman{chapter}}.\arabic{section}}
|
||||
|
||||
|
||||
% Dot leaders, spacing, indentation
|
||||
\setlength{\cftbeforetoctitleskip}{0cm} % Space above "DAFTAR ISI" title
|
||||
\setlength{\cftbeforeloftitleskip}{0cm} % Space above "DAFTAR GAMBAR" title
|
||||
\setlength{\cftbeforelottitleskip}{0cm} % Space above "DAFTAR TABEL" title
|
||||
|
||||
\setlength{\cftbeforechapskip}{0em}
|
||||
\setlength{\cftchapindent}{0pt}
|
||||
\setlength{\cftsecindent}{0em}
|
||||
\setlength{\cftsubsecindent}{2em}
|
||||
\setlength{\cftchapnumwidth}{3.5em}
|
||||
\setlength{\cftsecnumwidth}{2em}
|
||||
\setlength{\cftsubsecnumwidth}{2.5em}
|
||||
\setlength{\cftfignumwidth}{5em}
|
||||
\setlength{\cfttabnumwidth}{4em}
|
||||
\renewcommand \cftchapdotsep{1} % Denser dots (closer together) https://tex.stackexchange.com/a/273764
|
||||
\renewcommand \cftsecdotsep{1} % Apply to sections too
|
||||
\renewcommand \cftsubsecdotsep{1} % Apply to subsections too
|
||||
\renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftsecdotsep}}
|
||||
\renewcommand{\cftchappagefont}{\normalfont}
|
||||
\renewcommand{\cftfigpresnum}{\figurename~}
|
||||
\renewcommand{\cfttabpresnum}{\tablename~}
|
||||
|
||||
% Ensure TOC and References Respect Custom Numbering
|
||||
\renewcommand{\thechapter}{\Roman{chapter}}
|
||||
\renewcommand\thesection{\arabic{chapter}.\arabic{section}}
|
||||
|
||||
% Change figure numbering to include chapter (e.g., Figure 1.1, 1.2...)
|
||||
\renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}}
|
||||
\renewcommand{\thetable}{\arabic{chapter}.\arabic{table}}
|
||||
\renewcommand{\theequation}{\arabic{chapter}.\arabic{equation}}
|
||||
|
||||
% Table of Content (TOC) Title styling
|
||||
\renewcommand{\cfttoctitlefont}{\hfill\bfseries\MakeUppercase}
|
||||
\renewcommand{\cftaftertoctitle}{\hfill} % https://tex.stackexchange.com/a/255699/394075
|
||||
% List of Figures (LOF) Title styling
|
||||
\renewcommand{\cftloftitlefont}{\hfill\bfseries\MakeUppercase}
|
||||
\renewcommand{\cftafterloftitle}{\hfill}
|
||||
% List of Tables (LOT) Title styling
|
||||
\renewcommand{\cftlottitlefont}{\hfill\bfseries\MakeUppercase}
|
||||
\renewcommand{\cftafterlottitle}{\hfill}
|
||||
% \renewcommand{\cfttoctitlefont}{\bfseries\MakeUppercase}
|
||||
% \renewcommand{\cftaftertoctitle}{\vskip 2em}
|
||||
|
||||
% % Apply a custom fancyhdr layout only on the first page of each \chapter, and use no header/footer elsewhere
|
||||
% % \let\oldchapter\chapter
|
||||
% % \renewcommand{\chapter}{%
|
||||
% % \cleardoublepage
|
||||
% % \pagestyle{fancyplainchapter}%
|
||||
% % \oldchapter
|
||||
% % \thispagestyle{fancyplainchapter} % ensure chapter start page uses it
|
||||
% % \pagestyle{fancyplain}% switch for subsequent pages
|
||||
% % }
|
||||
|
||||
\endinput
|
||||
Reference in New Issue
Block a user