根軌跡GUI設(shè)計(jì)_第1頁
根軌跡GUI設(shè)計(jì)_第2頁
根軌跡GUI設(shè)計(jì)_第3頁
根軌跡GUI設(shè)計(jì)_第4頁
根軌跡GUI設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上自動(dòng)化2班 袁輝 一 題目用MATLAB創(chuàng)建用戶界面,并完成以下功能:1 可產(chǎn)生未綜合系統(tǒng)的根軌跡圖以及0.707阻尼比線,你可以交互地選擇交點(diǎn)的運(yùn)行點(diǎn)。界面顯示運(yùn)行點(diǎn)的坐標(biāo)、增益值以及近似為二階系統(tǒng)估算的超調(diào)量、調(diào)整時(shí)間、峰值時(shí)間、阻尼比、無阻尼自然振蕩頻率以及穩(wěn)態(tài)誤差;2 顯示未綜合系統(tǒng)的階躍響應(yīng);3 輸入控制器的參數(shù),繪制綜合后系統(tǒng)的根軌跡圖以及顯示綜合的設(shè)計(jì)點(diǎn)(主導(dǎo)極點(diǎn)),允許不斷改變控制器參數(shù),直到所繪制的根軌跡通過設(shè)計(jì)點(diǎn)。4 對(duì)于綜合后的系統(tǒng),顯示運(yùn)行點(diǎn)的坐標(biāo)、增益,近似為二階系統(tǒng)估算的超調(diào)量、調(diào)整時(shí)間、峰值時(shí)間、阻尼比、無阻尼自然振蕩頻率以及誤差系數(shù)。5

2、 顯示綜合后系統(tǒng)的階躍響應(yīng)。備注:1、 各種功能操作可采用工具條形式,但要?dú)w類;2、 界面的各個(gè)顯示區(qū)和操作文本框布局要合理;3、 要為后續(xù)的分析綜合方法留有接口;二運(yùn)行結(jié)果 圖一 圖二 圖三 圖四 圖五 圖六 圖七 圖八 圖九 圖十三使用說明1. 輸入我們要設(shè)計(jì)的系統(tǒng)的設(shè)計(jì)指標(biāo)和等效開環(huán)傳遞函數(shù),設(shè)計(jì)指標(biāo)包括超調(diào)量、調(diào)整時(shí)間和穩(wěn)態(tài)誤差系數(shù),誤差系數(shù)有一下拉框,可選擇位置、速度或者加速度誤差系數(shù),輸入的是誤差系數(shù)的最小值。而等效開環(huán)傳遞函數(shù)是將系統(tǒng)的特征多項(xiàng)式化為1+k*G(s)的形式,G(s)就是等效開環(huán)傳遞函數(shù),而閉環(huán)根軌跡是由k變化產(chǎn)生的。 輸入時(shí)我們只需要輸入G(s),它是s的多項(xiàng)式,

3、如圖二所示。2.然后可以按下未綜合根軌跡圖按鈕,會(huì)在坐標(biāo)系1中產(chǎn)生未綜合系統(tǒng)的根軌跡,如圖三所示。選上0.707阻尼比選項(xiàng),會(huì)在根軌跡圖上產(chǎn)生0.707阻尼比線,如圖四所示。3.按下未綜合根軌跡圖按鈕后,可在根軌跡圖上選擇運(yùn)行點(diǎn),選擇根軌跡上的一個(gè)點(diǎn)后,會(huì)在左下角顯示運(yùn)行點(diǎn)的坐標(biāo)、增益值以及把該系統(tǒng)近似為二階系統(tǒng)估算的超調(diào)量、調(diào)整時(shí)間、峰值時(shí)間、阻尼比、無阻尼自然振蕩頻率以及穩(wěn)態(tài)誤差,如圖五所示。4.按下未綜合階躍響應(yīng),可在坐標(biāo)系2中顯示未綜合系統(tǒng)的階躍響應(yīng),如圖六所示。5.如果想繼續(xù)選擇運(yùn)行點(diǎn),可繼續(xù)按下未綜合根軌跡圖按鈕,然后選擇運(yùn)行點(diǎn)。按下主導(dǎo)極點(diǎn)配置范圍按鈕,可在根軌跡圖上顯示滿足設(shè)計(jì)

4、指標(biāo)的主導(dǎo)極點(diǎn)的配置范圍,如圖七所示??稍谶@個(gè)范圍中選擇主導(dǎo)極點(diǎn),可通過左下角產(chǎn)生的運(yùn)行點(diǎn)所對(duì)應(yīng)的系統(tǒng)響應(yīng)指標(biāo)與設(shè)計(jì)指標(biāo)比較,選擇正確的主導(dǎo)極點(diǎn)。6.如果沒有滿足設(shè)計(jì)指標(biāo)的主導(dǎo)極點(diǎn),那么必須加串聯(lián)校正裝置,我們可輸入串聯(lián)校正裝置的傳遞函數(shù)H(s),它是s的多項(xiàng)式,然后按下綜合根軌跡圖按鈕,可在坐標(biāo)系1中產(chǎn)生特征多項(xiàng)式為1+kG(s)H(s)的系統(tǒng)的根軌跡圖,且根軌跡圖上會(huì)顯示主導(dǎo)極點(diǎn)配置區(qū)域,如圖八所示。然后可在根軌跡圖上選擇主導(dǎo)極點(diǎn),依然是在界面左下角處顯示該運(yùn)行點(diǎn)所對(duì)應(yīng)的系統(tǒng)響應(yīng),如圖九所示。7.如果沒有合適的主導(dǎo)極點(diǎn),可繼續(xù)修改串聯(lián)裝置傳遞函數(shù),直到產(chǎn)生合適的主導(dǎo)極點(diǎn)。8.按下綜合后階躍

5、響應(yīng)按鈕,可在坐標(biāo)系2中顯示綜合后系統(tǒng)的階躍響應(yīng),如圖十所示。四附錄function varargout = genguiji(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', genguiji_OpeningFcn, . 'gui_OutputFcn', genguiji_OutputFcn, . 'gui_LayoutFcn&

6、#39;, , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction genguiji_OpeningFcn(hObject, eventdata, handles, varargin)ha

7、ndles.output = hObject;guidata(hObject, handles);function varargout = genguiji_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function edit1_Callback(hObject, eventdata, handles)function edit1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'Backg

8、roundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit2_Callback(hObject, eventdata, handles)function edit2_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get

9、(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit3_Callback(hObject, eventdata, handles)function edit3_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicont

10、rolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit4_Callback(hObject, eventdata, handles)function edit4_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor

11、9;) set(hObject,'BackgroundColor','white');endfunction edit5_Callback(hObject, eventdata, handles)function edit5_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'

12、BackgroundColor','white');endfunction edit6_Callback(hObject, eventdata, handles)function edit6_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor',

13、'white');endfunction edit7_Callback(hObject, eventdata, handles)function edit7_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endf

14、unction edit8_Callback(hObject, eventdata, handles)function edit8_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit9_Callbac

15、k(hObject, eventdata, handles)function edit9_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit10_Callback(hObject, eventdata

16、, handles)function edit10_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit11_Callback(hObject, eventdata, handles)function

17、edit11_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit12_Callback(hObject, eventdata, handles)function edit12_CreateFcn(hO

18、bject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction weiggj_Callback(hObject, eventdata, handles)syms s num den;num=sym(get(handles.fenz,'st

19、ring');den=sym(get(handles.fenmu,'string');num1=sym2poly(num);den1=sym2poly(den);sys=tf(num1,den1);axes(handles.axes1);rlocus(sys);hold on;x=-5:0.1:0;y=-x;if(get(handles.znb,'value') plot(x,y);endhold off;k,poles=rlocfind(sys);kp=real(poles(1);q=imag(poles(1);set(handles.zyzk,

20、9;string',num2str(k);set(handles.zuobiao1,'string',num2str(kp);if(q=0) set(handles.zuobiao2,'string','+'); set(handles.zuobiao3,'string',num2str(q); set(handles.zuobiao4,'string','i');endwn=sqrt(kp2+q2);e=-kp/wn;set(handles.zunibi,'string',

21、num2str(e);set(handles.zdpl,'string',num2str(wn);if e<=0 set(handles.ctl,'string','不穩(wěn)定'); set(handles.fzsj,'string','不穩(wěn)定'); set(handles.tzsj,'string','不穩(wěn)定');end if (0<e)&&(e<1) Dp=exp(-pi*e/sqrt(1-e2)*100; tp=pi/(wn*sqrt(1-e2);

22、 ts=3/(e*wn); set(handles.ctl,'string',num2str(Dp); set(handles.fzsj,'string',num2str(tp); set(handles.tzsj,'string',num2str(ts); end if e>=1 T=-1/min(poles); if T<=0 set(handles.ctl,'string','不穩(wěn)定'); set(handles.fzsj,'string','不穩(wěn)定'); set(

23、handles.tzsj,'string','不穩(wěn)定'); end if T>0 ts=3*T; set(handles.ctl,'string','/'); set(handles.fzsj,'string','/'); set(handles.tzsj,'string',num2str(ts); end end syms s; G1=poly2sym(k*num1,'s'); G2=poly2sym(den1,'s'); Gk=G1/G2;

24、kp=limit(Gk,s,0,'right'); kv=limit(s*Gk,s,0,'right'); ka=limit(s2*Gk,s,0,'right'); if e>0 if kp=inf set(handles.Kp,'string',''); else set(handles.Kp,'string',num2str(double(kp); end if kv=inf set(handles.Kv,'string',''); else set(han

25、dles.Kv,'string',num2str(double(kv); end if ka=inf set(handles.Ka,'string',''); else set(handles.Ka,'string',num2str(double(ka); end else set(handles.Kp,'string','不穩(wěn)定'); set(handles.Kv,'string','不穩(wěn)定'); set(handles.Ka,'string',&#

26、39;不穩(wěn)定'); endfunction yiggj_Callback(hObject, eventdata, handles)syms s;num1=sym(get(handles.fenz,'string');den1=sym(get(handles.fenmu,'string');num2=sym(get(handles.fz,'string');den2=sym(get(handles.fm,'string');num11=sym2poly(num1);num22=sym2poly(num2);den11=sym

27、2poly(den1);den22=sym2poly(den2);num=conv(num11,num22);den=conv(den11,den22);sys=tf(num,den);axes(handles.axes1);rlocus(sys);dp0=str2num(get(handles.DDp,'string');ts1=str2num(get(handles.TTs,'string');dp1=dp0/100;if dp1=0 e1=1; wn1=1/(ts1/4.75); sb1=-wn1;else e1=log(1/dp1)/sqrt(pi2+(

28、log(1/dp1)2); wn1=3/(ts1*e1); sb1=-e1*wn1;endk11=-tan(acos(e1);x1=-5:0.1:0;y1=k11*x1;y2=-y1;p11=-5:0.02:5;axes(handles.axes1);hold on;plot(x1,y1,'b-','linewidth',1);plot(x1,y2,'b-','linewidth',1);plot(sb1,p11,'b-','linewidth',50);hold offk,poles=rlocfi

29、nd(sys);kp=real(poles(1);q=imag(poles(1);set(handles.zyzk,'string',num2str(k);set(handles.zuobiao1,'string',num2str(kp);if(q=0) set(handles.zuobiao2,'string','+'); set(handles.zuobiao3,'string',num2str(q); set(handles.zuobiao4,'string','i');end

30、wn=sqrt(kp2+q2);e=-kp/wn;set(handles.zunibi,'string',num2str(e);set(handles.zdpl,'string',num2str(wn);if e<=0 set(handles.ctl,'string','不穩(wěn)定'); set(handles.fzsj,'string','不穩(wěn)定'); set(handles.tzsj,'string','不穩(wěn)定');end if (0<e)&&am

31、p;(e<1) Dp=exp(-pi*e/sqrt(1-e2)*100; tp=pi/(wn*sqrt(1-e2); ts=3/(e*wn); set(handles.ctl,'string',num2str(Dp); set(handles.fzsj,'string',num2str(tp); set(handles.tzsj,'string',num2str(ts); end if e>=1 T=-1/min(poles); if T<=0 set(handles.ctl,'string','不穩(wěn)定&

32、#39;); set(handles.fzsj,'string','不穩(wěn)定'); set(handles.tzsj,'string','不穩(wěn)定'); end if T>0 ts=3*T; set(handles.ctl,'string','/'); set(handles.fzsj,'string','/'); set(handles.tzsj,'string',num2str(ts); end end syms s; G1=poly2sym(k

33、*num,'s'); G2=poly2sym(den,'s'); Gk=G1/G2; kp=limit(Gk,s,0,'right'); kv=limit(s*Gk,s,0,'right'); ka=limit(s2*Gk,s,0,'right'); if e>0 if kp=inf set(handles.Kp,'string',''); else set(handles.Kp,'string',num2str(double(kp); end if kv=in

34、f set(handles.Kv,'string',''); else set(handles.Kv,'string',num2str(double(kv); end if ka=inf set(handles.Ka,'string',''); else set(handles.Ka,'string',num2str(double(ka); end else set(handles.Kp,'string','不穩(wěn)定'); set(handles.Kv,'str

35、ing','不穩(wěn)定'); set(handles.Ka,'string','不穩(wěn)定'); endfunction wjy_Callback(hObject, eventdata, handles)syms s;num1=sym(get(handles.fenz,'string');den1=sym(get(handles.fenmu,'string');numg=sym2poly(num1);deng=sym2poly(den1);num,den=feedback(numg,deng,1,1,-1); G=

36、tf(num,den); t=0:0.01:10; y=step(G,t); axes(handles.axes2); plot(t,y);% - Executes on button press in yjy.function yjy_Callback(hObject, eventdata, handles)syms s;num1=sym(get(handles.fenz,'string');den1=sym(get(handles.fenmu,'string');num2=sym(get(handles.fz,'string');den2=s

37、ym(get(handles.fm,'string');num11=sym2poly(num1);num22=sym2poly(num2);den11=sym2poly(den1);den22=sym2poly(den2);num=conv(num11,num22);den=conv(den11,den22);numg,deng=feedback(num,den,1,1,-1); G=tf(numg,deng); t=0:0.01:10; y=step(G,t); axes(handles.axes2); plot(t,y);function DDp_Callback(hObj

38、ect, eventdata, handles)num=str2num(get(hobject,'string');if isempty(num)&&num<0 set(hobjct,'string',' ');endguidata (hobject,handles);function DDp_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'d

39、efaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction TTs_Callback(hObject, eventdata, handles)num=str2num(get(hobject,'string');if isempty(num)&&num<0 set(hobjct,'string',' ');endguidata (hobject,handles);function

40、TTs_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit18_Callback(hObject, eventdata, handles)function edit18_CreateFcn(hObje

41、ct, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction pushbutton1_Callback(hObject, eventdata, handles)function pushbutton2_Callback(hObject, eventd

42、ata, handles)function pushbutton3_Callback(hObject, eventdata, handles)function znb_Callback(hObject, eventdata, handles)function pushbutton6_Callback(hObject, eventdata, handles)function pushbutton7_Callback(hObject, eventdata, handles)function edit26_Callback(hObject, eventdata, handles)function e

43、dit26_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction fenz_Callback(hObject, eventdata, handles)syms s;num=sym(get(hobject,'

44、;string');if isempty(num) set(hobjct,'string','0');endguidata (hobject,handles);function fenz_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor

45、','white');endfunction fenmu_Callback(hObject, eventdata, handles)syms s den;den=sym(get(hobject,'string');if isempty(den) set(hobjct,'string','0');endguidata (hobject,handles);function fenmu_CreateFcn(hObject, eventdata, )if ispc && isequal(get(hObject,&#

46、39;BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction edit25_Callback(hObject, eventdata, handles)function edit25_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor&

47、#39;), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction cdhs_Callback(hObject, eventdata, handles)function pushbutton5_Callback(hObject, eventdata, handles)function fz_Callback(hObject, eventdata, handles)syms s;num=sym(get(hobject,'string');if isempty(num) set(hobjct,'string','0');endguidata (hobject,handles);function fz_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論