资源描述
自动控制原理Matlab程序作业
精品文档
自控控制原理
MATLAB程序设计作业
指导老师:汪晓宁
目录
一、题目2
二、运行结果3
三、程序说明8
四、附录9
代码9
参考文献17
一、 题目
用Matlab创建用户界面,并完成以下功能
a) 将产生未综合系统的根轨迹图以及0.707阻尼比线,你可以交互地选择交点的运行点。界面能显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及稳态误差
b) 显示未综合系统的阶跃响应
c) 输入控制器的参数,绘制综合后系统的根轨迹图以及显示综合的设计点(主导极点),允许不断改变控制器参数,知道所绘制的根轨迹通过设计点
d) 对于综合后的系统,显示运行点的坐标、增益,近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及误差系数
e) 显示综合后系统的阶跃响应
二、 运行结果
输入传递函数分子分母
生成根轨迹图
选择点并得到该点各项参数在下方输出面板输出
获得阶跃响应图
用rltool()辅助,选择合适的插入零点
输入零点,并得到根轨迹图
选择根轨迹图上的任一点,得到数据,在下方输出面板输出
得到阶跃响应图
三、 运行说明
第一步,在请输入分子后的输入框输入传递函数分子的矩阵,在下一输入框输入传递函数分母并按“生成根轨迹图”按钮获得根轨迹
第二步,按选择点并显示各参数获得根轨迹图上任一点的各项数据,数据全部输出在下方输出面板
第三步,按“生成阶跃响应图”按钮可以获得该函数的阶跃响应
第四步,在“请输入插入零点”后的输入框中输入参数,并按“生成综合后根轨迹图”按钮产生根轨迹(可以通过点击“根轨迹校正”按钮,调用工具箱拖动零点进行快速查看根轨迹图,选择合适的根轨迹再在输入框中输入零点的值)
第五步,按“选择点并显示各参数(综合后系统)”选取各点,查阅参数,数据输出在下方输出面板上
第六步,按“生成阶跃响应图(综合后系统)”可以得到综合后系统的阶跃响应
最后,点击“退出”结束程序
四、 附录
代码:
function varargout = Liushuai20122510(varargin)
% LIUSHUAI20122510 MATLAB code for Liushuai20122510.fig
% LIUSHUAI20122510, by itself, creates a new LIUSHUAI20122510 or raises the existing
% singleton*.
%
% H = LIUSHUAI20122510 returns the handle to a new LIUSHUAI20122510 or the handle to
% the existing singleton*.
%
% LIUSHUAI20122510('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in LIUSHUAI20122510.M with the given input arguments.
%
% LIUSHUAI20122510('Property','Value',...) creates a new LIUSHUAI20122510 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Liushuai20122510_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Liushuai20122510_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Liushuai20122510
% Last Modified by GUIDE v2.5 16-Dec-2014 10:28:20
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Liushuai20122510_OpeningFcn, ...
'gui_OutputFcn', @Liushuai20122510_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Liushuai20122510 is made visible.
function Liushuai20122510_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to Liushuai20122510 (see VARARGIN)
% Choose default command line output for Liushuai20122510
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Liushuai20122510 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Liushuai20122510_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
num = str2num(get(handles.edit1,'String'));
den = str2num(get(handles.edit2,'String'));
G = tf(num,den);
rlocus(G)
hold on;
sgrid(0.707,[])
hold off;
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
num = str2num(get(handles.edit1,'String'));
den = str2num(get(handles.edit2,'String'));
sys=tf(num,den);
[y,t]=step(sys);
plot(t,y);
grid on;
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close(gcbf);
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
num = str2num(get(handles.edit1,'String'));
den = str2num(get(handles.edit2,'String'));
finalvalue = polyval(num,0)/polyval(den,0)
sys=tf(num,den);
[Kc,p]=rlocfind(sys);
set(handles.Kc,'string',Kc);
X = real(p(1))
Y = imag(p(1))
set(handles.Xpoint,'string',num2str(X));
set(handles.Ypoint,'string',num2str(Y));
damp=sqrt(X(1,1)^2/(X(1,1)^2+Y(1,1)^2));
Wn=abs(X(1,1))/damp;
Tp=pi/(Wn*sqrt(1-damp^2));
overshoot=exp(-pi*damp/sqrt(1-damp^2));
Ts=3/(damp*Wn);
deviation=Wn^2;
set(handles.overshoot,'string',num2str(overshoot));
set(handles.Ts,'string',Ts);
set(handles.Tp,'string',Tp);
set(handles.Wn,'string',num2str(Wn));
set(handles.damp,'string',num2str(damp));
set(handles.deviation,'string',deviation);
function edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
num = str2num(get(handles.edit1,'String'));
den = str2num(get(handles.edit2,'String'));
sys=tf(num,den)
rltool(sys);%ÀûÓù¤¾ßµ÷Õû¿ØÖÆÆ÷²ÎÊýʹ֮¾¹ýÖ÷µ¼¼«µã
function edit4_Callback(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit4 as textw'q
% str2double(get(hObject,'String')) returns contents of edit4 as a double
% --- Executes during object creation, after setting all properties.
function edit4_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
num = str2num(get(handles.edit1,'String'));
den = str2num(get(handles.edit2,'String'));
A = str2num(get(handles.edit5,'String'))*(-1);
num = [1 A];
G = tf(num,den);
rlocus(G)
hold on;
sgrid(0.707,[])
hold off;
% --- Executes on button press in pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
num = str2num(get(handles.edit1,'String'));
den = str2num(get(handles.edit2,'String'));
A = str2num(get(handles.edit5,'String'));
num = [1 A];
sys=tf(num,den);
[y,t]=step(sys);
plot(t,y);
grid on;
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton11 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
num = str2num(get(handles.edit1,'String'));
den = str2num(get(handles.edit2,'String'));
A = str2num(get(handles.edit5,'String'));
num1 = [1 A];
sys=tf(num1,den);
[Kc,p]=rlocfind(sys);
set(handles.Kc,'string',Kc);
X = real(p(1))
Y = imag(p(1))
set(handles.Xpoint,'string',num2str(X));
set(handles.Ypoint,'string',num2str(Y));
damp=sqrt(X(1,1)^2/(X(1,1)^2+Y(1,1)^2));
Wn=abs(X(1,1))/damp;
Tp=pi/(Wn*sqrt(1-damp^2));
overshoot=exp(-pi*damp/sqrt(1-damp^2));
Ts=3/(damp*Wn);
deviation=Wn^2;
set(handles.overshoot,'string',num2str(overshoot));
set(handles.Ts,'string',Ts);
set(handles.Tp,'string',Tp);
set(handles.Wn,'string',num2str(Wn));
set(handles.damp,'string',num2str(damp));
set(handles.deviation,'string',deviation);
function edit5_Callback(hObject, eventdata, handles)
% hObject handle to edit5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit5 as text
% str2double(get(hObject,'String')) returns contents of edit5 as a double
% --- Executes during object creation, after setting all properties.
function edit5_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
参考文献:
《 Matlab 及在电子信息类课程中的应用》 电子工业出版社
《 Matlab 与控制系统仿真实践》 北京航空航天大学出版社
收集于网络,如有侵权请联系管理员删除
展开阅读全文