부드러운 값이 항상 더 좋은 피드백은 아니다
센서 잡음은 측정이 변하는 원인 중 하나다. 실제 운동·보정 오차·시간 불일치·단위 오류와 모두 같은 것으로 취급하지 않는다. 잡음을 줄이는 필터는 관심 신호의 빠른 변화도 늦추거나 줄일 수 있다. 제어기는 그 측정을 보고 입력을 정하므로 화면이 부드러워졌다는 사실만으로 제어 품질이 좋아졌다고 판단하지 않는다. 원시 측정·필터 출력·목표·입력을 같은 시각 기준으로 비교한다.
정규화 원시 측정을 y[k], 필터 출력을 z[k], 샘플 번호를 k라고 하자. 다음 1차 지수 필터는 직전 출력과 새 측정을 섞는다. α는 0≤α<1의 무차원 계수다. 초기 z[−1]도 모델의 일부다.
α=0.8, 초기 출력 0에서 첫 입력이 1이면 z[0]=0.2다. 다음 입력이 0이면 z[1]=0.16이다. 원시 스파이크가 줄었지만 그 영향은 다음 표본에도 남았다. 입력이 계속 1인 계단이라면 두 번째 출력은 0.36으로 느리게 따라간다. 두 입력 시나리오를 섞지 않는다. α가 1에 가까우면 과거 출력의 비중이 커지지만, 최적값은 대상의 대역폭과 잡음·지연 요구에 따라 달라진다.
위 z[k]는 k번째 측정을 받은 직후 갱신한 출력이다. 계수의 시간 스케일을 비교할 때는 연속 1차 필터의 ZOH 계수 관계 α=e^(−T/τ)를 참고할 수 있다. τ는 시간상수(s)다. 연속 모델에서 구간 시작값을 w[k]라 하고 입력 y[k]를 T 동안 유지하면 구간 끝값은 w[k+1]=αw[k]+(1−α)y[k]다. 현재 측정 뒤의 z[k]와 구간 끝의 w[k+1]은 시점 표기가 다르며 같은 인덱스의 물리 시각을 뜻한다고 가정하지 않는다. T=0.1 s와 α=0.8이면 τ=−T/ln α≈0.4481 s다. α를 그대로 두고 T만 바꾸면 실제 초 단위의 필터 특성도 바뀐다. 같은 τ를 유지하면서 T를 0.05 s로 바꾸면 α는 √0.8≈0.8944가 된다. 이 관계는 일정 간격의 해당 1차 필터 모델에 대한 것이며 임의의 가변 표본 처리를 자동 보장하지 않는다.
평균은 무엇을 줄이고 무엇을 늦추는가
최근 세 표본을 같은 가중치로 평균하는 인과 이동평균은 z[k]=(y[k]+y[k−1]+y[k−2])/3이다. T=0.1 s, 기울기 1/s인 가상 램프의 최근 값이 0,0.1,0.2라면 현재 y=0.2일 때 평균은 0.1이다. 이 램프에서는 한 표본, 즉 0.1 s만큼 뒤처진 값과 같다. 모든 신호에서 단순한 고정 이동 하나로 완전히 같은 모양을 보존하는 필터라는 뜻은 아니다.
잡음 n1, n2, n3가 평균 0, 서로 독립이며 각각 같은 분산 σ²를 가진다고 하자. 세 잡음값을 평균한 값의 분산은 합의 분산을 9로 나누므로 (3σ²)/9=σ²/3이다. 표준편차는 σ/√3이다. σ=0.06이면 원래 분산 0.0036, 평균의 분산 0.0012, 표준편차 약 0.03464다. 분산과 표준편차를 둘 다 3으로 나누면 틀린다. M02.04의 독립/공분산 조건을 여기에도 적용한다.
독립성이 깨지면 공분산 항이 추가된다. 세 잡음이 매번 같은 값으로 함께 움직이는 완전 상관의 경우 평균을 내도 그 값은 그대로여서 표준편차 0.06이 줄지 않는다. 센서의 공통 바이어스나 빠른 반복 표본의 상관도 점검해야 한다. 평균이 모든 오차를 없애거나 보정의 정확도를 보장한다고 말하지 않는다. 표본 간격이 불규칙할 때 최근 세 개의 평균은 일정 시간 폭의 평균과도 다를 수 있다.
지연 경로와 반복 주기를 따로 읽는다
모든 시각이 비교 가능한 같은 시계라는 합성 경로를 보자. 생성 0 ms, 수신 15 ms, 콜백 시작 25 ms, 종료 30 ms, 적용 45 ms다. 생성→수신은 15 ms, 대기는 10 ms, 처리는 5 ms, 종료→적용은 15 ms로 전체는 45 ms다. 콜백만 재면 5 ms이지만 관측에서 적용까지는 45 ms다. 실제 분산 장비에서 이런 차이를 재려면 시계 동기화와 사건 정의의 오차도 필요하다.
목표 주기가 20 ms라고 전체 지연 45 ms를 곧바로 ‘주기 실패’와 같다고 판정하지 않는다. 파이프라인이 겹쳐 실행되면 새 결과가 20 ms 간격으로 나와도 각 결과의 나이는 45 ms일 수 있다. 반대로 처리 한 부분이 5 ms라는 사실도 전체 주기를 입증하지 않는다. 가상 시작 시각 0/20/43/60 ms의 간격은 20/23/17 ms다. jitter를 목표 간격에서의 편차로 정의하면 0/+3/−3 ms이고 최대 절댓값은 3 ms다. 지연·주기·편차를 같은 숫자로 보고하지 않는다.
실제 입력까지 추가 대기하는 샘플 지연도 있다. 간격 T=0.1 s에 정수 지연 d=3표본이면 명령 지연은 0.3 s다. 여기의 d는 표본 수이며 앞 단위의 초 단위 지연과 구분한다. 일정한 순수 지연 모델을 가정하면 각주파수 2 rad/s에서 추가 위상은 −2×0.3=−0.6 rad≈−34.38도다. 필터로 잡음을 줄여도 이와 같은 위상 손실과 관측의 오래됨이 추종을 악화할 수 있다.
제어 품질은 여러 증거로 판단한다
필터 전후의 오차 RMS만 비교하면 충분하지 않다. 원시/필터 측정의 시간 정합, 급격한 목표나 외란 뒤의 최대 오차와 회복, 입력 peak와 포화 지속, 실제 적용 입력 및 주기 분포를 함께 본다. 잡음이 줄어 입력 진동은 작아졌지만 늦은 측정 때문에 외란 복구가 더 느려질 수도 있다. 두 설정 중 무엇이 좋은지는 허용 오차·입력 한계·복구 시간 같은 요구가 있어야 결정한다. 부드러운 화면이나 낮은 평균값 하나로 전체 품질 순위를 매기지 않는다.
필터나 이전 측정 상태를 언제 초기화하는지도 중요하다. ROS 시간의 reset·긴 누락·프레임 변경 뒤에 옛 표본을 그대로 섞으면 물리적으로 다른 시점/좌표를 평균할 수 있다. 어떤 시계로 간격을 쟀는지, 누락 시 보류/재초기화 정책이 무엇인지 기록한다. 이 정책은 응용의 계약이며 모든 ROS 도구가 자동으로 같은 처리를 한다는 뜻은 아니다.
선택 보충인 PID 지연 개념 모형은 정규화 1차 plant·정수 샘플 명령 지연·이산 PID와 포화를 비교하는 별도 모델이다. 실제 센서 필터나 네트워크·마찰·모터를 재현하지 않으며 exact ZOH로 계산한 가상 응답이다. 아래 필터/잡음/로그 계산은 이 위젯 없이 수행한다. 기존 4장의 센서 파이프라인과 연결할 때도 필터의 표시 효과와 실제 관측/제어 품질을 구별한다.