저 회로의 전압, 저항을 계산하는 프로그램을 짜려고 하는데요
글쓴이: hados / 작성시간: 목, 2003/06/19 - 1:09오전
:shock:
KLDP에서 질문할 성격의 문제인지 잘 모르겠지만
고수님들께 도움을 요청합니다...
이번에 학교에서 회로이론 이라는 강의를 듣고 마지막
term project가 (간단한 건데요)
voltage source와 resister 만으로 이루어진 회로를
입력 받아서 각 부분에 걸리는 전압, 전체 저항값 등을
계산해서 출력해 주는 프로그램을 짜는 것입니다
입력은 뭐...VC로 전압, 저항 그림으로 뭐 직접 그릴 수도 있고
아니면 text를 matrix 폼으로 입력받아도 됩니다
(좀 추상적이지요? 저도 난감합니다...)
이런 프로그램이 있나 해서 찾아보니 SPICE 라는 것이 있던데
소스 분석을 해보려고 했더니 좀 방대하네요...-_-;;
이런 프로그램 짜 보신 분 혹은 전반적인 알고리즘 같은 것이라도
알고 계신 분 계시면 힌트를 좀 주시면 감사하겠습니다
(하나도 모르는 윈도우 환경에서 프로그래밍 하기도 난감할 뿐더러
윈도우에서 하더라도 전체 저항을 계산한다거나 하는 부분은
알고리즘 같은 것을 좀 알고 있어야 할 것 같네요...
뭐...고등학교때 배웠던 휘트스톤 브릿지 같은 것도 입력될 수도 있겠고
직렬, 병렬 혼합되어 나올수도 있다보니 복잡하네요...-_-;; )
Forums:
저도 프로그래밍 쪽은 잘 모릅니다.실제 PSPICE 나 기타 SP
저도 프로그래밍 쪽은 잘 모릅니다.
실제 PSPICE 나 기타 SPICE 기반 프로그램은
노드 단위로 분석한다고 하더군요.(Nodal analysis)
SPICE 문법을 보시거나 실제 윈도우용 PSPICE 나 기타
프로그램에서 출력으로 나오는 PLOT 을 보시면 도움이
되실겁니다.
추상적인 내용을 프로그래밍으로 옮기시려니 힘들겠습니다.
(추가하자면 SPICE 계열에서는 전체저항(등가저항)은 계산이
안나오더군요. 따로 생각해 보셔야 할 듯..)
직접적인 답변은 아닙니다만.
초기의 spice 의 메뉴얼을 보면 좀 도움이 될거 같네요.
text기반인데,....
초기 spice를 더듬어 보면, 초기(90년대,,80년대??)
ㄱ. element별 입력을 받습니다.
a . element가 해당된 노드를 입력합니다.
가령 1,2노드라고 하죠.
b. 2 element의 값( 단위까지) 을 입력받습니다.
여기서 단위를 기준으로 저항, 전류, C, L을 구분
c. element와 연결된 노드번호를 입력합니다.
이런 식으로 주어진 회로의 모든 element를 입력합니다.
ㄴ. 구하고자 하는 element를 입력하고 , 해당 값을 출력.
* 솔직히 전 그 구닥다리 spice 않쓰고 윈도우용 pspice썼습니다.
다시 생각하니 내부구조는 비슷할거 같네요. 윈도우 용이든 텍스트
형태든
내부구조를 짐작해보면,
1. 입력받는 순으로 해당 element의 자료구조에 값을 넣습니다.
element{
element index (입력순으로 자동 증가식으로..)
포함된 노드
연결된 노드 리스트
저항, 전류, 콘덴서 등을 구분하는 flag
값 ( 미지수이면 가령 문자 'x')
단위 flag
}
포함된 노드를 기준으로.. 아래의..
2. 모든 element의 입력을 받은 후 각 노드별 방정식을 구성
키에르코프와[전류] ,전압 원리?를 이용해 노드별 방정식을
구성.
3. 공업수학에서 나온 n차 방정식으로 미지수를 포함한 element의
값을 구한다. (--;
대충 이런 식으로 접근해야 할거 같은데요.. 모 잘 아시는 내용이지만,
결국 , 회로의 미지수를 구하기 위해 element별 자료구조와
그를 통한 방정식을 얻어내는 과정 그리고, 그 방정식을 푸는 문제가
core일듯
너무 다른 소스에 의존하지 마세요. 좀만 머리 굴리면 할 수있을듯 (--;
윈도우용으로 만드는건 위의 과정을 한 다음에 하시는게 순서일듯합니다.
위의 내용만이라두 제대로 하면 잘한거라고 보는데...
윈도우는 결국 위의 과정을 gui로 표현하는 도구에 불과할뿐이라고 봅니다.
\\(^^ )^^)// **
에구구..
spice와 같은 프로그램에서는
'전체 저항' 같은 걸 구하는 사람이 하기 쉬운 방식을 하지 않는 걸로
알고 있습니다.
Nodal analysis의 해법을 생각해보세요.
결국, polynomial equation을 푸는 것일 뿐이죠?
각 노드 사이에는 전압차가 존재할 것이고, 저항도 존재할 겁니다.
이를 통해서 equation을 유도하고..
그걸 풀어내면 전류를 구할 수 있겠죠.
별로 도움되는 얘기는 아닌 거 같네요 -_-
열심히 하세요 ^^
댓글 달기