OpenSees 연습문제와 검증된 정답, 그리고 한영 용어집

시리즈 전체를 아우르는 연습문제 열 개. 각각 이 글을 위해 계산한 닫힌해 정답이 딸려 있다. 캔틸레버 선단 -0.033333333333 m, 등분포 보 -0.0084375 m 와 정확히 wL제곱/8 인 중앙 모멘트, Δt/T = 0.1 에서 주기를 3.207% 늘리는 Newmark, 파이버 개수 규칙

OpenSees 연습문제와 검증된 정답, 그리고 한영 용어집

열네 편, 그리고 그 안의 모든 수치 주장은 OpenSees에서 나오지 않은 무언가와 대조했습니다. 닫힌해, 독립적인 구현, 공표된 벤치마크, 또는 프레임워크 자신의 소스 코드. 첫 글부터의 규칙이었고, 이 마지막 글이 시리즈를 닫습니다. 마지막 자리까지 대조할 수 있는 답이 딸린 연습문제 열 개와, 시리즈에서 쓴 모든 용어의 한영 대조 용어집입니다.

연습문제는 퀴즈가 아닙니다. 각각 닫힌해가 있으므로, 요점은 숫자를 맞히느냐가 아니라 여러분의 모델과 닫힌해가 일치하느냐입니다. 시리즈 전체가 주장해온 습관이 바로 그것입니다.

1. 연습문제 열 개

1번 — 첫 모델 (1부)

캔틸레버, L = 4 m, EI = 16,000 kN·m², 선단에 25 kN 횡하중. elasticBeamColumn 하나와 Linear 변환으로 만드십시오. 선단 변위와 선단 회전각을 답하십시오.

답 선단 변위 -0.033333333333 m = -P L^3 / (3 EI) 선단 회전각 -0.012500000000 rad = -P L^2 / (2 EI) 상대오차 2.1e-16

1000배 어긋난다면 단위를 확인하십시오. EI를 kN·m²로, L을 m로 주면 답이 m로 나옵니다. 3배나 8배 어긋난다면 단부조건이 틀린 것입니다.

2번 — 분포하중과 반력 (2부)

단순지지보, L = 6 m, EI = 24,000 kN·m², 등분포 12 kN/m. 요소 20개와 eleLoad -type -beamUniform을 쓰십시오. 중앙 처짐, 지점 반력, 중앙 모멘트를 답하십시오.

답 중앙 처짐 -0.0084375000 m = -5 w L^4 / (384 EI) 지점 반력 36.000000 kN = w L / 2 중앙 모멘트 54.000000 kN m = w L^2 / 8 상대오차 2.3e-12, 2.4e-12

함정 둘. eleLoad 대신 중앙에 절점하중을 걸면 처짐이 완전히 달라집니다. 그리고 eleResponse(ele, 'basicForce')는 그 요소의 단부 모멘트를 주지 원하는 지점의 모멘트를 주지 않습니다. 요소 20개면 요소 단부가 중앙을 충분히 가깝게 감싸지만, 4개면 그렇지 않습니다.

3번 — 시간 간격을 얼마나 (4부)

단자유도 진동자, m = 2 t, k = 800 kN/m. 평균가속도 Newmark법에서 Δt/T = 0.1, 0.2, 0.3일 때 주기가 얼마나 늘어납니까?

답 정확한 T 0.31415927 s dt/T = 0.1 수치 T 0.32423590 s +3.207% dt/T = 0.2 수치 T 0.35186877 s +12.003% dt/T = 0.3 수치 T 0.39175771 s +24.700% cos(w_bar dt) = 1 - (w^2 dt^2 / 2) / (1 + beta w^2 dt^2) 사용

4부에서 이 법칙을 유도해 0.1%p 이내로 맞췄습니다. 실무적 독법은 이렇습니다. Δt = T/10은 보수적인 선택이 아니라 주기 3% 오차이고, 스무 사이클이면 위상이 거의 한 사이클 어긋납니다.

4번 — 파이버 몇 개 (12부)

직사각형 탄성 파이버 단면. EI를 정확값의 5%, 1%, 0.5%, 0.1% 이내로 맞추려면 깊이 방향 파이버가 몇 개 필요합니까?

답 EI / 정확한 EI = 1 - 1/n^2 정확히 그러하므로 n >= 1 / sqrt(e) 5% -> 5개 0.5% -> 15개 1% -> 10개 0.1% -> 32개

ops.sectionStiffness(eleTag, 1)[3]을 E·b·h³/12와 대조해 확인하십시오.

5번 — 좌굴하중 넷 (13부)

EI = 4,000 kN·m², L = 5 m인 기둥. 핀–핀, 고정–자유, 고정–고정, 고정–핀에 대한 탄성 좌굴하중을 구하십시오.

답 핀-핀 1579.14 kN k = 1 고정-자유 394.78 kN k = 2 고정-고정 6316.55 kN k = 0.5 고정-핀 3230.11 kN k = 0.6992

그다음 공회전 좌표계 변환과 요소 8개 이상으로, 13부의 접선 고유값 방법을 써서 OpenSees에서 재현하십시오. 그중 하나라도 좌굴하중을 아예 찾지 못한다면 변환을 확인하십시오.

6번 — 한계점 (9부)

얕은 2부재 트러스, 반지간 1.5 m, 라이즈 0.15 m, EA = 3 × 10⁵ kN, 정점에 하향 하중. 한계하중과 그때의 정점 침하를 구하십시오.

답 P_한계 = 114.3262 kN, 정점 침하 0.0635411 m L(v) = sqrt(a^2 + (h-v)^2), N = EA (L - L0)/L0, P(v) = -2 N (h - v) / L 로부터

DisplacementControl로 추적하고, LoadControl이 아무 보고 없이 정점을 지나쳐 가는 것을 확인하십시오.

7번 — 어느 요소인가 (11부)

평면응력 캔틸레버, L/h = 10, ν = 0, 선단 전단력, 한 줄에 요소 10개. quad와 enhancedQuad를 Timoshenko 처짐 0.040240과 비교하십시오.

답 quad 0.026800 -33.40% 전단락킹 enhancedQuad 0.040100 -0.35% 비 1.4963

그다음 quad로 enhancedQuad의 10요소 답을 이기려면 요소가 몇 개 필요한지 찾아보십시오. 11부에서 640개 이상으로 측정했습니다.

8번 — 지반 주상체 (11부)

24 m 지반, Vs = 180 m/s, ρ = 1.9 Mg/m³, ν = 0.35. 1~3차 전단주기, 1~2차 압축주기, 그리고 1 m 요소로 파동해석을 할 때의 출발 시간 간격을 구하십시오.

답 Vp = 374.70 m/s 전단 0.533333 s 0.177778 s 0.106667 s T = 4H/((2n-1) Vs) 압축 0.256205 s 0.085402 s 시간간격 dt <= h / (5 Vs) = 1 m 요소에 1.111 ms

1차 압축주기가 1차와 2차 전단주기 사이에 들어간다는 점에 주목하십시오. 모델의 2차 모드는 2차 전단모드가 아닙니다.

9번 — 강막이 하는 일 (8부)

EI = 32,000 kN·m², 높이 3.5 m인 기둥. 상단 회전을 구속한 경우와 자유인 경우의 횡강성, 그리고 두 고유주기의 비를 구하십시오.

답 12 EI / H^3 = 8956.27 kN/m 상단 회전 구속 3 EI / H^3 = 2239.07 kN/m 상단 회전 자유 강성비 4.0 주기비 2.0

rigidDiaphragm은 병진과 연직축 회전을 묶습니다. 기둥 상단 회전은 구속하지 않습니다. 3차원 모델에 강막은 있고 보가 없다면, 여러분은 첫 번째가 아니라 두 번째 경우에 있습니다.

10번 — 유효숫자 6자리로 부족할 때 (10부)

매끄러운 함수를 201점에서 표본하고, recorder가 하듯 유효숫자 6자리로 반올림한 뒤, 반올림한 데이터의 수치미분을 원본의 미분과 비교하십시오.

답 값 최대 절대오차 5.0e-07 미분 중앙값 상대오차 0.00064% 최대 상대오차 0.0138%

이제 그것을 10부의 푸시오버 곡선에 대한 같은 실험과 비교해보십시오. 거기서는 최대가 163%였습니다. 차이는 반올림이 아니라 미분값이 0 근처를 지나느냐입니다. 교훈은 일반화됩니다. 유효숫자 6자리는 값에는 충분하고, 0에서 멀리 떨어져 있는 미분에도 충분하며, 그렇지 않은 미분에는 파국적입니다.

2. 한영 용어집

프레임워크

한국어EnglishOpenSees

도메인Domain모든 것을 소유하는 객체

절점Nodenode

요소Elementelement

자유도Degree of freedomndf

구속Constraintfix, equalDOF, rigidDiaphragm

단점 구속Single-point constraintfix

다점 구속Multi-point constraintequalDOF

하중 패턴Load patternpattern

시계열Time seriestimeSeries

기록기Recorderrecorder

해석 조립Analysis aggregate해석 객체 여섯

번호 부여기Numberernumberer

연립방정식System of equationssystem

적분기Integratorintegrator

해법 알고리즘Solution algorithmalgorithm

수렴 판정Convergence testtest

요소와 단면

한국어EnglishOpenSees

트러스TrussTruss, corotTruss

보-기둥 요소Beam-column elementelasticBeamColumn

힘기반 요소Force-based elementforceBeamColumn

변위기반 요소Displacement-based elementdispBeamColumn

영길이 요소Zero-length elementzeroLength

기하변환Geometric transformationgeomTransf

공회전 좌표계CorotationalCorotational

파이버 단면Fibre sectionsection Fiber

패치Patchpatch

철근층Layerlayer

적분점Integration pointbeamIntegration

가우스–로바토Gauss–LobattoLobatto

소성힌지Plastic hingeHingeRadau

쉘 요소Shell elementShellMITC4, ShellDKGQ

평면응력Plane stressPlaneStress

평면변형Plane strainPlaneStrain

솔리드 요소Brick / solid elementstdBrick, SSPbrick

전단락킹Shear lockingquad의 −33%를 만드는 것

모래시계 모드Hourglass mode안정화가 억제하는 것

재료

한국어EnglishOpenSees

1축 재료Uniaxial materialuniaxialMaterial

다축 재료nD materialnDMaterial

항복강도Yield strengthFy

항복변형률Yield strainFy/E

변형경화비Strain hardening ratiob

이동경화Kinematic hardeningSteel01 기본값

등방경화Isotropic hardeninga1–a4

완전탄소성Elastic–perfectly plasticElasticPP

구속 콘크리트Confined concrete심부 파이버

비구속 콘크리트Unconfined concrete피복 파이버

피복Cover—

심부Core—

압축강도Compressive strengthfpc

점착력Cohesioncohesi

내부마찰각Friction anglefrictionAng

해석

한국어EnglishOpenSees

접선강성Tangent stiffnessprintA

잔차 / 불평형력Residual / unbalancetestNorm

하중제어Load controlLoadControl

변위제어Displacement controlDisplacementControl

호장법Arc lengthArcLength

한계점Limit point—

분기점Bifurcation—

스냅스루Snap-through—

스냅백Snap-back—

좌굴하중Buckling load—

유효길이계수Effective length factork

초기 불완전Initial imperfection—

푸시오버Pushover—

모멘트–곡률Moment–curvature—

층간변위비Storey drift ratio—

증분동적해석Incremental dynamic analysisIDA

동적해석

한국어EnglishOpenSees

집중질량Lumped massmass

일관질량Consistent mass-cMass

레일리 감쇠Rayleigh dampingrayleigh

감쇠비Damping ratiozeta

고유치해석Eigenvalue analysiseigen

모드형상Mode shapenodeEigenvector

유효질량비Participating mass ratiomodalProperties

뉴마크법Newmark methodNewmark

수치감쇠Numerical dampingHHT

주기 신장Period elongation—

등가진Uniform excitationUniformExcitation

응답스펙트럼Response spectrumsdfResponse

최대지반가속도Peak ground accelerationPGA

강막Rigid diaphragmrigidDiaphragm

비틀림 모드Torsional mode—

부지응답Site response—

전단파속도Shear wave velocityVs

3. 다음으로 갈 곳

이 시리즈가 일부러 다루지 않은 것 셋과, 어디를 볼지.

병렬과 대형 모델. OpenSeesMP와 OpenSeesSP, getPID/getNP 명령, 도메인 분할. 해석 하나가 한 시간을 넘기 시작하면 값어치가 생깁니다.

신뢰성과 민감도. randomVariable, performanceFunction, runFORMAnalysis 계열과 sensSectionForce 뒤의 직접미분법. 프레임워크에서 크고, 잘 개발되어 있으며, 거의 문서화되지 않은 부분입니다.

재료나 요소를 직접 쓰기. 5부에서 소스를 읽었고, 다음 단계는 그것에 대고 컴파일하는 것입니다. 저장소의 DEVELOPER 디렉터리가 진입점이고, 새 UniaxialMaterial 하나는 200줄 정도입니다.

그리고 습관 하나. 이 시리즈에서 다른 모든 프레임워크로 옮겨갈 수 있는 유일한 것입니다. 숫자를 믿기 전에, 그 숫자를 만들지 않은 무언가를 찾아 대조하십시오.

전체 스크립트

연습문제 1번과 2번을 단언과 함께. 틀린 답이 표에서 읽히는 대신 스크립트를 멈추게 합니다.

# Part 15 - two exercises with closed-form answers # units: kN, m import openseespy.opensees as ops # --- 1. cantilever with a tip load: PL^3/3EI and PL^2/2EI ------------------ L, E, I, A, P = 4.0, 2.0e8, 8.0e-5, 0.01, 25.0 ops.wipe(); ops.model('basic', '-ndm', 2, '-ndf', 3) ops.node(1, 0., 0.); ops.node(2, L, 0.); ops.fix(1, 1, 1, 1) ops.geomTransf('Linear', 1) ops.element('elasticBeamColumn', 1, 1, 2, A, E, I, 1) ops.timeSeries('Linear', 1); ops.pattern('Plain', 1, 1); ops.load(2, 0., -P, 0.) ops.constraints('Plain'); ops.numberer('Plain'); ops.system('BandGeneral') ops.test('NormDispIncr', 1e-12, 10); ops.algorithm('Linear') ops.integrator('LoadControl', 1.0); ops.analysis('Static'); ops.analyze(1) d, th = ops.nodeDisp(2, 2), ops.nodeDisp(2, 3) d_x, th_x = -P*L**3/(3*E*I), -P*L**2/(2*E*I) print(f'1 tip deflection {d:.12f} m exact {d_x:.12f} err {abs(d-d_x)/abs(d_x):.1e}') print(f' tip rotation {th:.12f} rad exact {th_x:.12f} err {abs(th-th_x)/abs(th_x):.1e}') assert abs(d - d_x) / abs(d_x) < 1e-12 and abs(th - th_x) / abs(th_x) < 1e-12 # --- 2. simply supported beam under a uniform load ------------------------- L2, E2, I2, A2, w = 6.0, 2.0e8, 1.2e-4, 0.02, 12.0 n = 20 ops.wipe(); ops.model('basic', '-ndm', 2, '-ndf', 3) for i in range(n + 1): ops.node(i + 1, i * L2 / n, 0.0) ops.fix(1, 1, 1, 0); ops.fix(n + 1, 0, 1, 0) ops.geomTransf('Linear', 1) for i in range(n): ops.element('elasticBeamColumn', i + 1, i + 1, i + 2, A2, E2, I2, 1) ops.timeSeries('Linear', 1); ops.pattern('Plain', 1, 1) for i in range(n): ops.eleLoad('-ele', i + 1, '-type', '-beamUniform', -w) ops.constraints('Plain'); ops.numberer('Plain'); ops.system('BandGeneral') ops.test('NormDispIncr', 1e-12, 10); ops.algorithm('Linear') ops.integrator('LoadControl', 1.0); ops.analysis('Static'); ops.analyze(1) ops.reactions() mid = ops.nodeDisp(n // 2 + 1, 2) R1 = ops.nodeReaction(1, 2) Mmid = abs(ops.eleResponse(n // 2, 'basicForce')[2]) mid_x, R_x, M_x = -5*w*L2**4/(384*E2*I2), w*L2/2, w*L2**2/8 print(f'\n2 midspan deflection {mid:.12f} m exact {mid_x:.12f}' f' err {abs(mid-mid_x)/abs(mid_x):.1e}') print(f' support reaction {R1:.10f} kN exact {R_x:.10f}') print(f' midspan moment {Mmid:.10f} kN m exact {M_x:.10f}') assert abs(mid - mid_x) / abs(mid_x) < 1e-9 assert abs(R1 - R_x) / R_x < 1e-9 and abs(Mmid - M_x) / M_x < 1e-9 print('\nOK both exercises match their closed forms')

실행하면 이렇게 나옵니다.

1 tip deflection -0.033333333333 m exact -0.033333333333 err 2.1e-16 tip rotation -0.012500000000 rad exact -0.012500000000 err 1.4e-16 2 midspan deflection -0.008437500000 m exact -0.008437500000 err 2.3e-12 support reaction 36.0000000000 kN exact 36.0000000000 midspan moment 54.0000000001 kN m exact 54.0000000000 OK both exercises match their closed forms

OpenSees 시리즈 전체

각 편은 닫힌해·독립적인 풀이·OpenSees 소스 중 하나와 대조해 검증했다. 순서대로 읽도록 썼지만 각 편이 자기 전제를 스스로 밝힌다.

1부 — 도메인 모델과 해석 조립

2부 — 단면·기하변환·분포하중

3부 — 파이버 단면·모멘트–곡률·푸시오버

4부 — 질량·감쇠·시간적분

5부 — 라이브러리 읽기와 재현 가능한 워크플로

6부 — 철근콘크리트 파이버 단면과 구속

7부 — 실제 지진기록·층간변위·증분동적해석

8부 — 3차원: 강막·비틀림·leaning column

9부 — 수렴하지 않을 때: 실패·알고리즘·한계점

10부 — Tcl 읽기와 공개 스크립트 이식

11부 — 쉘·솔리드·지반: 락킹·메시·부지응답

12부 — 후처리: recorder·질의, 그리고 그림이 증명하는 것

13부 — 좌굴과 한계점: 분기점·스냅백·호장법

14부 — Windows: 설치·파일 형식·조용한 실패

15부 — 검증된 정답이 딸린 연습문제와 한영 용어집 — 지금 보는 글

16부 — 어떻게 동작하는가: 시행상태·확정상태·해석 루프

17부 — 커뮤니티가 말하는 것, 측정해보면

18부 — 절점 변위에서 파이버 응력까지

19부 — 면진과 감쇠: 속도 의존 요소와 베어링

참고 자료

OpenSees, 검증 스위트 — 모델을 어떻게 검사하는지의 모범.

OpenSeesPy, 문서.

Pacific Earthquake Engineering Research Center, OpenSees Wiki.

Scott, M. H., OpenSees Digital.

Timoshenko, S. P., Gere, J. M., Theory of Elastic Stability; Chopra, A. K., Dynamics of Structures; Kramer, S. L., Geotechnical Earthquake Engineering; Crisfield, M. A., Non-linear Finite Element Analysis of Solids and Structures — 이 시리즈의 닫힌해가 나온 네 권.

출처 확인 2026-08-31. 이 페이지의 모든 연습문제 답은 이 글을 위해 OpenSeesPy 3.8.0으로 또는 명시한 닫힌해로 계산했습니다. 용어집은 한국 구조공학 실무에서 통용되는 한국어 용어를 싣되, 둘 이상이 함께 쓰이는 경우 이 시리즈에서 쓴 것을 실었습니다. 결과는 프레임워크의 거동을 보여주는 것으로, 프로젝트별 해석이나 설계기준 검토를 대체하지 않습니다.