微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt

微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt

ID:51631388

大小:6.90 MB

页数:99页

时间:2020-03-26

微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt_第1页
微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt_第2页
微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt_第3页
微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt_第4页
微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt_第5页
资源描述:

《微机控制技术项目教程 教学课件 ppt 作者 汤平课件 项目五 微机控制算法应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、项目五微机控制系统算法应用【项目导读】算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。好的算法具有正确性、可读性、健壮性、高效率和低储存量需求等特点,在程序设计中采用好的算法,可以提高程序的执行效率。通过本项目,理解微机控制系统软件设计过程中常用的算法原理,初步学会在软件设计过程中应用常用的算法,提高程序运行的效率。【项目任务单】 1、编写数字PID增量式控制程序。2、编写数字PID位置式控制程序。5.1查表与排序5.1.1查表微机控制控制系统中,过程物理参数的变化是以数字量

2、的形式反映到计算机中来的。每当采集到一个新的数据时,如果要了解被控量的变化情况,则需要进行参数计算。参数计算是比较复杂的。当用某种检测器件对某种物理参数进行检测时,如果参数的变化规律可以用数学表达式来表示,这时,参数的计算虽然可以用计算法进行,但由于工程实际中许多检测器件存在非线性特性,对参数进行在线计算,不仅会影响控制系统的实时性,而且当计算复杂时,计算法程序的编写也是非常麻烦的事情;特别是对一些难以找到计算公式描述的物理参数,计算法就显得无能为力,而这时,查表法就能够很好地解决这个问题。所谓查表法,就是在计算机的存储单元内,存放反映输

3、入(物理参数)——输出(检测信号或数字量)对应关系(或结合进一步计算)的数据表格;每当计算机通过过程通道采集到一个新的数据时,通过对该数据表的快速查找,即可获得被控物理量的当前准确值,从而掌握其变化情况,以采取相应的控制措施。在数据查找方法中,会用到关键字(keyword)这个术语。关键字是唯一标识数据元素、记录的数值(或名字)。譬如每个人的身份证号码,就可以作为公民的关键字。因为利用身份证号码,可以查找这个人的性别、年龄、住址、单位、职业等情况。数据查找的过程,就是将待查关键字与实际关键字比较的过程。5.1查表与排序5.1.1查表查表法

4、中,常用的有顺序查表法、折半查表法等,下面介绍这两种方法。1、顺序查表法顺序查表是一种最简单的查找方法,对数据表的结构无任何要求。查找过程如下:从数据表开始,依次取出每个记录的关键字,再与待查记录的关键字比较。如果两者相等,就表示查到了关键字。如果整个表都查找完毕仍未找到所需记录,则查找失败。顺序查找速度较慢。对于由n个记录所组成的表,平均查找次数为(n+1)/2。该法只适用于数据记录个数比较少的情况。2、折半查表法对于按关键字大小顺序排列的数据表,可以采用折半查表法。假设在一个按照关键字由小到大顺序排列的表中,要查一个关键字为Ki的记录

5、。采用折半查表法,进行查找的过程如下:首先,选取处于表中间的那个记录的关键字与Ki比较:如果Ki大于该关键字,那就再取处于表后半部分中间的那个记录的关键字,与Ki进行比较;如果Ki小于该关键字,那就再取处于表前半部分中间的那个记录的关键字,与Ki进行比较。如此重复进行,直到找到所需记录。如果没有,则查找失败。5.1查表与排序5.1.1查表查表法中,常用的有顺序查表法、折半查表法等,下面介绍这两种方法。例如,假设有8个数据,它们的关键字的依次排列为:1113252739414345现要查找关键字为41的数据。用符号L、H、M分别表示查找段的

6、段首、段尾和中间关键字的序号。则查找过程如下:折半查表法的查找速度比顺序查表法快,但其前提是:应事先按关键字的大小顺序将数据表排列好。5.1查表与排序5.1.1查表案例:折半查找程序#includevoidmain(){unsignedinta[10]={0,6,12,16,23,56,80,100,110,115};intn,low,mid,high,found;low=0;high=M-1;found=0;n=56;while(low<=high){mid=(low+high)/2;if(n==a[mid]){fou

7、nd=1;break;}/*找到,结束循环*/elseif(n>a[mid])low=mid+1;elsehigh=mid-1;}if(found==1)printf("Theindexof%dis%d",n,mid);elseprintf("Havenotfund!%d",n);}5.1查表与排序5.1.1查表程序调试:(1)打开Keilc软件,新建工程项目,新建程序文件,输入以上程序,将程序存盘为seek.c,将程序加入项目中,编译。(2)单击Debug菜单下的Start/stopdebugsession启动调试,按F11键单步运行。

8、会看到如图5-1所示的局部变量(local)对话框中,各个变量的变化。当程序运行至if(found==1)语句。n=0x38,mid=5,found=1,表示找到变量56,位置数组下标5(数组

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。