logo资料库

c#制作pid仿真.docx

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
1设计任务及指标要求
对一阶系统实现PID算法控制并进行仿真,具体功能如下:
2 总体方案
3.运行与调试
4.软件的功能及使用说明
5.收获与体会
6.参考文献
软件分散课程设计 沈中皓 120900715 软 件 课 程 设 计 一阶系统 PID 算法控制及仿真 自动化 1203 沈中皓 120900715 0
软件分散课程设计 沈中皓 120900715 内容目录 1.设计任务及要求...........................................................................................................................2 2.总体方案.......................................................................................................................................2 2.1 设计思路...........................................................................................................................2 2.2 数字 PID 及其算法...........................................................................................................2 2.3 离散控制系统的数学描述...............................................................................................3 2.4 各控件的使用...................................................................................................................3 2.5 方案选定...........................................................................................................................5 3.运行与调试...................................................................................................................................5 3.1 出现的问题.......................................................................................................................5 3.2 改进措施...........................................................................................................................5 4.软件的功能及使用.......................................................................................................................5 4.1 主界面...............................................................................................................................5 4.2 功能键...............................................................................................................................6 4.3 效果图.......................................................................................................................................6 5.心得体会.......................................................................................................................................7 6.参考文献.......................................................................................................................................7 1
软件分散课程设计 沈中皓 120900715 1 设计任务及指标要求 对一阶系统实现 PID 算法控制并进行仿真,具体功能如下: 1) 基本要求:实现 PID 算法和一阶系统差分方程仿真,PID 算法中的四 个参数和一阶系统的参数都可以通过菜单进行设定,系统对阶越函数 的响应以图形方式实时显示在窗口中。 2) 附加功能:将系统的时间响应数据保存到数据库中,具体应包括下 列属性:时间,输出值。将系统的历史响应重现。使用 Teechart 控件 作为显示输出。 2 总体方案 2.1 设计思路 设计本软件需要克服两点问题。第一是对于自动控制原理中的概念从连续到离散,从书 面到电子、程序的转化过程,但是这个过程在老师给的资料里面已经有了很好的提示,正如 下文中的两项内容,稍做整理规划即可以成为代码使用。 其次,便是编写一个可以作为我们可观可控的载体,老师推荐使用 VB,同时还可以使 用的有 MFC,MATLAB,C++,Java,C#,HTML4 等等,这些与以往编程相关的课程不同的是, 涉及到了图形界面,又是一次全新的挑战,需要我们在短时间内学习并且掌握一些基础的概 念和应用方法,涉及到了一下诸如窗体,控件,事件的编程概念供以使用。 2.2 数字 PID 及其算法 模拟的 PID 表达式 )( tP  )([ teK P  1 T I  )( te dt  T D ])( tde dt 离散的 PID 表达式 )( kP  )({ kEK P  T T I k  j  0 )( jE  T D T [ )( kE  ( kE  })]1 根据递推原理,可写出(k-1)次的 PID 输出表达式: 增量型 PID 算法的算式为: 2
软件分散课程设计 沈中皓 120900715  )( kP  )( kEK [ P  ( kE  )]1  )( kEK I  kEK (2)( kE  [ D )1  ( kE  )]2 对应程序中如下代码 Error1 = SetPoint - Now; u = Error1 - Error2; u = u + Error1 * T / PID_I; u = u - PID_D * (Error1 - 2 * Error2 + Error3) / T; u = u * PID_P; Error3 = Error2; Error2 = Error1; 2.3 离散控制系统的数学描述 设系统为一阶惯性环节,系统的传递函数为: )( sY )( sX )( sG   1 sT 1  1 [( nyT 1  ])1 T T  ( nTy )  ( nTy )  ( nTx ) [( ny  ])1 T  ( T T 1  ()1 nTy )  T T 1 ( nTx ) 上式可写成: 整理得 对应程序中如下代码 u += PID(Gs_Y); Gs_X = u; Gs_Y = (T / Gs_T1) * Gs_X - (T / Gs_T1 - 1) * Gs_Y; 2.4 C#中各控件的使用 2.2.1 button 当按钮被单击将触发事件,相应的代码如下: private void button_XXXX_Click(object sender, EventArgs e) { /* your code */ 3
软件分散课程设计 沈中皓 120900715 } 2.2.2 lable 主要作为显示,提示 2.2.3 textBox 作为不同变量的输入输出,发挥着重要的作用,同时在其数据的转化上面,也是费了一些事 情 将textBox里面的数字转化为DEC的函数自己写 PID_P = ChangeToU16(tBox_P.Text); 将内容输出到 textBox 里面,即为赋值一个字符串 tBox_Value.Text = "0"; 2.2.4 AxTeeChart TeeChart 控件是经久不衰的图形控件,多年以来深受大家喜爱。 使用此控件需要先从下载一个 ocx 文件开始,进行注册,导入,才可以使用,其过程颇有一 番波折 ,但是最终还是受益良多。Teechart 可以画折线曲线,柱形图,饼形图,2D 和 3D 之间的切换也是非常的方便。但是在本次设计中,仅仅使用最简单的几个功能。 2.2.5 Form 主窗体,相当于画板 2.2.6 Timer 用于在计算相应数值的时候,精准定时 myTime.Elapsed += new ElapsedEventHandler(OnTimer); myTime.Interval = 5; myTime.Enabled = false; 当按下开始按钮时候,使能值 Enable 被赋值为 true。 4
软件分散课程设计 沈中皓 120900715 2.4 Access 数据库 使用 using System.Data.OleDb; 链接 Access 数据库,并利用 SQL 语句进行写入和读取 OleDbConnection thisConnection = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source=PID.mdb;Persist Security Info=False"); string sql = ""; OleDbCommand cmd = new OleDbCommand(); 。。。。。。 cmd.CommandText = sql; cmd.Connection = thisConnection; cmd.Parameters.AddWithValue("@mytime", (5 * time).ToString()); cmd.Parameters.AddWithValue("@mydata", u.ToString()); sql = "insert into myTB(myTime,myData) values(@mytime,@mydata)"; cmd.ExecuteNonQuery(); 。。。。。。 2.5 方案选定 基于 C#背后强大的.net 类库和最近走向开源的良好发端,我选择了 C#作为本次设计的开发 语言,VisualStdio2010 作为开发环境,AxTeeChart 作为附加使用的控件。 PID 的实现方式多种多样,有位置式的 PID 算法和增量式的 PID 算法,其中又包括微分先行, 带死区的 PID 控制等等,由于增量式的算法一直的离散的控制系统发挥中重要的作用,各方 面性能均衡优良,故选择此种控制器。 3.运行与调试 3.1 设计题目出现的问题 具体调试的过程中出现了两个问题。 第一个问题是,在反复确定原理的计算值之后,仍然看不到完美的整定 PID 波形,不适过冲 太多,恢复过慢,就是阻尼环节太过严重,良久无法到达稳定状态; 第二个问题,在设计 TeeChart 界面的时候,定死了横纵坐标的个数和比例,使得波形就算 式计算的准确无误了,也不像是能够说明问题自控波形,没有太大参考价值和研究价值。 3.2 改进措施 对于第一个问题,发现实际上是忽略对于采样时间 T 已经一阶系统特性 T1 二者一个协调的 比例,只有二者匹配,甚至更多,才能使系统的灵敏性更高,才能对于不同的 PID 参数,可 以看出明显的控制现象。 针对第二个问题,横轴使用了动态增添点的办法,使得整体凸显出一种动起来的感觉。而纵 5
软件分散课程设计 沈中皓 120900715 轴则是使能了自动调整变量,在上下幅值有变动的时候,控件自己做出调整。 4.软件的功能及使用说明 4.1 主界面 主界面十分简单,没有再打开的菜单,几个按钮几个文本框。主体是图形控件。 4.2 功能键 功能说明: 1.在左侧有两排按钮,是用来整定 PID 三个参数用的。相对靠左边分别是使 P、I、D 参数增 加,步长为 0.01-0.1,而相应的靠右边的是减少。 2.文本框的设计,使得参数的整定不仅仅可以靠单击来改变数值,同时也可以人工输入,最 终确定只需要停止掉当前状态并且重新开始,即可载入参数。 3.T 与 T1 分别是采样时间和系统特性阻尼参数。在 PID 算式和一阶系统算式中,这两个时间 值起到了至关重要的最有,二参数的好坏直接关系系统是否稳定,PID 三个变量的整定方向 等等。 4.SetPoint 目标值可以改动,这样出来的波形,更加可以看到相应曲线跟踪阶跃曲线的效果。 6
软件分散课程设计 沈中皓 120900715 4.3 效果图 读取数据库,并使用DATAGRIDVIEW控件进行显示 4.4 所用控件列表 序号 1 2 3 4 名称 button lable textBox TeeChar 7 数量(个) 10 6 6 1
分享到:
收藏