آموزش MATLAB: شبیهسازی سیستمهای مرتبه اول و دوم با مثال و کد
آموزش شبیهسازی سیستمهای مرتبه اول و دوم در MATLAB + با کد نمونه
مقدمه: چرا شبیهسازی در مهندسی کنترل اهمیت دارد؟
تصور کنید یک مهندس کنترل قصد دارد رفتار یک سیستم واقعی مثل موتور DC یا یک ربات متحرک را بررسی کند. آیا همیشه امکان تست مستقیم روی سیستم واقعی وجود دارد؟ قطعاً نه! 💡
اینجاست که شبیهسازی به کمک ما میآید. شبیهسازی در نرمافزارهایی مثل MATLAB به مهندسان این امکان را میدهد که قبل از پیادهسازی عملی، رفتار سیستم را پیشبینی کنند، خطاها را کاهش دهند و هزینهها را پایین بیاورند.
در این مقاله قصد داریم سیستمهای مرتبه اول و دوم را معرفی کنیم، سپس مرحلهبهمرحله آنها را در MATLAB شبیهسازی کنیم. حتی اگر تازهکار هستید، نگران نباشید! همه چیز را با زبانی ساده و همراه با مثال توضیح خواهیم داد.
تعریف سیستمهای مرتبه اول و دوم
سیستم مرتبه اول چیست؟
یک سیستم مرتبه اول معمولاً با یک معادله دیفرانسیل خطی مرتبه اول توصیف میشود. فرم کلی تابع انتقال آن:

- K → بهره (Gain)
- τ (تاو) → ثابت زمانی (Time Constant)
🔹 مثال: مدار RC ساده (مقاومت – خازن) یک سیستم مرتبه اول است.
سیستم مرتبه دوم چیست؟
سیستم مرتبه دوم معمولاً با معادله دیفرانسیل خطی مرتبه دوم توصیف میشود. فرم کلی تابع انتقال:

- ωn → فرکانس طبیعی (Natural Frequency)
- ζ (زتا) → نسبت میرایی (Damping Ratio)
🔹 مثال: سیستم جرم-فنر-دمپر یک نمونه رایج از سیستم مرتبه دوم است.
شاید به موارد زیر نیز علاقه مند باشید:
- طراحی کنترل لغزشی با بازخورد جزئی حالت برای سیستم توپ و میله
- طراحی یک کنترلکننده مد لغزشی زیربهینه مرتبه دوم انتگرالی برای کنترل حرکتی مقاوم بازوهای رباتیک
- طراحی ناظر تابعی با مرتبه کسری ورودی نامشخص برای سیستم های مرتبه کسری با تاخیر زمانی لیپشیتس یک طرفه
- لیست کامل خطاهای فایل و مسیر متلب + راهکارهای عملی (با مثال)
- خطاهای رایج در ارتباط متلب با دیگر زبانها و ابزارها + مثال و روش حل
پروژههای آماده MATLAB برای مهندسی برق کنترل را در فروشگاه متلبی جستجو کنید.
آموزش مرحلهبهمرحله شبیهسازی در MATLAB
گام اول: تعریف سیستم مرتبه اول در MATLAB
ابتدا باید ضرایب سیستم را مشخص کنیم.
% سیستم مرتبه اول
K = 2; % بهره
tau = 3; % ثابت زمانی
num = [K];
den = [tau 1];
sys1 = tf(num, den);
% پاسخ پله
figure;
step(sys1);
title('پاسخ پله سیستم مرتبه اول');
grid on;
📊 نمودار پاسخ پله در این مرحله اهمیت زیادی دارد، چون به وضوح نشان میدهد سیستم چه زمانی به حالت پایدار میرسد.
گام دوم: تعریف سیستم مرتبه دوم در MATLAB
% سیستم مرتبه دوم
wn = 5; % فرکانس طبیعی
zeta = 0.3; % نسبت میرایی
num = [wn^2];
den = [1 2*zeta*wn wn^2];
sys2 = tf(num, den);
% پاسخ پله
figure;
step(sys2);
title('پاسخ پله سیستم مرتبه دوم');
grid on;
📊 در نمودار حاصل، نوع میرایی (کممیرایی، بیشمیرایی یا بحرانی) بهوضوح قابل مشاهده است.
گام سوم: ترکیب چند ورودی و مقایسه سیستمها
گاهی لازم است رفتار سیستمهای مختلف را با هم مقایسه کنیم:
figure;
step(sys1, sys2);
legend('مرتبه اول','مرتبه دوم');
title('مقایسه پاسخ پله سیستم مرتبه اول و دوم');
grid on;
این نمودار به شما کمک میکند تا درک بهتری از تفاوت دینامیک سیستمها پیدا کند.
نقش نمودارها در درک بهتر سیستمهای کنترل
- نمودار پاسخ پله (Step Response) → درک زمان نشست و پایداری
- نمودار پاسخ فرکانسی (Bode Plot) → بررسی رفتار سیستم در حوزه فرکانس
- نمودار Root Locus → تحلیل پایداری و طراحی کنترلر
از این رو کد کامل به صورت زیر خواهد بود:
% --- سیستم مرتبه اول ---
K = 2;
tau = 3;
sys1 = tf([K], [tau 1]);
% --- سیستم مرتبه دوم ---
wn = 5;
zeta = 0.3;
sys2 = tf([wn^2], [1 2*zeta*wn wn^2]);
% --- پاسخ پله (Step Response) ---
figure;
step(sys1, sys2);
legend('مرتبه اول','مرتبه دوم');
title('مقایسه پاسخ پله سیستم مرتبه اول و دوم');
grid on;
% --- پاسخ فرکانسی (Bode Plot) ---
figure;
bode(sys1, sys2);
legend('مرتبه اول','مرتبه دوم');
title('نمودار پاسخ فرکانسی (Bode Plot)');
grid on;
% --- نمودار Root Locus ---
figure;
rlocus(sys2); % معمولاً برای سیستم مرتبه دوم جذابتره
title('نمودار Root Locus سیستم مرتبه دوم');
grid on;
- نمودار پاسخ پله (Step Response) → درک زمان نشست و پایداری

-
سیستم مرتبه اول: چون بهره (K=2) و ثابت زمانی τ=3 انتخاب شده، خروجی از صفر شروع میکند و به مقدار نهایی ۲ همگرا میشود. رفتار هم یکنواخت و بدون نوسان هست. ✅
-
سیستم مرتبه دوم: با ζ=0.3 (کممیرایی)، طبیعی بود که یک نوسان اولیه داشته باشد و نهایتاً روی مقدار نهایی ۱ همگرا شود. چون بهرهاش برابر ۱ بود. ✅
- نمودار پاسخ فرکانسی (Bode Plot) → بررسی رفتار سیستم در حوزه فرکانس

-
برای هر دو سیستم، در فرکانسهای پایین، بهره نزدیک صفر دسیبل هست (یعنی خروجی تقریباً دنبال میکند).
-
با افزایش فرکانس:
-
دامنه به سمت -60 dB (برای مرتبه دوم) و کمتر (برای مرتبه اول) افت میکند.
-
فاز هم از حدود ۰ شروع میشود و در نهایت برای سیستم مرتبه اول به حدود -90° و برای مرتبه دوم به حدود -180° میرسد. ✅
-
- نمودار Root Locus → تحلیل پایداری و طراحی کنترلر

-
قطبهای اولیه روی محور موهومی نزدیک ±j5 (یعنی حدود ±25 در مقیاس ωn² چون wn=5 → wn²=25) قرار دارند.
-
با تغییر بهره، مسیر قطبها روی محور حقیقی جابهجا میشود و به سمت نقاطی مثل -1.5 روی محور x میل میکند.
-
این دقیقاً نشون میدهد که سیستم با تغییر بهره میتواند پایدارتر شود یا ناپایدار بماند. ✅
در این پست ما به این موارد پرداختیم:
-
تابع انتقال در MATLAB
-
پاسخ پله (Step Response) در MATLAB
-
پاسخ فرکانسی (Bode Plot) در MATLAB
-
نمودار Root Locus در MATLAB
-
سیستمهای مرتبه اول و دوم در مهندسی کنترل
دستورات متلب که در این پست استفاده کردیم:
-
- دستور
tfدر MATLAB → برای تعریف تابع انتقال (Transfer Function) یک سیستم خطی استفاده میشود. این دستور ضرایب صورت و مخرج سیستم را میگیرد و یک مدل سیستم قابل شبیهسازی میسازد. - دستور
stepدر MATLAB → پاسخ پله (Step Response) سیستم را رسم میکند. نشان میدهد سیستم چقدر سریع و چگونه به ورودی پله واکنش نشان میدهد. - دستور
bodeدر MATLAB → نمودار فرکانسی (Bode Plot) سیستم را رسم میکند، شامل دامنه و فاز بر حسب فرکانس. برای تحلیل رفتار سیستم در حوزه فرکانس و طراحی کنترلر مفید است. - دستور
rlocusدر MATLAB → Root Locus سیستم را رسم میکند. مسیر حرکت قطبهای سیستم را با تغییر بهره (Gain) نشان میدهد و برای تحلیل پایداری و طراحی کنترلر کاربرد دارد.
- دستور
مثالهای عملی MATLAB در مهندسی کنترل را با متلبی بیاموزید.
نکات کاربردی و خطاهای رایج در شبیهسازی
نکات کاربردی ✅
- قبل از تعریف تابع انتقال، مطمئن شوید ضرایب بهدرستی وارد شدهاند.
- برای تحلیل بهتر، از دستورات
bode,rlocus,impulseهم استفاده کنید. - همیشه Grid را در نمودار فعال کنید تا مقادیر راحتتر خوانده شوند.
خطاهای رایج ❌
- فراموش کردن
;در انتهای خطوط → باعث شلوغ شدن Command Window میشود. - وارد کردن ضرایب اشتباه در مخرج → نمودار بیمعنی یا ناپایدار تولید میشود.
- اشتباه گرفتن ζ (زتا) و ωn → تفسیر نادرست از رفتار سیستم
جمعبندی
در این مقاله یاد گرفتیم:
- تعریف سیستمهای مرتبه اول و دوم در مهندسی کنترل
- روش شبیهسازی آنها در MATLAB
- مشاهده پاسخ پله، نمودار Bode و Root Locus
- نکات مهم و خطاهای رایج در شبیهسازی سیستمهای دینامیکی
این تمرین میتواند نقطه شروعی عالی برای پروژههای متلب شما باشد. 🚀
👉 حالا نوبت شماست:
-
پرسشها و نظرات خود را در بخش کامنتها بنویسید تا همراه هم مشکلات را حل کنیم.








دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.