自控控制原理MATLAB程序设计作业指导老师:汪晓宁自动控制原理Matlab程序设计报告1目录一、题目............................................2二、运行结果........................................3三、程序说明........................................8四、附录............................................9代码..............................................9参考文献.........................................17自动控制原理Matlab程序设计报告2一、题目用Matlab创建用户界面,并完成以下功能a)将产生未综合系统的根轨迹图以及0.707阻尼比线,你可以交互地选择交点的运行点。界面能显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及稳态误差b)显示未综合系统的阶跃响应c)输入控制器的参数,绘制综合后系统的根轨迹图以及显示综合的设计点(主导极点),允许不断改变控制器参数,知道所绘制的根轨迹通过设计点d)对于综合后的系统,显示运行点的坐标、增益,近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及误差系数e)显示综合后系统的阶跃响应自动控制原理Matlab程序设计报告3二、运行结果输入传递函数分子分母生成根轨迹图自动控制原理Matlab程序设计报告4选择点并得到该点各项参数在下方输出面板输出获得阶跃响应图自动控制原理Matlab程序设计报告5用rltool()辅助,选择合适的插入零点自动控制原理Matlab程序设计报告6输入零点,并得到根轨迹图选择根轨迹图上的任一点,得到数据,在下方输出面板输出自动控制原理Matlab程序设计报告7得到阶跃响应图自动控制原理Matlab程序设计报告8三、运行说明第一步,在请输入分子后的输入框输入传递函数分子的矩阵,在下一输入框输入传递函数分母并按“生成根轨迹图”按钮获得根轨迹第二步,按选择点并显示各参数获得根轨迹图上任一点的各项数据,数据全部输出在下方输出面板第三步,按“生成阶跃响应图”按钮可以获得该函数的阶跃响应第四步,在“请输入插入零点”后的输入框中输入参数,并按“生成综合后根轨迹图”按钮产生根轨迹(可以通过点击“根轨迹校正”按钮,调用工具箱拖动零点进行快速查看根轨迹图,选择合适的根轨迹再在输入框中输入零点的值)第五步,按“选择点并显示各参数(综合后系统)”选取各点,查阅参数,数据输出在下方输出面板上第六步,按“生成阶跃响应图(综合后系统)”可以得到综合后系统的阶跃响应最后,点击“退出”结束程序自动控制原理Matlab程序设计报告9四、附录代码:functionvarargout=Liushuai20122510(varargin)%LIUSHUAI20122510MATLABcodeforLiushuai20122510.fig%LIUSHUAI20122510,byitself,createsanewLIUSHUAI20122510orraisestheexisting%singleton*.%%H=LIUSHUAI20122510returnsthehandletoanewLIUSHUAI20122510orthehandleto%theexistingsingleton*.%%LIUSHUAI20122510('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinLIUSHUAI20122510.Mwiththegiveninputarguments.%%LIUSHUAI20122510('Property','Value',...)createsanewLIUSHUAI20122510orraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforeLiushuai20122510_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.AllinputsarepassedtoLiushuai20122510_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.ChooseGUIallowsonlyone%instancetorun(singleton).%%Seealso:GUIDE,GUIDATA,GUIHANDLES%EdittheabovetexttomodifytheresponsetohelpLiushuai20122510%LastModifiedbyGUIDEv2.516-Dec-201410:28:20%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@Liushuai20122510_OpeningFcn,...自动控制原理Matlab程序设计报告10'gui_OutputFcn',@Liushuai20122510_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---ExecutesjustbeforeLiushuai20122510ismadevisible.functionLiushuai20122510_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstoLiushuai20122510(seeVARARGIN)%ChoosedefaultcommandlineoutputforLiushuai20122510handles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesLiushuai20122510waitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=Liushuai20122510_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;自动控制原理Matlab程序设计报告11%---Executesonbuttonpressinpushbutton1.functionpushbutton1_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)num=str2num(get(handles.edit1,'String'));den=str2num(get(handles.edit2,'String'));G=tf(num,den);rlocus(G)holdon;sgrid(0.707,[])holdoff;%---Executesonbuttonpressinpushbutton2.functionpushbutton2_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)num=str2num(get(handles.edit1,'String'));den=str2num(get(handles.edit2,'String'));sys=tf(num,den);[y,t]=step(sys);plot(t,y);gridon;%---Executesonbuttonpressinpushbutton3.functionpushbutton3_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)close(gcbf);functionedit1_Callback(hObject,eventdata,handles)%hObjecthandletoedit1(seeGCBO)自动控制原理Matlab程序设计报告12%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'String')returnscontentsofedit1astext%str2double(get(hObject,'String'))returnscontentsofedit1asadouble%---Executesduringobjectcreation,after