어제 당직서면서 계속 생각해봤는데 이 글이 접근은 맞는데 구현방법이 잘못된거 같아서 폰 받고 글 하나 써봄.

기존의 타이머 방식은 PWM (pulse width modulation) 제어라고 부르는데, N틱 중 k틱에만 공정을 가동해서 가동률을 k/N으로 맞추는 방식임.

(참고로 가동률이란 총 시간(스텝) 대비 공정이 가동하는 비율)

이 방식은 정밀한 가동률을 위해서는 사이클 주기가 길어지고 응답성이 떨어지는 단점이 있음.
예를들어 정확하게 48.391%의 가동률을 원한다면 48391/100000, 즉 펄스의 주기가 10만틱이 되어야 함.
따라서 이를 해결하기 위해 출력이 사이클 주기와 상관없이 균등하게 나오도록 할 필요가 있음.

다만 글에서 제시한 새로운 방식은 m과 x를 조절해서 원하는 가동률을 구하는 과정이 복잡함.


그래서 조건을 더 단순화해서 이런 수열로 만들었음.
이렇게 설정한다면,

위상학적으로 가동률을 a/(a+b) 로 표현 가능함. ㅎ

간단한 예시 ㅇㅇ
비직관적으로 보이긴 해도 항상 성립함.

기존 방식과 비교해서 변동성을 줄이도록 uptime을 균등하게 흩뿌리는거임.

원 글 예시처럼 스시벨트의 아웃풋을 최대화하기 위해서는 인풋의 변동성을 줄여야 하는데 그런 경우에 이런 방식이 필요할듯함.

gpt한테 물어보니까 이 메커니즘을 더욱 간단하게 구현한게 시그마 델타 제어라고 하더라.
시그마-델타 ADC 라고, 원래 회로설계 쪽에서 디지털 / 아날로그 변환할 때 사용하는 제어라고 함.

누적오차(시그마델타, r)를 쌓아가며 임계값(1)이 넘으면 출력하는 메커니즘임.

팩토 회로 신호는 소수점을 지원 안하니까 r을 a로, 임계값 1을 (a+b)로 설정하면 됨.

팩토 킬 수 있었으면 회로 예시 만들어보고 싶은데...
일단 조합기 두 개로 대충 구현해 봄.

목표 U = 48.931%

조건
Z=0
출력
U=U
U=48931

조건
U>100000
출력
U=-100000
A=1

모든 조합기 인풋 아웃풋 초록선으로 잇고
A=1일때 공정 가동하면 됨.


그럼 즐?팩