آموزش HSpice (قسمت 5): تحلیل AC (پاسخ فرکانسی) و جمعبندی
در قسمت چهارم آموزش HSpice، با تحلیل گذرا (Transient) و نحوه بررسی رفتار مدار در حوزه زمان آشنا شدیم. اکنون در قسمت پنجم و پایانی این دوره مقدماتی، به سراغ تحلیل AC یا تحلیل حوزه فرکانس میرویم. این تحلیل به ما کمک میکند بفهمیم مدار چگونه به سیگنالهای سینوسی با فرکانسهای مختلف پاسخ میدهد و مفاهیمی کلیدی مانند بهره (Gain)، فاز (Phase) و پهنای باند (Bandwidth) را استخراج کنیم. دستور اصلی برای این کار .AC
است.
فهرست مطالب این دوره آموزشی:
- قسمت اول: HSpice چیست و چگونه شروع کنیم؟
- قسمت دوم: توصیف المانهای پایه و منابع مستقل
- قسمت سوم: تحلیل DC (نقطه کار .OP و جاروب .DC)
- قسمت چهارم: تحلیل گذرا (Transient) با دستور .TRAN
- قسمت پنجم: تحلیل AC (پاسخ فرکانسی) و جمعبندی (همین قسمت) – لینک قسمت پنجم
قسمت پنجم: تحلیل پاسخ فرکانسی مدار
تحلیل AC چیست؟
تحلیل AC پاسخ سیگنال کوچک (Small-Signal) مدار را به ورودیهای سینوسی در یک محدوده فرکانسی محاسبه میکند. منظور از “سیگنال کوچک” این است که تحلیل AC مدار را حول نقطه کار DC آن خطیسازی میکند. یعنی فرض میشود دامنه سیگنالهای AC به اندازهای کوچک است که المانهای غیرخطی (مانند ترانزیستورها) همچنان در ناحیه کاری خطی خود (حول نقطه بایاس DC) باقی بمانند.
به همین دلیل، HSpice همیشه قبل از انجام تحلیل AC، ابتدا یک تحلیل نقطه کار DC (.OP) انجام میدهد تا نقطه بایاس مدار را مشخص کند و سپس مدلهای سیگنال کوچک المانها را حول آن نقطه محاسبه نماید. منابعی که در نتلیست با پارامتر `AC` تعریف میشوند (که در قسمت دوم معرفی شدند)، به عنوان ورودیهای سینوسی برای این تحلیل در نظر گرفته میشوند.
کاربردهای اصلی تحلیل AC عبارتند از:
- یافتن پاسخ فرکانسی تقویتکنندهها (نمودار بهره و فاز بر حسب فرکانس یا نمودار Bode).
- مشخص کردن عملکرد فیلترها (فرکانس قطع، پهنای باند، شیب ناحیه گذار).
- تحلیل امپدانس ورودی و خروجی مدار در فرکانسهای مختلف.
- بررسی پایداری مدارهای فیدبک.
دستور .AC
: جاروب فرکانسی
دستور .AC
به HSpice میگوید که تحلیل AC را در چه محدوده فرکانسی و با چه گامهایی انجام دهد.
فرمت: .AC <SweepType> <NPoints> <Fstart> <Fstop>
<SweepType>
: نوع جاروب فرکانس را مشخص میکند. سه نوع اصلی عبارتند از:LIN
: جاروب خطی (Linear). فرکانس با گامهای مساوی ازFstart
تاFstop
افزایش مییابد. مناسب برای بازههای فرکانسی باریک.DEC
: جاروب دهدهی (Decade). تعداد نقاط مشخص شده (NPoints
) در هر دهه فرکانسی قرار میگیرد (هر دهه یعنی 10 برابر شدن فرکانس). این نوع جاروب رایجترین حالت برای رسم نمودارهای Bode است زیرا محور فرکانس معمولاً لگاریتمی است.OCT
: جاروب اکتاو (Octave). تعداد نقاط مشخص شده (NPoints
) در هر اکتاو فرکانسی قرار میگیرد (هر اکتاو یعنی 2 برابر شدن فرکانس). کاربرد کمتری نسبت بهDEC
دارد.
<NPoints>
: تعداد نقاط جاروب. برای نوعLIN
، این عدد کل نقاط است. برایDEC
یاOCT
، این عدد، تعداد نقاط *در هر دهه یا اکتاو* است.<Fstart>
: فرکانس شروع جاروب بر حسب هرتز (Hz). برای جاروبهایDEC
وOCT
باید حتماً بزرگتر از صفر باشد.<Fstop>
: فرکانس پایان جاروب بر حسب هرتز (Hz).
* Examples of .AC command
* Decade sweep from 1Hz to 1GHz with 20 points per decade
.AC DEC 20 1 1G
* Linear sweep from 99MHz to 101MHz with 500 total points
.AC LIN 500 99MEG 101MEG
لزوم تعریف منبع AC
فراموش نکنید که برای انجام تحلیل AC، باید حداقل یک منبع مستقل (ولتاژ یا جریان) در مدارتان با پارامتر AC
تعریف شده باشد. این منبع نقش سیگنال ورودی را ایفا میکند که پاسخ مدار نسبت به آن در فرکانسهای مختلف سنجیده میشود. مثلاً:
Vin InputNode 0 AC 1 0 $ AC Voltage Source with 1V magnitude and 0 phase for AC analysis
مشاهده نتایج تحلیل AC
نتایج تحلیل AC برای هر فرکانس معمولاً به صورت یک عدد مختلط (Complex Number) است که شامل اندازه (Magnitude) و فاز (Phase) میشود.
- برای مشاهده نتایج، مانند تحلیلهای دیگر، فعال کردن
.OPTION POST
و استفاده از نمایشگر شکل موج بهترین گزینه است. - در دستورات
.PRINT AC
یا.PLOT AC
یا در نمایشگر شکل موج، میتوانید خروجیهای مختلفی را درخواست کنید:VM(Node)
یاVM(ElementName)
: اندازه (Magnitude) ولتاژ یا جریان.VP(Node)
یاVP(ElementName)
: فاز (Phase) ولتاژ یا جریان بر حسب درجه.VDB(Node)
یاVDB(ElementName)
: اندازه ولتاژ یا جریان بر حسب دسیبل ($20 \log_{10} |V|$). این فرمت برای رسم نمودار بهره بسیار رایج است.VR(Node)
,VI(Node)
: بخش حقیقی (Real) و موهومی (Imaginary) ولتاژ یا جریان.IM(...)
,IP(...)
,IDB(...)
,IR(...)
,II(...)
: موارد مشابه برای جریان عبوری از المانها.
- نمودارهای Bode معمولاً شامل دو نمودار هستند: یکی نمودار اندازه (معمولاً بر حسب dB) در مقابل لگاریتم فرکانس، و دیگری نمودار فاز (بر حسب درجه) در مقابل لگاریتم فرکانس.
مثال کاربردی: فیلتر پایینگذر RC
بیایید پاسخ فرکانسی یک فیلتر پایینگذر ساده RC را با تحلیل AC به دست آوریم.
* Simple RC Low-Pass Filter AC Analysis
* Components
Vin IN 0 AC 1 0 * AC Input Voltage Source (Mag=1V, Phase=0deg)
R1 IN OUT 1k * 1 kOhm Resistor
C1 OUT 0 1nF * 1 nano-Farad Capacitor (Output taken across C1)
* Analysis Command
* Decade sweep from 10Hz to 10MHz with 50 points per decade
.AC DEC 50 10 10MEG
* Options
.OPTION POST * Enable waveform viewing
* Output Request for Waveform Viewer
* Request Magnitude in dB and Phase in degrees of the output voltage V(OUT)
.PROBE AC Vdb(OUT) Vp(OUT)
* End of Netlist
.END
توضیح کد مثال فیلتر RC:
- Vin: منبع ولتاژ ورودی که *فقط* برای تحلیل AC تعریف شده است (با دامنه 1 و فاز 0).
- R1 و C1: اجزای فیلتر پایینگذر. خروجی از دو سر خازن (گره
OUT
) گرفته میشود. - دستور
.AC DEC 50 10 10MEG
:DEC
: جاروب به صورت دهدهی (لگاریتمی).50
: 50 نقطه در هر دهه فرکانسی محاسبه شود.10
: فرکانس شروع 10 هرتز است.10MEG
: فرکانس پایان 10 مگاهرتز (10 میلیون هرتز) است.
- دستور
.PROBE AC Vdb(OUT) Vp(OUT)
: به HSpice میگوید که برای تحلیل AC، اندازه ولتاژ خروجی بر حسب دسیبل (Vdb(OUT)
) و فاز ولتاژ خروجی بر حسب درجه (Vp(OUT)
) را برای نمایشگر شکل موج ذخیره کند.
پس از اجرای این شبیهسازی و مشاهده نتایج در نمایشگر شکل موج، میتوانیم نمودار Bode فیلتر را ببینیم: نمودار Vdb(OUT)
که در فرکانسهای پایین نزدیک 0dB است و پس از فرکانس قطع ($f_c = \frac{1}{2\pi RC} \approx 159kHz$) با شیب 20dB- بر دهه افت میکند، و نمودار Vp(OUT)
که از 0 درجه شروع شده و در فرکانسهای بالا به 90- درجه میل میکند.
[تصویر نمودار Bode (دامنه dB و فاز) برای فیلتر RC مثال در اینجا قرار گیرد]
نگاهی گذرا به تحلیلها و دستورات دیگر
در این دوره مقدماتی، ما سه تحلیل اصلی DC، Transient و AC را پوشش دادیم. اما HSpice قابلیتهای بسیار بیشتری دارد که در آموزشهای پیشرفتهتر میتوانید با آنها آشنا شوید، از جمله:
- تحلیل نویز (
.NOISE
): محاسبه نویز حرارتی و فلیکر تولید شده توسط المانهای مدار و اثر آن بر خروجی. - تحلیل فوریه (
.FOUR
): تجزیه یک شکل موج گذرا به مولفههای فرکانسی هارمونیک آن. - زیرمدارها (
.SUBCKT
/.ENDS
): برای تعریف بلوکهای مداری تکرار شونده و ایجاد نتلیستهای ماژولار. - پارامترها (
.PARAM
): برای تعریف متغیرها و استفاده از آنها در مقادیر المانها یا تحلیلها، جهت انجام شبیهسازیهای پارامتریک. - کتابخانهها (
.LIB
/.INCLUDE
): برای استفاده از فایلهای مدل خارجی که توسط سازندگان قطعات یا تیمهای طراحی ارائه میشوند. - دستور اندازهگیری (
.MEASURE
): دستوری بسیار قدرتمند برای استخراج خودکار مقادیر خاص از نتایج شبیهسازی (مانند تاخیر، توان، پهنای باند، …) در تمام انواع تحلیلها. - و تحلیلهای پیشرفته دیگر مانند مونت کارلو، بهینهسازی، تحلیل اعوجاج و …
جمعبندی دوره مقدماتی
تبریک میگوییم! با رسیدن به پایان قسمت پنجم، شما دوره مقدماتی آموزش HSpice را با موفقیت به اتمام رساندید. در این پنج قسمت، ما سفری را از آشنایی با HSpice و ساختار نتلیست آغاز کردیم، نحوه تعریف المانهای پایه و منابع مختلف را یاد گرفتیم و با سه تحلیل بنیادی DC، گذرا (Transient) و AC آشنا شدیم.
اکنون شما دانش پایهای لازم برای شروع شبیهسازی مدارهای خود با HSpice را دارید. به یاد داشته باشید که مهارت در شبیهسازی با تمرین به دست میآید. سعی کنید مدارهای مختلفی را که در درسها یا پروژههای خود با آنها سر و کار دارید، در HSpice شبیهسازی کنید، نتایج را تحلیل کنید و با گزینهها و تحلیلهای مختلف تجربه کسب کنید.
دنیای شبیهسازی مدار بسیار گسترده است و HSpice ابزاری عمیق با قابلیتهای فراوان میباشد. امیدواریم این دوره مقدماتی نقطه شروع خوبی برای شما در این مسیر بوده باشد.
با تشکر از همراهی شما در این دوره آموزشی در آکادمی 100.
درس قبلی: قسمت چهارم: تحلیل گذرا (Transient)
آیا برای شبیهسازی مدار خود با HSpice نیاز به کمک دارید؟
تیم آکادمی 100 آماده انجام پروژههای شبیهسازی شما با نرمافزار HSpice در سطوح مختلف میباشد. برای مشاوره و ثبت سفارش، از طریق لینک زیر با ما در تماس باشید: