마음 속 하늘은 항상 맑음~!

12F675를 이용한 MPPT 본문

하드웨어

12F675를 이용한 MPPT

파르셀수스 2015. 8. 22. 12:36

12F675를 10개를 샀기 때문에 몽땅 이걸로 만든다. 그리고 uC중에 쩰 싸다 =_=; 초저가는 아니지만 뭔가 만들기에 딱이다.


 이걸로 태양광의 최대 효율점을 찾는다는 MPPT를 만들었다. MPPT는 전류와 전압의 최적점을 찾는다. 이러한 구현에는 PV의 전압과 전류가 중요하다. 전압은 분압을 통해 ADC로 읽어낼 수 있지만, 문제는 바로 전류.

 0.1옴의 전력이 높은 선트 저항으로 하는 방법이 가장 일반적이지만, 이 부분을 FET의 저항으로 대체할 수 있는지 시도해보기로 했다.


 11m옴으로 양단의 전압 강하를 얻어내서 OP-AMP로 증폭시켜 ADC로 보낸다. 그렇게 FET D와 S의 양단에 걸리는 전압으로 전류를 대충 감지하는 것으로 정확한 값을 얻어내는 것은 힘들다. 그냥 전압과 전류의 곱이 최대이면 전력이 된다는 점을 이용하는 것으로 추천하기엔 좋지 않은 방법이다.


 어떻든 이 구상은 성공했지만, LM258의 오프셋 전압이 문제가 되었다. 양단이 0V라도 출력으로 전압이 나오는데, 이것이 이득 증폭에 걸리면 아주 커진다. 이게 항상 같은 값이 아니고 LM258각각이 완전히 다르게 나오는 것도 문제. 아휴 참 이거 사람 미치게 만드는 요소다. 10k와 100k로 10배 이득으로 하는게 가장 오프셋이 적고 일반적이라고 한다.







그렇게 만들어진 회로. Buck 컨버터와 함께 전압을 측정하는 부분과 전류를 측정하는 부분을 추가적으로 배치한 것.


 왜 BUK9511 N 채널 FET냐면 이걸 또 50개(개당 100원) 샀다. 다른걸루 논리레벨 N채널 11밀리옴의 FET를 사용하면 된다. =ㅅ=;


 왜 2N2222A와 2N2907A이나면 각각 100개 50개 샀다. BC547과 BC557을 사용해도 된다. =ㅅ=;



아직 완벽한 테스트는 없고 그냥 동작만 확인.

LM358N의 오프셋 값은 자동으로 저장되고 비교에 사용된다. 로직이 두리뭉실하지만 문제 없으리라 본다.


좀 더 실험.


결국 실험하고, 회로도도 고치고 일반 전원 상태에서 확인. 좀 더 FET의 저항값을 늘릴려고 게이트 전압을 2.5v로 낮춤. 문제는 태양광 패널에서 제대로 되는냐인데 =ㅅ=;



 전류량을 측정하는 부분이 참 지랄맞다. 결국 ADC입력을 안정화시키는 방법으로 재구성을 하기는 했지만, 제대로 동작할지는 더 테스트를 해봐야 할 것 같다.


 전압을 측정하는 부분에도 역시 같은 것을 해줘야 했다. 그리고 컨트롤 회로의 안정화를 위해 100uF으로 교체. 원하는 동작을 하는 것 같은데, 문제는 비가 오는 날씨라 태양광의 전력량이 너무 낮다. 어쨌던 다시 테스트.


 좀 더 실험을 통해 개선. 문제는 PWM으로 인해서 전압과 전류를 재는 곳에 튀는 전압이 너무 많았다. 로우 패스 필터를 제대로 개선해서 문제를 해결. 비교적 덜 튀도록 하니 안정적인 전압 변화를 보였다. 흐린 날이라 높은 출력이 패널에서 나올 때는 어떻게 될련지.


 어떻던 이전보다는 덜 튀는 전압 변화를 보다 적게 튀는 방향으로 작동하는 것을 확인.


 보다 더 수정을 가해서 더 안정하도록 했는데, 이게 맞는는 모르겠다. 부하 때문인지 패널이 17.0v에서 최대 전력인데 13v정도에서 멈춘다. 측정된 값으로 이론적 계산으로는 그냥 직접 연결하는 것보다 조금 더 전력이 나오는데 이게 최대 전력인지는 확실하지 않다.


 만약 더 정확도를 높이고 싶다면 R4와 R2를 1M까지 조정해서 사용하면 된다. 2A를 넘겨서 사용할 일은 없을거라 생각된다. 만약 저항을 바꾸면 EEPROM의 0번째 바이트 값을 무부하시 OP-AMP 7번에서 측정된 값에

0번째 EEPROM값 = 측정값 / 3.6 * 0124,

20mV라면 20 * 10 ^ -3 / 3.6 * 1024로 5.68888로 올림해서 6으로 하면 된다.

로 수정하면 된다.


12f675MPPT-new8.zip