저 회로의 전압, 저항을 계산하는 프로그램을 짜려고 하는데요

hados의 이미지

:shock:

KLDP에서 질문할 성격의 문제인지 잘 모르겠지만

고수님들께 도움을 요청합니다...

이번에 학교에서 회로이론 이라는 강의를 듣고 마지막

term project가 (간단한 건데요)

voltage source와 resister 만으로 이루어진 회로를

입력 받아서 각 부분에 걸리는 전압, 전체 저항값 등을

계산해서 출력해 주는 프로그램을 짜는 것입니다

입력은 뭐...VC로 전압, 저항 그림으로 뭐 직접 그릴 수도 있고

아니면 text를 matrix 폼으로 입력받아도 됩니다

(좀 추상적이지요? 저도 난감합니다...)

이런 프로그램이 있나 해서 찾아보니 SPICE 라는 것이 있던데

소스 분석을 해보려고 했더니 좀 방대하네요...-_-;;

이런 프로그램 짜 보신 분 혹은 전반적인 알고리즘 같은 것이라도

알고 계신 분 계시면 힌트를 좀 주시면 감사하겠습니다

(하나도 모르는 윈도우 환경에서 프로그래밍 하기도 난감할 뿐더러

윈도우에서 하더라도 전체 저항을 계산한다거나 하는 부분은

알고리즘 같은 것을 좀 알고 있어야 할 것 같네요...

뭐...고등학교때 배웠던 휘트스톤 브릿지 같은 것도 입력될 수도 있겠고

직렬, 병렬 혼합되어 나올수도 있다보니 복잡하네요...-_-;; )

ez8의 이미지

저도 프로그래밍 쪽은 잘 모릅니다.

실제 PSPICE 나 기타 SPICE 기반 프로그램은

노드 단위로 분석한다고 하더군요.(Nodal analysis)

SPICE 문법을 보시거나 실제 윈도우용 PSPICE 나 기타

프로그램에서 출력으로 나오는 PLOT 을 보시면 도움이

되실겁니다.

추상적인 내용을 프로그래밍으로 옮기시려니 힘들겠습니다.

(추가하자면 SPICE 계열에서는 전체저항(등가저항)은 계산이

안나오더군요. 따로 생각해 보셔야 할 듯..)

zedai1972의 이미지

초기의 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로 표현하는 도구에 불과할뿐이라고 봅니다.

\\(^^ )^^)// **

urmajest의 이미지

spice와 같은 프로그램에서는

'전체 저항' 같은 걸 구하는 사람이 하기 쉬운 방식을 하지 않는 걸로

알고 있습니다.

Nodal analysis의 해법을 생각해보세요.

결국, polynomial equation을 푸는 것일 뿐이죠?

각 노드 사이에는 전압차가 존재할 것이고, 저항도 존재할 겁니다.

이를 통해서 equation을 유도하고..

그걸 풀어내면 전류를 구할 수 있겠죠.

별로 도움되는 얘기는 아닌 거 같네요 -_-

열심히 하세요 ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.