رفتن به مطلب

pfarahbakhsh

عضو جدید
  • تعداد ارسال ها

    1
  • تاریخ عضویت

  • آخرین بازدید

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

  1. pfarahbakhsh

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

    با سلام دوستان اگه کسی بلده لطفا کمک کنه چون واقعا کارم گیره! یه سیستم داریم که به این شکل هست که یه 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
×
×
  • اضافه کردن...