모의 실험
모의 결과예요. 실측 데이터로 쓰지 마세요.
사인파를 오래 넣었을 때의 이론 크기예요. 0 dB = 입력과 같은 크기, +6 dB ≈ 2배, −20 dB = 1/10. 실측 데이터가 아니에요.
회로 Vin → R → L → C → GND
입력 신호 (CH1)
판별 타임라인 누르면 그 시점을 확대해요
신호와 판별 로직
스코프에 겹쳐 볼 고정 회로
동적 회로(청록 굵은 선)는 항상 보여요. 고정 회로 R 값은 설정 → 부품 값에서 바꿀 수 있어요.
계산할 주파수
각 주파수의 구형파를 10주기 넣고, n = 0~128 모두에서 RMSE를 계산해요. 느린·빠른 신호 주파수는 고정 vs 동적 탭이나 설정에서 바꿔요.
이렇게 써 보세요
- R만 바꿔 보기. 파형 탭에서 고정 저항 R 슬라이더를 끌어 보세요. 진동이 생겼다 사라지는 경계가 임계저항 R_c예요. 오른쪽 지표에서 ζ와 오버슈트가 함께 바뀌어요.
- MCP4131로 바꾸기. R 슬롯을 MCP4131로 바꾸면 n(0~128)으로 저항을 고르게 돼요. n=0에서도 와이퍼 저항이 남는다는 점을 확인하세요.
- R 스윕으로 겹쳐 보기. 여러 R의 계단응답을 한 화면에 겹쳐요. f₀는 모두 같고 감쇠만 달라지는 모습이 보여요.
- 고정 vs 동적 비교. 느린 신호와 빠른 신호가 섞인 입력에서, 고정 R 세 가지와 판별 로직으로 R을 바꾸는 동적 회로의 오차를 비교해요. 개선율은 항상 어떤 고정 R과 비교했는지 같이 봐야 해요.
- 최적 n 찾기. 주파수마다 오차가 가장 작은 n을 찾아 판별 로직의 N_FAST, N_SLOW로 쓸 수 있어요.
- 주파수 응답 보기. 여러 R에서 출력/입력 크기(|Vc/Vin|)를 주파수별로 겹쳐 그려요(보드선도). R이 작을수록 f₀ 근처 봉우리가 높고 뾰족해지고, R이 커지면 봉우리가 낮아지며 조금 왼쪽으로 옮겨 가요. 느린·빠른 신호 주파수가 봉우리에서 얼마나 떨어져 있는지도 함께 보여요.
스코프 화면은 끌어서 옮기고, 확대·축소 버튼(또는 Ctrl+휠, 두 손가락)으로 시간축을 바꿀 수 있어요. 두 번 누르면 전체 보기로 돌아가요. 커서를 켜고 화면을 누르면 두 지점 사이의 Δt와 ΔV를 재요.
지표 읽는 법
| 지표 | 뜻 | 계산 |
|---|---|---|
| f₀ | R이 없을 때 회로가 떨리는 고유 진동수 | 1 / (2π√(LC)) |
| ζ | 감쇠비. 1보다 작으면 진동, 크면 과감쇠 | (R/2)·√(C/L) |
| R_c | ζ = 1이 되는 임계저항 | 2√(L/C) |
| 오버슈트 | 최종값을 넘어선 정도 | (V_max − V_f)/ΔV × 100 |
| 정착시간 | 최종값 ±2% 안에 들어가 머무르기까지 | 파형에서 측정 |
| 측정 ζ | 첫 두 피크의 높이 비로 구한 감쇠비 | δ = ln(x₁/x₂), δ/√(4π²+δ²) |
| RMSE | 입력을 얼마나 잘 따라가는지(0~1 정규화, 작을수록 좋음) | √(Σ(출력−입력)²/N) |
| 개선율 | 동적 회로가 고정 회로보다 줄인 오차 | (E_고정 − E_동적)/E_고정 |
| |H(f)| | 주파수 f의 사인파를 넣었을 때 출력/입력 크기 (주파수 응답) | 1/√((1−u²)² + (2ζu)²), u = f/f₀ |
| 봉우리 | ζ < 0.707일 때 생기는 공진 봉우리의 위치와 높이 | f₀√(1−2ζ²), 1/(2ζ√(1−ζ²)) |
RMSE는 입력과 출력을 같은 시간축에서 0(V_low)~1(V_high)로 바꾼 뒤 계산해요. "첫 주기 제외"를 켜면 처음 한 주기의 과도 구간을 빼요. 보고서에 쓸 때도 같은 정의를 밝혀 주세요.
이 모델이 하지 못하는 것
- 부품은 이상적이라고 가정해요. 코일의 비선형성, 코어 포화, 브레드보드의 기생 성분, 연산증폭기(LM358)의 한계는 들어 있지 않아요.
- 코일 직류 저항, 전원 출력저항, MBL 노이즈는 설정에서 값을 넣을 때만 반영돼요.
- MBL의 실제 사양(샘플링, 분해능)은 아직 확인 전이라 기본값(10 kHz, 12비트)으로 흉내만 내요.
- 판별 로직은 신호 에지 시각만 보고 동작한다고 가정했어요. 아두이노의 처리 지연과 SPI 전송 시간(수십 µs)은 무시해요.
그래서 이 결과는 실험 전에 무엇을 볼지 예상하는 용도예요. 보고서의 측정값으로는 쓰지 마세요.
자주 묻는 질문
값을 잘못 바꿨어요. 되돌릴 수 있나요?
위쪽 상태바의 기록을 누르면 최근 변경 20개가 나와요. 줄을 누르면 그 변경 전으로 돌아가고, Ctrl+Z(맥은 ⌘+Z)는 한 단계씩 되돌려요. 슬라이더를 끄는 동안의 변경은 한 줄로 묶이고, 프리셋도 한 줄이에요. 탭 이동이나 확대·축소는 기록하지 않아요. 기록은 탭을 닫으면 사라지니, 남겨 둘 설정은 내보내기 → 설정 저장(JSON)으로 저장하세요.
R을 줄이면 계속 빨라지지 않나요?
과감쇠 구간(ζ > 1)에서는 R을 줄일수록 빨라져요. 하지만 임계저항 아래로 내려가면 진동(링잉)이 생겨서 오히려 안정되는 데 더 오래 걸려요. 정착시간이 가장 짧은 곳은 ζ ≈ 0.7~1 근처예요.
R을 바꾸면 진동수도 바뀌나요?
고유 진동수 f₀ = 1/(2π√LC)는 L과 C로만 정해져서 그대로예요. 화면에 보이는 진동수 f_d = f₀√(1−ζ²)는 ζ가 커질수록 조금 낮아지지만, ζ가 0.3 이하일 때는 거의 같아 보여요.
n=0인데 왜 저항이 0이 아닌가요?
MCP4131은 n=0이어도 와이퍼 저항(기본값 75 Ω)이 남아요. 그래서 L이 작아 임계저항이 75 Ω보다 작으면 어떤 n에서도 진동을 볼 수 없어요. "불가 조합 체험"에서 확인할 수 있어요.
20 ↔ 100 Hz에서는 왜 동적 회로 이득이 거의 없나요?
두 주파수 모두 f₀(약 503 Hz)보다 충분히 느려서, 오차가 가장 작은 n이 둘 다 6 근처로 같기 때문이에요. 빠른 신호가 f₀에 가까워지는 300 Hz 근처에서야 작은 R이 유리해져서 동적 제어의 이득이 생겨요. 이 결과도 그대로 보고하면 돼요.
주파수 응답(보드선도)과 계단응답은 무슨 관계예요?
계단이나 구형파의 모서리에는 아주 높은 주파수까지 여러 사인파 성분이 섞여 있어요. 회로는 그중 f₀ 근처 성분을 봉우리 높이만큼 키우고, 훨씬 높은 성분은 줄여요. 봉우리가 높을수록(ζ가 작을수록) f₀ 근처 성분이 오래 남아 계단응답에서 링잉으로 보이고, 봉우리가 없으면(ζ ≥ 0.707) 출렁임이 거의 없어요. 그래서 두 그래프는 같은 회로를 시간과 주파수라는 두 방향에서 본 거예요.
개선율이 음수로 나오면 잘못된 건가요?
아니에요. 동적 회로가 그 고정 회로보다 오차가 컸다는 뜻이에요. 숨기지 말고 그대로 쓰는 게 정직한 비교예요. 개선율 옆에는 항상 기준이 된 고정 R을 같이 적으세요.
실제 실험 결과와 다르게 나오면요?
보통 코일 직류 저항, 와이퍼 저항, 접촉 저항 때문에 실제 오버슈트가 더 작게 나와요. 멀티미터로 코일 저항을 재서 설정 → 추가 저항에 넣으면 모의 결과가 가까워져요. 그래도 실측값을 모의 결과에 맞추지는 마세요.