לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה --לשאלות בנושאי טלוויזיות, מערכות קולנוע ביתי, הגברה וסאונד - אנא פנו לפורום אודיו וקולנוע ביתי -- www.fresh.co.il/f=103 תגיות פורום: פורום אלקטרוניקה - פורום חשמל - שאלות בנושאי אלקטרוניקה - תכנון מעגלים - מעגלים מודפסים - פיתוח אלקטרוני - תכנון PCB - בקרים למנועים - תאורת לדים - תכנון דימר - מודינג - Arduino - מיקרו בקרים - שליטה על תאורה - שלט רחוק - משדר FM - תאורת LED - פתרון שאלות בחשמל - אלקטרוניקה תקבילית חץ ימינה  

לך אחורה   לובי הפורומים > תחביבים > חשמל ואלקטרוניקה
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 28-05-2013, 23:47
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
סימולציית מעגל RC ב-Spice

באשכול זה נלמד איך לעשות סימולציה למעגל פשוט של מסנן RC, בעזרת Spice ותוכנות שבחבילת gEDA.
ההסבר הזה רלוונטי למי שעובד על לינוקס, אבל חלק מההסברים מתאימים גם למוצרי ווינדוס.

ביצוע סימולציה למעגל דורש שלוש שלבים:
1. יצירת הסכמה ב-gschem
קובץ זה מתאר מבחינה שירטוטית את החיבורים של הרכיבים, וכולל פירוט של התכונות של כל רכיב
2. יצירת קובץ netlist בעזרת gnetlist
קובץ זה מתאר מבחינה לוגית את החיבורים של הרכיבים בין צמתים (nodes), וכולל פירוט של התכונות של כל רכיב
3. יצירת הסימולציה עם ngspice

לפני שנתחיל, ניצור "תיקיית פרויקטים" שבה יהיה כל השירטוטים שלנו. תיקיה זו תכלול גם מודלים של רכיבים (טרנז', מעגלים משולבים\IC וכד').
לשם הדוגמא, אצור תיקייה זו בנתיב הבא:
/home/dor/Electronics_Projects
אח"כ ניצור תיקייה בשביל הפרויקט הנוכחי, שזה מסנן RC:
/home/dor/Electronics_Projects/RC_filter

נפתח את המסוף (terminal) בתיקיית הפרויקט שלנו, וניכנס ל-gschem כדי לשרטט את המעגל:
קוד:
$ cd /home/dor/Electronics_Projects/RC_filter $ gschem

תיפתח תוכנת gschem.
התחילו לצייר את המעגל ע"י הוספת הרכיבים ויצירת קצר ביניהם, כפי שמשורטט בתמונה הבאה:

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

אחרי יצירת השרטוט, יש לערוך את התכונות (Attributes) של הרכיבים, כדי שנדע איך להתייחס\לפנות אליהם, מה הערך שלהם וכד'. בחלונות הבאים תוכלו לראות את התכונות\מאפיינים של כל אחד מהרכיבים:

ספק הכוח:

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

נגד R1:

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

קבל C1:

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

שימו לב שחלק מהשדות של התכונות לא יהיו קיימים ותצטרכו להוסיף אותן.

עכשיו שמרו את הסכמה לתוך תיקיית הפרויקט שלנו לתוך קובץ בשם "RC_filter.sch".

אמורים לערוך את התכונות של הרכיבים בעזרת gattrib אבל gschem גם מאפשר זאת.
במידה ותרצו לערוך עם gattrib, כל מה שצריך לעשות זה להריץ אותו במסוף כשקובץ הקלט זה הסכמה שלנו:
קוד:
$ gattrib ./RC_filter.sch


ואז הערכים הסופיים של כל רכיב בתוכנה gattrib אמורים להיראות כך:

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

עד עכשיו עשינו את השרטוט של המעגל, הגדרנו את השמות של כל אחד מהרכיבים, והגדרנו להם את הערכים הרצויים.

עכשיו צריך ליצור קובץ netlist שיתאר את החיבורים הלוגיים בין כל רכיב:
קוד:
$ gnetlist -g spice-sdb ./RC_filter.sch

הדגל g מקבל את הערך "spice-sdb", שזה בעצם אומר ל-gnetlist את הפורמט הרצוי של קובץ ה-netlist שלנו.

בעקבות פעולה זו, נוצר בתיקייה הנוכחית קובץ ה-netlist ששמו "output.net".
אם נפתח אותו עם עורך טקסט, נראה את התוכן הבא:
קוד:
* gnetlist -g spice-sdb ./RC_filter.sch ************************************************** ******* * Spice file generated by gnetlist * * spice-sdb version 4.28.2007 by SDB -- * * provides advanced spice netlisting capability. * * Documentation at http://www.brorson.com/gEDA/SPICE/ * ************************************************** ******* *============== Begin SPICE netlist of main design ============ R1 2 1 1MEG V1 2 0 DC 5V C1 1 0 1uF .end


אפשר לראות את שלושת הרכיבים שלנו.
מייד אחרי השם של הרכיב, מגיעים שני מספרים, וכל מספר זה צומת (node) שאליה הרכיב מתחבר. לרכיב עם יותר רגליים - יהיו יותר צמתים כמובן.
לדוגמא, נגד R1 מתחבר לצמתים 2 ו-1. וקבל C1 מתחבר לצמתים 1 ו-0. זה הגיוני כי בשרטוט שלנו עשינו קצר בין הנגד לקבל, לכן לשניהם חייבת להיות אותה הצומת.

אחרי הצמתים מופיע שדה הערך של הרכיב.
השדה יכול להיות ארוך\מורכב יותר ברכיבים מורכבים יותר (כמו טרנזיסטור או מגבר שרת), כי צריך להגדיר את כל התכונות של הרכיב.

במעגלים מורכבים יותר, ייתכן מצב ובו קובץ ה-netlist שייווצר יהיה תקול ונצטרך לתקן. אבל במעגל הפשוט הזה - זה לא אמור לקרות.

לפני שנתחיל לעשות את הסימולציה, נצטרך להגדיר את המצב הראשוני של המעגל, ובמקרה שלנו נגדיר שהמתח על הקבל C1 הוא אפס, ע"י הוספת השורות הבאות לפני פקודת ".end":
קוד:
* Set Initial conditions: Voltage on Capacitor C1 is being set to zero .IC V(1)=0


עכשיו נייבא את קובץ ה-netlist אל ngspice כדי לעשות סימולציית של המתח על הקבל C1 כפונקציית הזמן:
קוד:
$ ngspice ./output.net


ngspice זו תוכנה אינטראקטיבית ונוכל להקליד אליה פקודות לביצוע הסימולציה שלנו.

כיוון שאנחנו רוצים לעשות פונקציית מתח בהתאם לזמן, נשתמש בפקודה tran (מלשון transient):
קוד:
$ tran 10m 5

בפקודה הנ"ל ngspice יבצע אנליזת זמן כל 10 מילי-שניות למשך סה"כ 5 שניות.

עכשיו נבקש לקבל גרף של המתח על הקבל C1, כלומר בצומת מספר 1:
קוד:
$ plot V(1)


מייד אחרי הפקודה הבאה יופיע גרף של טעינת הקבל C1, כפי שבתמונה:

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

כל הכבוד! הצלחתם לעשות את הסימולציה הראשונה שלכם...

אפשר לראות שהגרף שקיבלנו מתאים למציאות, כי קבוע הזמן של ה-RC הוא 1 שנייה, ותוך 5*RC המתח על הקבל אמור להיטען לפי הערך של מקור המתח, שזה 5V, וזה באמת מה שקורה לפי הגרף.

בסופו של דבר אפשר לאחד את כל הפקודות לתוך קובץ ה-netlist שלנו, ואז כשנריץ אותו עם ngspice אז מייד יופיע לנו הגרף שרצינו, כך שנוכל לחסוך הקלדות:
קוד:
* gnetlist -g spice-sdb ./RC_filter.sch ************************************************** ******* * Spice file generated by gnetlist * * spice-sdb version 4.28.2007 by SDB -- * * provides advanced spice netlisting capability. * * Documentation at http://www.brorson.com/gEDA/SPICE/ * ************************************************** ******* *============== Begin SPICE netlist of main design ============ R1 2 1 1MEG V1 2 0 DC 5V C1 1 0 1uF * Set Initial conditions: Voltage on Capacitor C1 is being set to zero .IC V(1)=0 .control tran 10m 5 plot V(1) .endc .end


כמה מקורות מידע:
http://www-mdp.eng.cam.ac.uk/web/CD...b/appendix.html
http://www.seas.upenn.edu/~jan/spic...ew.html#MOSFETS
http://www-mdp.eng.cam.ac.uk/web/CD...db/netlist.html
http://wiki.geda-project.org/geda:csygas
http://www.ecircuitcenter.com/SPICEsummary.htm
http://bwrcs.eecs.berkeley.edu/Clas...nalyses_fr.html
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 10:56

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר