متلب پروژه
1.06K subscribers
249 photos
40 videos
33 files
433 links


انجام پروژه دانشجویی

#انجام_پروژه_دانشجویی
#انجام_پروژه
#سفارش_پروژه
#انجام_پروژه_متلب

سفارش فوری در واتس آپ در تلگرام
09962031191


@matlabprozhe4

ثبت سفارش
www.matlabprozhe.com

آدرس ایمیل
Matlabprozhe@gamil.com
Download Telegram
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه اول
💡 استاد : دکتر علی فدایی
____________________________
دیاگرام نیکولز (قسمت دوم):
در این جلسه به بررسی کاربرد عملی دوایر M و α خواهیم پرداخت.
کاربرد عملی دوایر M و α :
کاربرد عملی این دوایر در بدست آوردن مقادیر دامنه و فاز سیستم حلقه بسته نیست !
در واقع باید مسیر عکس را پیمود!
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_سیزدهم
#ورمقانی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه دوم
💡 استاد : دکتر علی فدایی
____________________________
در عمل پاسخ فرکانسی سیستم حلقه بسته در دسترس است (این اطلاعات می‌تواند مثلا به کمک دادن ورودی های سیسنوسی با دامنه و فاز متفاوت به سیستم و مشاهده پاسخ حاصل شود.) سپس برای بررسی پایداری و عملکرد سیستم لازم است مقادیر دامنه و فاز سیستم حلقه باز را داشته باشیم تا با رسم دیاگرام نیکولز و یا نایکویست و یا بوده به بررسی پایداری و عملکرد سیستم حلقه بسته بپردازیم. بنابراین با داشتن پاسخ فرکانسی سیستم حلقه بسته به رسم دیاگرام نیکولز سیستم حلقه باز و یا در واقع به بدست آوردن پاسخ فرکانسی سیستم حلقه باز می‌پردازیم.
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_دوم
#ورمقانی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه سوم
💡 استاد : دکتر علی فدایی
____________________________
در برنامه فوق به ترتیب دوایر M و α منتاظر رسم می‌شود و سپس کاربر نقطه تقاطع را به کمک ماوس مشخص میکند برنامه همه این نقاط را درخود نگه داشته و سرانجام آن‌ها را رسم می‌کند.
ممکن است دو نقطه تقاطع داشته باشیم در این صورت آن نقطه را که به نقطه انتخابی قبلی نزدیک تر بوده و هموار بودن نمودار حاصل را تضمین کند انتخاب می‌کنیم.
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_سیزدهم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
http://yon.ir/8zks
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه سیزدهم
💡 استاد : دکتر علی فدایی
____________________________
پس از انتخاب نقاط تقاطع نتیجه به صورت زیر خواهد بود:
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_سیزدهم
#فدایی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
http://yon.ir/7pUc
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه چهارم
💡 استاد : دکتر علی فدایی
مدیر سایت متلب پروژه
____________________________
نتیجه گیری :
داده‌های داده شده در جدول مثال فوق مربوط به پاسخ فرکانسی سیستم زیر بود:
G(s)=(s+2)/(s^2+3s+5)
بنابراین حلقه باز آن به صورت زیر خواهد بود:
P(s)=(s+2)/(s^2+2s+3)
حال پس از اجرای برنامه فوق با اجرای برنامه زیر دیاگرام نیکولز واقعی را هم رسم می‌کنیم:
hold on
num=[0 1 2];
den=[1 2 3];
nichols(num,den,'r')


____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_سیزدهم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
http://yon.ir/pp83
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه پنجم
💡 استاد : دکتر علی فدایی
____________________________
اگر بخواهیم این کار را دستی انجام دهیم کار ساده خواهد بود اما می‌خواهیم این کا را متلب انجام دهد برنامه زیر این کار را انجام می‌دهد:
clc
clear
close all

m=[-7.9462 -7.6628 -6.9897 -6.4836 -6.4681 -7.513 -8.0986 -8.7283 -11.222 -15.068 -19.797 -21.44];

Alpha=[-0.57809 -3.4893 -10.305 -21.701 -28.558 -48.122 -53.282 -57.653 -69.075 -78.294 -83.784 -84.942];

t=-pi:0.001:pi;

for i=1:numel(m)

M=10^(m(i)/20);
alpha=Alpha(i);

x=abs(M/(M^2-1))*cos(t)-M^2/(M^2-1);
y=abs(M/(M^2-1))*sin(t);

mag_M=20*log10(sqrt(x.^2+y.^2));
phase_M=atan2(y,x)*180/pi;

for j=1:numel(t)
if phase_M(j)>180
phase_M(j)=phase_M(j)-360;
elseif phase_M(j)<-180
phase_M(j)=phase_M(j)+360;
end
end


plot(phase_M,mag_M,'.')
hold on

x=abs(1/(2*sind(alpha)))*cos(t)-0.5;
y=abs(1/(2*sind(alpha)))*sin(t)+1/(2*tand(alpha));

mag_a=20*log10(sqrt(x.^2+y.^2));
phase_a=atan2(y,x)*180/pi;

for j=1:numel(t)
if phase_a(j)>180
phase_a(j)=phase_a(j)-360;
elseif phase_a(j)<-180
phase_a(j)=phase_a(j)+360;
end
end

plot(phase_a,mag_a,'.')

xlim([-180 180])

hold off

[PHASE(i),MAG(i)]=ginput(1);


end

plot(PHASE(:),MAG(:))


____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_پنجم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه دهم
💡 استاد : دکتر علی فدایی
____________________________
رسم نمودار بوده (قسمت اول) :
برای رسم نمودار بوده باید نمودار دامنه و فاز سیستم را بیابیم.
در متلب دستور bode برای این منظور تعبیه شده است اما برای آموزش بهتر مفاهیم نمودار بوده ابتدا به نوشتن برنامه برای رسم دیاگرام بوده می‌پردازیم:
در عمل برای این منظور فرکانس های اصلی سیستم را میابیم و با دادن ورودی سینوسی با فرکانس از حدود 0.1 کوچک ترین تا 10 برابر بزرگ ترین آن ها در چندین نقطه مناسب ،بهره(نسبت دامنه خروجی به دامنه ورودی) و اختلاف فاز (اختلاف زاویه بین خروجی و ورودی) را اندازه گیری می‌کنیم.با استفاده از نقاط بدست آمده دیاگرام بود را در صفحه نیمه لگاریتمی رسم می‌کنیم.
در اینجا توابع فاز و دامنه را میابیم و سپس مقادیر آن‌ها را در فرکانس‌های مختلف یافته و رسم می‌کنیم.

____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_دهم
#فدایی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه اول قسمت 2
💡 استاد : دکتر علی فدایی
____________________________
مثال زیر این روش را تشریح می‌کند:
مثال:
برای دیاگرام زیر و با فرض c(s)=1 دیاگرام بوده را رسم کنید:
G(s)=1/(1+0.2s+0.04s^2 )(1+0.1s)
G(jω)=1/(1+0.2jω-0.04ω^2 )(1+0.1jω)
20 log|G(jω)|=-20log⁡|1+0.2jω-0.04ω^2 |-20 log⁡|1+0.1jω|
-∡(1+0.2jω-0.04ω^2)-∡(1+.01jω) ∡G(jω)=
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_دهم
#فدایی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
http://yon.ir/fhJV
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه اول قسمت 3
💡 استاد : دکتر علی فدایی
____________________________
برنامه متلب زیر این کار را انجام میدهد.
clc
clear
close all

w=logspace(-1,2,1000);
for n=1:length(w);
m=20*log10(abs(1/((1+0.2*w(n)*1i-0.04*(w(n))^2)*(1+0.1*w(n)*1i))));
ph=angle(1/((1+0.2*w(n)*1i-0.04*(w(n))^2)*(1+0.1*w(n)*1i)))*(180/pi);
mag(n)=m;
phase(n)=ph;
end
figure(1)
subplot(2,1,1)
semilogx(w,mag)
ylabel('Magnitude (dB)')
grid on
title('Bode Diagram')
subplot(2,1,2)
semilogx(w,phase)
xlabel('Frequency (rad/s)')
ylabel('Phase (deg)')
grid on
خروجی برنامه :
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_دهم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
http://yon.ir/5IYM
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه اول قسمت 4
💡 استاد : دکتر علی فدایی
____________________________
پرش موجود در فاز به دلیل این است که خروجی دستور angle بین -πو π است.
برای اینکه پرش در فاز را از بین ببریم میتوان برنامه را به صورت زیر اصلاح کرد:
clc
clear
close all

w=logspace(-1,2,1000);
for n=1:length(w);
m=20*log10(abs(1/((1+0.2*w(n)*1i-0.04*(w(n))^2)*(1+0.1*w(n)*1i))));
ph=angle(1/((1+0.2*w(n)*1i-0.04*(w(n))^2)*(1+0.1*w(n)*1i)))*(180/pi);
mag(n)=m;
phase(n)=ph;
end

for i=1:length(w)-1
if phase(i+1)-phase(i)>=180
phase(i+1)=phase(i+1)-360;
elseif phase(i+1)-phase(i)<=-180
phase(i+1)=phase(i+1)+360;
end
end

figure(1)
subplot(2,1,1)
semilogx(w,mag)
ylabel('Magnitude (dB)')
grid on
title('Bode Diagram')
subplot(2,1,2)
semilogx(w,phase)
xlabel('Frequency (rad/s)')
ylabel('Phase (deg)')
grid on

خروجی :
____________________________
#Modern_Control
#آموزش_مقدماتی
#فدایی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
http://yon.ir/PWNA
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه اول قسمت 5
💡 استاد : دکتر علی فدایی
____________________________
رسم دیاگرام بوده به کمک دستور bode :
bode(num,den)
bode(num,den,w)
bode(num,den)
bode(A,B,C,D)
bode(A,B,C,D,iu)
bode(A,B,C,D,iu,w)
bode(sys)
اگر بردار w را وارد نکنیم خود متلب یک بردار برای آن در نظر میگیرد.
اگر بخواهیم ورودی را انتخاب کنیم باید از فرم فضای حالت استفاده کنیم. که در آن‌ها iu شماره ورودی است.
مثال :
همان مثال قبل را به کمک دستور bode رسم کنید:
clc
clear
close all

num=[1];
den=[0.004 0.06 0.3 1];
bode(num,den)
grid on

نتیجه:
____________________________
#Modern_Control
#آموزش_مقدماتی
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
http://yon.ir/98NC
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه اول قسمت 5
💡 استاد : دکتر علی فدایی
____________________________
که مطابق انتظار همان نتیجه قبلی را می‌دهد.
مثال :
نمودار بوده سیستم فوق را برای فرکانس‌های بین 0 تا 100 رادیان بر ثانیه رسم کنید.(250 فرکانس)
ابتدا باید یک بردار w ساخت که شامل فرکانس‌های مدنظر باشد برای این کار از دستور logspace استفاده می‌کنیم:
w = logspace(a,b)
w = logspace(a,b,n)

دستور اول یک بردار سطری 50 تایی ایجاد میکند که درایه‌های آن به صورت لگاریتمی بین 10a و 10b میباشد.
دستور دوم یک بردار سطری n تایی ایجاد میکند که درایه‌های آن به صورت لگاریتمی بین 10a و 10b میباشد.
بنابراین در این مثال :
a=0;
b=2;

clc
clear
close all

w=logspace(0,2,250);
num=[1];
den=[0.004 0.06 0.3 1];
bode(num,den,w)
grid on

نتیجه :

____________________________
#Modern_Control
#آموزش_مقدماتی
#فدایی
#کنترل_مدرن
#مثال

@matlabprpzhe
____________________________
yon.ir/mHv0
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه اول قسمت 6
💡 استاد : دکنتر علی فدایی
____________________________


توجه کنید که در مثال قبل 2 ورودی و یک خروجی داشتیم.

مثال :

دیاگرام بوده مثال قبل را فقط برای ورودی اول رسم کنید.
ابتدا باید فرم فضای حالت را بیابیم. (در جلسه سوم به طور کامل طریقه بدست آوردن فرم فضای حالت سیستم چند متغیره را بحث کردیم.)

clc
clear
close all

w=logspace(-1,2,250);

NUM11=[1 1];
NUM12=[1];
DEN1=[1 3 4];
DEN2=[1 3];

NUM1=NUM11;
NUM2=NUM12;

[A1,B1,C1,D1]=tf2ss(NUM1,DEN1);
[A2,B2,C2,D2]=tf2ss(NUM2,DEN2);

za1=zeros(size(A1,1),size(A2,2));
za2=zeros(size(A2,1),size(A1,2));
A=[A1 za1;za2 A2];
zb1=zeros(size(A1,1),1);
zb2=zeros(size(A2,1),1);
B=[B1 zb1;zb2 B2];
C=[C1 C2];
D=[D1 D2];

bode(A,B,C,D,1,w)
grid on


نتیجه :

____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_دهم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
http://yon.ir/lIx7
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه 2 قسمت اول
💡 استاد : دکتر علی فدایی
____________________________
دیاگرام بود (قسمت دوم)
برای بدست آوردن مقادیر دامنه و فاز از دستور زیر استفاده می‌کنیم :
[mag,phase,wout] = bode(sys)
در این دستور mag مقدار دامنه و phase مقدار زاویه برحسب درجه است و wout نیز بردار فرکانس های متناظر است.
اگر بخواهیم مقدار دامنه را بر حسب dB بدست آوریم از رابطه زیر استفاده میکنیم:
Mag_dB=20*log10(mag)
مثال:
برای سیستم
P(s)=(s+1)/(s^2+2s+3)

____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_یازدهم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه دوم قسمت 2
💡 استاد : دکتر علی فدایی
____________________________
دیاگرام بود را رسم کنید:
clc
clear
close all

num=[1 1];
den=[1 2 3];

[mag,phase,w]=bode(num,den);

figure(1)
bode(num,den)
grid on

figure(2)
subplot(2,1,1)
semilogx(w,mag)
grid on
subplot(2,1,2)
semilogx(w,phase)
grid on

figure(3)
mag_dB=20*log10(mag);
subplot(2,1,1)
semilogx(w,mag_dB)
grid on
subplot(2,1,2)
semilogx(w,phase)
grid on
نتایج:👇👇👇👇

____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_یازدهم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
yon.ir/8XkM
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه دوم قسمت 3
💡 استاد : دکتر علی فدایی
مدیر سایت متلب پروژه
____________________________
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_یازدهم
#فدایی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
http://yon.ir/WZ2z
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه دو قسمت چهار
💡 استاد : علی فدایی
مدیر سایت متلب پروژه
____________________________
____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_یازدهم
#فدایی
#کنترل_مدرن
#مثال

@matlabprozhe
____________________________
http://yon.ir/tp4D
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه دو قسمت 5
💡 استاد : دکتر علی فدایی
____________________________
در شکل اول دیاگرام بود را توسط دستور bode رسم کردیم در شکل 2 پس از بدست آوردن مقادیر دامنه و فاز و فرکانس متناظرشان با استفاده از دستور semilogx مقادیر دامنه و فاز را رسم کردیم در این شکل مقدار دامنه بر حسب dB نیست. در شکل 3 نیز مقادیر دامنه و فاز را به کمک دستور semilogx رسم کردیم اما مقدار دامنه را برحسب dB تبدیل کردیم.
دستور semilogx :
این دستور شبیه به دستور plot عمل می‌کند با این تفاوت که محور x ها را در اسکیل لگاریتمی نمایش میدهد.

____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_یازدهم
#فدایی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
🍀🍀 آموزش کاربرد متلب در کنترل خطی و کنترل مدرن 🍀🍀
____________________________
💡 جلسه دو قسمت 6
💡 استاد : دکتر علی فدایی
مدیر سایت متلب پروژه
____________________________
مثلا در مثال قبل اگر به جای semilogx از دستور plot استفاده کنیم داریم:
clc
clear
close all

num=[1 1];
den=[1 2 3];

[mag,phase,w]=bode(num,den);

subplot(2,1,1)
plot(w,20*log10(mag))
grid on
subplot(2,1,2)
plot(w,phase)
grid on

____________________________
#Modern_Control
#آموزش_مقدماتی
#جلسه_یازدهم
#فدایی
#کنترل_مدرن
#مثال
@matlabprozhe
____________________________
http://yon.ir/ePij