آموزش شبیه‌سازی مدار در KiCad با ngspice | مدل های SPICE و IBIS - قسمت 45 آموزش Kicad

Kicad 45
مشاهده سایر جلسات آموزش
17 بازدید
۱۴۰۴-۰۸-۱۱
9 دقیقه
  • نویسنده: Alex
  • درباره نویسنده: ---
مترجم

در این بخش از آموزش شما یاد می‌گیرید که چطور مدارات خود را در Kicad شبیه‌سازی کنید. در جامعه مهندسی توجه زیادی به شبیه‌سازی نمی‌شود درحالی‌که در بسیاری از موارد انجام شبیه‌سازی قبل از پیاده‌سازی عملی مدار می‌تواند از بروز بسیاری از مشکلات جلوگیری کند. Kicad از موتور شبیه‌سازی مبتنی بر SPICE استفاده می‌کند که در تمامی نرم‌افزارهای دیگر مثل Altium هم روال به همین صورت است. برای شبیه‌سازی دو نوع مدل ریاضی IBIS و SPICE گزینه‌های موجود برای طراحان است. هرچند که مدل SPICE  قطعات بسیار دقیق‌تر از مدل IBIS است؛ ولی تولیدکنندگان قطعات خیلی راغب نیستند که آنها را در اختیار عموم قرار دهند زیرا می‌تواند اطلاعات زیادی را از نحوه طراحی و ساخت قطعه به دیگران بدهد؛ بنابراین در اکثر مواقع تنها مدل IBIS قطعه در اختیار طراحان قرار می‌گیرد.

Kicad یک شبیه‌ساز مدار الکتریکی نهفته را در اختیار شما قرار می‌دهد که در درون خود موتور ngspice را دارد. Ngspice یک شبیه‌ساز Spice است که از برنامه Berkeley SPICE که به شکل گسترده در حال استفاده است گرفته شده است.

هنگامی که با شبیه‌ساز کار می‌کنید ممکن است کتابخانه سمبل Simulation_SPICE که در حالت پیش‌فرض با Kicad نصب می‌شود سودمند باشد. این کتابخانه دارای المان‌های رایج مثل منابع ولتاژ و جریان، منابع سیگنال DC و AC، یک مرجع زمین، المان‌های مداری غیرفعال ایده‌آل مثل مقاومت‌ها، سلف‌ها و خازن‌ها و دیگر مدل‌های قطعه نیمه‌هادی است که برای شبیه‌سازی استفاده می‌شوند.

درحالی‌که که این المان‌ها انجام بسیاری از شبیه‌سازی‌ها را ممکن می‌سازد؛ اما کاربران آشنا با SPICE در دیگر محیط‌ها به استفاده از مدل‌های نیمه‌هادی‌های تجاری موجود، مدارات مجتمع و دیگر قطعات مثل مدل‌های SPICE پیچیده مبادرت خواهند کرد. به‌طورقطع، تولیدکننده‌های نیمه‌هادی اغلب آزادانه این مدل‌ها را تأمین می‌کنند تا به کاربران کمک کنند تا مدارات خود را با استفاده از قطعات آنها شبیه‌سازی کرده و توسعه بدهند. توجه کنید که kicad در سیستم توزیع خود دارای هیچ‌گونه مدل‌ SPICE تجاری نیست؛ اما درهرصورت شما آزاد هستید تا هر مدلی که دارید و یا با دیگر شبیه‌سازها استفاده کرده‌اید را در شبیه‌سازی Kicad استفاده کنید.

در کل، اگر مدلی با دیگر شبیه‌سازهای SPICE کار می‌کند آن مدل باید با شبیه‌ساز Kicad نیز کار کند هرچند برخی از شبیه‌سازهای SPICE توسعه‌هایی را پیاده‌سازی می‌کنند که توسط ngspice پشتیبانی نمی‌شوند. Ngspice چندین حالت سازگاری را به‌منظور بهبود سازگاری با دیگر شبیه‌سازها ارائه می‌کند.

در پایان به‌منظور نمایش سریع قابلیت‌های شبیه‌ساز Kicad برخی از پروژه‌ها در فایل‌های Kicad قرار داده شده‌اند. آنها می‌توانند در دایرکتوری demos/simulation یافت شوند.

نشانه‌گذاری مقادیر

