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 предоставляет широкие возможности при анализе систем автоматического управления. Благодаря графическим опциям пакета можно получить графики процессов, происходящих в самой системе, а также графики различных характеристик. Очень удобным свойством пакета является возможность самостоятельного создания интерфейса программы, что облегчит дальнейшее ее использование.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.