بیژن بینایی GitHub
بیژن بینایی Rss

NgSpice

نوشته شده توسط بیژن | در دسته مهندسی برق | نوشته شده در ۰۳-۰۹-۱۳۹۳

۸

Cal-Logoاگر یادتون باشه توی پست قبلی راجع به نسخه های مختلف اسپایس صحبت کردیم و گفتم که توی بین اون ها من نسخه ng رو بیشتر از همه ترجیح می دم

امروز می خواهیم بیشتر راجع به ng صحبت کنیم و یه مدار رو هم باهاش simulate کنیم . قبل از شروع انتظار دارم که روی سیستم Ng رو نصب کرده باشید بنابراین از توضیح نحوه نصب می گذرم.اگرچه همونطور که در پست قبلی اشاره کردم نصب ng در در لینوکس با یک کامند ساده تمام می شه (خدا می دونه توی ویندوز چه دردسر هایی در انتظار کاربرهاش هست)

من برای ادامه کار یک مدار آماده کردم که می خواهیم با هم مشخصه ولتاژ و جریانش رو رسم کنیم. مدار رو می تونید اینجا مشاهده کنید.کنارش من با خط مزخرفم حلش کردم پیشاپیش اگه نمی تونید بخونید عذر خواهی می کنم لطفا دیگه به بزرگیتون ببخشید

please feel free to find answer by yourself

همونطور که اشاره کرده بودم نسخه های Ng و H از شما یک net list دریافت می کنند و شما توی این فایل مشخص می کنید که المان ها چطور به هم متصل شده اند (دقیقا مثل تعریف یال ها در گراف) و هر المان چه ظرفیتی دارد (وزنی در گراف). بنابراین قبل از شروع به نوشتن netlist انتظار می رود که شما تمام گره ها (راس ها در گراف) را نامگذاری کنید و بعد بگویید مثلا بین گره E2 و  E3 یک مقاومت به مقدار ۱۰۰ اهم وجود دارد و ...

خب اگر آماده اید بریم سراغ کد

RC Filter

V1 1 0 1
V2 2 7 DC 0 $ <---- ammeter
R1 7 1 5
R2 3 0 10
E1 2 0 3 0 2
V3 3 4 DC 0 $ <---- output
L1 4 1 0.5 IC=0
F1 3 2 v2 2

.control
TRAN 50m 5 uic
plot v(3)
.endc

.end

خط به خط می ریم جلو
خط۱: همیشه خط اول توی netlist اسم مدار رو مشخص می کنیم این اسم هرجوری می تونه باشه و تاثیری توی قسمت های بعدی نداره ولی به یاد داشته باشید که خط اول همیشه به عنوان کامنت تفسیر می شه

خط ۳: از اینجا به بعد ما شروع می کنیم به تعریف المان ها

برای اضافه کردن هر المان به مدار لازمه که المان رو نامگذاری کنید. این نام می بایستی یکتا باشد ثانیا حرف اول اسم به عنوان نوع المان (خازن - سلف - مقاومت) تفسیر می شود.در پایین چند نمونه از انواع المان های موجود در NgSpice رو می تونید ببینید

1. V (منبع ولتاژ) 2. I (منبع جریان) 3. R (مقاومت) 4. C (خازن)

5. L (سلف) 6. E (منبع ولتاژ کنترل شده با ولتاژ) 7.F (منبع جریان کنترل شده با جریان) 8.G (منبع جریان کنترل شده با ولتاژٰ)

9.H (منبع ولتاژ کنترل شده با جریان) باشند و...

برای و... می تونید به NgSpice Manual مراجعه کنید

فرمت تعریف هر المان

Name Node1 Node2 Value

البته این فرم ممکن است المان به المان متفاوت باشد ولی پایه آن ها همین فرمت بالاست

بنابراین مثلا ما در این خط (کدوم خط) یک منبع ولتاژ تعریف کردیم که بین گره ۱ و ۰ تعریف شده و مقدارش ۱ ولت هست

خط ۴:

خط ۴ یک مقدار tricky هست. ما توی spice المانی به نام آمپرسنج نداریم بنابراین شما می تونید یک گره مجازی به مدار تون اضافه کنید و یک منبع تغذیه با مقدار ۰ ولت اضافه کنید با این کار شما می تونید i گذرنده از منبع رو اندازه بگیرید که دقیقا همون i بود که آمپر سنج دراختیارتون می گذاشت

در آخر برای اجرا شدن و دیدن نتیجه از کامند های زیر استفاده کنید

$ngspice rc_filter -a
ngspice 54 -> plot v(3)

این هم یک نمونه خروجی نهایی
Oبرای خروج از برنامه هم می توانید از  ctrl +d استفاده کنید

نظرات (۸)

salam .

maziat Ng spice bar Pspice chie ?

mamnoonam .

مزیت اساسی ng نسبت به p در دو چیز خلاصه می شه
۱. همونطور که گفتم وقتی scale مدار می ره بالاتر دیگه توصیف مدار به روش gui که p استفاده می کنه پاسخ گو نیست. (۲۰۰ تا المان رو کی حال داره تک تک اضافه کنه؟؟؟)
۲. مزیت مهم ترش در توصیف قطعات هست. ng در بخش الکترونیکی قضیه خیلی خیلی قوی تر هست. منظور من توصیف المان های واقعی هست یعنی مثلا خازنی که دارای نشتی هست. نمونه دیگرش مثلا توصیف یک ترانزیستور خاص هست توی p اگر مذل ترانزیستور مورد نظرتون موجود نباشه عملا بیچاره می شید ولی تو ng اصلا مدلی در کار نیست بلکه شما مقادیر رو یک بار از رو datasheet وارد می کنی و از اون به بعد هر جا خواستی ترانزیستور رو استفاده می کنی
ng اون قدر قوی هست که حتی دمای مدار رو هم لحظه به لحظه محاسبه می کنه و می شه برای المان هاش نحوه عملکرد شرایط مختلف (رطوبت، دما و...) رو تعریف کنید

راستی چرا اسمت اینجوری شده؟

ممنون.
محیط برنامه نویسی خاصی داره؟
مثل cv avr؟؟

خودم؟؟؟؟ زدم.
میخواستم ببینم گیر میده یانه.

خوب گیر نداد دیگه چرا حالا خودت گیر می دیD:
اگه لینوکس داشته باشی می تونی از محیط gedit استفاده کنی.
خود ng محیط خاصی نداره این طوری هم بهتره (چرا؟) cv avr هم فقط تو ایران انقدر طرف داره مثل matlab که هیچ کی تو دنیا قبولش نداره
gcc و c میتونند جایگزین موارد بالا بشند
یه سوال dsPic رو هم می شه با code vision زد؟
فکر نمی کنم ولی با همون gcc می شه
بهتر نیست اصول رو یاد بگیریم تا یک تکنسین بشیم؟

این بحث ها راه به جایی نداره ....

راستی باید قطعه کد خاصی رو بزنم تا لینوکسم دوباره احیا بشه ؟

ممنون .

ایول به جایی راه نداره رو خوب اومدی
برای احیا لینوکس می تونی تو گوگل بزنی
Repair grub ubuntu
یه سادشو پیدا کن توضیح داده
در خدمتیم

ممنونم.
خدمت از ماست بیژن جان

آقا بیژن در مرحله اول دمت گرم.
لینک دانشگاع برکلی http://wrcad.com

داستان اینجاس که من باید دنبال برنامه تحت ویندوز باشم چون استاد راهنمای من هیج تمایلی به لینوکس نداره!
wrspice پولیه، نمیدونی چطوری میشه پیداش کرد؟۶ ۷ ماه کار را بندازه؟
مخلص کلام اینکه یه نرم افزار که بتونه پیوند جوزفسونو ساپرت کنه،نمیدونم ngspice میتونه این کارو بکنه؟تحته ویندوزه؟wrspice میتونه ولی یه ماهه بیشتر نمیده!

----
پاسخ:
سلام
کاری نکردم.... ببین فرهاد جان چند تا کار می شه کرد
۱. اگه نسخه demo این wrspice کارتو را می ندازه می تونی یه virtual بالا بیاری و توش زمان رو ثابت نگه داری برا همین مشکل ۳۰ روزت حل می شه
۲. اون لینکی که از دانشگاه برکلی گذاشتی باز ماله همون wrSpice هست
۳. نرم افزار های فیزیکی تری مثل comsol و ADS کارتونو را نمی ندازه ... اونا رو هم یه چک کنین
۴. من گشتم ولی این نرم افزاری رو که شما دنبالشی خیلی خاصه و چیزی نیس. حالا خودتون هم بگردین اگه قرار باشه پیدا بشه باید تو سایت eetop.cn باشه
۵. بازم مشکلی بود ایمیل من bijan@binaee.com ایمیل بدین ببینیم به کجا می رسه
۶. موفق باشی

یه نکته هم بگم که تک تک از بالا بیا به پایین یعنی مثلا راه حل اول رو skip نکن
یه نکته هم بگم که تک تک از بالا به پایین بیا