آموزش HSpice (قسمت 4): تحلیل گذرا (Transient) با دستور .TRAN
در قسمت سوم با تحلیل DC و دستورات .OP
و .DC
آشنا شدیم که به ما در درک وضعیت پایدار و بایاس مدار کمک میکنند. اما دنیای الکترونیک پر از سیگنالهایی است که با زمان تغییر میکنند! برای مشاهده اینکه مدار ما چگونه به این سیگنالهای متغیر با زمان (مانند پالس ساعت، سیگنال صوتی، یا پاسخ پله) واکنش نشان میدهد، به تحلیل گذرا (Transient Analysis) نیاز داریم. این تحلیل یکی از پرکاربردترین و مهمترین تحلیلها در HSpice است و با دستور .TRAN
انجام میشود.
فهرست مطالب این دوره آموزشی:
- قسمت اول: HSpice چیست و چگونه شروع کنیم؟
- قسمت دوم: توصیف المانهای پایه و منابع مستقل
- قسمت سوم: تحلیل DC (نقطه کار .OP و جاروب .DC)
- قسمت چهارم: تحلیل گذرا (Transient) با دستور .TRAN (همین قسمت) – لینک قسمت چهارم
- قسمت پنجم: تحلیل AC (پاسخ فرکانسی) و معرفی دستورات پیشرفتهتر
قسمت چهارم: تحلیل رفتار مدار در حوزه زمان
تحلیل گذرا چیست؟
تحلیل گذرا، رفتار مدار را به عنوان تابعی از زمان محاسبه میکند. برخلاف تحلیل DC که فرض میکرد همه چیز ثابت است، تحلیل گذرا اثرات وابسته به زمان خازنها (شارژ و دشارژ) و سلفها (تغییرات جریان) را در نظر میگیرد. این تحلیل به ما امکان میدهد:
- پاسخ مدار به ورودیهای پالسی، پلهای، سینوسی یا هر شکل موج دلخواه دیگر را ببینیم.
- زمانهای تاخیر (Delay)، صعود (Rise Time) و نزول (Fall Time) سیگنالها را اندازهگیری کنیم.
- رفتار نوسانی، میراشوندگی یا وضعیت پایدار نهایی مدار را در طول زمان مشاهده کنیم.
- عملکرد مدارهای دیجیتال (مانند گیتها، فلیپفلاپها) و مدارهای آنالوگ (مانند تقویتکنندهها، فیلترها) را در حوزه زمان ارزیابی کنیم.
دستور .TRAN
: قلب تحلیل گذرا
برای انجام تحلیل گذرا، از دستور .TRAN
استفاده میکنیم. فرمت اصلی و رایج آن به شکل زیر است:
فرمت: .TRAN <Tstep> <Tstop> [START=<Tstart>] [UIC]
<Tstep>
: گام زمانی چاپ (Printing Time Step): این پارامتر مشخص میکند که نتایج شبیهسازی با چه فاصلههای زمانی در فایل خروجی (برای دستور.PRINT
یا.PLOT
) ذخیره شوند و همچنین به عنوان یک “راهنما” برای حداکثر گام زمانی داخلی شبیهساز عمل میکند. HSpice معمولاً از روش گام زمانی تطبیقی (Adaptive Time-Stepping) استفاده میکند، یعنی در زمانهایی که ولتاژها و جریانها به سرعت تغییر میکنند، گامهای زمانی داخلی بسیار کوچکی برمیدارد و در زمانهایی که مدار پایدار است، گامها را بزرگتر میکند تا سرعت شبیهسازی افزایش یابد. مقدارTstep
باید به اندازهای کوچک باشد که جزئیات مهم شکل موجها را در خروجی از دست ندهیم (مثلاً حدود ۱/۱۰۰ تا ۱/۱۰۰۰ زمان کل شبیهسازی یا متناسب با سریعترین تغییرات سیگنال).<Tstop>
: زمان پایان شبیهسازی (Stop Time): این پارامتر مشخص میکند که شبیهسازی تا چه زمانی ادامه یابد. شبیهسازی دقیقاً در زمانTstop
متوقف میشود.[START=<Tstart>]
: (اختیاری) زمان شروع ذخیره نتایج (Start Time): به طور پیشفرض، HSpice نتایج را از زمان صفر ذخیره میکند. اگر مقدارTstart
را مشخص کنید (مثلاًSTART=10n
)، HSpice شبیهسازی را از زمان صفر انجام میدهد اما ذخیره کردن نتایج برای چاپ یا نمایش را از زمانTstart
شروع میکند. این برای حذف کردن حالت گذاری اولیه (settling) مدار و تمرکز روی بخش مورد نظر مفید است.[UIC]
: (اختیاری) استفاده از شرایط اولیه (Use Initial Conditions): این گزینه بسیار مهم است.- اگر
UIC
وجود نداشته باشد (حالت پیشفرض): HSpice ابتدا یک تحلیل نقطه کار DC (مانند دستور.OP
) انجام میدهد تا ولتاژها و جریانهای اولیه DC مدار را پیدا کند. سپس تحلیل گذرا از این نقطه پایدار DC شروع میشود. این حالت برای دیدن پاسخ مدار به ورودیهایی که از حالت پایدار شروع میشوند، مناسب است. - اگر
UIC
وجود داشته باشد: HSpice تحلیل نقطه کار DC اولیه را انجام نمیدهد. به جای آن، مستقیماً از شرایط اولیهای که شما برای خازنها (با پارامترIC=<V0>
) و سلفها (با پارامترIC=<I0>
) مشخص کردهاید، استفاده میکند. این حالت زمانی ضروری است که بخواهید شبیهسازی را از یک وضعیت اولیه خاص (که ممکن است پایدار نباشد) شروع کنید، مثلاً بررسی دشارژ یک خازن از یک ولتاژ اولیه مشخص.
- اگر
تعیین شرایط اولیه (Initial Conditions)
همانطور که گفته شد، اگر بخواهید تحلیل گذرا از یک وضعیت اولیه خاص (غیر از نقطه کار DC) شروع شود، باید از گزینه UIC
در دستور .TRAN
استفاده کنید و مقادیر اولیه را برای المانهای ذخیرهکننده انرژی (خازن و سلف) مشخص نمایید:
- برای خازن: در خط تعریف خازن، از پارامتر
IC=<Voltage>
استفاده کنید.
C1 OUT 0 1uF IC=5V $ Capacitor starts with 5V across it
- برای سلف: در خط تعریف سلف، از پارامتر
IC=<Current>
استفاده کنید.
L1 IN 1 10mH IC=10mA $ Inductor starts with 10mA flowing through it
نکته: راه دیگری برای تعیین شرایط اولیه، استفاده از دستور .IC V(Node)=Value
است که ولتاژ اولیه گرهها را مستقیماً تنظیم میکند. اگر از .IC
استفاده میکنید، معمولاً نباید از UIC
در دستور .TRAN
استفاده کنید.
مشاهده نتایج تحلیل گذرا
نتایج تحلیل گذرا معمولاً به صورت شکل موج ولتاژ یا جریان بر حسب زمان هستند.
- برای دیدن مقادیر عددی در زمانهای مشخص (که با
Tstep
تعیین میشوند) در فایل.lis
، از دستور.PRINT TRAN Var1 Var2 ...
استفاده کنید. - برای دیدن یک نمودار ساده متنی در فایل
.lis
، از دستور.PLOT TRAN Var1 Var2 ...
استفاده کنید (کاربرد محدود). - بهترین راه برای مشاهده نتایج گذرا، فعال کردن
.OPTION POST
و استفاده از یک نرمافزار نمایشگر شکل موج (مانند AvanWaves) است. این نرمافزارها فایل داده باینری (معمولاً با پسوند.tr0
,.tr1
, …) را میخوانند و به شما امکان میدهند نمودارها را به صورت تعاملی مشاهده کنید، بزرگنمایی کنید، مقادیر را اندازهگیری کنید و سیگنالهای مختلف را با هم مقایسه نمایید.
مثال کاربردی: تحلیل گذرا مدار RLC
بیایید دوباره به مثال مدار RLC سری از قسمت قبل نگاه کنیم و دستور .TRAN
آن را دقیقتر بررسی کنیم.
* RLC Series Circuit Transient Analysis
* Components
Vin 1 0 PULSE(0 5 1n 0.1n 0.1n 10n 20n) * Input Pulse Voltage Source
R1 1 2 10 * 10 Ohm Resistor
L1 2 3 1uH * 1 micro-Henry Inductor
C1 3 0 100pF * 100 pico-Farad Capacitor (Output Voltage across C1)
* Analysis Command
* Perform Transient analysis from 0 to 60ns, with print steps of 0.1ns
.TRAN 0.1n 60n
* Options
.OPTION POST * Enable waveform viewing
* Output Request (Optional but recommended for waveform viewers)
* Explicitly request voltages at nodes 1, 2, and 3
.PROBE TRAN V(1) V(2) V(3)
* End of Netlist
.END
توضیح کد مثال RLC با .TRAN
:
- المانها (Vin, R1, L1, C1): مانند قسمت قبل تعریف شدهاند. منبع ورودی یک پالس است.
- دستور
.TRAN 0.1n 60n
:0.1n
: گام زمانی چاپ نتایج 0.1 نانوثانیه است.60n
: شبیهسازی تا زمان 60 نانوثانیه ادامه پیدا میکند.- چون
START=
مشخص نشده، ذخیره نتایج از زمان صفر شروع میشود. - چون
UIC
مشخص نشده، HSpice ابتدا نقطه کار DC مدار را پیدا میکند (که در این حالت چون ورودی در t=0 صفر است، احتمالاً تمام ولتاژها و جریانها صفر خواهند بود) و سپس تحلیل گذرا را از آن نقطه شروع میکند.
- دستور
.PROBE TRAN V(1) V(2) V(3)
: (این دستور جدید است!) دستور.PROBE
(که مشابه.PRINT
و.PLOT
است) به HSpice میگوید که کدام متغیرها را برای مشاهده در نمایشگر شکل موج آماده کند (وقتی.OPTION POST
فعال است). در اینجا ما صراحتاً درخواست کردهایم که ولتاژ گرههای 1، 2 و 3 در تحلیل گذرا ذخیره شوند. اگر.PROBE
نوشته نشود، HSpice ممکن است به طور پیشفرض تمام ولتاژها و جریانها را ذخیره کند که باعث حجیم شدن فایل خروجی میشود. استفاده از.PROBE
برای مشخص کردن خروجیهای مورد نظر توصیه میشود.
پس از اجرای این شبیهسازی و باز کردن نتایج در یک نمایشگر شکل موج، میتوانید نمودار V(1) (که همان پالس ورودی است)، V(2) (ولتاژ بین R1 و L1) و V(3) (ولتاژ خروجی روی خازن) را بر حسب زمان مشاهده کنید. انتظار میرود V(3) یک پاسخ نوسانی میراشونده به پالس ورودی نشان دهد که مشخصه مدار RLC است.
جمعبندی و گام بعدی
در این قسمت چهارم، با تحلیل گذرا (Transient Analysis) و دستور کلیدی آن .TRAN
آشنا شدیم. دیدیم که چگونه پارامترهای زمانی شبیهسازی را تنظیم کنیم و چگونه با استفاده از شرایط اولیه (IC=
) و گزینه UIC
، نقطه شروع شبیهسازی را کنترل نماییم. تحلیل گذرا ابزار اصلی ما برای دیدن رفتار دینامیکی مدار در حوزه زمان است.
در قسمت پنجم و پایانی این دوره مقدماتی، به سراغ تحلیل AC یا تحلیل در حوزه فرکانس خواهیم رفت و یاد میگیریم چگونه پاسخ فرکانسی مدار (بهره، فاز، پهنای باند) را با دستور .AC
محاسبه و مشاهده کنیم. همچنین نگاهی گذرا به برخی دستورات پیشرفتهتر خواهیم داشت.
همراه آکادمی 100 بمانید!
درس قبلی: قسمت سوم: تحلیل DC (نقطه کار .OP و جاروب .DC)
درس بعدی: قسمت پنجم: تحلیل AC (پاسخ فرکانسی) و دستورات پیشرفتهتر
آیا برای شبیهسازی مدار خود با HSpice نیاز به کمک دارید؟
تیم آکادمی 100 آماده انجام پروژههای شبیهسازی شما با نرمافزار HSpice در سطوح مختلف میباشد. برای مشاوره و ثبت سفارش، از طریق لینک زیر با ما در تماس باشید: