X
تبلیغات
کنترل تطبیقی

کنترل تطبیقی

این وبلاگ به طور تخصصی به موضوع کنترل تطبیقی در نرم افزار مطلب می پردازد.

شروع به کار

با سلام

این وبلاگ بر مبنای کتاب «راهنمای کاربردی سیمولینک پیشرفته» و «کنترل تطبیقی با مطلب و سیمولینک» پایه گذاری شده است و قصد دارد به بحث و بررسی کنترل تطبیقی  و شناسایی سیستم بپردازد

جهت ارتباط با نویسنده این وبلاگ می توانید از راهکارهای زیر استفاده نمائید:

1- ایمیل به آدرس Mohammad7512@yahoo.com

2- حضور در جهاد دانشگاهی امیرکبیر

و جهت تهیه کتاب های این وبلاگ می توانید به کتابفروشیهای خیابان انقلاب مراجعه فرمائید.

+ نوشته شده در  دوشنبه بیست و پنجم اردیبهشت 1391ساعت 20:2  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

کنترل تطبیقی با شبکه عصبی پس انتشار در تنظیم بهره های PID

روش پس انتشار براي كنترل یک سیستم دارای PID  بر مبنای مقاله ی :

Adaptive PID Control With Bp Neural Network Self-Tuning in Exhaust Temperature of Micro Gas Turbine

این مقاله در استخراج معادلات و روابط بسیار ساده و روان و بسیار کاربردی است:
%BP based PID Control
clear all;
close all;

xite=0.25;
alfa=0.05;

S=1; %Signal type

IN=4;H=5;Out=3;  %NN Structure
if S==1  %Step Signal
wi=[-0.6394   -0.2696   -0.3756   -0.7023;
    -0.8603   -0.2013   -0.5024   -0.2596;
    -1.0749    0.5543   -1.6820   -0.5437;
    -0.3625   -0.0724   -0.6463   -0.2859;
     0.1425    0.0279   -0.5406   -0.7660];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
   -0.1146 0.2949 0.8352  0.2205  0.4508;
    0.7201 0.4566 0.7672  0.4962  0.3632];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end

if S==2  %Sine Signal
wi=[-0.2846    0.2193   -0.5097   -1.0668;
    -0.7484   -0.1210   -0.4708    0.0988;
    -0.7176    0.8297   -1.6000    0.2049;
    -0.0858    0.1925   -0.6346    0.0347;
     0.4358    0.2369   -0.4564   -0.1324];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[1.0438    0.5478    0.8682    0.1446    0.1537;
    0.1716    0.5811    1.1214    0.5067    0.7370;
    1.0063    0.7428    1.0534    0.7824    0.6494];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end

x=[0,0,0];
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
y_1=0;y_2=0;y_3=0;

Oh=zeros(H,1);    %Output from NN middle layer
I=Oh;             %Input to NN middle layer
error_2=0;
error_1=0;

ts=0.001;
for k=1:1:6000
time(k)=k*ts;

if S==1
   rin(k)=1.0;
elseif S==2
   rin(k)=sin(1*2*pi*k*ts);
end

%Unlinear model
a(k)=1.2*(1-0.8*exp(-0.1*k));
yout(k)=a(k)*y_1/(1+y_1^2)+u_1;

error(k)=rin(k)-yout(k);

xi=[rin(k),yout(k),error(k),1];

x(1)=error(k)-error_1;
x(2)=error(k);
x(3)=error(k)-2*error_1+error_2;

epid=[x(1);x(2);x(3)];
I=xi*wi';
for j=1:1:H
    Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))); %Middle Layer
end
K=wo*Oh;             %Output Layer
for l=1:1:Out
    K(l)=exp(K(l))/(exp(K(l))+exp(-K(l)));        %Getting kp,ki,kd
end
kp(k)=K(1);ki(k)=K(2);kd(k)=K(3);
Kpid=[kp(k),ki(k),kd(k)];

du(k)=Kpid*epid;
u(k)=u_1+du(k);
if u(k)>=10       % Restricting the output of controller
   u(k)=10;
end
if u(k)<=-10
   u(k)=-10;
end

dyu(k)=sign((yout(k)-y_1)/(u(k)-u_1+0.0000001));

%Output layer
for j=1:1:Out
    dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
end
for l=1:1:Out
    delta3(l)=error(k)*dyu(k)*epid(l)*dK(l);
end

for l=1:1:Out
   for i=1:1:H
       d_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);
   end
end
    wo=wo_1+d_wo+alfa*(wo_1-wo_2);
%Hidden layer
for i=1:1:H
    dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
end
    segma=delta3*wo;
for i=1:1:H
   delta2(i)=dO(i)*segma(i);
end

d_wi=xite*delta2'*xi;
wi=wi_1+d_wi+alfa*(wi_1-wi_2);

%Parameters Update
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);   
y_2=y_1;y_1=yout(k);
   
wo_3=wo_2;
wo_2=wo_1;
wo_1=wo;
   
wi_3=wi_2;
wi_2=wi_1;
wi_1=wi;

error_2=error_1;
error_1=error(k);
end
figure(1);
plot(time,rin,'r',time,yout,'b');
xlabel('time(s)');ylabel('rin,yout');
figure(2);
plot(time,error,'r');
xlabel('time(s)');ylabel('error');
figure(3);
plot(time,u,'r');
xlabel('time(s)');ylabel('u');
figure(4);
subplot(311);
plot(time,kp,'r');
xlabel('time(s)');ylabel('kp');
subplot(312);
plot(time,ki,'g');
xlabel('time(s)');ylabel('ki');
subplot(313);
plot(time,kd,'b');
xlabel('time(s)');ylabel('kd'); ...

+ نوشته شده در  یکشنبه بیست و ششم آذر 1391ساعت 18:30  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

کلاس شبکه عصبی و فازی با MATLAB در جهاد دانشگاهی امیرکبیر

کلاس شبکه عصبی و فازی با MATLAB

جهت ثبت نام در کلاس شبکه عصبی در مطلب با جهاد دانشگاهی به شماره زیر تماس بگیرید:

88895969 خانم قربانی- جهاد دانشگاهی امیرکبیر

زمان تشکیل کلاس ها: ابتدای هر فصل در روزهای پنج شنبه از ساعت 8 تا 12 و یا 12 تا 16

سرفصل ها

1- معرفي مفاهيم و نمادهاي شبكه عصبي معرفي شي شبكه عصبي

2- داده‌هاي استاتيكي و ديناميكي- ايجاد شبكه‌‌هاي سفارشي- نرون‌هاي خطي و پرسپترون‌ها

3- كاربرد اول: تخمين منحني با شبكه عصبي (توابع چند ورودي- چند خروجي) با شبكه‌هاي پس انتشار و شعاعي

4- كاربرد دوم: كنترل با شبكه عصبي به روش PID با شبكه‌هاي پس انتشار

5- معرفي مفاهيم و نمادهاي فازي به روش ممدني- معرفي شي شبكه عصبي

6- نحوه كدنويسي با فازي و ايجاد صفحه رابط گرافيكي فازي

7- كنترل پاندول معكوس به روش فازي

+ نوشته شده در  سه شنبه بیست و یکم آذر 1391ساعت 21:45  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

کتاب معروف کنترل تطبیقی آقای استروم

کتاب معروف کنترل تطبیقی آقای استروم را از این لینک می توانید تهیه فرمائید

http://space4u.blogfa.com/post-21.aspx

+ نوشته شده در  سه شنبه بیست و سوم آبان 1391ساعت 9:26  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

تخمین گرها در شناسایی سیستم

خمین گر یا برآوردگر

در علم آمار، برآوردگر (به انگلیسی: Estimator) آماره‌ای (تابعی از داده‌های مشاهده شده) است که یک پارامتر آماری نامعلوم را تخمین می‌زند. به محصول اعمال تابع برآوردگر بر روی یک مشاهده آماری خاص برآورد گفته می‌شود. از آنجایی که برآوردگرهای مختلفی برای یک پارامتر قابل تصور است، معیارهایی (مانند برآوردگر خطی بودن یا برآوردگر نااریب بودن) جهت محدود کردن و یا انتخاب یک برآوردگر از میان همه برآوردگرها در نظر گرفته می‌شود.

ماکزیمم بخت یا درست نمایی بیشینه

درست نمایی بیشینه در علم امار براورد درست نمایی بیشینه، MLE روشی است برای براورد کردن پارامترهای یک مدل اماری. وقتی بر مجموعه‌ای از داده‌ها عملیات انجام می‌شود یک مدل اماری به دست می‌اید انگاه درست نمایی بیشینه می‌تواند تخمینی از پارامترهای مدل ارائه دهد. روش درست نمایی بیشینه به بسیاری از روش‌های شناخته شدهٔ تخمین اماری شباهت دارد. فرض کنید برای شخصی اطلاعات مربوط به قد زرافه‌های ماده بالغ موجود در یک جمعیت مهم باشد و این شخص به خاطر محدودیت هزینه یا زمان نتواند قد تک تک این زرافه‌ها را اندازه بگیرد، این شخص تنها می‌داند که این طول قدها از توزیع نرمال پیروی می‌کنند ولی میانگین و واریانس توزیع را نمی‌داند حال با استفاده از روش درست نمایی بیشینه و با در دست داشتن اطلاعات مربوط به نمونه‌ای محدود از جمعیت می‌تواند تخمینی از میانگین و واریانس این توزیع بدست اورد. MLE این کار را به این ترتیب انجام می‌دهد که واریانس و میانگین را مجهول در نظر می‌گیرد انگاه مقادیری را به انها نسبت می‌دهد که با توجه به اطلاعات موجود محتمل ترین حالت باشد. در حالت کلی روش MLE در مورد یک مجموعهٔ مشخص از داده‌ها عبارتست از نسبت دادن مقادیری به پارامتر‌های مدل که در نتیجهٔ ان توزیعی تولید شود که بیشترین احتمال را به داده‌های مشاهده شده نسبت دهد (یعنی مقادیری از پارامتر که تابع درست نمایی را ماکسیمم کند). MLE یک سازو کار مشخص را برای تخمین ارائه می‌دهد که در مورد توزیع نرمال و بسیاری توزیع‌های دیگر به طور خوشتعریف عمل می‌کند. با این حال در بعضی موارد مشگلاتی پیش می‌اید از قبیل اینکه براوردگر‌های درست نمایی بیشینه نامناسب اند یا اصلا وجود ندارند.

دستور متلب در این حوزه mle است.

تخمین طیفی

تخمین طیفی (Spectral estimation) زمینه‌ای است در پردازش آماری علائم (سیگنال‌ها) که به تخمین چگالی طیفی سیگنال‌های تصادفی با استفاده از دنباله‌ای از نمونه‌های زمانی آن‌ها اقدام می‌کند.

منبع

http://fa.wikipedia.org

+ نوشته شده در  شنبه بیستم آبان 1391ساعت 19:4  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

سایت روسی جهت دانلود کتاب رایگان

س از آن‌که library.nu، توقیف شد، معلوم گردید که خیلی‌ها در سراسر دنیا، از آن استفاده می‌کردند. ما هم استفاده می‌کردیم و در آستانه نمایشگاه کتاب، متحیر بودیم از اینکه کسانی کتاب خارجی، به زحمت می‌خرند، در حالی که library.nu هست.این دامین، پس از آن‌که مدت‌ها مسدود بود، ظاهراً توسط گوگل، بازگشایی شده است، ولی به خودbooks.google.com ارجاع می‌دهد. پیشنهاد جایگزین که البته مثل library.nu نیست، www.bookfi.org است. البته بدون آن‌که امنیت این سایت را احراز کنم. در عین حال، دو سایت دیگر، یعنی libgen.info و gen.lib.rus.ec هستند؛ مع‌الوصف، bookfi.org، به نحو مشهودی بهتر است.هر سه سایت روسی هستند.
در این سه سایت، به قیاس library.nu، یک چیز، بهتر است، و آن اینکه دانلود کتاب دو مرحله‌ای نیست، و مستقیم از روی هاست خود سایت برداشت می‌شود.

منبع

http://hamidmassoudi.blogfa.com/post-76.aspx

+ نوشته شده در  شنبه بیستم آبان 1391ساعت 18:53  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

کنترل تطبیقی دکتر خاکی صدیق

برای دریافت فایل های درس کنترل تطبیقی دکتر خاکی صدیق به سایت زیر رجوع کنید

http://saba.kntu.ac.ir/eecd/khakisedigh/Courses/Adaptive/Index.htm

+ نوشته شده در  شنبه بیستم آبان 1391ساعت 18:51  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

کنترل تطبیقی با شبکه عصبی

در برنامه زیر برای یک سیستم دینامیکی یک ورودی و یک خروجی با چهار روش شبکه عصبی، به طراحی کنترلر در نرم افزار مطلب پرداخته شده است.

این برنامه را به محیط مطلب ببرید، اجرا کنید و از نتایج آن لذت ببرید. فقط برای تغییر هر روش عدد  M‌ رابرابر با 1 یا 2 یا 3 یا 4 قرار دهید.

با این روش می توانید ضرایب یک سیستم PID‌را با شبکه عصبی تنظیم کنید و یک سیستم تطبیقی بسازید.

%Single Neural Adaptive PID Controller
clear all;
close all;

x=[0,0,0]';

xiteP=0.40;
xiteI=0.35;
xiteD=0.40;

%Initilizing kp,ki and kd
wkp_1=0.10;
wki_1=0.10;
wkd_1=0.10;
%wkp_1=rand;
%wki_1=rand;
%wkd_1=rand;

error_1=0;
error_2=0;
y_1=0;y_2=0;y_3=0;
u_1=0;u_2=0;u_3=0;

ts=0.001;
for k=1:1:1000
    time(k)=k*ts;
    rin(k)=0.5*sign(sin(2*2*pi*k*ts));
    yout(k)=0.368*y_1+0.26*y_2+0.1*u_1+0.632*u_2;
    error(k)=rin(k)-yout(k);
  
%Adjusting Weight Value by hebb learning algorithm
M=4;
if M==1              %No Supervised Heb learning algorithm
   wkp(k)=wkp_1+xiteP*u_1*x(1);  %P
   wki(k)=wki_1+xiteI*u_1*x(2);  %I
   wkd(k)=wkd_1+xiteD*u_1*x(3);  %D
   K=0.06;  
elseif M==2          %Supervised Delta learning algorithm
   wkp(k)=wkp_1+xiteP*error(k)*u_1;  %P
   wki(k)=wki_1+xiteI*error(k)*u_1;  %I
   wkd(k)=wkd_1+xiteD*error(k)*u_1;  %D
   K=0.12;  
elseif M==3          %Supervised Heb learning algorithm
   wkp(k)=wkp_1+xiteP*error(k)*u_1*x(1);  %P
   wki(k)=wki_1+xiteI*error(k)*u_1*x(2);  %I
   wkd(k)=wkd_1+xiteD*error(k)*u_1*x(3);  %D
   K=0.12;  
elseif M==4          %Improved Heb learning algorithm
   wkp(k)=wkp_1+xiteP*error(k)*u_1*(2*error(k)-error_1);
   wki(k)=wki_1+xiteI*error(k)*u_1*(2*error(k)-error_1);
   wkd(k)=wkd_1+xiteD*error(k)*u_1*(2*error(k)-error_1);
   K=0.12;  
end
  
   x(1)=error(k)-error_1;             %P
   x(2)=error(k);                     %I
   x(3)=error(k)-2*error_1+error_2;   %D

   wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));
   w11(k)=wkp(k)/wadd(k);
   w22(k)=wki(k)/wadd(k);
   w33(k)=wkd(k)/wadd(k);
   w=[w11(k),w22(k),w33(k)];

    u(k)=u_1+K*w*x;     %Control law

if u(k)>10
   u(k)=10;
end  
if u(k)<-10
   u(k)=-10;
end  
 
error_2=error_1;
error_1=error(k);
  
u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=yout(k);
  
wkp_1=wkp(k);
wkd_1=wkd(k);
wki_1=wki(k);
end
figure(1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');
figure(2);
plot(time,error,'r');
xlabel('time(s)');ylabel('error');
figure(3);
plot(time,u,'r');
xlabel('time(s)');ylabel('u'); ...

+ نوشته شده در  شنبه بیستم آبان 1391ساعت 18:48  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

کتاب مدل سازي و شبيه‌سازي ديناميك وسايل هوافضايي

کتاب مدل سازي و شبيه‌سازي ديناميك وسايل هوافضايي ترجمه دکتر فريبرز ثقفي، محمد فتحي توسط انتشارات موسسه انتشارات علمی دانشگاه صنعتی شریف به چاپ رسید.

قبل از شبیه سازی هر سیستم از طریق سيمولينك ابتدا باید معادلات آن را استخراج نمود و یا اصطلاحا مدل سازی کرد. بدين منظور كتاب مدل‌سازي و شبيه سازي آقاي zipfel پيشنهاد مي‌گردد.  اين كتاب، علاوه بر اينكه مرجع خوبي براي مدل سازي سيستم هاي ديناميكي و بخصوص هوافضايي است، جعبه ابزار هوافضايي نرم‌افزار متلب Aerospace Toolbax را نيز توصيف مي‌كند  و جهت مدل‌سازي در سيمولينك بسيار توصيه مي گردد.

این کتاب در دانشگاه صنعتی شریف مرجع درس مدل سازی و شبیه سازی است و دکتر ثقفی آن را تدرس می نماید. در ضمن در دانشگاه های معتبر ایران امیرکبیر، تربیت مدرس، آزاد، مالک اشتر نیز تدریس می شود.

همچنین این کتاب مرجع بسیاری از مقالات معتبر دنیا است.

این کتاب را می توانید از آدرس های زیر تهیه کنید:

1- کتابفروشی دانشگاه صنعتی شریف

2- میدان انقلاب- خیابان شهید منیری جاوید (اردیبهشت)- ساختمان 253- طبقه چهارم- واحد 402

3- خیابان حافظ- کوچه آرژانتین- جهاد دانشگاه امیرکبیر (فقط روزهای پنج شنبه)

4- کتابفروشی های خیابان انقلاب (مثلا کتابفروشی صانعی)

سرفصل هاي اين كتاب در لينك قرار دارد.

+ نوشته شده در  دوشنبه بیست و پنجم اردیبهشت 1391ساعت 20:7  توسط مدرس جهاد دانشگاهی امیرکبیر  | 

کنترل تطبیقی چیست؟

هدف از استفاده از کنترل تطبیقی (به انگلیسی: Adaptive control) آن است که کنترلر طراحی شده بدین روش، بتواند در مقابل تغییرات آرام در سیستم و همچنین خطاهای مدل‌سازی پاسخ مناسب بدهد. ‫تفاوت کنترل تطبیقی و کنترل مقاوم آن است که در کنترل تطبیقی نیازی به دانستن بازه کاری سیستم و یا میزان خطای پارامترها نیست. به عبارتی، طراحی از دیدگاه کنترل مقاوم به کنترلری می‌انجامد که در بازه مشخصی به پایداری سیستم می‌انجامد بدون آنکه نیازی به تغییر قوانین کنترلی باشد، ولی، با روش کنترل تطبیقی می‌توان قوانین کنترلی را به گونه‌ای با تغییر شرایط تطبیق داد که سیستم پایدار شود. کنترل تطبیقی به دو روش مستقیم وغیر مستقیم تقسیم بندی می شود که امروزه اکثر مقالات بر روی کنترل تطبیقی مستقیم تمرکز دارد.

مرجع: ویکی پدیا

+ نوشته شده در  دوشنبه بیست و پنجم اردیبهشت 1391ساعت 20:5  توسط مدرس جهاد دانشگاهی امیرکبیر  |