软件综合设计报告.docx

上传人:精*** 文档编号:864922 上传时间:2023-10-02 格式:DOCX 页数:15 大小:167.58KB
下载 相关 举报
软件综合设计报告.docx_第1页
第1页 / 共15页
软件综合设计报告.docx_第2页
第2页 / 共15页
软件综合设计报告.docx_第3页
第3页 / 共15页
软件综合设计报告.docx_第4页
第4页 / 共15页
软件综合设计报告.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、东华大学信息科学与技术学院软件综合设计报告软件综合设计报告一、设计目的通过本课程设计实习,使学生在下列方面有所了解和提高:1. 掌握Visual Basic进行程序设计的基本思路和方法2. 能利用Visual Basic编程实现简单的任务3. 结合控制系统理论用VB进行计算机控制仿真二、设计内容1. 对一阶系统实现PID算法控制并进行仿真,具体功能如下: 基本要求:实现PID算法和一阶系统差分方程仿真,PID算法中的四个参数和一阶系统的参数都可以通过菜单进行设定,系统对阶跃函数的响应以图形方式实时显示在窗口中。 附加功能:将系统的时间响应数据保存到数据库中,具体应包括下列属性:时间,输出值。将

2、系统的历史响应重现,使用Teechart控件作为显示输出。2. 实现各种函数发生器并显示基本要求:实现下列函数发生器,正弦函数、方波函数、锯齿函数、三角函数,函数的生成参数都可以通过菜单设定,并且将生成的函数以图形方式实时显示在窗口中。附加功能:将系统的时间响应数据保存到数据库中,具体应包括下列属性:时间,输出值。将系统的历史响应重现。使用Teechart控件作为显示输出。三、原理分析1. 数字PID及其算法在模拟系统中,PID算法的表达式为 (1)式中 :调节器的输出信号 :调节器的偏差信号,等于测量值与给定值之差:调节器的比例系数 :调节器的积分时间:调节器的微分时间由于计算机控制是一种采

3、样控制,只能根据采样时刻的偏差来计算控制量。因此,在计算机控制系统中,必须对式(1)进行离散化处理,用数字形式的差分方程代替连续系统的微分方程,此时积分项和微分项可用求和及增量式表示: (2) (3)将式(2)、(3)代入式(1),则可得到离散的PID表达式: (4)式中:采样周期,必须使T足够小,才能保证系统有一定的精度;:第k次采样时的偏差值;:第(k1)次采样时的偏差值;:采样序号,:第k次采样时调节器的输出由于(4)的输出值与阀门开度的位置一一对应,因此,通常把(4)称为位置型PID的位置控制算式。由(4)可以看出,要想计算,不仅需要本次与上次的偏差信号和,而且还要在积分项中把历次的偏

4、差信号进行相加,即,这样,不仅计算繁琐,而且为保存还要占用很多内存。为此,作如下改动。根据递推原理,可写出(k-1)次的PID输出表达式: (5)用式(5)减去(4),可得: (6)式中 :积分系数 :微分系数式(6)称为增量式PID控制算式。增量型PID算法的算式为: (7)设所以: (8)2. 离散控制系统的数学描述设系统为一阶惯性环节,系统的传递函数为:其微分方程为: (9)差分方程和微分方程在形式上有一定的相似之处,设时间间隔T足够小,当时,可有:于是式(9)可写成:经整理后,得: (10)在T足够小的条件下,微分方程(9)可以近似成差分方程(10),T值越小,则近似得越好。四、设计实

5、现1. PID响应仿真 源程序(PID响应值计算部分) Kd = Kp * Td / T; /微分系数 /以下为初始状态的计算与迭代计算过程,根据的是设计指导书内容 y0 = 0; /系统初始输出信号 E0 = 1; /初始偏差,由于刚开始为0,后来阶跃输入为1,所以初始偏差为1 p0 = Kp + Ki + Kd; /由增量式PID控制算式计算,k=0 代入求得 p0 = 0 y1 = T / T1 * K1 * p0 - (T / T1 - 1) * y0; E1 = 1 - y1; p1 = p0 + Kp * (E1 - E0) + Ki * E1 + Kd * (E1 - 2); /

6、以下为循环迭代运算实现系统经过PID调节的输出 yi (i = 2,3,4,5,.1999) for (int i = 2; i 2000; i+) yi = T / T1 * K1 * pi - 1 - (T / T1 - 1) * yi - 1; Ei = 1 - yi; pi = pi - 1 + Kp * (Ei - Ei - 1) + Ki * Ei + Kd * (Ei - 2 * Ei - 1 + Ei - 2); 系统响应例如当输入PID参数:输入参数如下:Kp = 1 ,Ti = 0 ,Td = 0 ;采样周期T = 0.01一阶系统参数设置输入参数如下:K1 = 1 ,T1

7、 = 5;系统输出响应曲线如下所示:改变输入参数就可以进行不同的PID参数仿真:当输入如下参数:Kp = 1,Ti = 1,Td = 1,K1 = 1,T1 = 5,采样时间T = 0.05时,显示如下曲线:输入第3组数据:Kp = 3,Ti = 1,Td = 1,K1 = 1,T1 = 5,采样时间 T = 0.05时,仿真曲线如下所示:2. 正弦函数 正弦函数响应值代码/注: sin中 角频率 W 与 初相角 Phi 单位为: rad/s 与 rad double y = new double2000; / 公式: y(nT) = A * sin(2*pi*n/N + Phi) n= 1.

8、(N-1) sinA = System.Convert.ToDouble(sinForm.sinParam0); / Sin 幅值 A sinW = System.Convert.ToDouble(sinForm.sinParam1); / Sin 角频率 w sinPhi = System.Convert.ToDouble(sinForm.sinParam2); / Sin 初相角 phi sinT = System.Convert.ToDouble(sinForm.sinParam3); / Sin 采样周期 T double N = 2 * Math.PI / (sinW * sinT)

9、; for(int i=0;i2000;i+)double alfa = 2*Math.PI*i/N; yi = sinA * Math.Sin(alfa + sinPhi); 系统响应作为演示,第一组参数输入如下:幅值A = 2 ,角频率w = 3.14 初相角 = 0 ;采样周期 T = 0.01将仿真曲线显示在图表区,如下所示:改变输入参数,比如输入第2组参数:幅值A = 4 ,角频率w = 1.57 初相角 = 1.05 ;采样周期 T = 0.01仿真得到如下曲线:3. 方波函数 方波响应计算 /计算方波数据并存储,显示 double y = new double2000; doub

10、le tdat = new double2000; int Ns = System.Convert.ToInt16(1.0 / (otrF * otrT);/计算一个周期内采样点数 int i = 0; for(int j=0;i2000;j+) for (i = j * Ns; (i = (0.5 + j) * Ns) & (i 2000); i+) yi = otrA; / Math.Ceiling 向上取整方式 for (i =(int)Math.Ceiling (0.5 + j) * Ns+0.1); (i = (1 + j) * Ns) & (i 2000); i+) yi = 0;

11、 系统响应作为演示,输入第一组参数如下:幅值A = 3 频率 f = 0.5 ;采样周期T = 0.01改变参数,比如输入第2组参数如下:幅值A = 2 频率 f = 0.25 采样周期T = 0.01点击仿真后曲线显示如下所示:4. 锯齿函数 锯齿响应计算 /计算出锯齿波数据,插入数据库中,并读取数据显示出来 double y = new double2000; double tdat = new double2000; int Ns = System.Convert.ToInt16(1.0 / (otrF * otrT);/计算一个周期内采样点数 int i = 0; double otr

12、Temp = otrA * otrF * otrT; for (int j = 0; i 2000; j+) for (i = j * Ns; (i (1+ j) * Ns) & (i 2000); i+) yi = otrTemp * (i - j * Ns); 锯齿响应作为演示,第一组参数设置如下:幅值A = 3 频率 f = 0.5 采样周期T = 0.01仿真曲线如下所示:第二组参数如下:幅值A = 2 频率 f = 0.25 采样周期T = 0.015. 三角函数 三角响应值计算 /计算出三角波数据,插入数据库中,并读取数据显示出来 double y = new double2000

13、; double tdat = new double2000; int Ns = System.Convert.ToInt16(1.0 / (otrF * otrT);/计算一个周期内采样点数 int i = 0; double sawdat = 2 * otrA / Ns; for (int j = 0; i 2000; j+) for (i = j * Ns; (i = (0.5 + j) * Ns) & (i 2000); i+) yi = sawdat * (i - j * Ns); / Math.Ceiling 向上取整方式 for (i = (int)Math.Ceiling(0.

14、5 + j) * Ns + 0.1); (i = (1 + j) * Ns) & (i 2000); i+) yi = -1 * sawdat * (i - j * Ns) + 2 * otrA; 三角响应作为演示,第一组参数设置如下:幅值A = 3 频率 f = 0.5 采样周期T = 0.01仿真曲线如下所示:第二组参数如下:幅值A = 2 频率 f = 0.25 采样周期T = 0.01系统仿真如下:五、附加功能实现1. 历史响应重现 历史响应代码实现为了便于后续的查询与分析,软件提供了历史响应重现功能,可以重现最后一次仿真的结果,实现基础基于数据库查询与数据读取。主要代码:string

15、 sqlsel = SELECT * FROM + tabnm + ORDER BY Id;DataOper datOper = new DataOper();datOper.DBConnOpen(); /建立数据库连接SqlDataAdapter sda = new SqlDataAdapter(sqlsel, datOper.dbconn); /建立数据适配器DataSet ds = new DataSet(); /建立数据集 ds_pidsda.Fill(ds, tabnm); /查询取出 tabname 表中数据datOper.DBConnClose(); /关闭数据库double x

16、values = new double2000;double yvalues = new double2000;int i = 0;/数据的读取到数组中foreach (DataRow dr in ds.Tablestabnm.Rows) xvaluesi = System.Convert.ToDouble(dr1); yvaluesi = System.Convert.ToDouble(dr2); i = i + 1;/将数据库中查到的数据加入TeeChart表中tChart_Disp.Series0.Add(xvalues, yvalues);2. 帮助与说明为了便于软件使用,提供了软件使

17、用说明书,点击菜单 帮助 / 使用说明 查看软件说明书。说明书也可以单独打开查看,名称是software help.html 点击 关于 会显示当前软件的版本号,以及软件版本信息、开发者信息等说明:由于开发过程仓促,软件存在不少Bug,也存在不少设计缺陷,使用过程中如果遇到问题,请尝试关闭软件再重新打开,对此给你带来的不变,敬请谅解。如果时间允许,我会努力的改进与完善本软件,丰富功能,修复错误!六、设计心得这次课设给了我一次锻炼机会,启发我思考、分析与验证、实现自己的设计。在本次课程设计中,考虑到自己学习过C#语言,而对VB较陌生情形下,我通过查阅资料,研究掌握了C#的基本用法。相较于之前用过

18、的C语言以及本学期在学的汇编语言,C#语言逻辑清晰,语法简单,并以其方便、快捷的窗体界面设计为本次课程设计提供了极大的便利。在没有前期课程及老师指导的情况下独立完成课程设计,在不长的时间内尽自己的能力完成了全部的功能,包括基本部分与附加部分。在软件设计过程中收获到了独立思考的能力,学习过程中缺少不了网络、搜索引擎与书籍,查阅资料解决针对性问题既是一种能力,也是一种过程,或许学习过程大都就是这样子吧。当然,对于计算机软件编程,查阅资料解决问题的能力,显得尤其重要。计算机的飞速发展,信息技术日新月异,如果从基础的计算机构成,到后续的操作系统调度、硬件驱动等开始学,不仅学习周期长,而且不适宜迅速解决

19、技术问题。通过这次课设,我对C#和图形用户界面有了一定的了解,学到了不少基础C#语言。虽然之前有看过关于C#的书,也只是知道几个语句,几个术语的定义与基本概念,没有在实质上认识C#。而通过课设,我遇到不能解决的问题一方面上网查资料,一方面问同学,终于编出了符合要求的界面。我才懂得什么是C#的易用性,界面是用户了解程序的窗口,它极大的方便了程序的调试。此外,这次课设也让自己之前所学的知识运用到实际设计中,比如基本的数据库创建、数据库连接、表查询与创建、表数据删除等操作。当然,感触颇深的是,当要解决具体问题时,不要急于动手实现每个细节,首先要确定整个设计的基本轮廓,要慎重确定系统中的每个部分,是否真正需要这部分,而后确定基本轮廓后再具体分模块实现。其实不管用什么语言编程,首先需要的是清晰正确的逻辑,清晰的实现路线可以避免走很多弯路,也可以避免很多错误,节约很多时间。所以,一个程序员应该培养好的编程习惯和逻辑思维,当然,我还有很长的路要走。 忽略此处. 15

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922