logo资料库

大连理工大学系统与仿真大作业.docx

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
大连理工大学 系统与仿真大作业 课程名称: 系统与仿真 学院(系): 电子信息与电气工程 自动化 专 班 学 业: 级: 号: 学生姓名: Matlab 版本: Jeremy R2018a 2020 年 6 月 19 日
1.1.1 计算过程 1.1.2 代码 %%h0=0 h=dsolve('Dh=1/100*200+1/100*100-1/100/0.01*sqrt(h)','h(0)=0','t'); ezplot(h,[0,50,0,10]); xlabel('t/sec'); ylabel('liquid level'); %%h0=20 h=dsolve('Dh=1/100*200+1/100*100-1/100/0.01*sqrt(h)','h(0)=20','t'); ezplot(h,[0,50,0,20]); xlabel('t/sec'); ylabel('liquid level'); 1.1.3 运算结果 图 1.1 h0=0 时液位变化 图 1.2 h0=20 时液位变化 结果分析:由图像我们可以看出,两个系统最终将稳定在 9cm。 1.2
1.2.1 计算过程 1.2.2 代码(GUI 部分) GUI 设计部分: 各部分句柄值: 坐标轴区域:axes1 静态文本框 1: 静态文本框 2: 静态文本框 3: 可编辑文本框 1: 可编辑文本框 2: 可编辑文本框 3: 按钮 1 比例增益 积分增益 微分增益 Kp Ki Kd : 开始仿真 function varargout = Finalsolution12(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Finalsolution12_OpeningFcn, ... 'gui_OutputFcn', @Finalsolution12_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', if nargin && ischar(varargin{1}) []); gui_State.gui_Callback = str2func(varargin{1}); end else if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
gui_mainfcn(gui_State, varargin{:}); end end function Finalsolution12_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); end function varargout = Finalsolution12_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; end function edit1_Callback(hObject, eventdata, handles) Kp=get(hObject,'string'); assignin('base','edit1',str2double(get(hObject,'string'))); end function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end function edit2_Callback(hObject, eventdata, handles) Ki=get(hObject,'string'); assignin('base','edit2',str2double(get(hObject,'string'))); end function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end function edit3_Callback(hObject, eventdata, handles)
Kd=get(hObject,'string'); assignin('base','edit3',str2double(get(hObject,'string'))); end function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end function pushbutton1_Callback(hObject, eventdata, handles) warning off sim('Finalsolution'); axes(handles.axes1); plot(y.time,y.signals.values);%输出图像 grid on End 1.2.3 仿真 1.2.4 结果 结果分析:通过 PID 调节,液面最终稳定在 20cm 附近,通过调节比例增益,积分常数,微 分常数可以改变系统的稳定时间,超调量.
2.1 代码 clear clc wh=200;wc=100;th=60;tc=30;h=9;t=50;roll=1;A=100;R=0.0; A0=[-1/(2*roll*A*R*sqrt(h)) 0;-1*(wh*th+wc*tc-(wh+wc)*t)/(roll*A*h*h) -1*(wh+wc)/(roll*A*h)] B0=[1/roll/A 1/roll/A;(th-t)/roll/A/h (tc-t)/roll/A/h] C0=[1 0;0 1]; E0=[0 0;wh/roll/A/h wc/roll/A/h]; D0=[0 0;0 0]; F0=[0 0;0 0]; Qc=[B0 A0*B0] rankQc=rank(Qc) if(rankQc==2) disp('该系统是能控的!'); end 2.2 结果
3.1 代码 clear clc wh=200;wc=100;th=60;tc=30;h=9;t=50;roll=1;A=100;R=0.01; A0=[-1/(2*roll*A*R*sqrt(h)) 0;-1*(wh*th+wc*tc-(wh+wc)*t)/(roll*A*h*h) -1*(wh+wc)/(roll*A*h)] B0=[1/roll/A 1/roll/A;(th-t)/roll/A/h (tc-t)/roll/A/h] C0=[1 0;0 1]; E0=[0 0;wh/roll/A/h wc/roll/A/h]; D0=[0 0;0 0]; F0=[0 0;0 0]; Qc=[B0 A0*B0] rankQc=rank(Qc) P=[-1,-2] K=place(A0,B0,P) Kr=inv(B0)*(A0-B0*K)
3.2 仿真
分享到:
收藏