根轨迹GUI设计_第1页
根轨迹GUI设计_第2页
根轨迹GUI设计_第3页
根轨迹GUI设计_第4页
根轨迹GUI设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上自动化2班 袁辉 一 题目用MATLAB创建用户界面,并完成以下功能:1 可产生未综合系统的根轨迹图以及0.707阻尼比线,你可以交互地选择交点的运行点。界面显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然振荡频率以及稳态误差;2 显示未综合系统的阶跃响应;3 输入控制器的参数,绘制综合后系统的根轨迹图以及显示综合的设计点(主导极点),允许不断改变控制器参数,直到所绘制的根轨迹通过设计点。4 对于综合后的系统,显示运行点的坐标、增益,近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然振荡频率以及误差系数。5

2、 显示综合后系统的阶跃响应。备注:1、 各种功能操作可采用工具条形式,但要归类;2、 界面的各个显示区和操作文本框布局要合理;3、 要为后续的分析综合方法留有接口;二运行结果 图一 图二 图三 图四 图五 图六 图七 图八 图九 图十三使用说明1. 输入我们要设计的系统的设计指标和等效开环传递函数,设计指标包括超调量、调整时间和稳态误差系数,误差系数有一下拉框,可选择位置、速度或者加速度误差系数,输入的是误差系数的最小值。而等效开环传递函数是将系统的特征多项式化为1+k*G(s)的形式,G(s)就是等效开环传递函数,而闭环根轨迹是由k变化产生的。 输入时我们只需要输入G(s),它是s的多项式,

3、如图二所示。2.然后可以按下未综合根轨迹图按钮,会在坐标系1中产生未综合系统的根轨迹,如图三所示。选上0.707阻尼比选项,会在根轨迹图上产生0.707阻尼比线,如图四所示。3.按下未综合根轨迹图按钮后,可在根轨迹图上选择运行点,选择根轨迹上的一个点后,会在左下角显示运行点的坐标、增益值以及把该系统近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然振荡频率以及稳态误差,如图五所示。4.按下未综合阶跃响应,可在坐标系2中显示未综合系统的阶跃响应,如图六所示。5.如果想继续选择运行点,可继续按下未综合根轨迹图按钮,然后选择运行点。按下主导极点配置范围按钮,可在根轨迹图上显示满足设计

4、指标的主导极点的配置范围,如图七所示。可在这个范围中选择主导极点,可通过左下角产生的运行点所对应的系统响应指标与设计指标比较,选择正确的主导极点。6.如果没有满足设计指标的主导极点,那么必须加串联校正装置,我们可输入串联校正装置的传递函数H(s),它是s的多项式,然后按下综合根轨迹图按钮,可在坐标系1中产生特征多项式为1+kG(s)H(s)的系统的根轨迹图,且根轨迹图上会显示主导极点配置区域,如图八所示。然后可在根轨迹图上选择主导极点,依然是在界面左下角处显示该运行点所对应的系统响应,如图九所示。7.如果没有合适的主导极点,可继续修改串联装置传递函数,直到产生合适的主导极点。8.按下综合后阶跃

5、响应按钮,可在坐标系2中显示综合后系统的阶跃响应,如图十所示。四附录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','不稳定'); set(handles.fzsj,'string','不稳定'); set(handles.tzsj,'string','不稳定');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','不稳定'); set(handles.fzsj,'string','不稳定'); set(

23、handles.tzsj,'string','不稳定'); 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','不稳定'); set(handles.Kv,'string','不稳定'); set(handles.Ka,'string',&#

26、39;不稳定'); 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','不稳定'); set(handles.fzsj,'string','不稳定'); set(handles.tzsj,'string','不稳定');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','不稳定&

32、#39;); set(handles.fzsj,'string','不稳定'); set(handles.tzsj,'string','不稳定'); 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','不稳定'); set(handles.Kv,'str

35、ing','不稳定'); set(handles.Ka,'string','不稳定'); 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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论