دستور lsim در متلب
سیستمهای خطی اهمیت ویژهای در علم کنترل و پردازش سیگنالها دارند. یکی از روشهای کلیدی برای تحلیل و بررسی این سیستمها، شبیهسازی پاسخ آنها به ورودیهای مختلف است. سیستمهای خطی سیستمهایی هستند که رفتار آنها با توجه به رابطهای خطی میان ورودی و خروجی توصیف میشود. شبیهسازی این سیستمها شامل تعیین پاسخ سیستم به ورودیهای مختلف مانند ورودی پله، ضربه یا ورودیهای دلخواه است. نرم افزار متلب به عنوان یکی از قویترین ابزارهای محاسبات عددی، با استفاده از دستورات متعددی مانند lsim، امکان شبیهسازی سیستمهای خطی را فراهم میکند. دستور lsim یکی از دستورات متلب است که برای شبیهسازی پاسخ سیستمهای خطی به سیگنالهای ورودی دلخواه استفاده میشود. این دستور میتواند برای سیستمهای با مدلهای فضای حالت، تابع انتقال یا صفر-قطب-بهره به کار رود.
در این محتوا از مجله پروژستان دستور lsim در متلب را به طور کامل و به همراه مثال های کاربردی توضیح میدهیم تا شما بتوانید از کدهای موجود در مثال های مختلف این مقاله در پروژه های متلب خود استفاده کنید. اگر نیاز داشته باشید تا انجام پروژه متلب شما توسط شخص دیگری انجام شود، میتوانید این کار را به تیم حرفه ای پروژستان بسپارید.
برای شبیهسازی یک سیستم خطی ابتدا باید سیستم (sys) به یکی از مدلهای استاندارد متلب همانند تابع انتقال یا فضای حالت تعریف شود. بعد از ساخت یک سیستم، می توان با استفاده از دستور lsim، ورودیهای مختلف را به سیستم اعمال کرد و پاسخ آن را بدست آورد. ساختار کلی دستور به صورت زیر است:
lsim(sys, u, t)
که در آن:
توضیح | پارامتر |
مدل سیستم خطی | sys |
ورودی سیستم در نقاط مختلف زمانی | u |
بردار زمان که نقاط نمونهگیری ورودی و خروجی را مشخص میکند | t |
دستور lsim در متلب : مثال1) ساخت یک سیستم خطی مرتبه اول
clc; clear; close all;
% تعریف تابع انتقال سیستم مرتبه اول
num = [1]; % صورت تابع انتقال
den = [1 1]; % مخرج تابع انتقال
sys = tf(num, den); % ایجاد تابع انتقال در متلب
خروجی:
sys =
1
—–
s + 1
Continuous-time transfer function.
دستور lsim در متلب : مثال 2) پاسخ ورودی سینوسی به سیستم با دستور lsim
clc; clear; close all;
% تعریف ورودی سینوسی
t = 0:0.01:10; % بردار زمان
u = sin(t); % ورودی سینوسی
% شبیهسازی سیستم
lsim(sys, u, t);
خروجی:
توضیح: یک ورودی سینوسی به سیستم داده و پاسخ آن شبیهسازی میشود که در آن t، بردار زمان از 0 تا 10 ثانیه با فاصله زمانی 0.01 ثانیه و u، ورودی سینوسی با تابع sin(t) است. خط تیره نمایشگر ورودی و خط آبی نمایش دهنده پاسخ ورودی سینوسی است.
ساختار دستور lsim در متلب : مثال3) پاسخ پله یک سیستم خطی مرتبه اول با تابع انتقال
clc; clear; close all;
% تعریف سیستم درجه یک
num = [1];
den = [1 1];
sys = tf(num, den);
% تعریف ورودی پله
t = 0:0.01:10;
u = ones(size(t));
% شبیهسازی پاسخ به ورودی پله
lsim(sys, u, t);
grid on
ylim([0 1.2])
خروجی:
توضیح: یک ورودی پله به سیستم داده و پاسخ آن شبیهسازی میشود که در آن t، بردار زمان از 0 تا 10 ثانیه با فاصله زمانی 0.01 ثانیه و u، ورودی پله است. خط تیره نمایشگر ورودی و خط آبی نمایش دهنده پاسخ به ورودی سینوسی است.
ساختار کلی دستور lsim در متلب: مثال 4) پاسخ یک مدل مرتبه دوم به ورودی پله
clc; clear; close all;
% تعریف سیستم درجه دو
num = [1];
den = [1 2 1];
sys = tf(num, den);
% تعریف ورودی پله
t = 0:0.01:10;
u = ones(size(t));
% شبیهسازی پاسخ به ورودی پله
lsim(sys, u, t);
hold on; grid on
plot(t,u,’r’);
ylim([0 1.2])
legend(‘Output’,’Input’)
خروجی:
توضیح: یک ورودی پله به سیستم داده و پاسخ آن شبیهسازی میشود که در آن t، بردار زمان از 0 تا 10 ثانیه با فاصله زمانی 0.01 ثانیه و u، ورودی پله است. خط تیره نمایشگر ورودی و خط آبی نمایش دهنده پاسخ است.
مثال 5: پاسخ ضربه به سیستم فضای حالت با ورودی چندگانه
clc; clear; close all;
% تعریف سیستم با فضای حالت
A = [0 1; -1 -1];
B = [0; 1];
C = [1 0];
D = 0;
sys = ss(A, B, C, D);
% تعریف ورودی ضربه
t = 0:0.01:10;
u = zeros(size(t));
u(50:100) = 1; % ایجاد یک ضربه
% شبیهسازی پاسخ سیستم به ورودی ضربه
lsim(sys, u, t);
hold on; grid on
plot(t,u,’r’);
ylim([0 1.2])
legend(‘Output’,’Input’)
خروجی:
توضیح: یک ورودی ضربه به سیستم داده و پاسخ آن شبیهسازی میشود که در آن t، بردار زمان از 0 تا 10 ثانیه با فاصله زمانی 0.01 ثانیه و u، ورودی ضربه است. خط قرمز ورودی و خط آبی نمایش دهنده پاسخ داست.
مثال6- پاسخ ضربه به ورودی سیستم با مدل صفر-قطب-بهره
clc; clear; close all;
% تعریف سیستم صفر-قطب-بهره
Zeros = [-1]; % صفرها
poles = [-2 -3]; % قطبها
gain = 1; % بهره سیستم
Sys_zpk = zpk(Zeros, poles, gain); % ایجاد مدل صفر-قطب-بهره
t = 0:0.01:10;
u = zeros(size(t));
u(50:100) = 1; % ایجاد یک ضربه
% شبیهسازی پاسخ سیستم به ورودی ضربه
lsim(sys, u, t);
hold on; grid on
plot(t,u,’r’);
ylim([0 1.2])
legend(‘Output’,’Input’)
خروجی:
مثال7- ورودی نویز سفید
clc; clear; close all;
clc; clear; close all;
% تعریف تابع انتقال سیستم مرتبه اول
num = [1]; % صورت تابع انتقال
den = [1 1]; % مخرج تابع انتقال
sys = tf(num, den); % ایجاد تابع انتقال در متلب
% ایجاد نویز سفید
U = randn(size(t)); % ورودی نویز سفید با توزیع نرمال
% شبیهسازی پاسخ سیستم به نویز سفید
lsim(sys_tf, u, t);
خروجی:
توضیح: ورودی نویز سفید برای تحلیل سیستمها در شرایط عدم قطعیت و بررسی پایداری سیستم استفاده میشود:
مثال 8: پاسخ سیستم MIMO با ورودی چندگانه
clc; clear; close all
% تعریف سیستم MIMO
A = [0 1 0; 0 0 1; -2 -1 -3];
B = [0 0; 1 0; 0 1];
C = [1 0 0; 0 1 0];
D = [0 0; 0 0];
sys = ss(A, B, C, D);
% تعریف ورودیهای چندگانه
t = 0:0.01:10;
u = [sin(t); cos(t)]; % دو ورودی سینوسی و کسینوسی
% شبیهسازی پاسخ سیستم MIMO
lsim(sys, u, t);
خروجی:
توضیح: در این مثال، یک سیستم چند ورودی-چند خروجی (MIMO) با استفاده از فضای حالت شبیهسازی میشود. این سیستم دارای دو ورودی سینوسی و کسینوسی پاسخ میدهد و خروجیهای آن به صورت تابعی از این ورودیها تغییر میکنند.


