综合课程设计报告正文及参考文献

时间:2024.4.21

题目:根据由阶跃响应曲线确定系统传递函数的方法,在MATLAB 中编写相应的程序,

1)实现阶跃响应曲线对应的一阶惯性环节(包括无滞后和有滞后)和二阶惯性环节的传递函数形式和参数;

2)利用GUI 设计相应的界面,显示相应的模型和曲线,便于分析比较


1 课程设计目的

过程控制系统的品质,是由组成过程和过程检测控制仪表系统的各环节的特性系统的和系统的结构所决定的。在过程控制系统的分析和设计中,过程的数学模型是极其重要的基础资料。所以,建立过程的数学模型,对于实现生产过程自动化有着十分重要的意义。可以说,一个过程控制系统的优劣,主要取决于对生产工艺过程的了解好建立数学模型。

建立数学模型的目的是:

1)设计过程控制系统和整定调节器参数

2)指导生产工艺设备的设计

3)进行仿真试验研究

建立数学模型有两种方法:

1)分析过程的机理,根据物料平衡和能量平衡等关系,应用数学描述的方法,建立数学模型。(解析法)

优点:较为简单、普遍。

缺点:①由于很多工业过程内部的工艺过程较为复杂,对某些物理、化学过程尚不完全清楚,所以,有些复杂过程的数学模型较难建立;

       ②工业过程多半有非线性因素,在推到时常常作了一些近似和假设,虽然这些近似和假设具有一定的实际依据,但并不能完全反应实际情况,甚至会带来估计不到的影响。

2)实验方法(系统辨识方)。

由于解析法的缺点,所以即使用解析法得到了过程的数学模型,仍然希望采用实验方法加以检验。尤其当推到不出过程数学模型时,更需要通过实验方法来求得。

常用响应曲线法来辨识过程的数学模型。

建立数学模型

2.  1  由过程阶跃响应曲线确定其数学模型

为了研究、分析和设计过程控制系统,需要根据实验取得的阶跃响应曲线来求出过程控制的微分方程和传递函数。

由阶跃响应曲线确定其数学模型,首先要选定模型的结构。

题目中要求选用一阶(包括无滞后和有滞后)和二阶来描述,既:

   一阶:W。=

一阶延迟:W。=

二阶::W。=

阶跃信号                                       响应曲线             

2.1.1  由阶跃响应曲线确定一阶环节的特性曲线

   (2)取0.632y(∞)时的t,≈t。

一阶响应曲线

2.1.2  由阶跃响应曲线确定一阶滞后环节的特性曲线

(1)Ko=

(2)取0.39y(∞)时的

     取0.63y(∞)时的≈2×(-);

                        ≈2-

一阶滞后响应曲线

2.1.3  由阶跃响应曲线确定二阶环节的特性曲线

 (1)Ko=

(2)取0.4y(∞)时的

     取0.8y(∞)时的++);

                       ≈(1.74-0.55)。

二阶响应曲线

实验环境

计算机Matlab软件,GUI界面。

MATLAB的优势:工作平台编译环境十分友好,编译语言简单易用,数据的计算处理能力十分强大,图形处理能力强大,模块集合工具箱应用广泛,程序的接口和发布平台很实用,可以开发用户界

GUI是Matlab中面向对象的编程,可以使Matlab程序的终端用户,即使不懂的Matlab也可以轻易操作该程序。

设计过程

4. 1   新建GUI界面

         GUT控制界面

上述界面包含:1个坐标轴对象、2个静态文本框、2个可编辑文本框、4个按钮。

4. 2  设置控件的相关属性

4.2.1  设置第一个控件的相关属性

文本标签属性设置                                  菜单编辑

 4.2.2  设置第二个控件的相关属性

文本标签属性设置                           菜单编辑

4.2.3  设置第三个控件的相关属性

 

       文本标签属性设置

4.2.4  设置第四个控件的相关属性

文本标签属性设置

4.2.5  设置第五个控件的相关属性

文本标签属性设置

4. 3  程序(见附录)

4. 4  仿真

(1)任意输入数据程

(2)按下连线按钮

(3)按下一阶延迟按钮

k = 54.7000

T =0.3971

tao =0.0422

W。=

(4)按下一阶按钮

k = 54.7000

T =0.4480

W。=

(5)按下二阶按钮

k =54.7000

Tb =0.5128

Ta = 0.0149

W。=

(6)按下关闭按钮关闭

心得体会

通过为期三周的Matlab课程设计实践,使我对Matlab的使用有了进一步的了解和熟悉,了解了GUI控制界面。增强了我查找资料的能力。

刚开始,我连怎么安装Matlab都不知道,连GUI是什么都不知道;对于这道题目,我更感到一头雾水,无从下手;在查找资料时也常常无功而返……我从一开始就觉得自己根本无法完成这项课题。

但是通过同学的帮助,我终于安装了Matlab,经过老师的和同学的讲解,我慢慢理解了题目。我减少了搜索关键词的字数,扩大了搜索范围,终于找到了很多我所需要的资料。我还去了自己很少去的图书馆,发现了很多与这个题目相关的书籍

但是面对陌生的GUI,我又不得不停下了脚步。在老师的建议下,我通过观看教学视频了解GUI。通过慢慢摸索,终于学会了一些简单的GUI设计。

编程并不是一件有趣的事情,相反,它十分枯燥无味。在调试的过程中我常常遇到一些很难发现的问题,我只能逐字逐句地反复检查(例如数字1和字母l弄混,一些固定的函数名写漏了一些字母等等)。为了方便调试,我设计了多个按钮,一个功能一个功能地实现。面对大量的资料,如何找到你所需要的内容细心和耐心是关键。

学习是没有捷径的。

终于还算圆满地完成了这份工程设计,它鞭策着我去巩固Matlab的基础理论知识,还提高了我对Matlab的实际操作运用,使得理论与实践相结合,为进一步学习Matlab打下坚实的基础;在实践的工程中,也让我体会到一种努力付出并得到回报的满足感觉;面对这个不得不面对的难题我知道了逃避是解决不了问题的,只有迎难而上才能收获成功之花的道理……感谢老师和同学在这个过程中对我的鼓励和帮助。

            


  参 考 文 献

[1]邵裕森. 过程控制及仪表-2版(修定版). 上海:上海交通大学出版社,1995.7(2010重印)。11-26

[2]陈垚光,毛涛涛,王正林,王玲. 精通MATLAB GUI 设计-2版. 北京:电子工业出版社,2011. 1279-280

[3]方康玲,王新民,潘炼,吴怀宇,刘晓玉. 过程控制及其MATLAB实现-2版.  北京:电子工业出版社,2013.9. 353-364

[4]杨佳,许强,徐鹏,余成波. 控制系统MATLAB仿真与设计. 北京:清华大学出版社. 2014.4. 49

附录

function varargout = kcsj(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name',       mfilename, ...

                   'gui_Singleton',  gui_Singleton, ...

                   'gui_OpeningFcn', @kcsj_OpeningFcn, ...

                   'gui_OutputFcn',  @kcsj_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

function kcsj_OpeningFcn(hObject, eventdata, handles, varargin)

set(handles.edit_x,'string');

set(handles.edit_y,'string');

handles.output = hObject;

guidata(hObject, handles);

function varargout = kcsj_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function pushbutton_start_Callback(hObject, eventdata, handles)

x=str2num(get(handles.edit_x ,'string'));

y=str2num(get(handles.edit_y ,'string'));

plot(x,y ,'k:','marker','o');

axes(handles.axes1)

hold on; 

function pushbutton_yjyc_Callback(hObject, eventdata, handles)

t=str2num(get(handles.edit_x ,'string'));

h=str2num(get(handles.edit_y ,'string'));

delta_u=20/100;

k=(h(end)-h(1))/delta_u

y=h/h(end);

t_tau=10;

tw=t(2:end)-t_tau;

yw=y(2:end);

h1=0.39;t1=interp1(yw,tw,h1)+t_tau;

h2=0.63;t2=interp1(yw,tw,h2)+t_tau;

T=2*(t2-t1)

tao=2*t1-t2

G=tf(k,[T,1],'inputdelay',tao);

[yG,tG]=step(G,linspace(t(1),t(end),50));

yG=yG*delta_u;

plot(tG,yG,'--');

axes(handles.axes1)

hold on;

function pushbutton_close_Callback(hObject, eventdata, handles)

close

function start_menu_Callback(hObject, eventdata, handles)

pushbutton_start_Callback(hObject, eventdata, handles)

function close_mune_Callback(hObject, eventdata, handles)

close

function Untitled_1_Callback(hObject, eventdata, handles)

function edit_x_Callback(hObject, eventdata, handles)

function edit_x_CreateFcn(hObject, eventdata, handles)

if ispc

    set(hObject,'BackgroundColor');

else

    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

function edit_y_Callback(hObject, eventdata, handles)

function edit_y_CreateFcn(hObject, eventdata, handles)

if ispc

    set(hObject,'BackgroundColor');

else

    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

function pushbutton_yj_Callback(hObject, eventdata, handles)

t=str2num(get(handles.edit_x ,'string'));

h=str2num(get(handles.edit_y ,'string'));

delta_u=20/100;

k=(h(end)-h(1))/delta_u

y=h/h(end);

t_tau=10;

tw=t(2:end)-t_tau;

yw=y(2:end);

h1=0.632;

T=interp1(yw,tw,h1)+t_tau

G=tf(k,[T,1],'inputdelay',0);

[yG,tG]=step(G,linspace(t(1),t(end),50));

yG=yG*delta_u;

plot(tG,yG,'g ');

axes(handles.axes1)

hold on;

function pushbutton_ej_Callback(hObject, eventdata, handles)

t=str2num(get(handles.edit_x ,'string'));

h=str2num(get(handles.edit_y ,'string'));

delta_u=20/100;

k=(h(end)-h(1))/delta_u;

y=h/h(end);

t_tau=10;

tw=t(2:end)-t_tau;

yw=y(2:end);

h1=0.4;t1=interp1(yw,tw,h1)+t_tau;

h2=0.8;t2=interp1(yw,tw,h2)+t_tau;

Tb=(t1+t2)/2.16

Ta=sqrt(((1.74*t1/t2-0.55)*Tb^2)^2)

G=tf(k,[Ta Tb 1],'inputdelay',0);

[yG,tG]=step(G,linspace(t(1),t(end),50));

yG=yG*delta_u;

plot(tG,yG,'m');

axes(handles.axes1)

hold on;

更多相关推荐:
综合课程设计报告

信息安全综合课程设计键盘输入截获系统的设计与实现摘要Windows系统键盘截获系统在我们的生活中是很常见的比如在军方的某些系统中为确保某些机密信息不被泄露出去就要求在工作人员在于外界交流的时候无意中输出的可能隐...

软件综合课程设计报告

软件综合课程设计报告前言题目名称航空公司管理信息系统班级学生学号学生姓名总成绩优良中及格20xx年12月30日不及格1问题描述一个正常营运的航空公司需要管理所拥有的飞机航线的设置客户的信息等更重要的还要提供票务...

计算机综合课程设计报告

计算机综合课程设计报告小组编号06课题名称趣味贪吃蛇小组成员20xx年10月计算机综合课程设计报告目录目录11项目背景112系统目标121系统功能分析2211功能12212功能2222系统性能指标223系统平台...

专业综合课程设计报告参考模板

燕山大学专业综合课程设计报告学院里仁学院年级专业09计算机科学与技术X班学生姓名XXX学号XXX指导教师XXX设计日期201X年X月X日摘要摘要随着Internet的蓬勃发展网络购物作为电子商务的一种形式正以其...

wang软件综合课程设计报告

软件综合课程设计报告题目名称班级学生学号学生姓名指导老师总成绩优良中及格不及格XXXXXXXX1前言职工信息管理作为企业管理的一个重要方面起可变因素多管理方面繁琐复杂时间跨度大而人工管理方式处理这样大量的信息数...

综合课程设计报告模板-

课程名称综合课程设计院系专业年级姓名学号指导教师20xx级测控综合课程设计课程报告课程设计任务书专业姓名学号开题日期完成日期一设计的目的本课程涉及到单片机机械设计CVI设计等内容通过本课程设计锻炼学生的硬件动手...

综合课程设计报告

综合课程设计题目PWM专业指导老师学生姓名学号波直流电机速度调节系统电气工程与自动化20xx年1月前言直流电机具有良好的起制动性能宜于在大范围内平滑调速在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用...

PLC综合课程设计报告

PLC综合课程设计报告一课程设计的性质目的和要求一课程设计性质本次课程设计教学的主要任务是在我们在学完可编程序控制器理论课程后进行的实践教学通过课程设计一方面验证所学的基本理论知识同时培养自己的基本操作技能与设...

网络软件开发综合课程设计报告

网络软件开发综合课程设计报告专业计算机科学与技术班级学生指导教师1报告提纲一设计题目或目的设计题目网络聊天软件设计与实现设计目的网络越来越发达的今天人们对网络的依赖越来越多越来越离不开网络由此而产生的聊天工具越...

综合课程设计报告第三组

综合课程设计报告基于ADSP2191的数字信号处理实现题目基二频率抽取的快速傅立叶变换算法小组成员安海鹏04008220高轩04008213王康蔚04008215朱峻岗04008212蒋骏宁组长04008236...

万年历综合课程设计报告

万年历课程设计报告目录第一章设计目的与要求........................................................11.1设计目的....................…

综合布线课程设计

目录摘要11工程概况12综合布线系统简述13综合布线系统组成231工作区子系统232配线子系统4321配线布线距离4322注意事项533干线子系统534管理子系统635设备间子系统64传输介质和连接器件741传...

综合课程设计报告(37篇)