Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all
- clc
- %PARAMETRY UKŁADU
- s=tf('s');
- R1=2.03421;
- H1=11;
- c1=3.3665;
- a2=1.86737;
- b2=12.1383;
- H2=17;
- c2=1.94365;
- q=[0:0.001:8.3];
- h2=(q/c2).^2;
- %PUNKT PRACY I STAŁE CZASOWE
- h20=8.5;
- q0=5.66666425;
- h10=2.83333426;
- k=3;
- T1=13;
- T2=17;
- T3=0.1*T1;
- %TRANSMITANCJE
- t= 0:0.01:500;
- Ko=k/(T1*s+1)/(T2*s+1)/(s*T3+1); %transmitancja ukladu zlinearyzowanego otwartego z czlonem wykonawczym
- %REGULATOR P
- %
- % mi = 2;
- % osc_deg = 0;
- % kr = 0;
- % eps = 0.0001;
- %
- %
- % while (osc_deg < mi)
- % poles = rlocus(Ko, kr);
- % osc_deg = max(abs(imag(poles)./real(poles)));
- % kr = kr + eps;
- % end
- % kr
- % K=kr*Ko;
- % Kz=K/(1+K);
- % step(Kz)
- % hold on
- % [ampli,fazy]=margin(Kz)
- % y=step(t,Kz);
- % stepinfo(Kz)
- %regulator PD
- % mi = 2;
- % osc_deg = 0;
- % kr = 0;
- % eps = 0.001;
- % beta=0.1;
- % KrPD=(1+s*T1)/(1+s*T3*beta); %zmieniamy stałe czasowe, przy becie zostawiamy
- %
- %
- % while (osc_deg < mi)
- % poles = rlocus(KrPD*Ko, kr);
- % osc_deg = max(abs(imag(poles)./real(poles)));
- % kr = kr + eps;
- % end
- %
- % kr
- % Kz=kr*KrPD*Ko/(kr*KrPD*Ko+1);
- %
- % [amplituda,faza] = margin(kr*KrPD*Ko)
- % stepinfo(Kz)
- % step(Kz)
- % hold on
- %regulator PI %
- % mi = 1;
- % osc_deg = 0;
- % kr = 0;
- % eps = 0.001;
- % beta=0.02;
- % Tc=T1; % w zależności od potrzeby zamieniamy to na T2, T3, T1
- % Dobrać w taki sposób aby skrócić z jednym z czynników mianownika transmitancji
- % KrPI=(1+s*Tc)/s; %zmieniamy stałe czasowe, przy becie zostawiamy
- %
- % while (osc_deg < mi)
- % poles = rlocus(KrPI*Ko, kr);
- % osc_deg = max(abs(imag(poles)./real(poles)));
- % kr = kr + eps;
- % end
- %
- % kr
- % Kz=kr*KrPI*Ko/(kr*KrPI*Ko+1);
- % [amplituda,faza] = margin(kr*KrPI*Ko)
- % stepinfo(Kz)
- % step(Kz)
- % hold on
- % T2
- % Tc=T2; % w zależności od potrzeby zamieniamy to na T2, T3, T1
- % Dobrać w taki sposób aby skrócić z jednym z czynników mianownika transmitancji
- % KrPI=(1+s*Tc)/s; %zmieniamy stałe czasowe, przy becie zostawiamy
- %
- %
- % while (osc_deg < mi)
- % poles = rlocus(KrPI*Ko, kr);
- % osc_deg = max(abs(imag(poles)./real(poles)));
- % kr = kr + eps;
- % end
- %
- % kr
- % Kz=kr*KrPI*Ko/(kr*KrPI*Ko+1);
- %
- % % [amplituda,faza] = margin(kr*KrPI*Ko)
- % % stepinfo(Kz)
- % % step(Kz)
- % % hold on
- %
- % Tc=T3; % w zależności od potrzeby zamieniamy to na T2, T3, T1
- % % Dobrać w taki sposób aby skrócić z jednym z czynników mianownika transmitancji
- % KrPI=(1+s*Tc)/s; %zmieniamy stałe czasowe, przy becie zostawiamy
- %
- %
- % while (osc_deg < mi)
- % poles = rlocus(KrPI*Ko, kr);
- % osc_deg = max(abs(imag(poles)./real(poles)));
- % kr = kr + eps;
- % end
- %
- % kr
- % Kz=kr*KrPI*Ko/(kr*KrPI*Ko+1);
- % %
- % % [amplituda,faza] = margin(kr*KrPI*Ko)
- % % stepinfo(Kz)
- % % step(Kz)
- % hold on
- %regulator PID
- %mi = 2;
- %osc_deg = 0;
- %kr = 0;
- %eps = 0.0001;
- %beta=0.1;
- %KrPID=(1+s*T3)*(1+s*T1)/(s*(1+s*beta*T3)); %zmieniamy stałe czasowe, przy becie zostawiamy
- %while (osc_deg < mi)
- %poles = rlocus(Ko*KrPID, kr);
- %osc_deg = max(abs(imag(poles)./real(poles)));
- %kr = kr + eps;
- %end
- %kr
- %Kz=kr*KrPID*Ko/(kr*KrPID*Ko+1);
- %rlocus(Ko*KrPID)
- %step(t,Kz)
- %[zapasamplitudy,zapasfazy]=margin(kr*KrPID*Ko)
- %stepinfo(Kz)
- %hold on
- %poles = rlocus(Ko*KrPID, kr);
- %osc_deg = max(abs(imag(poles)./real(poles)));
- %osc_deg
- %ststab=(-1)*min(real(poles))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement