앞 글에서 규격 값을 찾는 데까지 왔다.
Procedure I, 지상 장비, 40 G, 11 ms, Terminal Peak Sawtooth
이제 이 값을 해석에 넣을 수 있는 형태로 바꿔야 한다.
많은 현장에서 이 단계는 엑셀로 처리된다. A열에 0부터 0.011까지 시간을 채우고, B열에 램프 값을 계산하고, 펄스가 끝난 뒤에는 0을 이어 붙인다. 단위를 m/s²로 바꾸려면 C열을 하나 더 만든다.
여기까지는 그래도 할 만하다.
문제는 그다음이다.
SRS를 계산해야 한다면?
주파수마다 1자유도 진동계를 하나씩 만들고, 각 진동계의 시간 응답을 계산해야 한다. 엑셀로 처리하기에는 번거롭고, 파이썬으로 직접 구현하려면 디지털 필터 계수와 시간 적분 방식까지 신경 써야 한다.
이 글에서는 Valentis Shock 탭에서 충격 하중 곡선과 SRS를 만드는 과정을 화면 단위로 살펴본다.
화면 구성
Shock 탭은 왼쪽 입력, 오른쪽 그래프 구조로 구성된다.
왼쪽에는 네 개의 주요 카드가 있다.
- 파형 토글 — Half-sine / Sawtooth / Trapezoidal
- Standard Preset — 규격 프리셋
- Inputs — Shock Pulse — 충격 펄스 파라미터 입력
- SRS — Shock Response Spectrum — SRS 계산 파라미터 입력
오른쪽에는 두 개의 그래프가 표시된다.
위쪽 그래프는 충격 펄스의 시간 이력이고, 아래쪽 그래프는 SRS 곡선이다.
입력과 결과가 한 화면에 있기 때문에, 값을 바꾸고 다시 계산했을 때 충격 펄스와 SRS가 어떻게 달라지는지 바로 확인할 수 있다.
펄스를 정의하는 기본 값
Inputs — Shock Pulse 카드에는 파형 선택과 함께 여러 입력란이 있다.
Half-sine과 Sawtooth 기준으로, 충격 펄스의 형태를 결정하는 핵심 값은 세 가지다.
| 입력 | 역할 | 예시 기본값 |
|---|---|---|
| 파형 | Half-sine / Sawtooth / Trapezoidal | Half-sine |
| Acceleration | 최대 가속도 | 30 |
| Duration (s) | 펄스 지속 시간 | 0.011 |
나머지 입력은 펄스의 물리적 형상 자체보다 시간 이력을 어떻게 기록할 것인가에 가깝다.
| 입력 | 역할 | 예시 기본값 |
|---|---|---|
| Time end (s) | 전체 시간 이력의 길이 | 0.2 |
| dt (s) | 시간 간격 | 0.0005 |
Time end는 펄스가 끝난 뒤 얼마나 더 0을 기록할지를 정한다. 해석 솔버가 요구하는 시간 이력 길이와 SRS 계산 주파수 범위에 맞춰 설정하면 된다.
예를 들어 앞 글의 Procedure I 지상 장비 조건이라면 다음처럼 입력한다.
- 파형: Sawtooth
- Acceleration: 40
- Duration: 0.011
그리고 ▶ Compute / Plot을 누르면 시간-가속도 곡선이 생성된다.
단, Trapezoidal을 선택했을 때는 Rise time과 Fall time 입력란이 추가로 나타난다. 사다리꼴 펄스는 상승 구간, 평탄 구간, 하강 구간이 모두 정의되어야 형태가 결정되기 때문이다.
단위를 바꿔도 값을 다시 계산하지 않는다
Acceleration 입력란 옆에는 단위 선택기가 있다.
g와 m/s² 중에서 선택할 수 있다.
작은 기능처럼 보이지만 실무에서는 자주 필요하다.
MIL-STD-810H는 보통 G 단위로 충격 조건을 제시하지만, 다른 규격에서는 m/s² 단위로 값이 주어진다. 예를 들어 철도 차량용 IEC 61373은 설치 위치별로 다음과 같이 규정한다.
| 설치 위치 | 규격값 | g 환산 |
|---|---|---|
| Cat 1 — 차체 설치 (수직·좌우) | 30 m/s² | 3.06 g |
| Cat 2 — 대차 설치 | 300 m/s² | 30.6 g |
| Cat 3 — 차축 설치 | 1000 m/s² | 102 g |
이 값을 손으로 환산하면 반올림 오차가 생기거나, 9.81과 9.80665 중 어떤 중력가속도를 사용했는지 기록에 남지 않는다.
단위 선택기를 사용하면 규격서에 적힌 숫자를 그대로 입력할 수 있다. Valentis는 내부 계산에 필요한 단위 변환을 처리하고, 결과는 g와 m/s²를 함께 제공한다.
결과 — 표와 그래프
계산이 끝나면 Output — Shock Pulse 카드에 시간 이력 표가 채워진다.
| Time (s) | a (g) | a (m/s²) | | —: | —: | —: |
표에는 시간, 가속도(g), 가속도(m/s²)가 함께 표시된다.
화면에서는 브라우저 성능을 고려해 일부 행만 표시하고, 그래프도 표시용으로 샘플링해 그린다. 하지만 이것은 화면 표시를 위한 처리일 뿐이다.
전체 데이터는 내보내기로 받을 수 있다.
따라서 화면에 보이는 행 수가 전체 데이터 수라고 생각할 필요는 없다. 해석 솔버에 넣을 실제 시간 이력은 Export 기능으로 받으면 된다.
SRS — 버튼 하나로 계산한다
이 탭의 핵심은 SRS 계산이다.
SRS — Shock Response Spectrum 카드는 위에서 정의한 충격 펄스를 그대로 사용한다. 펄스 파라미터를 다시 입력할 필요가 없다.
입력 항목은 네 가지다.
| 입력 | 의미 | 예시 기본값 |
|---|---|---|
| f min (Hz) | SRS 주파수 범위 하한 | 10 |
| f max (Hz) | SRS 주파수 범위 상한 | 2000 |
| Points | 주파수 샘플 개수, 로그 간격 | 120 |
| Q | 증폭계수 | 10 |
Q = 10은 감쇠비 5%에 해당한다.
ζ = 1 / (2Q)
즉 Q가 10이면 ζ = 0.05다. 충격 SRS 계산에서 자주 쓰이는 기준 감쇠 조건이다.
▶ Compute SRS를 누르면 로그-로그 스케일로 SRS 곡선이 그려진다.
Valentis는 내부적으로 Smallwood ramp-invariant 디지털 필터를 사용해 각 고유진동수의 1자유도 응답을 계산한다. 그리고 응답 가속도의 양의 피크와 음의 피크 중 절대값이 큰 값을 취하는 maximax 기준으로 SRS 값을 계산한다.
정확도를 위해 한 가지 처리를 더 한다.
SRS 계산에는 화면에 그린 시간 이력을 그대로 쓰지 않고, f max 기준으로 충분한 시간 해상도를 갖도록 펄스를 다시 생성해 사용한다. 따라서 dt를 다소 크게 잡아 두어도 고주파 영역의 SRS 값이 시간 간격 때문에 흔들리지는 않는다.
dt는 화면 표시와 내보내기용 시간 이력의 간격이라고 이해하면 된다.
SRS 곡선을 어떻게 읽는가
Procedure I 지상 장비 조건, 즉 40 g, 11 ms, Terminal Peak Sawtooth를 계산하면 다음과 같은 경향을 볼 수 있다.
- 약 62 Hz 부근에서 최대 응답이 나타난다
- 최대값은 약 47.5 g 수준이다
- 고주파 영역으로 갈수록 입력 최대 가속도인 약 40 g에 가까워진다
고주파에서 입력 최대 가속도에 가까워지는 것은 가속도 SRS의 일반적인 경향 중 하나다. 고유진동수가 매우 높은 1자유도계는 충격을 받을 때 상대 변형이 작고, 받침대 입력을 거의 따라 움직이기 때문이다.
반대로 중간 주파수 대역에서는 공진 효과 때문에 입력 최대값보다 큰 응답이 나타날 수 있다. 이 증폭 정도는 파형과 지속 시간, 감쇠 조건에 따라 달라진다.
Q = 10 조건에서 두 파형의 최대 증폭은 다음과 같은 차이를 보인다.
| 파형 | 최대 증폭 | 경향 |
|---|---|---|
| Half-sine | 약 1.65배 | 특정 대역에서 크게 부풀어 오른다 |
| Terminal Peak Sawtooth | 약 1.19배 | 넓은 대역에서 상대적으로 고르다 |
앞 글에서 “TPS는 비교적 평탄한 SRS를 만든다”고 설명한 이유가 이 차이다. 같은 최대 가속도라도 Half-sine은 공진 대역에서 응답이 크게 증폭되지만, Terminal Peak Sawtooth는 증폭이 완만한 대신 넓은 주파수 대역을 고르게 자극한다.
시리즈 초반의 질문에 답하기
이 시리즈를 시작하면서 던진 질문이 있었다.
최대 g값이 더 큰 충격이 항상 더 위험한가?
이제 실제로 비교할 수 있다.
두 조건을 각각 계산해 SRS를 비교해 보자.
- A: 20 g, 30 ms, Half-sine
- B: 75 g, 6 ms, Sawtooth — Procedure V 지상 장비 조건
최대 g값만 보면 B가 A보다 훨씬 크다. B는 75 g이고, A는 20 g이므로 거의 4배 차이가 난다.
하지만 SRS로 보면 결과가 달라진다.
| 고유진동수 | A: 20 g / 30 ms Half-sine | B: 75 g / 6 ms Sawtooth | 더 가혹한 조건 |
|---|---|---|---|
| 10 Hz | 약 20.6 g | 약 13.3 g | A |
| 20 Hz | 약 31.5 g | 약 26.1 g | A |
| 30 Hz | 약 32.9 g | 약 38.6 g | B |
| 60 Hz | 약 25.7 g | 약 69.0 g | B |
| 100 Hz | 약 22.1 g | 약 88.6 g | B |
두 SRS 곡선은 약 26 Hz 부근에서 교차한다.
즉 구조물의 지배 모드가 26 Hz보다 낮다면, 최대 g값이 훨씬 작은 A 조건이 더 가혹할 수 있다. 지속 시간이 길어 저주파 대역을 더 크게 흔들기 때문이다.
반대로 구조물의 주요 모드가 30 Hz 이상이라면 B 조건이 더 가혹해진다. 최대 가속도가 크고, 짧은 지속 시간으로 인해 더 높은 주파수 대역의 응답을 크게 만들기 때문이다.
최대 g값만 비교했다면 정반대로 판단했을 수 있다.
이것이 SRS를 계산해야 하는 이유이고, 그 계산이 버튼 하나로 끝나야 하는 이유다.
내보내기
계산 결과는 세 가지 형식으로 내보낼 수 있다.
| 버튼 | 형식 | 내용 |
|---|---|---|
| Export .dat | 공백 구분 2열 | 시간, 가속도 (m/s²) |
| Export .csv | 쉼표 구분 3열 | 시간, 가속도(g), 가속도(m/s²) |
| SRS Export .csv | 쉼표 구분 3열 | 고유진동수, 응답(g), 응답(m/s²) |
.dat 파일은 해석 솔버 입력을 고려한 형식이다. 시간과 가속도 값이 단순한 2열 구조로 저장되기 때문에, 시간 이력 하중 입력으로 활용하기 쉽다.
여기서 한 가지 기억해 둘 점이 있다.
.dat의 가속도는 항상 m/s²다.
대부분의 구조해석 솔버가 SI 단위계로 시간 이력을 받기 때문에, 별도 환산 없이 그대로 넣을 수 있도록 고정한 것이다. 입력할 때 g 단위를 선택했더라도 .dat 출력은 m/s²로 나온다.
g 단위 값이 필요하면 .csv를 사용하면 된다. CSV에는 g와 m/s²가 함께 들어 있다.
잘못된 입력은 계산 전에 걸러진다
값을 잘못 넣으면 계산이 진행되지 않고 입력란 아래에 메시지가 표시된다.
대표적인 예는 다음과 같다.
-
Time end must be ≥ Duration 전체 기록 길이가 펄스 지속 시간보다 짧을 수 없다.
-
dt must be smaller than Duration 시간 간격이 펄스 지속 시간보다 크면 파형을 제대로 만들 수 없다.
-
Rise + Fall must be ≤ Duration Trapezoidal에서 상승 시간과 하강 시간의 합이 전체 지속 시간을 넘을 수 없다.
-
f max must be greater than f min SRS 주파수 범위가 뒤집힌 경우다.
사소해 보이지만, 이런 조건은 엑셀 작업에서 자주 놓친다.
엑셀에서는 잘못된 값으로도 곡선이 그려질 수 있다. 그래서 틀린 줄 모르고 해석 솔버에 넣는 일이 생긴다.
Valentis Shock은 계산 전에 기본적인 입력 조건을 확인해, 명백한 오류가 해석 입력으로 넘어가는 것을 줄인다.
계산을 다시 하고 싶다면 Clear로 결과만 지우거나, Input 카드 우측의 초기화로 입력값을 기본값으로 되돌릴 수 있다.
정리 — 세 줄에서 시작해 SRS까지
Procedure I 지상 장비 조건을 처음부터 끝까지 정리하면 다음과 같다.
- Sawtooth 버튼을 누른다
- Acceleration에 40, Duration에 0.011을 입력한다
- ▶ Compute / Plot을 누른다
- ▶ Compute SRS를 누른다
- Export .dat으로 내보낸다
규격 프리셋을 사용하면 1~3번 과정은 Apply 한 번으로 줄어든다.
엑셀에서 램프 값을 채우고, SDOF 응답 계산을 직접 구현하고, 단위를 환산하던 과정이 사라진다.
남는 것은 어떤 절차를 적용할지, 어떤 축으로 몇 번 가할지 판단하는 일이다. 그것은 원래 엔지니어가 해야 할 판단이다.
마무리
이번 시리즈에서 다룬 내용을 정리하면 다음과 같다.
- 충격 하중은 파형, 크기, 지속 시간으로 정의된다
- 파형 선택은 실제 충격의 성격과 규격 요구조건을 따른다
- SRS는 충격의 위험도를 고유진동수 축 위에서 보여준다
- MIL-STD-810H는 상황별 Procedure와 시험 수준을 규정한다
- Valentis Shock은 이 조건들을 충격 곡선과 SRS로 바꾼다
그리고 이 시리즈 전체를 관통하는 결론이 하나 있다.
최대 g값 하나로 충격을 비교하지 말 것.
20 g, 30 ms Half-sine과 75 g, 6 ms Sawtooth의 SRS 교차 사례가 그 이유를 보여준다. 충격의 가혹도는 최대값만이 아니라 파형, 지속 시간, 그리고 구조물의 고유진동수 대역에 의해 결정된다.
다음 시리즈에서는 충격이 아니라 반복되는 진동을 다룬다.
회전 기계, 철도 차량, 항공기에서 발생하는 정현파 진동 하중을 어떻게 정의하고 계산하는지, 조화 하중(Harmonic)부터 살펴본다.
키워드: Shock 하중 계산, SRS 자동 계산, 충격응답스펙트럼 계산, 충격 하중 곡선, Terminal Peak Sawtooth, Half-sine 펄스, IEC 61373 충격, 진동 해석 소프트웨어, CAE 하중 정의, MIL-STD-810H 프리셋