팩토리오를 하다보면, 때때로 밸트나 펌프의 속도를 조절해야할때가 있다.


대표적인예로 우주선의 속도제어등.

아마 이것을 위해 이와 비슷한 회로를 쓰고있으리라 생각된다.




매틱마다 스스로 값이 1씩 증가하며, 설정된값에 도달시 0으로 초기화되는 타이머회로이다.


밸트나 펌프에 이 값을 조건으로 하는것으로 성능을 제한할 수 있고, 조합기 하나로 완성되는 간단한 회로이기에

많이들 사용하는것으로 알지만...


..........







이게 최선일까?


이 회로의 단점을 몇가지 짚어보자면


위 스샷을 기준으로, 이 회로는 밸트의 성능을 60단계로 조정할 수 있다.


좀더 정밀한 제어가 필요하다면?


초기화카운트를 계속해서 증가시키면 될까?


초기화카운트를 1000으로 둔다면?


이 회로는 1000틱을 주기로 초기화가 진행된다.

시간으로 바꿔 말하면 16.7초, 응답속도가 중요한 시스템에 사용하기엔 부적절한 수치이다.




또 한가지 문제를 보자,





여기서 위쪽라인은 타이머회로를 사용해 운송량을 25%로 제한한 녹밸


아래쪽라인은 중간에 노란밸트가 하나 끼어있다.


장기적으로 둘의 운송능력은 동일할테지만,

위쪽의경우 단기적인 운송량이 들쭉날쭉하다.

문제라고 하기엔 애매하지만 아쉬운것은 사실.




그래서 이 두가지를 해결하기위해 고민한결과

한가지 로직을 생각해보았다.



1. 적당히 큰 수 m과 원하는 제어입력x 를 준비한다.

2. 출력 y 가 0보다 작다면 출력 y를 m+x 만큼 증가시킨다

3. 출력 y 가 0보다 크다면 출력 y를 m-x 만큼 감소시킨다

4. 최종제어단에서는 y > 0 이상일경우 가동한다.


이렇게하면 입력 x 가 0일경우 출력은 매 틱마다 On/Off 를 반복하게되며

-m 보다 작을경우 항시 Off, m 보다 클경우 항시 On


-m ~ m 사이의 값에서는 On 빈도가 선형적으로 증가하게된다.


가능한 On/Off 상태를 빠르게 진동시켜 짧은시간단위로 미분해도 비슷한 결과가 나오며

이론상 가동속도를 42억단계로 세분화하는게 가능하다.




그럼 이 회로를 위의 상황에 적용해보면





가운데가 이 회로를 사용해 성능을 25%로 제한하고있는 녹밸이다.

얼추 노란밸트를 사용한것과 비슷해보인다.






그리고 이것은 성능을 20%로 제한한 녹밸,


사이사이에 투입기를 넣어봤더니 정확히 4개씩 들어간다.


아래는 노랑밸트.






스시벨트에 응용해보았다. 속도는 20%






16.7%의 속도로 6개의 스시밸트


이론상 42억개의 물건을 밸트하나에 올려둘수가 있다.

(밸트의 주기가 2년을 넘어가겠지만..)







우주선의 속도제어에도 활용해봤다.

중력권 변경으로 정속주행에 필요한 출력이 소폭 바뀌지만,

2%정도의 매우 작은 펄스주기 변경에 문제없이 대응하는 모습이 보인다.





일단 내가 생각하는 응용법은 이정도이지만

잘만쓰면 유용하게 써먹을수 있을것 같긴한데... 난 창의성은 그리 좋지 못한것같다.

활용될수 있을지는 모르겠다만 일단 청사진을 공유해봄






----청사진문자열----


0eNrNVsFu00AQ/Ze5skax40BjCX4kiqK1PWlXdWyzXqeJIks9gAQcOCIOgHood6Ry4NCv4UjDPzCzcZwSogirKap98Hhm982bt7NeLyBMSsy1Sg0EC1BRlhYQDBZQqONUJuxL5QQhAKmVOZmgUZETZZNQpdJkGioBKo1xBoFbiR2zYoxUjHr3FK8aCsDUKKNwldW+zEdpOQlRE6bYn11AnhU0O0s5JZNwu497AuYQPPUoT6w0RqvwkQCqzegsGYV4IqeKptOcDe6IwrHFKjgwVrow7CuMZG0ct9PpCCiQh402dZp5zvymSpuSPA3h1QgnSrLolEvOctRyRQUe0bCsNHlpWgPRJf6SyWsvk3dPMj1glbpiT1Pu6yT/nySqQbf0uf02WMvVXhdimkttmQbwnMbdBhqlaM4yfWoTaowhMLpEAccakfiOZVJgg4GjOqdMY2CVDkbpvvH3l2yrbGpmAaq7ZV93tGc7unXyg+txoBUfrjfV9me+vTKOWw137jS/5U7zHupO+/Hm8v833v3s9Duuu11pwjij1WGEgStc4Ql3KAb8pNtaXbrZ59HTt1aXYr6NskVea3G0ay2fb7J8O84fUg6un84a1CuqNUEVb7gtP7+6ufhyc3W+fP2BvBTa4ivgBRVDPek0bcG11k4anWZ6Yqv9Q+9nvAJN+kbQhkPd4GJtBMDn3Tav5dvL5fX58tM1BaZ0csow4eAM9iI5NdSYmJWJZM+MXmPMkf6WeL+tvit7ILxtBG8XAimsDE4ovPn1E5DIEKkf4Ne7l8z/4uPy/bef379yCbQQVr/eE6/v9/u9I7fb73f8qvoNT3ONhQ==