رفتن به مطلب

تاپیک سوالات کنترل


aliloghmani

ارسال های توصیه شده

  • 1 ماه بعد...
منظورم تست برنامه بدون سخت افزار بود که خودم پیدا کردم اونم این بود که گزینه ران و برا هر اجرا میزددم آره به کارم میاد فقط اگه دقت کردی تو فتک فانکشن ها هم اسم داشت هم علامت مثل جمع وتفریق و ضرب ولی تو دلتا اینطوری نی ولی برنامه نویسشون عین همه مو نمیزنه

 

 

اینم روش سیموله کردن یا همون شبیه سازی که مراحلش به ترتیب به صورت شکل زیرِ:

 

4ejd4suekq8n1t2jcc4.jpg

  • Like 3
لینک به دیدگاه
  • 7 ماه بعد...

ن یه پروژه برای درس کنترل مدرن دارم که از مثال های کتاب باید استفاده شه.برنامه نوشته شده س و برای مثال کتاب جواب میده ولی از روی مقاله ی داده شده میخوایم برنامه رو تغییر بدیم.توی این حالت نمودار حلقه بسته ی ژنراتور با پاسخ ردیاب یکی در میاد که نباید اینجوری باشه و ماتریس c رو طبق مقاله تعریف میکنیم ولی توی نمودار تاثیر نداره.توی مثال کتاب ورودی پله ی واحده ولی ما باید تغییرش بدیم که نمیدونم از کجا میشه تغییرش داد.کسی میتونه کمکم کنه؟

این برنامه ی مثال کتابه:

clear all

%----- PARAMETERS DEFINITION -----

a11=-0.0507;

a12=-3.861;

a21=-0.00117;

a22=-0.5164;

a31=-0.000129;

a32=1.4168;

a33=-0.4932;

b1=0;

b2=-0.0717;

b3=-1.645;

g=9.81;

%----- OPEN-LOOP SYSTEM: X_dot=AX+BU ----

A=[a11 a12 0 -g;a21 a22 1 0;a31 a31 a33 0;0 1 0 0];

B=[b1;b2;b3;0];

%----- OPEN-LOOP ANALYSIS ----------------

openloop_eigenvalues=eig(A)

controlability_rank=rank(ctrb(A,B));

%----- STATE FEEDBACK DESIGN ------------

P=[-0.9+1.9i -0.9-1.9i -1.8+0.6i -1.8-.6i];

% Desired Closed-Loop Ploes

K=acker(A,B,P); % State-Feedback Gain

%--------------------------------------------

%----- SIMULATION OF REGULATION PROBLEM -----

%--------------------------------------------

t=.01:.01:10; % simulation time

[rt,ct]=size(t);

x(:,1)=[0;1;0;0]; % initial condition

for k=2:ct

u(k)=-K*x(:,k-1);

x(:,k)=x(:,k-1)+.01*(A*x(:,k-1)+B*u(k));

end

%~~~~~ PLOTTING STATES ~~~~~

subplot(2,2,1);plot(t,x(1,:));

title('Regulation Problem, state:X_1');

subplot(2,2,2);plot(t,x(2,:));

title('Regulation Problem, state:X_2');

subplot(2,2,3);plot(t,x(3,:));

title('Regulation Problem, state:X_3');

subplot(2,2,4);plot(t,x(4,:));

title('Regulation Problem, state:X_4');

%~~~~~ PLOTTING CONTROL SIGNAL ~~~~

figure;plot(t,u);

title('Regulation Problem, Control Signal (u)');

%*****************************

%----------------------------------------------

%------ SIMULATION OF TRACKING PROBLEM --------

%----------------------------------------------

C=[1 0 0 0]; % selecting 'teta' as system output

D=0;

CL_sys=ss(A-B*K,B,C-D*K,D); % Closed-Loop System

CL_gain=dcgain(CL_sys);

% DC-Gain of closed-loop system

K_r=inv(CL_gain); % control signal: u=-K*x+K_r*yd

yd=1; % desired value for output (teta)

%~~~ SIMULATION ~~~

x(:,1)=[0;1;0;0]; % initial condition

for k=2:ct

u(k)=-K*x(:,k-1)+K_r*yd;

x(:,k)=x(:,k-1)+.01*(A*x(:,k-1)+B*u(k));

end

%~~~~~ PLOTTING STATES ~~~~~

figure;subplot(2,2,1);plot(t,x(1,:));

title('Tracking Problem, state X_1');

subplot(2,2,2);plot(t,x(2,:));

title('Tracking Problem, state:X_2');

subplot(2,2,3);plot(t,x(3,:));

title('Tracking Problem, state:X_3');

subplot(2,2,4);plot(t,x(4,:));

title('Tracking Problem, both:X_4 and Output');

%~~~~~ PLOTTING CONTROL SIGNAL ~~~~

figure;plot(t,u);

title('Tracking Problem, Control Signal');

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

[A=[0 0 1 0,0 0 0 1,0 2165 -53.6 0,0 -2797 53.6 0

B=[0,0,99,-99[

C=[1 1 0 0

y=teta + alpha

  • Like 2
لینک به دیدگاه
  • 6 ماه بعد...

سلام بچه ها من یه سوال در مورد برنامه ی lader و FBD دری که به صو رت اتوماتیک باز و بسته میشه دارم

 

 

میشه ساختارشو کمی توضیح بدید

خیلی واجبه

  • Like 3
لینک به دیدگاه
سلام بچه ها من یه سوال در مورد برنامه ی lader و FBD دری که به صو رت اتوماتیک باز و بسته میشه دارم

 

 

میشه ساختارشو کمی توضیح بدید

خیلی واجبه

 

 

یعنی کسی نیست اینجا جواب بده آیا!!!!:ws37:

  • Like 2
لینک به دیدگاه
یعنی کسی نیست اینجا جواب بده آیا!!!!:ws37:

 

سلام دوست عزیز ببینید این فایل pdfبه کارتون میاد

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 3
لینک به دیدگاه
  • 4 هفته بعد...

سلام

یک پروژه ای دارم واسه درس کنترل مدرن، و از آنجایی که متلب خیلی مشکل دارم مزاحم شما شدم

عنوان پروژه اینه:

 

1- تحقق مینیمال فضای حالت سیستم را به دست آورید و در مورد آن موارد زیر را بررسی کنید:

· کنترل پذیری

· پایداری

· بهره فیدبک حالت را به دو روش بس گیورا و تحقق کانونیکال کنترل کننده به دست آورید.

 

در این زمینه می توانید راهنماییم کنید؟

 

  • Like 4
لینک به دیدگاه

سلام

یک پروژه ای دارم واسه درس کنترل مدرن، و از آنجایی که متلب خیلی مشکل دارم مزاحم شما شدم

عنوان پروژه اینه:

 

1- تحقق مینیمال فضای حالت سیستم را به دست آورید و در مورد آن موارد زیر را بررسی کنید:

· کنترل پذیری

· پایداری

· بهره فیدبک حالت را به دو روش بس گیورا و تحقق کانونیکال کنترل کننده به دست آورید.

 

در این زمینه می توانید راهنماییم کنید؟

 

 

 

مربوط به درس کنترل مدرن هست

شما اول باید یه سیستم غیرخطی از یه مقاله (مثلا موتور دی سی) پیدا کنید بعدخطیش کنید فضای حالتش رو در میارین بعد

پایداریش رو چک میکنید بعد

بهره فیدبک حالت را به دست می آرید تحقق هاو روئیت پذیر و کنترل پذیرش رو بررسی می کنید

همه اینارم بایستی تو متلب شبیه سازی و محاسبه کنید تو نت هم کتابای متلب در کنترل مدرن هست ساده هست دستورارو از اونجا یادبگیرید

یعنی کل درس کنترل مدرن رو هر فصلشو تو هر مرحله پیادش می کنید

  • Like 5
لینک به دیدگاه
  • 3 ماه بعد...

سلام خدمت دوستان

کسی میتونه راهنمایی کنه که برنامه نویسی این مقاله که برای سرووموتور dc هست چطور باید انجام بشه؟

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
لینک به دیدگاه

با سلام و خسته نباشید

خواستم بپرسم کسی در مورد پایداری لیاپانوف روش مستقیم یک سیستم با تاخیر در ورودی یا بدون تاخیر مطلبی داره تو نرم افزار matlab برام بزاره خیلی واجبه ممنون

  • Like 3
لینک به دیدگاه
  • 2 هفته بعد...

با سلام

 

دوستان اگه کسی بلده لطفا کمک کنه چون واقعا کارم گیره!

 

یه سیستم داریم که به این شکل هست که یه PID داره یه تابع 2/(1+0.8s) یعنی همون 2 تقسیم بر 1 بعلاوه 0.8*s

و بعد از این بلوکها یه تاخیر به شکل exp(-s)

و بعد یه فیدبک واحد منفی میخوره سیستممون .

میخوایم ضرایب pid رو با مینیمم کردن تابع هدفی که به شکل انتگرال اندازه خطا به توان 2 هست رو پیدا کنیم.

 

کد زیر رو هم نوشتم اما درست جواب نمیده.

 

لطفا هر کی بلده کمک کنه ممنون.

 

function J=saeed(PID)

 

 

Kp=PID(1);

Ki=PID(2);

Kd=PID(3);

 

 

K=2;T=0.8;L=1;

 

 

numG1=[Kd Kp Ki]; %PID function

denG1=[0 1 0]; %PID function

 

 

numG2=[0 K];

denG2=[T 1];

 

 

numG3=[1 -6 12]; %Pade (Time delay function)

denG3=[1 6 12]; %Pade (Time delay function)

 

 

[numG4,denG4]=series(numG1,denG1,numG2,denG2);

[numG5,denG5]=series(numG4,denG4,numG3,denG3);

 

 

 

 

 

 

[numT,denT]=cloop(numG5,denG5,-1);

 

 

 

 

p=roots(denT);

m=find(p>=0);

n=length(m);

landa=1000;

 

 

J2=n.*landa; % J2

 

 

 

 

 

 

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

 

 

 

 

 

 

% [numEprim,denEprim]=series(denG5,numG5,numT,denT);

%

% numU=[0 1];

% denU=[1 0];

%

% [numE,denE]=series(numU,denU,numEprim,denEprim);

 

 

% w=-1000:0.001:1000;

syms w

i=sqrt(-1);

 

 

P=poly2sym(numG4,i*w)/poly2sym(denG4,i*w);

F=P*(cos(w)-i*sin(w));%exp(-i*w);

U=1/(i*w);

Error=U*(1/(1+F));

% Error=poly2sym(numE,i*w)/poly2sym(denE,i*w);

 

 

w=-100:0.1:100;

EE=(abs(Error)).^2;

PS=trapz(EE);

 

 

J1=(1./(2.*pi)).*PS;

% for i=1:1:101

% Error(i)=(1-y(i));

% end

 

 

 

 

% [y,x,t]=step(numT,denT,100);

%

% t=0:0.1:100;

% for i=1:1:101

% E(i)=(1-y(i));

% end

 

 

% J1=sum(abs(E).^2);

 

 

 

 

 

 

 

 

J=J1+J2;

 

 

end

  • Like 3
لینک به دیدگاه
  • 2 هفته بعد...

با سلام و خسته نباشید

خواستم بپرسم کسی در مورد پایداری لیاپانوف روش مستقیم یک سیستم با تاخیر در ورودی یا بدون تاخیر مطلبی داره تو نرم افزار matlab برام بزاره خیلی واجبه ممنون

 

سلام

 

ببینید هنر یه تابع لیاپانوف اینه که خود شما بگیری و انتخابش کنی چون یه شرط کافیه تو مساله نه یه شرط لازم و کافی. برای سیستم های بدون تاخیر تولباکسی برای متلب ارائه شده که من باهاش کار نکردم چون ترجیح میدم دستی تابع لیاپانوف رو بگیرم اما اون اون تولباکسه هم کار خاصی نمیکنه و غالبا تابعی که بر میگردونه یه تابع کوادراتیکه!!!(خسته نباشه!!:ws3:)

 

حالا اگه به ایمان بگی اون میتونه کمکت کنه اون تولباکسو پیدا کنی من اسمش یادم نیس!!:whistle:

 

 

برای سیستم های تاخیر دار هم که خود مساله هنوز یه گیر اساسیه و کار به تولباکس متلب نکشیده!!! شما یه سرچی روی تابع لیاپانوف کراسوفسکی بزن شاید چیزی دستگیرت بشه چون این دسته از لیاپانوف برای سیستم های تاخیر دارن. روش کنترلی هم زیاد روش کار شده مث روش پس گام (بک استپینگ) که خوب تو این زمینه ها جواب میده. تو گوگل اسکولار یه سرچ بزن اگه چیزی پیدا نکردی بگو یه چن تا مقاله خوب بهت معری کنم:a030:

  • Like 4
لینک به دیدگاه
با سلام

 

دوستان اگه کسی بلده لطفا کمک کنه چون واقعا کارم گیره!

 

یه سیستم داریم که به این شکل هست که یه pid داره یه تابع 2/(1+0.8s) یعنی همون 2 تقسیم بر 1 بعلاوه 0.8*s

و بعد از این بلوکها یه تاخیر به شکل exp(-s)

و بعد یه فیدبک واحد منفی میخوره سیستممون .

میخوایم ضرایب pid رو با مینیمم کردن تابع هدفی که به شکل انتگرال اندازه خطا به توان 2 هست رو پیدا کنیم.

 

کد زیر رو هم نوشتم اما درست جواب نمیده.

 

لطفا هر کی بلده کمک کنه ممنون.

 

Function j=saeed(pid)

 

 

kp=pid(1);

ki=pid(2);

kd=pid(3);

 

 

k=2;t=0.8;l=1;

 

 

numg1=[kd kp ki]; %pid function

deng1=[0 1 0]; %pid function

 

 

numg2=[0 k];

deng2=[t 1];

 

 

numg3=[1 -6 12]; %pade (time delay function)

deng3=[1 6 12]; %pade (time delay function)

 

 

[numg4,deng4]=series(numg1,deng1,numg2,deng2);

[numg5,deng5]=series(numg4,deng4,numg3,deng3);

 

 

 

 

 

 

[numt,dent]=cloop(numg5,deng5,-1);

 

 

 

 

p=roots(dent);

m=find(p>=0);

n=length(m);

landa=1000;

 

 

j2=n.*landa; % j2

 

 

 

 

 

 

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

 

 

 

 

 

 

% [numeprim,deneprim]=series(deng5,numg5,numt,dent);

%

% numu=[0 1];

% denu=[1 0];

%

% [nume,dene]=series(numu,denu,numeprim,deneprim);

 

 

% w=-1000:0.001:1000;

syms w

i=sqrt(-1);

 

 

p=poly2sym(numg4,i*w)/poly2sym(deng4,i*w);

f=p*(cos(w)-i*sin(w));%exp(-i*w);

u=1/(i*w);

error=u*(1/(1+f));

% error=poly2sym(nume,i*w)/poly2sym(dene,i*w);

 

 

w=-100:0.1:100;

ee=(abs(error)).^2;

ps=trapz(ee);

 

 

j1=(1./(2.*pi)).*ps;

% for i=1:1:101

% error(i)=(1-y(i));

% end

 

 

 

 

% [y,x,t]=step(numt,dent,100);

%

% t=0:0.1:100;

% for i=1:1:101

% e(i)=(1-y(i));

% end

 

 

% j1=sum(abs(e).^2);

 

 

 

 

 

 

 

 

j=j1+j2;

 

 

end

 

 

ببین دوست عزیز این راهش نیست...اول باید تابع هزینه خودتو بر حسب ضرایب مجهول pid بنویسی بعد ببینی کانوکس هست یا نه؟؟؟؟؟

 

بعد که اینو تشخیص دادی دو تا راه حل جلوت داری

 

یکی اینکه کانوکس باشه و بهینه سازی تو کلاسیک انجام بدی و ضرایب pid رو به دست بیاری

یا اینکه غیر محدب باشه بری سراغ الگوریتم های تکاملی از نوع ژنتیک و یا pso

 

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

 

موفق باشی

  • Like 3
لینک به دیدگاه
با سلام

کسی برنامه نویسی lqg و lqg/ltr بلده؟میخوام یه سیستم قدرت و باهاش کنترل کنم.ممنون میشم اگر کسی بتونه راهنماییم کنه

 

سلام خدمت دوستان

کسی میتونه راهنمایی کنه که برنامه نویسی این مقاله که برای سرووموتور dc هست چطور باید انجام بشه؟

 

دو طراحی LQG و LQR که جزء تولباکس های بهینه در متلب هستند و دستورات آماده هم داره. کافی هست به هلپ متلب مراجعه کنید و کار کردن با اینا رو یاد بگیرید

 

طراحی LQG اگه هوشمندانه باشه میتونه به LQR تبدیل بشه و اصن کار سختی نیست این تبدیل:w16:

 

اول طراحی LQG و LQR رو یاد بگیرید بعد از تولباکس استفاده کنید چون حل معادله ریکاتی نیازمند دانش ریاضی شما هست و اگه ندونید تولباکس چی کار میکنه نمیتونید ازش استفاده کنید.

 

هر چند که من پیشنهاد میدم خودتون دستی طراحی کنید و بعد نتیجشو شبیه سازی کنید اینطوری ذهنتون هم از تنبل نمیشه مثل من!!

 

برای آشنایی با مقدمات ریاضی اون از کتاب کنترل بهینه کرک میتونید استفاده کنید. برای شبیه سازی و استفاده از تولباکس این دو قسمت هم میتونید در قدم اول به هلپ مراجعه کنید و اگر متوجه نشدید سرچ کنید و یاد بگیرید (البته به صورت انگلیسی!!!) در گام آخر اگر باز مشکل داشتید به کتاب کنترل مدرن دکتر صدیق یه نگاهی بکنید که اونجا کدها رو هم آورده و بتونید مشکلتونو حل کنید:a030:

  • Like 3
لینک به دیدگاه
  • 4 هفته بعد...
سلام کسی میتونه این مقاله را واسم پیاده سازی کنه؟

 

 

سلام

 

اینکه اینجا مقاله رو پیاده سازی کنیم بدیم به شما یکم کار اخلاقی ای نیست.... شما خودتون استارت رو بزنید و جلو برید اینجا بچه ها هر کاری از دستشون بر بیاد از همون اول اولش برای شما انجام میدن:a030:

  • Like 3
لینک به دیدگاه

سلام بچه ها میشه راهنمایی کنید Input angle رو تو fig 7 , fig 5 راهنمایی کنید که چطور باید رسم کنم ؟

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

fig 4 , fig 6 که پاسخ پله هست رسمش کردم

 

 

بسیار واجبه

  • Like 2
لینک به دیدگاه
×
×
  • اضافه کردن...