Анализ системы автоматического управления (система 3-го порядка задается в виде передаточной функции), страница 2

param=[k_ed k_sl t1_ed t1_sl t2_t t2_sl t3_ed afch lah k kmin kmax T1...

t1min t1max T2 t2min t2max T3 t3min t3max dw wk ch lh];

else

global param;

k_ed=param(1); k_sl=param(2); t1_ed=param(3); t1_sl=param(4); t2_t=param(5);

t2_sl=param(6); t3_ed=param(7); afch=param(8); lah=param(9); k=param(10);

kmin=param(11); kmax=param(12); T1=param(13); t1min=param(14); t1max=param(15);

T2=param(16); t2min=param(17); t2max=param(18); T3=param(19); t3min=param(20);

t3max=param(21); dw=param(22); wk=param(23); ch=param(24); lh=param(25);

switch src

case k_ed,

k1=get(src,'string');

k2=str2num(k1);

if(k2>kmax) param(10)=kmax;

elseif(k2<kmin) param(10)=kmin;

else param(10)=k2;

end

set(src,'String',param(10));

dw=0.01; wk=10;

w=0:dw:wk;

W=param(10)./(-T1*T2*T3*j.*(w.^3)-(T1*T2+T1*T3+T2*T3).*(w.^2)+(T1+T2+T3)*j.*w+1);

cxl=min(real(W))-0.1; cxr=max(real(W))+0.1;

cyd=min(imag(W))-0.1; cyu=max(imag(W))+0.1;

wk=1000; w=0:dw:wk;

W=param(10)./(-T1*T2*T3*j.*(w.^3)-(T1*T2+T1*T3+T2*T3).*(w.^2)+(T1+T2+T3)*j.*w+1);

L=20.*log10(abs(W));

lxl=min(log10(w))-1; lxr=max(log10(w));

lyd=min(L); lyu=max(L)+25;

set(ch, 'XLim',[cxl cxr],'YLim',[cyd cyu]);

set(afch, 'XData', real(W), 'YData',imag(W));

set(lh, 'XLim',[lxl lxr],'YLim',[lyd lyu]);

set(lah, 'XData', log10(w), 'YData',L);

set(k_sl,'Value',param(10));

case k_sl

param(10)=get(src,'Value');

dw=0.01; wk=10;

w=0:dw:wk;

W=param(10)./(-T1*T2*T3*j.*(w.^3)-(T1*T2+T1*T3+T2*T3).*(w.^2)+(T1+T2+T3)*j.*w+1);

cxl=min(real(W))-0.1; cxr=max(real(W))+0.1;

cyd=min(imag(W))-0.1; cyu=max(imag(W))+0.1;

wk=1000; w=0:dw:wk;

W=param(10)./(-T1*T2*T3*j.*(w.^3)-(T1*T2+T1*T3+T2*T3).*(w.^2)+(T1+T2+T3)*j.*w+1);

L=20.*log10(abs(W));

lxl=min(log10(w))-1; lxr=max(log10(w));

lyd=min(L); lyu=max(L)+25;

set(ch, 'XLim',[cxl cxr],'YLim',[cyd cyu]);

set(afch, 'XData', real(W), 'YData',imag(W));

set(lh, 'XLim',[lxl lxr],'YLim',[lyd lyu]);

set(lah, 'XData', log10(w), 'YData',L);

set(k_ed,'String',param(10));

case t1_ed

t11=get(src,'string');

t12=str2num(t11);

if(t12>t1max) param(13)=t1max;

elseif(t12<t1min) param(13)=t1min;

else param(13)=t12;

end

set(src,'String',param(13));

dw=0.01; wk=10;

w=0:dw:wk;

W=k./(-param(13)*T2*T3*j.*(w.^3)-(param(13)*T2+param(13)*T3+T2*T3).*(w.^2)+(param(13)+T2+T3)*j.*w+1);

cxl=min(real(W))-0.1; cxr=max(real(W))+0.1;

cyd=min(imag(W))-0.1; cyu=max(imag(W))+0.1;

wk=1000; w=0:dw:wk;

W=k./(-param(13)*T2*T3*j.*(w.^3)-(param(13)*T2+param(13)*T3+T2*T3).*(w.^2)+(param(13)+T2+T3)*j.*w+1);

L=20.*log10(abs(W));

lxl=min(log10(w))-1; lxr=max(log10(w));

lyd=min(L); lyu=max(L)+25;

set(ch, 'XLim',[cxl cxr],'YLim',[cyd cyu]);

set(afch, 'XData', real(W), 'YData',imag(W));

set(lh, 'XLim',[lxl lxr],'YLim',[lyd lyu]);

set(lah, 'XData', log10(w), 'YData',L);

set(t1_sl,'Value',param(13));

case t1_sl

param(13)=get(src,'Value');

dw=0.01; wk=10;

w=0:dw:wk;

W=k./(-param(13)*T2*T3*j.*(w.^3)-(param(13)*T2+param(13)*T3+T2*T3).*(w.^2)+(param(13)+T2+T3)*j.*w+1);

cxl=min(real(W))-0.1; cxr=max(real(W))+0.1;

cyd=min(imag(W))-0.1; cyu=max(imag(W))+0.1;

wk=1000; w=0:dw:wk;

W=k./(-param(13)*T2*T3*j.*(w.^3)-(param(13)*T2+param(13)*T3+T2*T3).*(w.^2)+(param(13)+T2+T3)*j.*w+1);

L=20.*log10(abs(W));

lxl=min(log10(w))-1; lxr=max(log10(w));

lyd=min(L); lyu=max(L)+25;

set(ch, 'XLim',[cxl cxr],'YLim',[cyd cyu]);

set(afch, 'XData', real(W), 'YData',imag(W));

set(lh, 'XLim',[lxl lxr],'YLim',[lyd lyu]);

set(lah, 'XData', log10(w), 'YData',L);

set(t1_ed,'String',param(13));

case t2_sl

param(16)=get(src,'Value');

dw=0.01; wk=10;

w=0:dw:wk;

W=k./(-T1*param(16)*T3*j.*(w.^3)-(T1*param(16)+T1*T3+param(16)*T3).*(w.^2)+(T1+param(16)+T3)*j.*w+1);

cxl=min(real(W))-0.1; cxr=max(real(W))+0.1;

cyd=min(imag(W))-0.1; cyu=max(imag(W))+0.1;

wk=1000; w=0:dw:wk;

W=k./(-T1*param(16)*T3*j.*(w.^3)-(T1*param(16)+T1*T3+param(16)*T3).*(w.^2)+(T1+param(16)+T3)*j.*w+1);

L=20.*log10(abs(W));

lxl=min(log10(w))-1; lxr=max(log10(w));

lyd=min(L); lyu=max(L)+25;

set(ch, 'XLim',[cxl cxr],'YLim',[cyd cyu]);

set(afch, 'XData', real(W), 'YData',imag(W));

set(lh, 'XLim',[lxl lxr],'YLim',[lyd lyu]);

set(lah, 'XData', log10(w), 'YData',L);

set(t2_t,'String',param(16));

case t3_ed

t31=get(src,'string');

t32=str2num(t31);

if(t32>t3max) param(19)=t3max;

elseif(t32<t3min) param(19)=t3min;

else param(19)=t32;

end

set(src,'String',param(19));

dw=0.01; wk=10;

w=0:dw:wk;

W=k./(-T1*T2*param(19)*j.*(w.^3)-(T1*T2+T1*param(19)+T2*param(19)).*(w.^2)+(T1+T2+param(19))*j.*w+1);

cxl=min(real(W))-0.1; cxr=max(real(W))+0.1;

cyd=min(imag(W))-0.1; cyu=max(imag(W))+0.1;

wk=1000; w=0:dw:wk;

W=k./(-T1*T2*param(19)*j.*(w.^3)-(T1*T2+T1*param(19)+T2*param(19)).*(w.^2)+(T1+T2+param(19))*j.*w+1);

L=20.*log10(abs(W));

lxl=min(log10(w))-1; lxr=max(log10(w));

lyd=min(L); lyu=max(L)+25;

set(ch, 'XLim',[cxl cxr],'YLim',[cyd cyu]);

set(afch, 'XData', real(W), 'YData',imag(W));

set(lh, 'XLim',[lxl lxr],'YLim',[lyd lyu]);

set(lah, 'XData', log10(w), 'YData',L);

end

end

3. Общий вид программы исследований (копия экрана).

4.Три копии экрана, соответствующих исследованиям при различных значениях параметров.

5.Выводы.

Пакет Matlab предоставляет широкие возможности при анализе систем автоматического управления. Благодаря графическим опциям пакета можно получить  графики процессов, происходящих в самой системе, а также графики различных характеристик. Очень удобным свойством пакета является возможность самостоятельного создания интерфейса программы, что облегчит дальнейшее ее использование.