안녕하세요. 여리君 입니다. 오랜만에 인사드리네요.
다름이 아니라, Digital Multimeter 를 사용한 시스템을 만들고 있습니다.
전압이나 전류를 측정하는데, 측정을 시작하면 한동안 변화하기 때문에 값의 변화 폭이 어느 정도 안정화 되었을 때 값을 읽으려 합니다.
이전 코드에서는 수십초를 기다렸다가 읽게 코드가 구성되어 있는데, 이걸 프로그램 적으로 구현 해서 시간 차를 줄여보려 합니다.
Shift Register 를 이용해 이전값을 읽어와서 비교하는 거야 쉽게 할 수 있는데요.
그 값을 어떻게 비교 하는지 고민입니다.
뭐 일단 미분... 정도 생각하고 있는데요.
함수를 보니.. 막막합니다. 뭐 방법이 있을까요?
그냥 이전 코드 그대로 넣어놓을까봐요.. ㅡ_ㅡ;
해결되었습니다! 솔루션으로 이동.
이전값과의 변화값을 어레이로 넣은 후 Minimum 치로 비교하는 방법이 있습니다.
5
4 (-1)
3.5 (-0.5)
3.2 (-0.3)
3.1 (-0.1)
3.1 (0.0)
-1, -0.5, -0.3, -0.1, 0.0
이런 식으로 변화 하겠죠.
변위값을 어느 정도의 상수값으로 제한하고 또한 동시에 시간제한을 두어 측정을 완료하는 방법입니다.
측정값이 계속 변화하는 것을 방지하기 위해 시간제한까지 추가하는 겁니다.
날짜: 03-09-2021 10:54 PM
반갑습니다. Kabson 님 . 오랜만이네요. 건강하시죠?
측정되는 Range 는 0~10Vdc, 4~20mA 사이 입니다.
문제는 정밀도인데, 소숫점 두자리까지 확인이 되어야 합니다.
기존에 측정 전에 계측기에서 전압을 인식해 올라가는 시간이 좀 있어서, 수초간 기다리는 작업을 진행 했던 것 같습니다.
그것 때문에 좀 더 빠르게 할 수 없는지 이야기가 나왔어서... 방법을 강구 중입니다.
지금 현재는 2초 후 측정을 해서 읽히는 값을 미분해 값이 ±0.005 안에 4번 들어오면 패스로 인식하게 해 두었습니다. 250msec 당 1샘플 설정했거든요.
구글링 해 보니 미분하려면 저 함수를 쓰면 된다고 나오더군요.
이전값과 측정값을 미분해 일정 범위 내에 들어오는걸 Shift Register 로 받아, 4번 유지 (1초간) 되면 사용자 이벤트가 발생하게 해 두었습니다.
이 방법 말고 다른 방법이 있을까요?
03-14-2021 11:35 PM - 편집 03-14-2021 11:41 PM
이동평균을 사용해서 이동평균과 현재 값의 차가 얼마 이하가 되었을때 안정되었다고 볼 수도 있겠네요
날짜: 03-15-2021 01:05 AM
이동 평균 갯수 때문에 고민하다가 미분을 생각했습니다. 🙂
참고하겠습니다. 감사합니다.