شبیه‌ساز از چندین علائم نشانه‌گذاری برای نوشتن مقادیر عددی پشتیبانی می‌کند:

  • نشانه‌گذاری ساده: ‌10100, 0.003  
  • نشانه‌گذاری علمی: 1.01e4 ,3e-3  
  • نشانه‌گذاری پیشوند: 10.1k ,3m
  • نشانه‌گذاری 4K7 ,10R :RKM  

شما می‌توانید علائم علمی را با علائم پیشوند ترکیب کنید. برای مثال 3e-4k  یک ورودی معتبری بوده و با مقدار 0.3 برابر است. لیست پیشوندهای معتبر در زیر نشان داده شده‌اند. آنها حساس به حروف کوچک و بزرگ هستند.

پیشوند

نام

ضریب

a

atto

10-18

f

femto

10-15

p

pico

10-12

n

nano

10-9

u

micro

10-6

m

milli

10-3

k

kilo

103

M

mega

106

G

giga

109

T

tera

1012

P

peta

1015

E

exa

1015

✅نکته

مدل‌های Raw SPICE Element و دستورالعمل‌ها مستقیماً به ngspice منتقل می‌شوند بدون آنکه Kicad بخواهد مقادیر را برای ngspice فرمت‌بندی دوباره کند. Ngspice از یک سیستم علائم حساس به بزرگی حروف متفاوتی استفاده می‌کند: 1 mega (106) در آن به‌عنوان 1Meg نشان داده می‌شود درحالی‌که 1M مقدار 1 milli (10-3)  است. براساس حالت سازگاری انتخاب شده، ngspice ممکن است مثل Kicad از علائم مشابهی پشتیبانی نکند بنابراین به هنگام استفاده از المان‌های SPICE خام و دستورالعمل‌های شبیه‌سازی باید مراقب باشید.

تخصیص مدل‌ها

قبل از اینکه بتوانید مدار خود را شبیه‌سازی کنید شما باید مدل‌های شبیه‌سازی را به سمبل‌های خود تخصیص بدهید.

هر سمبل تنها می‌تواند یک مدل تخصیص‌یافته داشته باشد حتی اگر سمبل دارای چند واحد باشد. برای سمبل‌ها با چندین واحد شما باید مدل را به اولین واحد اختصاص بدهید.

اطلاعات مدل Spice به شکل متن در فیلدهای سمبل ذخیره می‌شوند؛ بنابراین شما می‌توانید آن را در ویرایشگر سمبل یا ویرایشگر شماتیک تعریف کنید. به‌منظور تخصیص یک مدل شبیه‌سازی به یک سمبل، پنجره Symbol Properties را باز کنید و روی Simulation Model کلیک کنید. این کار پنجره Simulation Model Editor  را باز می‌کند.

شما می‌توانید سمبلی را با زدن تیک exclude from simulation در پنجره Symbol Properties به طور کامل از شبیه‌سازی حذف کنید.

مدل‌های استنتاج شده

مدل‌های مقاومت، سلف و خازن می‌توانند استنتاج شوند که به این معنی است که Kicad تشخیص می‌دهد آنها المان غیرفعال بوده و به شکل خودکار یک مدل شبیه‌سازی مناسب را به آنها تخصیص می‌دهد؛ بنابراین آنها به هیچ تنظیم خاصی نیاز ندارند و تنها باید مقدار Value توسط کاربر در فیلد وارد شود.

شاید برای شما مفید باشد:
تنظیمات لایه های برد | کادر برد و جایگذاری فوت پرینت - قسمت چهارم آموزش Kicad

Kicad  بر اساس معیارهای زیر مدل‌های شبیه‌سازی را نتیجه‌گیری می‌کند:

  • سمبل دارای دو پین است.
  • شناسه مرجع با R, L یا C شروع می‌شود.

مدل‌های استنتاجی مدل‌های ایده‌آل هستند. درصورتی‌که شبیه‌سازی به یک مدل غیرایده‌آل نیاز داشته باشد مثل یک سلف با احتساب خازن‌های پارازیت آن، شما باید مدلی را تخصیص بدهید که این خازن پارازیت را اضافه می‌کند.

مدل‌های داخلی

Kicad برخی از مدل‌های شبیه‌سازی استاندارد را ارائه می‌دهد. آنها نیازی به یک فایل مدل خارجی نداشته و پارامترهایشان می‌تواند در GUI ویرایشگر مدل شبیه‌سازی Kicad ویرایش شوند. قطعات زیر موجود هستند:‌

  • مقاومت‌ها و پتانسیومترها    
  • خازن‌ها
  • سلف‌ها
  • خطوط انتقال
  • کلیدها
  • منابع جریان و ولتاژ
  • دیودها
  • ترانزیستورها
  • مدل‌های کد XSPICE
  • المان‌های SPICE خام

به‌منظور اضافه‌کردن یک مدل داخلی به یک سمبل، پنجره Simulation Model Editor را باز کنید (Symbol Properties -> Simulation Model)  و Built-in SPICE model را انتخاب کنید. سپس شما می‌توانید نوع قطعه‌ را از منوی device انتخاب کنید و زیرقطعه را از منوی device type انتخاب کنید.

Device نوع قطعه برای شبیه‌سازی را انتخاب می‌کند: منبع ولتاژ، BJT ، مقاومت. این مقدار در فیلد Sim.Device ذخیره می‌شود.

Device Type نوع مدل استفاده شده برای مدل را انتخاب می‌کند. اکثر قطعات دارای چندین نوع مدل هستند. مدل‌ها ممکن است دارای دقت‌های مختلف، خصوصیاتی که برای آنها بهبود یافته‌اند، پارامترهایی که موجود دارند و تعداد پین‌هایی که دارا هستند، باشند. برای مثال مقاومت ایده‌آل یک مقاومت ساده با دو ترمینال و یک تک پارامتر resistance را مدل‌سازی می‌کند درحالی‌که مقاومت پتانسیومتر یک مقاومت قابل‌تنظیم با سه ترمینال و یک پارامتر اضافه برای موقعیت اهرم آن را نیز مدل‌سازی می‌کند. برخی از قطعات دارای تعداد زیادی از گونه‌ها هستند که می‌توان از بین آنها انتخاب کرد: برای مثال N-channel MOSFETS دارای 17 نوع متفاوت است که هرکدام از آنها از یک مدل ریاضی متفاوت برای شبیه‌سازی رفتار ترانزیستور استفاده می‌کنند. یک مدل ممکن است کم‌وبیش نسبت به دیگری یا در مدار دیگری برای اجرای تحلیلی خاص مناسب‌تر باشد.

سربرگ Parameters پارامترهای مدل را نمایش داده و به شما اجازه می‌دهد تا آنها را ویرایش کنید. برای مثال میزان مقاومت یک مقاومت شکل موج یک منبع ولتاژ، طول و عرض یک ماسفت و غیره. هر پارامتری که از پیش‌فرض‌های مدل متفاوت باشد در فیلد Sim.Params ذخیره می‌شود.

سربرگ code مدل SPICE تولیدی را نمایش می‌دهد؛ چون این کد در لیست گره SPICE برای شبیه‌سازی نوشته خواهد شد.

کادر Save parameter ‘<parameter name>’ in Value field از فیلد Value سمبل برای ذخیره‌سازی پارامترها بجای فیلد Sim.Params  استفاده می‌کند. این موضوع ویرایش مدل‌های ساده از سمت شماتیک را بدون باز کردنSimulation Model Editor آسان‌تر می‌کند. این گزینه تنها برای مدل‌های غیرفعال ایده‌آل (R,L,C)  و منابع DC موجود هست. اگر فیلد Sim.Params در سمبل وجود داشته باشد نسبت به فیلد Value دارای اولویت خواهد بود.

مدل‌های کتابخانه

Kicad می‌تواند مدل‌های SPICE را از فایل‌های خارجی نیز بارگذاری کند و این روش معمولی است که شما برای اضافه‌کردن یک مدل SPICE از یک قطعه تجاری خاص (به طور مثال تایمر 555 یا یک تقویت‌کننده عملیاتی TL071) به شبیه‌سازی خودتان استفاده می‌کنید. این مدل‌ها باید در یک فرمت Spice استاندارد بوده و نباید رمزگزاری شده باشند. مدل‌هایی از این دست از منابع مختلفی قابل دسترسی هستند به طور مثال وب‌سایت سازنده قطعه.

برای بارگذاری یک مدل از یک فایل خارجی پنجره Simulation Model Editor  را باز کنید (Symbol Properties -> Simulation Model)  و SPICE model from file را انتخاب کنید.

File  مسیری به فایل مدل برای استفاده‌شدن است. فایل‌های مدل غیررمزگذری شده فایل‌های متنی خوانا برای انسان و ساده بوده و دارای پسوندهایی مثل .lib و .sub هستند. اگرچه Kicad یک مدل معتبر با هر پسوندی را قبول می‌کند.

مسیر داده شده به فایل می‌تواند نسبت به فولدر پروژه مطلق یا نسبی باشد. اگر شما آن متغیر مسیر را تعریف کرده باشید مسیر می‌تواند به مقدار SPICE_LIB_DIR نیز نسبی باشد. نام فایل کتابخانه در فیلد Sim.Library سمبل ذخیره می‌شود.

Model نام مدل موردنظر در فایل مدل است. یک فایل مدل ممکن است شامل چندین مدل باشد و اگر باشد آنها در منوی کشوئی لیست خواهند شد. مدل انتخابی در فیلد Sim.Name سمبل لیست می‌شود.

با استفاده از سربرگ Parameters پارامترها می‌توانند ابطال شوند (یا پارامترهای اضافه تعیین شده). تمامی پارامترهای مشخص شده در مدل انتخابی یا سربرگ Parameters در فیلد Sim.Params سمبل ذخیره می‌شوند.

سربرگ Code مدل Spice تولیدی را نمایش می‌دهد؛ چون این کد به لیست گره SPICE برای شبیه‌سازی نوشته خواهد شد.

✅نکته

Kicad با مدل‌های SPICE برای قطعات تجاری خاص توزیع و گسترش نیافته است. این مدل‌ها معمولاً از سازنده قطعات و منابع اینترنتی در دسترس قرار می‌گیرند.

مدل‌های کتابخانه (IBIS)

فایل‌های IBIS (I/O Buffer Information Specification) جایگزینی برای مدل‌های Spice به‌منظور مدل‌سازی رفتاری بافرهای ورودی/خروجی روی پورت‌های دیجیتال هستند. به‌منظور بارگذاری یک فایل IBIS، کاربران باید همان روند را برای مدل‌های کتابخانه SPICE  را دنبال کنند؛ اما این‌بار فایل .ibs را برای آن بارگذاری کنند.

شاید برای شما مفید باشد:
مشاهده‌گر سه‌بعدی و Net Inspector در KiCad - قسمت 22 آموزش Kicad

File  مسیر فایل مدل برای استفاده است. مسیر می‌تواند مطلق بوده و یا نسبت به فولدر پروژه نسبی باشد. اگر شما متغیر مسیر را تعریف کرده باشید، مسیر می‌تواند نسبت به مقدار SPICE_LIB_DIR نسبی باشد. نام فایل کتابخانه در فیلد Sim.Library سمبل ذخیره می‌شود. درصورتی‌که یک فایل مدل IBIS بارگذاری شده باشد فیلدهای باقی‌مانده در پنجره به مدل‌های IBIS مرتبط می‌شوند.

Component اینکه چه قطعه‌ای از فایل IBIS استفاده شود را انتخاب می‌کند؛ چون فایل‌های IBIS می‌توانند دارای چندین قطعه باشند. نام قطعه در فیلد Sim.Name سمبل ذخیره می‌شود.

Pin در مدل IBIS را برای شبیه‌سازی انتخاب می‌کند. پین انتخابی باید به یک پین سمبل در سربرگ Pin Assignment نگاشت شود. شماره پین انتخابی در فیلد Sim.Ibis.Pin ذخیره می‌شود.

Model لیست مدل‌های موجود برای پین انتخابی است برای مثال یک ورودی یا یک خروجی. نام مدل انتخابی در فیلد Sim.Ibis.Model  سمبل ذخیره می‌شود.

Type اینکه پین چه کاری را در شبیه‌سازی باید انجام بدهد را انتخاب می‌کند. یک پین می‌تواند یک قطعه غیرفعال یا پسیو باشد که هیچ مقداری را راه‌اندازی نمی‌کند. این مورد می‌تواند یک راه‌انداز DC باشد که بالا، پایین یا امپدانس بالا را راه‌اندازی می‌کند یا اینکه می‌تواند یک موج مربعی (rectangular wave) یا PRBS driver باشد. این مقدار در فیلد Sim.Type سمبل ذخیره می‌شود.

سربرگ پارامترها به شما اجازه می‌دهد تا پارامترهای مدل را دیده و ویرایش کنید. برای هر پارامتر می‌توانید بین یک مقدار ماکزیمم، مینیمم و معمول انتخاب کنید. شما می‌توانید پارامترهای شکل‌موج راه‌اندازی شده را نیز بر اساس type انتخابی پین انتخاب کنید. هر پارامتری که از پیش‌فرض‌ها متفاوت باشد در فیلد Sim.Params ذخیره می‌شود.

✅نکته

Kicad برای سمبل‌ها مدل‌های IBIS فراهم نمی‌کند. مدل‌های IBIS  معمولاً از سازنده‌های قطعه باید گرفته شوند.

✅نکته

کتابخانه سمبل Simulation_Spice دارای سمبل‌هایی است که برای شبیه‌سازی‌های IBIS سودمند است. IBIS_DEVICE می‌تواند برای پین‌های (ورودی) استفاده شود درحالی‌کهIBIS_DRIVER می‌تواند برای شبیه‌سازی پین‌های درایور استفاده شود. انواع مختلفی از هرکدام نیز برای پین‌های تفاضلی وجود دارد.

تخصیص پین

مدل‌های شبیه‌سازی ممکن است دارای پین‌هایی باشند که به شکل متفاوتی نسبت به سمبل مرتبط با خود شماره‌گذاری شده‌ باشند. برای مثال مدل‌های SPICE برای دیودها معمولاً پین 1 را آند در نظر می‌گیرند درحالی‌که سمبل‌های شماتیک معمولاً دارای پین کاتدی هستند که شماره آن 1 است. مدل‌های تقویت‌کننده‌های عملیاتی نیز بسیار محتمل هست که تخصیصات پین آنها با شماره‌های پین پکیج یا شماتیک منطبق نباشد.

شما می‌توانید از سربرگ Pin Assignment ویرایشگرSimulation Model برای نگاشت پین‌های سمبل به پین‌های مدل شبیه‌سازی استفاده کنید.

✅نکته

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

ستون چپ نام و شماره هر پین را نمایش می‌دهد؛ یعنی اسامی و شماره‌های پین که روی قسمت شماتیک در Kicad ظاهر می‌شوند. ستون راست پین مربوط را همان‌طور که در فایل مدل استفاده می‌شود نمایش می‌دهد. برای هر پین سمبل شما می‌توانید از منوی مربوطه در ستون راست پین مرتبط را از مدل شبیه‌سازی انتخاب کنید. در مواردی که قسمت شماتیک دارای پین‌هایی است که در مدل نیستند به طور مثال در تقویت‌کننده‌های عملیاتی با پین‌های “nulling”  که مدل‌سازی نشده‌اند، پین قسمت شماتیک ممکن است به گزینه “Not Connected” در منوی Pin Assignments تخصیص یابد. برخلاف دیگر تخصیصات پین، “Not Connected”  ممکن است در صورت لزوم به پین‌های چندگانه تخصیص داده شوند.

وقتی که شما از یک مدل زیرمدار استفاده می‌کنید، پنجره کد مدل را زیر تخصیصات پین برای استفاده به‌عنوان یک مرجع نمایش می‌دهد. مدلی که به‌خوبی نوشته شده باشد اغلب دارای یک بخش مرجع سودمند است (یعنی دسته‌ای از کامنت‌ها) تا به کاربر چگونگی نگاشت شدن پین‌های مدل را اطلاع بدهد.

دستورالعمل‌های SPICE

این امکان وجود دارد تا دستورالعمل‌های SPICE را با قراردادن آنها در فیلدهای متن روی یک صفحه شماتیک اضافه کنید. این رویکرد برای تعریف‌کردن نوع شبیه‌سازی پیش‌فرض مناسب است. لیست دستورالعمل‌های پشتیبانی شده در فیلدهای متن به شکل زیر است:

  • دستوراتی که با نقطه شروع می‌شود مثل  tran 10n 1m
  • ضریب‌های تزویج برای سلف‌ها مثل  K1 L1 L2 0.89

امکان قراردادن قطعات اضافی با استفاده از فیلدهای متن وجود ندارد.

اگر یک دستور شبیه‌سازی در متن شماتیک اضافه شود، وقتی که شما شبیه‌ساز را باز می‌کنید شبیه‌ساز از آن به‌عنوان دستور شبیه‌سازی استفاده می‌کند. هرچند شما می‌توانید آن را در پنجره Simulation Command باطل کنید.

اطلاعات
17
0
0
اشتراک و حمایت
profile نویسنده: Alex متخصص الکترونیک
ویراستار: مریم میریان
مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله