大林算法课程设计报告

大林算法课程设计报告
大林算法课程设计报告

微型计算机控制技术课程设计报告

班级:自动化901

A

B

C

一、课题名称

大林算法控制系统设计

二、课程设计目的

课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。

《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。

三、课程设计内容

已知被控对象的传递函数为:

采样周期为T=0.5s ,用大林算法设计数字控制器D(z),并分析是否会产生振铃现象。

四、课程设计要求 1、用大林算法设计数字控制器D(z) ;

2、在 Simulink 仿真环境画出仿真框图及得出仿真结果,画出数字控制;

3、绘制并分析数字控制器的振铃现象;

4、对振铃现象进行消除;

5、得出仿真结果并进行仿真分析;

6、程序清单及简要说明;

7、成设计说明书(列出参考文献,以及仿真结果及分析)。

五、大林算法控制系统方案设计

在控制系统应用中,纯滞后环节往往是影响系统动态特性的不利因素。工业过程中如钢铁,热工和化工过程中往往会有纯滞后环节。对这类系统,控制器如果设计不当,常常会引起系统的超调和持续振荡。

由于纯延迟的存在,使被控量对干扰、控制信号不能即时的反映。即使调节机构接受控制信号后立即动作,也要经过纯延时间t 后才到达被控量,使得系统产生较大的超调量和较长的调节时间。当t >=0.5T (T 为对象的时间常数)时,实践证明用PID 控制很难获得良好的控制品质。

对这类具有纯滞后环节系统的控制要求,快速性往往是次要的,通常要求系统稳定,要求系统的超调量要小,而调整时间允许在较多的采样周期内结束。

这样的一种大时间滞后系统采用PID 控制或采用最少拍控制,控制效果往往不好。本节介绍能满足上述要求的一种直接数字控制器设计方法

——达林(Dahlin)算法

()1s e G s s -=+

达林算法的设计思想:设计一个合适的数字控制器,使整个闭环系统相当于一个延迟环节和一个一阶惯性环节相串联。并期望整个闭环系统的纯滞后时间与被控对象的纯滞后时间相同。即系统的闭环传递函数可设为

式中: Tt 为闭环系统的时间常数,实际使用时需要整定;t 为纯滞后时间,与被控对象的相同,并且与采样周期T 有整数倍的关系t =NT (N=1,2,…)。若t 与采样周期T 不成整数倍的关系,可采用修正的Z 变换法进行处理 一阶被控对象的达林算法

已知被控对象为1

)(1+=-s T Ke s G s

p τ则数字控制器算式为]

)1(1)[1()1)(1()()1(/1//1//11+------------=N T T T T T T T T T T z e z e e K z e e z D τττ 采用达林算法设计具有纯延迟过程的计算机控制系统时,会出现所谓的振铃现象:闭环系统的输出以指数形式较快地趋向于稳态值, 而数字控制器的输出以二分之一的采样频率大

幅度的衰减振荡。

振铃现象会增加执行机构大幅度的摆动,加剧了磨损. 但是对系的输出没有影响。振铃现象还有可影响到系统的稳定性。振铃现象与被控对象的特性、闭环时间常数、采样周期、纯滞后时间等因素有关。下面分析之。

系统的输出Y (z )为:

上式表示了数字控制器的输出与系统输入信号之间的关系。是分析振铃现象的基础。

对于单位阶跃输入函数R (z )=1/(1-z -1),含有z=1的极点;如果Fu (z )在z 平面的负实轴上有极点,即被控对象Gp (z )含有负实轴上的零点,且与z=-1点相近,则数字控制器的输出序列u (k )中将含有这两种幅值相近的瞬态项,而且这两个瞬态项的符号在不同时刻是不同的。当两瞬态项符号相同时,数字控制器的控制作用加强;符号相反时,控制作用减弱,从而造成数字控制器的输出序列u (k )的幅值以2T 为周期大幅度波动,这便是振铃现象。

对于带纯滞后环节的一阶惯性环节,极点z 永远大于零,故可以得出如下结论:在纯滞后一阶惯性环节促组成的系统中,数字控制器输出对输入的脉冲传递函数不存在负实轴上面的极点,这种系统不存在振铃现象。

s e s

T s ττ-+=Φ11)()

()()()()(z z G z z R z U u Φ=Φ=∴)

()()(z R z z U u

Φ=故:

振铃消除方法

【方法一】找出数字控制器D(z)中引起振铃现象的因子(即z=-1附近的极点),然后人为地令该因子中的z=1,就可以有效地抑制振铃幅度。

附:

实验截图

【方法二】通过适当的选择采样周期T 和期望的系统时间常数T τ,可以把振铃现象抑制在最低的限度内。 在有的情况下,期望的闭环时间常数T τ作为系统的性能指标被首先确定了。但仍可以在通过振铃幅度RA 与采样周期的关系的前提下,得出在允许振铃幅度RA 下的采样周期,从而将振铃现象抑制在可以接受的范围内。

7. 小结与体会

A:课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它有利于我们全面牢固地掌握课堂教学内容、培养我们的实践和实际动手能力。这次的课程设计,让我对《微型计算机控制技术》这门课和课程设计有了一个全新的认识,也有了很多的体会和心得。《微型计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过这次的课程设计,我认识到任何课程的学习都需要理论结合实际,这样才能更好地掌握所学的知识并将它很好地应用于实践中。同时,在实践过程中,可以通过查找资料、分析资料和请教老师和同学,使一些不清楚的问题得以解决,这样的话,可以起到事半功倍的效果。当然,最关键的还是靠自己亲自去思考问题、解决问题,掌握独自面对各类的问题的方法。总之,这次的课程设计给了我很多的体会和心得。让我们有机会去锻炼和提升自己,收获很多。

B:计算机控制技术是一门以电子技术、自动控制技术、计算机应用技术为基础,以计算机控制技术为核心,综合可编程控制技术、单片机技术、计算机网络技术,从而实现生产技术的精密化、生产设备的信息化、生产过程的自动化及机电控制系统的最佳化的专门学科。

通过本次课程设计,让我受益良多。原来我学习计算机控制的时候,基本上不清楚学习的理论知识如何应用在实践中,所以觉得计控学习起来比较难,经过这次课程设计,让我清楚了计算机控制的一些理论在实践中的应用。经过了这次课程设计,我发现学到了很多的东西,首先我觉得能把自己所学到的东西应用到实践中去,这是一个很大的收获。其次,仅仅是所学到的东西根本就不能满足工程或者说一个具体的项目的要求,要完成一个具体的项目,需要额外的学习很多新的东西,因此不能满足于自己的所学,应该养成终身学习的态度。

C: 课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它有利于我们全面牢固地掌握课堂教学内容、培养我们的实践和实际动手能

力。

这次的课程设计,让我对《计算机控制技术》这门课和课程设计有了一个全新的认识,也有了很多的体会和心得。

《计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,我对控制算法设计有了一个更深的认识,也学会了控制算法的实际应用,从整体上了解了计算机控制系统的实际组成,掌握了计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的整定工作打下基础。

计算器课程设计报告

课设报告 福建工程学院软件学院 题目:汇编计算器 班级: 1301 姓名 学号: 指导老师: 日期:

目录 1、设计目的 (3) 2、概要设计 (3) 2.1 系统总体分析 (3) 2.2 主模块框图及说明 (3) 3、详细设计 (4) 3.1 主模块及子模块概述 (4) 3.2各模块详运算 (4) 4、程序调试 (7) 4.1 运行界面分析 (7) 算法分析 (7) 4.2 调试过程与分析 (9) 5、心得体会 (11) 5.1 设计体会 (11) 5.2 系统改进 (11) 附录: (11)

1、设计目的 本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。 2、概要设计 用8086汇编语言编写一个能实现四则混合运算、带括号功能的整数计算器程序。程序能实现键盘十进制运算表达式的输入和显示(例如输入:“1+2*(3-4)”),按“=”后输出十进制表示的运算结果。 2.1 系统总体分析 在8086的操作环境下,该计算器分成输入,数据存储,运算功能,输出几个大模块,实现了使用者使用该计算器时输入一个算式,能让系统进行计算。此计算器的实现功能是基本的数学的四则运算,结果范围在0~65535。 2.2 主模块框图及说明 此流程图简要的表现出了所要实现的功能以及一些功能的大概算法,同时也是我编写的一个总体的框架。 程序流程图说明:通过流程图,可以看出程序运行时,首先输出提示语气,当用户输入后,程序根据所输入内容进行判断,通过判断的结果来决定调用哪个功能模块,首要先要要判断的是否为0-9,“+”“-”“*”“/”这些字符,若不是就会报错,实则根据运算符号调用其功能模块完成运算。最后将运算的结果显示在主频幕上,返回主程序,使用户可以重新输入。

大林算法课程设计

摘要 在控制系统应用中,纯滞后环节往往是影响系统动态特性的不利因素。工业过程中如钢铁,热工和化工过程中往往会有纯滞后环节。对这类系统,控制器如果设计不当,常常会引起系统的超调和持续振荡。由于纯延迟的存在,使被控量对干扰、控制信号不能即时的反映。即使调节机构接受控制信号后立即动作,也要经过纯延时间t后才到达被控量,使得系统产生较大的超调量和较长的调节时间。当t>=0.5T(T为对象的时间常数)时,实践证明用PID控制很难获得良好的控制品质。对这类具有纯滞后环节系统的控制要求,快速性往往是次要的,通常要求系统稳定,要求系统的超调量要小,而调整时间允许在较多的采样周期内结束。 这样的一种大时间滞后系统采用PID控制或采用最少拍控制,控制效果往往不好。本课程设计介绍能满足上述要求的一种直接数字控制器设计方法——大林(Dahlin)算法。 关键字:纯滞后、大林(Dahlin)算法

目录 0引言 (1) 1被控对象模拟与计算机闭环控制系统的构成 (2) 1.1被控对象 (2) 2大林算法 (3) 2.1一阶被控对象的达林算法 (3) 3振铃现象和消除方法 (4) 3.1振铃现象的产生 (4) 3.1.1振铃现象的分析 (4) 3.2振铃幅度RA (6) 3.3振铃现象的消除 (6) 3.4Simulink 仿真 (7) 4一种改进的消除振铃现象的方法 (9) 5总结 (10) 参考文献 (11)

0引言 大林算法是由美国IBM公司的大林(Dahllin)于1968年针对工业生产过程中含纯滞后的控制对象的控制算法。该算法的设计目标是设计一个合适的数字控制器,使整个系统的闭环传递函数为带有原纯滞后时间的一阶惯性环节。大林算法是运用于自动控制领域中的一种算法,是一种先设计好闭环系统的响应再反过来综合调节器的方法。设计的数字控制器(算法)使闭环系统的特性为具有时间滞后的一阶惯性环节,且滞后时间与被控对象的滞后时间相同。此算法具有消除余差、对纯滞后有补偿作用等特点。

算法排序问题实验报告

《排序问题求解》实验报告 一、算法的基本思想 1、直接插入排序算法思想 直接插入排序的基本思想是将一个记录插入到已排好序的序列中,从而得到一个新的,记录数增1 的有序序列。 直接插入排序算法的伪代码称为InsertionSort,它的参数是一个数组A[1..n],包含了n 个待排序的数。用伪代码表示直接插入排序算法如下: InsertionSort (A) for i←2 to n do key←A[i] //key 表示待插入数 //Insert A[i] into the sorted sequence A[1..i-1] j←i-1 while j>0 and A[j]>key do A[j+1]←A[j] j←j-1 A[j+1]←key 2、快速排序算法思想 快速排序算法的基本思想是,通过一趟排序将待排序序列分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可对这两部分记录继续进行排序,以达到整个序列有序。 假设待排序序列为数组A[1..n],首先选取第一个数A[0],作为枢轴(pivot),然后按照下述原则重新排列其余数:将所有比A[0]大的数都排在它的位置之前,将所有比A[0] 小的数都排在它的位置之后,由此以A[0]最后所在的位置i 作为分界线,将数组A[1..n]分成两个子数组A[1..i-1]和A[i+1..n]。这个过程称作一趟快速排序。通过递归调用快速排序,对子数组A[1..i-1]和A[i+1..n]排序。 一趟快速排序算法的伪代码称为Partition,它的参数是一个数组A[1..n]和两个指针low、high,设枢轴为pivotkey,则首先从high 所指位置起向前搜索,找到第一个小于pivotkey 的数,并将其移到低端,然后从low 所指位置起向后搜索,找到第一个大于pivotkey 的数,并将其移到高端,重复这两步直至low=high。最后,将枢轴移到正确的位置上。用伪代码表示一趟快速排序算法如下: Partition ( A, low, high) A[0]←A[low] //用数组的第一个记录做枢轴记录 privotkey←A[low] //枢轴记录关键字 while low=privotkey do high←high-1 A[low]←A[high] //将比枢轴记录小的记录移到低端 while low

数值计算方法课程设计(C语言)

数值计算方法课程设计 姓名 学号 成绩

课程实际报告 实验一:秦九韶算法 题目 用选列主元高斯消去法解线性方程组 ???????=+- =-+-=-+-=--02 02 0 21 34343232121x x x x x x x x x x 算法语言: 利用c 语言的知识编写该算法程序 算法步骤叙述: 秦九昭算法的基思路是v[0]=a[0]*x+a[1] v[i]=v[i-1]*x+a[i+1];利用秦九昭算法计算多项式函数。 程序清单: #include void main() { float a[5],x,sum; int i; printf("presase input the value of x="); scanf("%f",&x); for (i =5;i >=0;i --) { printf("please input the value of a%d=",i); scanf("%f",&a[i]); } sum =a[5];

for(i=5;i>=1;i--) {sum=sum*x+a[i-1]; } printf("f(x)=%f/n",sum); } 输出结果计算:

实验总结: 通过运用C 语言,解决了秦九韶算法手写的复杂。为以后的雪地打下基础。 实验二:用选列主元高斯消去法解线性方程组 题目 用选列主元高斯消去法解线性方程组 ???????=+- =-+-=-+-=--02 0 2 0 21 34343232121x x x x x x x x x x 算法步骤叙述 第一步消元——在增广矩阵(A,b )第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A,b )做初等行变换使原方程组的第一列元素除了第一行的全变为0; 第二步消元——在增广矩阵(A,b )中第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b )做初等行变换使原方程组的第二列元素除了第一和第二行的全变为0; 第三步消元——在增广矩阵(A,b )中第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第三行交换,再对(A,b )做初等行变换使原方程组的第三列第四行元素为0; 第四,按x4-x3-x2-x1的顺序回代求解出方程组的解,x[n]=b[n]/a[n][n],x[i]=(b[i]-Σa[i][j]x[j])/a[i][i],i=n-1,…,2,1 程序清单: #include #include #define N 4 static double A[N][N] = {-3,-1,0,0,-1,2,-1,0,0,-1,2,-1,0,0,-1,2}; static double B[N]={1,0,0,0};

大林算法课程设计报告

微型计算机控制技术课程设计报告 班级:自动化901 A B C

一、课题名称 大林算法控制系统设计 二、课程设计目的 课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。 《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。 三、课程设计内容 已知被控对象的传递函数为: 采样周期为T=0.5s ,用大林算法设计数字控制器D(z),并分析是否会产生振铃现象。 四、课程设计要求 1、用大林算法设计数字控制器D(z) ; 2、在 Simulink 仿真环境画出仿真框图及得出仿真结果,画出数字控制; 3、绘制并分析数字控制器的振铃现象; 4、对振铃现象进行消除; 5、得出仿真结果并进行仿真分析; 6、程序清单及简要说明; 7、成设计说明书(列出参考文献,以及仿真结果及分析)。 五、大林算法控制系统方案设计 在控制系统应用中,纯滞后环节往往是影响系统动态特性的不利因素。工业过程中如钢铁,热工和化工过程中往往会有纯滞后环节。对这类系统,控制器如果设计不当,常常会引起系统的超调和持续振荡。 由于纯延迟的存在,使被控量对干扰、控制信号不能即时的反映。即使调节机构接受控制信号后立即动作,也要经过纯延时间t 后才到达被控量,使得系统产生较大的超调量和较长的调节时间。当t >=0.5T (T 为对象的时间常数)时,实践证明用PID 控制很难获得良好的控制品质。 对这类具有纯滞后环节系统的控制要求,快速性往往是次要的,通常要求系统稳定,要求系统的超调量要小,而调整时间允许在较多的采样周期内结束。 这样的一种大时间滞后系统采用PID 控制或采用最少拍控制,控制效果往往不好。本节介绍能满足上述要求的一种直接数字控制器设计方法 ——达林(Dahlin)算法 ()1s e G s s -=+

数据结构课程设计报告---几种排序算法的演示(附源代码)

? & 数据结构课程设计报告 —几种排序算法的演示( ; 时间:2010-1-14 … 一需求分析

运行环境 Microsoft Visual Studio 2005 程序所实现的功能 对直接插入排序、折半插入排序、冒泡排序、简单选择排序、快速排序、堆排序、归并排序算法的演示,并且输出每一趟的排序情况。 程序的输入(包含输入的数据格式和说明) % <1>排序种类三输入 <2>排序数的个数的输入 <3>所需排序的所有数的输入 程序的输出(程序输出的形式) <1>主菜单的输出 <2>每一趟排序的输出,即排序过程的输出 " 二设计说明 算法设计思想 <1>交换排序(冒泡排序、快速排序) 交换排序的基本思想是:对排序表中的数据元素按关键字进行两两比较,如果发生逆序(即排列顺序与排序后的次序正好相反),则两者交换位置,直到所有数据元素都排好序为止。 <2>插入排序(直接插入排序、折半插入排序) % 插入排序的基本思想是:每一次设法把一个数据元素插入到已经排序的部分序列的合适位置,使得插入后的序列仍然是有序的。开始时建立一个初始的有序序列,它只包含一个数据元素。然后,从这个初始序列出发不断插入数据元素,直到最后一个数据元素插到有序序列后,整个排序工作就完成了。 <3>选择排序(简单选择排序、堆排序) 选择排序的基本思想是:第一趟在有n个数据元素的排序表中选出关键字最小的数据元素,然后在剩下的n-1个数据元素中再选出关键字最小(整个数据表中次小)的数据元素,依次重复,每一趟(例如第i趟,i=1,…,n-1)总是在当前剩下的n-i+1个待排序数据元素中选出关键字最小的数据元素,作为有序数据元素序列的第i个数据元素。等到第n-1趟选择结束,待排序数据元素仅剩下一个时就不用再选了,按选出的先后次序所得到的数据元素序列即为有序序列,排序即告完成。 <4>归并排序(两路归并排序) 两路归并排序的基本思想是:假设初始排序表有n个数据元素,首先把它看成是长度为

数值计算方法课程设计

重庆邮电大学 数学与应用数学 专业 《数值计算方法》课程设计 姓名: 李金徽 王莹 刘姝楠 班级: 1131001 1131002 1131002 学号: 2010213542 2010213570 2010213571 设计时间: 2012-6-4 指导教师: 朱伟

一、课程设计目的 在科学计算与工程设计中,我们常会遇到求解线性方程组的问题,对于系数矩阵为低阶稠密矩阵的线性方程组,可以用直接法进行消元,而对于系数矩阵为大型稀疏矩阵的情况,直接法就显得比较繁琐,而迭代法比较适用。比较常用的迭代法有Jacobi 迭代与Gauss - seidel 迭代。本文基于两种方法设计算法,并比较他们的优劣。 二、课程设计内容 给出Jacobi 迭代法和Gauss-Seidel 迭代法求解线性方程组的算法思想和MATLAB 程序实现,并对比分析这两种算法的优劣。 三、问题的分析(含涉及的理论知识、算法等) Jacobi 迭代法 方程组迭代法的基本思想和求根的迭代法思想类似,即对于线性 方程组Ax = b( 其中n n n R b R R A ∈?∈,),即方程组 )1(2211222221211 1212111?? ???? ?=+?++??=+?++=+?++n n nn n n n n n n b x a x a x a b x a x a x a b x a x a x a 将系数矩阵A 写为 )2(000000 21122 12122 11U L D a a a a a a a a a A n n n n nn --≡??? ?? ? ? ??---- ??????? ??----??????? ??= 若选取D M =,则U L A M N +=-=,方程组)1(转化为等价方程组 b x U L Dx ++=)(

单片机计算器的课程设计报告

目录 一、设计任务和性能指标 (1) 1.1设计任务 (2) 1.2性能指标 (2) 二、设计方案 (2) 3 3 4 5 5 6 6 7 7 20 20 20 20 21 参考文献 (21) 附录1、系统硬件电路图 (22) 附录2、硬件实物图 (23) 附录3、器件清单 (24)

一、设计任务和性能指标 1.1设计任务 自制一个单片机最小系统,包括复位电路,采用外部小键盘输入数据,能够实现加法、乘法及一个科学计算,计算结果显示在四位一体的数码管上。 要求用Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要 显 位 监测模块采用二极管和扬声器(实验室用二极管代替)组成电路。 键盘电路采用4*4矩阵键盘电路。 显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。 整个单片机的接口电路: P0用于显示输出; P1用于键扫描输入; P2用于数码管位选控制; P3用于键盘扩展(部分运算符输入);

三.系统硬件设计 3.1单片机最小系统 单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。 主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。 扩展键:“log”,“ln”,“x^2”“小数点”,“开方” 共计25个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0~P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。 以下为键盘接口电路的硬件电路图

基于大林算法的温度控制系统设计说明

计算机控制技术课程设计2015/2016学年第二学期 设计课题:基于大林算法的电路温度控制系统的设 计 专业:__ __ 班级: __ _ 学号:___ _______ 姓名:_______ _ _____ 2016年5月

目录 第一章课题简介 (1) 1.1课题的目的 (1) 1.1.1 本机实现的功能 (1) 1.1.2 扩展功能: (1) 1.2课题的任务及要求 (1) 第二章系统方案设计 (2) 2.1 水温控制系统的总体介绍 (2) 2.2 系统框图 (2) 2.3 闭环系统的工作原理 (2) 第三章系统硬件设计 (3) 3.1 系统原理图 (3) 3.2 单片机最小系统设计 (3) 第四章大林控制算法设计 (5) 4.1 大林控制算法原理: (5) 4.2 控制器的设计及公式推导过程 (6) 4.3 采样周期的选择: (7) 第五章水温控制系统的仿真 (7) 5.1振铃现象 (7) 5.2 Matlab仿真 (9) 5.2 大林算法控制系统编程设计: (10) 5.3各模块子程序设计 (11) 5.3.1主程序设计 (11) 5.3.2读出温度子程序 (12) 5.5.3数码管显示模块 (13) 5.5.4温度处理程序 (14) 第六章小结与体会 (15) 第七章参考文献 (16) 第八章附录 (17)

第一章课题简介 1.1课题的目的 1.1.1 本机实现的功能 (1)利用温度传感器采集到当前的温度,通过AT89S52单片机进行控制,最后通过LED数码管以串行口传送数据实现温度显示。 (2)可以通过按键任意设定一个恒定的温度。 (3)将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制。 (4)当系统出现故障,超出控制温度围时,自动蜂鸣报警。 1.1.2 扩展功能: (1)具有通信能力,可接收其他数据设备发来的命令,或将结果传送到其他数据设备。(2)采用适当的控制方法实现当设定温度或环境温度突变时,减小系统的调节时间和超调量。 (3)温度控制的静态误差。 1.2课题的任务及要求 一升水由800W的电热设备加热,要求水温可以在一定围由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。 (1)温度测量围:10~100℃,最小区分度不大于1℃。 (2)控制精度在0.2℃以,温度控制的静态误差小于1℃。 (3)用十进制数码管显示实际水温。

数据结构课程设计排序算法总结

排序算法: (1) 直接插入排序 (2) 折半插入排序(3) 冒泡排序 (4) 简单选择排序 (5) 快速排序(6) 堆排序 (7) 归并排序 【算法分析】 (1)直接插入排序;它是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好的序的有序表中,从而得到一个新的、记录数增加1的有序表。 (2)折半插入排序:插入排序的基本操作是在一个有序表中进行查找和插入,我们知道这个查找操作可以利用折半查找来实现,由此进行的插入排序称之为折半插入排序。折半插入排序所需附加存储空间和直接插入相同,从时间上比较,折半插入排序仅减少了关键字间的比较次数,而记录的移动次数不变。 (3)冒泡排序:比较相邻关键字,若为逆序(非递增),则交换,最终将最大的记录放到最后一个记录的位置上,此为第一趟冒泡排序;对前n-1记录重复上操作,确定倒数第二个位置记录;……以此类推,直至的到一个递增的表。 (4)简单选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之。 (5)快速排序:它是对冒泡排序的一种改进,基本思想是,通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 (6)堆排序: 使记录序列按关键字非递减有序排列,在堆排序的算法中先建一个“大顶堆”,即先选得一个关键字为最大的记录并与序列中最后一个记录交换,然后对序列中前n-1记录进行筛选,重新将它调整为一个“大顶堆”,如此反复直至排序结束。 (7)归并排序:归并的含义是将两个或两个以上的有序表组合成一个新的有序表。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为n的有序序列为止,这种排序称为2-路归并排序。 【算法实现】 (1)直接插入排序: void InsertSort(SqList &L){ for(i=2;i<=L.length ;i++) if(L.elem[i]L.elem[0];j--) L.elem [j+1]=L.elem [j]; L.elem [j+1]=L.elem[0]; } } (2)折半插入排序:

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

科学计算器课程设计报告C课程设计修订稿

科学计算器课程设计报告C课程设计 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

计算机科学与技术学部 C++课程设计 题目科学计算器 学部计算机科学与技术 班级计科1103 指导教师李军 姓名刘明 学号 2012年6月27日

摘要 计算器的产生和发展是建立在电子计算机基础之上的。硬件方面,自1946年第一台电子计算机诞生以来,计算机技术的发展可谓日新月异,从庞大的只能在实验室里供研究使用的计算机到如今能适应不同环境满足不同需求的各种各样的计算机;运算速度从每秒几千次到每秒几百亿次;处理器从焊有上百万个电子管的大的惊人的电子板到只有指甲大小的集成电路;现在计算机在硬件方面的发展已达到了每三个月更新换代一次的惊人速度。软件方面,也已从机器语言、汇编语言、高级语言发展到现如今的第四代语言——非结构化、面向对象、可视化的语言。 在这个计算器里面,我们实现了简单的四则运算以及更高功能的科学计算,它的外观简洁美观,使人们能快捷简单的操作。能准确的得到计算结果,大大减少了数字计算所需要的时间,为人们的生活带来便利。此系统在Windows 7环境下,使用VC++ 进行编写。 简单计算器包括双目运算和单目运算功能,双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,对数,开方,阶乘,倒数,进制转换等运算。可对其输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。并且包含清除,退格功能等。我们所做的计算器其功能较Windows 7下的计算器还是很不够多,没有其菜单的实现功能项,没有其小巧的标准计算器。 关键词:计算器;运算;VC++等

数据结构课程设计报告---几种排序算法的演示(附源代码)

数据结构课程设计报告 —几种排序算法的演示 时间:2010-1-14 一需求分析 运行环境 Microsoft Visual Studio 2005

程序所实现的功能 对直接插入排序、折半插入排序、冒泡排序、简单选择排序、快速排序、堆排序、归并排序算法的演示,并且输出每一趟的排序情况。 程序的输入(包含输入的数据格式和说明) <1>排序种类三输入 <2>排序数的个数的输入 <3>所需排序的所有数的输入 程序的输出(程序输出的形式) <1>主菜单的输出 <2>每一趟排序的输出,即排序过程的输出 二设计说明 算法设计思想 <1>交换排序(冒泡排序、快速排序) 交换排序的基本思想是:对排序表中的数据元素按关键字进行两两比较,如果发生逆序(即排列顺序与排序后的次序正好相反),则两者交换位置,直到所有数据元素都排好序为止。 <2>插入排序(直接插入排序、折半插入排序) 插入排序的基本思想是:每一次设法把一个数据元素插入到已经排序的部分序列的合适位置,使得插入后的序列仍然是有序的。开始时建立一个初始的有序序列,它只包含一个数据元素。然后,从这个初始序列出发不断插入数据元素,直到最后一个数据元素插到有序序列后,整个排序工作就完成了。 <3>选择排序(简单选择排序、堆排序)

选择排序的基本思想是:第一趟在有n个数据元素的排序表中选出关键字最小的数据元素,然后在剩下的n-1个数据元素中再选出关键字最小(整个数据表中次小)的数据元素,依次重复,每一趟(例如第i趟,i=1,…,n-1)总是在当前剩下的n-i+1个待排序数据元素中选出关键字最小的数据元素,作为有序数据元素序列的第i个数据元素。等到第n-1趟选择结束,待排序数据元素仅剩下一个时就不用再选了,按选出的先后次序所得到的数据元素序列即为有序序列,排序即告完成。 <4>归并排序(两路归并排序) 两路归并排序的基本思想是:假设初始排序表有n个数据元素,首先把它看成是长度为1的首尾相接的n个有序子表(以后称它们为归并项),先做两两归并,得n/2上取整个长度为2的归并项(如果n为奇数,则最后一个归并项的长度为1);再做两两归并,……,如此重复,最后得到一个长度为n的有序序列。 程序的主要流程图

计算器课程设计报告

高级语言程序(JAVA)课程设计报告 系部名称:商学系专业班级:营销*** 学生姓名:墨璇 墨兰学号: ********** ********** 指导教师:王芬教师职称:讲师 2014年06月26日

目录 一、课程设计目的及意义 .................................... 错误!未定义书签。 二、课程设计任务 .......................................... 错误!未定义书签。 2.1程序设计要求....................................... 错误!未定义书签。 三、课程设计时间 .......................................... 错误!未定义书签。 四、课程设计地点 .......................................... 错误!未定义书签。 五、课程设计内容 .......................................... 错误!未定义书签。 5.1开发工具与平台..................................... 错误!未定义书签。 (1).开发工具 ...................................... 错误!未定义书签。 (2).开发平台 ...................................... 错误!未定义书签。 5.2设计思路........................................... 错误!未定义书签。 5.3 程序测试 .......................................... 错误!未定义书签。 5.4实验总结........................................... 错误!未定义书签。 六、课程设计感想 .......................................... 错误!未定义书签。 七、附录(程序代码) ...................................... 错误!未定义书签。

大林算法控制系统设计

扬州大学能源与动力工程学院课程设计报告 题目:大林算法控制系统设计 课程:计算机控制技术课程设计 专业:电气工程及其自动化 班级: 姓名: 学号:

第一部分 任 务 书

《计算机控制技术》课程设计任务书 一、课题名称 大林算法控制系统设计 二、课程设计目的 课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。 《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。 三、课程设计内容 设计以89C51单片机和ADC 、DAC 等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。 1. 硬件电路设计:89C51最小系统加上模入电路(用ADC0809等)和模出电路(用TLC7528和运放等);由运放实现的被控对象。 2. 控制算法:大林控制算法。 3. 软件设计:主程序、中断程序、A/D 转换程序、滤波程序、大林算法控制程序、D/A 输出程序等。 四、课程设计要求 1. 模入电路能接受双极性电压输入(-5V~+5V ),模出电路能输出双极性电压(-5V~+5V )。 2. 模入电路用两个通道分别采集被控对象的输出和给定信号。 3. 每个同学选择不同的被控对象: 5 10 0.5 1.5(), ()(1)(0.81) (1)(0.41) s s G s e G s e s s s s --= = ++++8 8 10.5(), ()(0.81)(0.41)(0.41)(0.51) s s G s e G s e s s s s --==++++5 8 1.52(), ()(1)(0.21) (0.81)(0.21) s s G s e G s e s s s s --= = ++++ 5 5 12(), ()(0.81)(0.31) (0.81)(0.21) s s G s e G s e s s s s --= = ++++

数据结构 课程设计报告(排序算法比较)

数据结构课程设计报告 学院:计算机科学与工程 专业:计算机科学与技术 班级:09级班 学号: 姓名: 指导老师: 时间: 2010年12月

一、课程设计题目:1、哈夫曼编码的实现 2、城市辖区地铁线路设计 3、综合排序算法的比较 二、小组成员: 三、题目要求: 1.哈夫曼编码的实现 (1)打开若干篇英文文章,统计该文章中每个字符出现的次数,进一步统一各字符出现的概率。 (2)针对上述统计结果,对各字符实现哈夫曼编码 (3)对任意文章,用哈夫曼编码对其进行编码 (4)对任意文章,对收到的电文进行解码 2.某城市要在其各个辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要合理安排地铁的建设路线。 (1)从包含各辖区的地图文件中读取辖区的名称和各辖区的直接距离 (2)根据上述读入的信息,给出一种铺设地铁线路的解决方案。使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。 (3)输出应该建设的地铁路线及所需要建设的总里程信息。 3.综合排序算法的比较 各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概的执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动的次数。 (1)对以下各种常用的内部排序算法进行比较: 直接插入排序,折半插入排序,二路归并排序,希尔排序,冒泡排序,快速排序,简单选择排序,堆排序,归并排序,基数排序。 (2)待排序的表长不少于100,要求采用随机数。 (3)至少要用5组不同的输入数据做比较:比较的次数为有关键字参加的比较次数和关键字移动的次数 (4)改变数据量的大小,观察统计数据的变化情况。 (5)对试验统计数据进行分析。对各类排序算法进行综合评价。 四、项目安排: 1、小组内分工合作 分工:负责哈夫曼编码的实现,负责城市辖区地铁线路设计,负责综合排序算法的比较。 合作:组内,组外进行交流,组长帮助解决组员的在项目过程中的困难,并控制进度。 五、完成自己的任务:

计算方法课程设计

数理学院2014级信息与计算科学 课程设计 姓名:刘金玉 学号: 3141301240 班级: 1402 成绩:

实验要求 1.应用自己熟悉的算法语言编写程序,使之尽可能具有通用性。2.上机前充分准备,复习有关算法,写出计算步骤,反复检查,调试程序。(注:在练习本上写,不上交) 3.完成计算后写出实验报告,内容包括:算法步骤叙述,变量说明,程序清单,输出计算结果,结构分析和小结等。(注:具体题目 具体分析,并不是所有的题目的实验报告都包含上述内容!)4.独立完成,如有雷同,一律判为零分! 5.上机期间不允许做其他任何与课程设计无关的事情,否则被发现一次扣10分,被发现三次判为不及格!非特殊情况,不能请 假。旷课3个半天及以上者,直接判为不及格。

目录 一、基本技能训练 (4) 1、误差分析 (4) 2、求解非线性方程 (6) 3、插值 (12) 4、数值积分 (12) 二、提高技能训练 (16) 1、 (16) 2、 (18) 三、本课程设计的心得体会(500字左右) (21)

一、基本技能训练 1、误差分析 实验1.3 求一元二次方程的根 实验目的: 研究误差传播的原因与解决对策。 问题提出:求解一元二次方程20ax bx c ++= 实验内容: 一元二次方程的求根公式为 1,22b x a -+= 用求根公式求解下面两个方程: 2210(1)320(2)1010 x x x x +-=-+= 实验要求: (1) 考察单精度计算结果(与真解对比); (2) 若计算结果与真解相差很大,分析其原因,提出新的算法(如先求1x 再 根据根与系数关系求2x )以改进计算结果。 实验步骤: 方程(1): 根据求根公式,写出程序: format long a=1;b=3;c=-2; x1=((-1)*b+sqrt(b^2-4*a*c))/2*a x2=((-1)*b-sqrt(b^2-4*a*c))/2*a

计算机技术综合课程设计报告

计算机技术综合课程设计 设计题目锅炉液位控制系统学生姓名史婷艳 专业班级自动化1302班学号20134460203 指导老师洪镇南 2017年1 月3日

目录 前言 (2) 1 锅炉汽包水位控制对象与控制指标 (4) 1.1锅炉汽包水位的特征 (4) 1.2汽包水位动态特性 (4) 1.2.1汽包水位在给水流量W作用下的动态特性 (4) 1.2.2汽包水位在蒸汽流量D扰动下的动态特性 (5) 1.2.3燃料量B扰动下汽包水位的动态特性 (6) 2. 汽包水位控制方案 (7) 2.1单冲量控制方式 (7) 2.2 双冲量控制方式 (8) 2.3 三冲量控制方式 (9) 3. 三冲量串级PID控制 (11) 3.1 串级PID控制 (11) 3.2 智能整定PID控制 (12) 4 汽包水位模糊控制器设计及仿真 (12) 4.1 输入输出变量 (12) 4.2 隶属度函数 (15) 4.3基于MATLAB/Simulink 环境建立的系统仿真分析 (16) 4.3.1 基于MATLAB/Simulink 的系统模型 (16)

4.3.2 仿真结果分析 (18) 总结与体会 (18) 参考文献 (20) 前言 锅炉是典型的复杂热工系统,目前,中国各种类型的锅炉有几十万台,由于设备分散、管理不善或技术原因,使大多数锅炉难以处于良好工况,增加了锅炉的燃料消耗,降低了效率。同时,锅炉工作过程中各项指标的调节难以建立数学模型,具有非线性、不稳定性、时滞等特点,所以如何改善对锅炉的控制,保证其正常工作,提高效率一直是人们关注的焦点。而汽包液位是锅炉安全、稳定运行的重要指标,保证液位在给定范围内,对于高蒸汽品质、减少设备损耗和运行损耗、确保整个网络安全运行具有要意义。 现代锅炉的特点之一就是蒸发量显著提高,汽包容积相对变小,水位变化速度很快,稍不注意就容易造成汽包满水或者烧成干锅,这都对汽包液位控制系统提出了更高的要求。汽包液位过高,会影响汽包内汽液分离效果,使汽包出口的饱和蒸汽带水增多,蒸汽带水会使汽轮机产生水冲击,引起轴封破损、叶片断裂等事故。同时会使饱和蒸汽中含盐量增高,降低过热蒸汽品质,增加在过热器管壁和汽轮机叶片上的结垢。水位过低,则可能破坏自然循环锅炉汽水循环系统中某些薄弱环节,以致局部水冷管壁被烧坏,严重时会造成爆炸事故。 目前,对汽包液位位控制大多采用常规PID控制方式,从控制方式来看,它们要么系统结构简单成本低,不能有效的控制锅炉汽包“虚假水位”现象,要么能够在一定程度上控制“虚假现象”,系统却过于复杂,成本投入过大。常用的蒸汽锅炉液位调节系统有三种基本结构:单冲量调节系统结构、双冲量调节系统结构、串级三冲量调节系统结

控制系统的极点配置设计法

控制系统的极点配置设计法 一、极点配置原理 1.性能指标要求 2.极点选择区域 主导极点: n s t ζω 4 = ;当Δ=0.02时,。 n s t ζω 3 = 当Δ=0.05时,

3.其它极点配置原则 系统传递函数极点在s 平面上的分布如图(a )所示。极点s 3距虚轴距离不小于共轭复数极点s 1、s 2距虚轴距离的5倍,即n s s ξω5Re 5Re 13=≥(此处ξ,n ω对应于极点s 1、s 2) ;同时,极点s 1、s 2的附近不存在系统的零点。由以上条件可算出与极点s 3所对应的过渡过程分量的调整时间为 135 1 451s n s t t =?≤ ξω 式中1s t 是极点s 1、s 2所对应过渡过程的调整时间。 图(b )表示图(a )所示的单位阶跃响应函数的分量。由图可知,由共轭复数极点s 1、s 2确定的分量在该系统的单位阶跃响应函数中起主导作用,即主导极点。因为它衰减得最慢。其它远离虚轴的极点s 3、s 4、s 5 所对应的单位阶跃响应衰减较快,它们仅在极短时间内产生一定的影响。因此,对系统过渡过程进行近似分析时。可以忽略这些分量对系统过渡过程的影响。 n x o (t) (a ) (b ) 系统极点的位置与阶跃响应的关系

二、极点配置实例 磁悬浮轴承控制系统设计 1.1磁悬浮轴承系统工作原理 图1是一个主动控制的磁悬浮轴承系统原理图。主要由被悬浮转子、传感器、控制器和执行器(包括电磁铁和功率放大器)四大部分组成。设电磁铁绕组上的电流为I0,它对转子产生的吸力F和转子的重力mg相平衡,转子处于悬浮的平衡位置,这个位置称为参考位置。 (a)(b) 图1 磁悬浮轴承系统的工作原理 Fig.1 The magnetic suspension bearing system principle drawing 假设在参考位置上,转子受到一个向下的扰动,转子就会偏离其参考位置向下运动,此时传感器检测出转子偏离其参考位置的位移,控制器将这一位移信号变换成控制信号,功率放大器又将该控制信号变换成控制电流I0+i,控制电流由I0增加到I0+i,因此,电磁铁的吸力变大了,从而驱动转子返回到原来的平衡位置。反之,当转子受到一个向上的扰动并向上运动,此时控制器使得功率放大器的输出电流由I0,减小到I0-i,电磁铁的吸力变小了,转子也能返回到原来的平衡位置。因此,不论转子受到向上或向下的扰动,都能回到平衡状态。这就是主动磁轴承系统的工作原理。即传感器检测出转子偏移参考点的位移,作为控制器的微处理器将检测到的位移信号变换成控制信号,然后功率放大器将这一控制信号转换成控制电流,控制电流在执行磁铁中产生磁力从而使转子维持其悬浮位置不变。悬浮系统的刚

相关文档
最新文档