应用程序设计与实现技术_第1页
应用程序设计与实现技术_第2页
应用程序设计与实现技术_第3页
应用程序设计与实现技术_第4页
应用程序设计与实现技术_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LOGO 计算机控制技术 COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY第第6章章 应用程序设计与实现技术应用程序设计与实现技术 软件是工业控制机的程序系统,它可分为系软件是工业控制机的程序系统,它可分为系统软件、支持软件和应用软件三部分,各部分的统软件、支持软件和应用软件三部分,各部分的含义和功能已在第一章的含义和功能已在第一章的1.2.1节中作了介绍,节中作了介绍,本章只介绍应用软件有关的技术问题。所谓应用本章只介

2、绍应用软件有关的技术问题。所谓应用软件就是面向控制系统本身的程序,它是根据系软件就是面向控制系统本身的程序,它是根据系统的具体要求,由用户自己设计的。在进行计算统的具体要求,由用户自己设计的。在进行计算机控制系统设计时,大量的工作就是如何根据各机控制系统设计时,大量的工作就是如何根据各个生产过程的实际需要设计应用程序。个生产过程的实际需要设计应用程序。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 一个完整的程序设计过程一个完整的程序设计过程可以用图可以用图6.1来说明。首先要来说明。首先要分

3、析用户的要求,这大约占整分析用户的要求,这大约占整个程序设计工作量的个程序设计工作量的10%;然;然后编写程序的说明,这大约也后编写程序的说明,这大约也占占10%;接着进行程序的设计;接着进行程序的设计与编码几乎各占与编码几乎各占15%;最后进;最后进行测试和调试,这要花费整个行测试和调试,这要花费整个程序设计工作量的程序设计工作量的40%以上。以上。 程序设计的首要一步,就程序设计的首要一步,就是要把程序承担的各项任务明是要把程序承担的各项任务明确地定义出来。设计者往往同确地定义出来。设计者往往同时在几个步骤上进行设计,如时在几个步骤上进行设计,如手编程序、查错、文件编制等手编程序、查错、文

4、件编制等可能同时进行可能同时进行 2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 v 6.1.1 模块化与结构化程序设计模块化与结构化程序设计v 1.模块化程序设计模块化程序设计 模块化程序设计的出发点是把一个复杂的系统软件,分解为若干个功能模块化程序设计的出发点是把一个复杂的系统软件,分解为若干个功能模块,每个模块执行单一的功能,并且具有单入口单出口结构。模块化程序模块,每个模块执行单一的功能,并且具有单入口单出口结构。模块化程序设计的传统方法是建立在把系统功能分解为程序过程或宏指令的基础上

5、。但设计的传统方法是建立在把系统功能分解为程序过程或宏指令的基础上。但在很大的系统里,这种分解往往导致大量过程,这些过程虽然容易理解,但在很大的系统里,这种分解往往导致大量过程,这些过程虽然容易理解,但却有复杂的内部依赖关系,因此带来一些问题不好解决。却有复杂的内部依赖关系,因此带来一些问题不好解决。v (1)自底向上模块化设计)自底向上模块化设计 首先对最低层模块进行编码、测试、和调试。这些模块正常工作后,就首先对最低层模块进行编码、测试、和调试。这些模块正常工作后,就可以用它们来开发较高层的模块。例如,在编主程序前,先开发各个子程序,可以用它们来开发较高层的模块。例如,在编主程序前,先开发

6、各个子程序,然后,用一个测试用的主程序来测试每一个子程序。这种方法是汇编语言设然后,用一个测试用的主程序来测试每一个子程序。这种方法是汇编语言设计常用的方法。计常用的方法。v (2)自顶向下模块化设计)自顶向下模块化设计 首先对最高层进行编码、测试和调试。为了测试这些最高层模块,可以首先对最高层进行编码、测试和调试。为了测试这些最高层模块,可以用用“结点结点”来代替还未编码的较低层模块,这些来代替还未编码的较低层模块,这些“结点结点”的输入和输出满足的输入和输出满足程序的说明部分要求,但功能少得多。该方法一般适合用高级语言来设计程程序的说明部分要求,但功能少得多。该方法一般适合用高级语言来设计

7、程序。序。 在自底向上开发中,高层模块设计中的根本错误也许要很晚才能发现。在自底向上开发中,高层模块设计中的根本错误也许要很晚才能发现。在自顶向下开发中,程序大小和性能往往要开发关键性的低层模块时才会表在自顶向下开发中,程序大小和性能往往要开发关键性的低层模块时才会表现出来。实际工作中,最好使用两种方法结合起来。先开发高层模块和关键现出来。实际工作中,最好使用两种方法结合起来。先开发高层模块和关键性低层模块,并用性低层模块,并用“结点结点”来代替以后开发的不太重要的模块。来代替以后开发的不太重要的模块。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIAN

8、G UNIVERSITY6.1 程序设计技术程序设计技术 v 2.结构化程序设计结构化程序设计 1966的的BohmC和和JacopiniG 证明了只用三种基本的控制结构就能实证明了只用三种基本的控制结构就能实现任何单入口单出口的程序。这三种基本的控制结构是现任何单入口单出口的程序。这三种基本的控制结构是“顺序顺序”、“选择选择”、“循环循环”,它们的流程图分别为图,它们的流程图分别为图6.2中的(中的(a)、()、(b)、()、(c)。)。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 实际

9、上用顺序结构和循环结构(又称实际上用顺序结构和循环结构(又称DO-WHILE结结构)完全可以实现选择结构(又称构)完全可以实现选择结构(又称IF-THEN-EILSE结结构),因此理论上最基本的控制结构只有两种。构),因此理论上最基本的控制结构只有两种。Bohm和和Jacopini的证明给结构化程序设计技术奠定了基础。的证明给结构化程序设计技术奠定了基础。 结构化程序设计是一种程序设计技术,它采用自顶向结构化程序设计是一种程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。关于下逐步求精的设计方法和单入口单出口的控制结构。关于逐步求精方法逐步求精方法Niklaus Wirt

10、h曾作过如下说明:曾作过如下说明:“我们我们对付复杂问题的最重要的办法是抽象,因此,对一个复杂对付复杂问题的最重要的办法是抽象,因此,对一个复杂的问题不应该立即用计算机指令、数字和逻辑符号来表示,的问题不应该立即用计算机指令、数字和逻辑符号来表示,而应该用较自然的抽象语句来表示,从而得出抽象程序。而应该用较自然的抽象语句来表示,从而得出抽象程序。抽象程序对程序作进一步的分解,并进入下一个抽象层次,抽象程序对程序作进一步的分解,并进入下一个抽象层次,这样的精细化过程一直进行下去,直到程序被计算机接受这样的精细化过程一直进行下去,直到程序被计算机接受为止。这时的程序可能是用某种高级语言或机器指令书

11、写为止。这时的程序可能是用某种高级语言或机器指令书写的。的。”2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 在总体设计阶段采用自顶向下逐步求精的方法,可以在总体设计阶段采用自顶向下逐步求精的方法,可以把一个复杂问题的解法分解和细化成一个由许多模块组成把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。在详细设计或编码阶段采用自顶的层次结构的软件系统。在详细设计或编码阶段采用自顶向下逐步求精的方法,可以把一个模块的功能逐步分解细向下逐步求精的方法,可以把一个模块的功能逐步分

12、解细化为一系列具体的处理步骤或某种高级语言的语句。化为一系列具体的处理步骤或某种高级语言的语句。 程序设计通常分为五个步骤,即问题定义、程序设程序设计通常分为五个步骤,即问题定义、程序设计、编码、调试、改进和再设计。问题定义阶段是要明确计、编码、调试、改进和再设计。问题定义阶段是要明确计算机完成哪些任务、执行什么程序,决定输入输出的形计算机完成哪些任务、执行什么程序,决定输入输出的形式,与接口硬件电路的连接配合以及出错处理方法;程序式,与接口硬件电路的连接配合以及出错处理方法;程序设计是利用程序对任务作出描述,使用的方法有模块程序设计是利用程序对任务作出描述,使用的方法有模块程序设计法和结构化

13、程序设计法;编码是程序设计人员选取一设计法和结构化程序设计法;编码是程序设计人员选取一种适当的高级(或汇编)语言,书写程序;调试就是利用种适当的高级(或汇编)语言,书写程序;调试就是利用各种测试方法检查程序的正确性;改进和再设计是根据调各种测试方法检查程序的正确性;改进和再设计是根据调试中的问题对原设计作修改,并对程序进行改进设计和补试中的问题对原设计作修改,并对程序进行改进设计和补充。充。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 v 6.1.2 高级语言与汇编语言混合编程高级语言与汇编

14、语言混合编程v 1.汇编语言编程汇编语言编程 用汇编语言编写的程序,比用高级语言编写的程序执行速度要快,且要用汇编语言编写的程序,比用高级语言编写的程序执行速度要快,且要求的硬件也少。以求的硬件也少。以PC总线工业控制机访问总线工业控制机访问I/O端口的编程为例,我们来说端口的编程为例,我们来说明其程序实现的方法,明其程序实现的方法,I/O端口的操作主要是输入指令端口的操作主要是输入指令IN(输入字节或字)(输入字节或字)和输出指令和输出指令OUT(输出字节或字)。(输出字节或字)。例如:例如: IN AX,210H MOV DX,220H IN AL,DX 第一条指令是将地址为第一条指令是将

15、地址为210H的端口的的端口的16位二进制数据输入到累加器位二进制数据输入到累加器AX中,地二条和第三条指令是将地址为中,地二条和第三条指令是将地址为220H的端口的的端口的8位二进制数输入到位二进制数输入到AL中。中。又如:又如: MOV DX,230H MOV AX,3435H OUT DX,AX MOV AL,26H OUT 240H,AL 第一条至第三条指令是将二字节数第一条至第三条指令是将二字节数3435H输出到端口输出到端口230H的外设中,的外设中,第四条和第五条指令是将单字节数第四条和第五条指令是将单字节数26H输出到端口输出到端口240H的外设中。的外设中。2006COLLE

16、GE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 v 2.高级语言编程高级语言编程 对于对于PC总线工业控制机,我们以总线工业控制机,我们以Microsoft C/C+7.0为例为例来说明其访问来说明其访问I/O端口的编程。端口的编程。Microsoft C/C+7.0通常通常 有库有库函数,允许直接访问函数,允许直接访问I/O端口,头文件端口,头文件中定义了中定义了I/O端口例程。端口例程。_inp和和_outp分别从指定端口读一个字节数据和向指定分别从指定端口读一个字节数据和向指定端口写一个字节数据,端口写一

17、个字节数据,_inpw和和_outpw分别从指定端口读一个字分别从指定端口读一个字数据和向指定端口写一个字数据。数据和向指定端口写一个字数据。例:例: A1=_inpw(0 x210) A2=_inp(0 x220) 第一条指令表示将端口第一条指令表示将端口210H的的16位二进制数(一个字)输入位二进制数(一个字)输入给变量给变量A1,第二条指令表示将端口,第二条指令表示将端口220H的的8位二进制数(一个字节)位二进制数(一个字节)输入给变量输入给变量A2。在。在C语言中,语言中,0 x起头的是起头的是16进制数。进制数。又如:又如: _outpw(0 x230,0 x3435) _out

18、p(0 x240,0 x26) 第一条指令表示二字节数第一条指令表示二字节数3435H输出到端口输出到端口230H中,第二条中,第二条指令表示将单字节数指令表示将单字节数26H输出到端口输出到端口240H中。详细内容请参阅中。详细内容请参阅Microsoft C/C+7.0方面的资料。方面的资料。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 v3.高级语言与汇编语言混合编程高级语言与汇编语言混合编程 如何发挥汇编语言实时功能强,而高级语言运算能力强的优点,便成为计算机控如何发挥汇编语言实时功

19、能强,而高级语言运算能力强的优点,便成为计算机控制系统软件设计中一个使人感兴趣的问题。实际使用中,常常采用高级语言与汇编语制系统软件设计中一个使人感兴趣的问题。实际使用中,常常采用高级语言与汇编语言混合编程的方法,即用高级语言编写计算、图形绘制、显示、打印程序等,用汇编言混合编程的方法,即用高级语言编写计算、图形绘制、显示、打印程序等,用汇编语言编写时钟管理、中断管理和输入输出程序等。语言编写时钟管理、中断管理和输入输出程序等。v(1)内联的汇编环境)内联的汇编环境 内联的汇编语句可以直接出现在内联的汇编语句可以直接出现在Microsoft C/C+程序中,因此,对这些语句程序中,因此,对这些

20、语句来说,来说,C语言程序是外部环境。在正确地使用内联汇编语言之前,必须知道两件事情。语言程序是外部环境。在正确地使用内联汇编语言之前,必须知道两件事情。第一,必须知道如何编译一个包括内联汇编语言的第一,必须知道如何编译一个包括内联汇编语言的C语言程序。第二,必须知道在内语言程序。第二,必须知道在内联语句中,什么事能做和什么事不能做。在联语句中,什么事能做和什么事不能做。在C/C+源程序中,可以直接把汇编程序源程序中,可以直接把汇编程序的语句插入特殊的的语句插入特殊的_asm语句中。语句中。Microsoft C/C+编译程序有一个特殊的内联汇编译程序有一个特殊的内联汇编程序,它允许在编程序,

21、它允许在C语言代码中间写汇编语言例程,内联汇编程序是语言代码中间写汇编语言例程,内联汇编程序是Microsoft 汇编汇编功能的子集。功能的子集。v(2)_asm关键字关键字 为了直接在为了直接在C语言程序中插入内联汇编语句,要在语句的开头使用语言程序中插入内联汇编语句,要在语句的开头使用_asm关键字。关键字。下面给出几种不同方式的下面给出几种不同方式的_asm语句:语句:v _asm assembly statementv _asm assembly statement _asm assembly statementv _asmv Assembly statement; assemblt

22、statementv v Assembly statementv 2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.1 程序设计技术程序设计技术 v(3) C语言和汇编语言混合编程语言和汇编语言混合编程 当在程序中写内联汇编语句中,对存储模式和指针的空间大小必须加倍小心。当当在程序中写内联汇编语句中,对存储模式和指针的空间大小必须加倍小心。当混合使用混合使用C语言和汇编程序时,必须时刻考虑到程序段的安排和指针空间大小。下面语言和汇编程序时,必须时刻考虑到程序段的安排和指针空间大小。下面给出一段程序例子,说明存储模型的依赖关系

23、和给出一段程序例子,说明存储模型的依赖关系和_asm关键字的使用。关键字的使用。v #includev #includev Void increment(int*arg)v v _asmv Mov si,bp+4v Mov ax,siv Inc axv Mov si,axv v Void main()v v Int j=3;v Printf(“Initial value was %d/n”,j);v Increment(&j);v Printf(“New value is %d/n”,j);v 2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UN

24、IVERSITY6.1 程序设计技术程序设计技术 函数函数increment的作用是给作为参数传递的增量加的作用是给作为参数传递的增量加1。因为参数。因为参数arg是一个指针值,所以汇编代码必须把地是一个指针值,所以汇编代码必须把地址值装载到址值装载到si寄存器上,并且接着把寄存器上,并且接着把si指向的值装入指向的值装入ax中。当一个函数被调用时,调用例程把函数的参数压中。当一个函数被调用时,调用例程把函数的参数压入堆栈,汇编语言调用指令,接着把返回的地址压入堆栈。入堆栈,汇编语言调用指令,接着把返回的地址压入堆栈。 在进入一个汇编语言例程之处,在进入一个汇编语言例程之处,BP寄存器指向堆栈

25、寄存器指向堆栈上名为上名为stack frame(栈结构)的域。汇编代码必须通(栈结构)的域。汇编代码必须通过用过用BP寄存器的偏移字节,来访问函数参数,从而取得寄存器的偏移字节,来访问函数参数,从而取得对函数参数的访问。因此,语句:对函数参数的访问。因此,语句:mov si,bp+4 把存储地址把存储地址bp+4的值拷贝给的值拷贝给si。地址是在。地址是在si中,它中,它用来访问参数的值。这个值被增加后,接着存回到增量的用来访问参数的值。这个值被增加后,接着存回到增量的地址上去。标记地址上去。标记bp+4只用一个只用一个near过程的汇编例过程的汇编例行程序。对于一个行程序。对于一个far过

26、程,则使用过程,则使用bp+6。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.4 数字控制器的工程实现v 数字控制器的算法程序可被所有的控制回路公用,只是各控制回数字控制器的算法程序可被所有的控制回路公用,只是各控制回路提供的原始数据不同。因此,必须为每个回路提供一段内存数据区路提供的原始数据不同。因此,必须为每个回路提供一段内存数据区(即线性表),以便存放参数。既然数字控制器是公共子程序,那就(即线性表),以便存放参数。既然数字控制器是公共子程序,那就应该在设计时,不许考虑各种工程实际问题,并含有多种功能,以便应该在设

27、计时,不许考虑各种工程实际问题,并含有多种功能,以便用户选择。数字控制器算法的工程实现可分为用户选择。数字控制器算法的工程实现可分为6部分,如图部分,如图6.18所所示。另外,为了便于数字控制器的操作显示,通常给每个数字控制器示。另外,为了便于数字控制器的操作显示,通常给每个数字控制器配置一个回路操作显示器,它与模拟的调节器的面板操作显示相类似。配置一个回路操作显示器,它与模拟的调节器的面板操作显示相类似。下面以数字下面以数字PID控制器为例来说明数字控制器的工程实现。控制器为例来说明数字控制器的工程实现。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJI

28、ANG UNIVERSITY6.4 数字控制器的工程实现v 6.4.1给定值和被控量处理给定值和被控量处理v 1.给定值处理给定值处理v 给定值处理包括选择给定值给定值处理包括选择给定值SV和给定值变化率限制和给定值变化率限制SR两部分,如图两部分,如图6.19所示。通过选择软开关所示。通过选择软开关CL/CR,可以构成内给定状态和外给定可以构成内给定状态和外给定状态;通过选择软开关状态;通过选择软开关CAS/SCC,可以构成串级控制或可以构成串级控制或SCC控制。控制。v (1)内给定状态)内给定状态v 当软开关当软开关CL/CR切向切向CL位置时,选择操作员设置的给定值位置时,选择操作员设

29、置的给定值SVL。这这时系统处于单回路控制的内给定状态,利用给定值键可以改变给定值。时系统处于单回路控制的内给定状态,利用给定值键可以改变给定值。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.4 数字控制器的工程实现v (2)外给定状态)外给定状态v 当软开关当软开关CL/CR切向切向CR位置时,给定值来自上位计算机、主回路或运算模位置时,给定值来自上位计算机、主回路或运算模块。这时系统处于外给定状态。在此状态下,可以实现以下两种控制方式。块。这时系统处于外给定状态。在此状态下,可以实现以下两种控制方式。v 1.SCC控

30、制控制v 当软开关当软开关CAS/SCC切向切向SCC位置时,接受来自上位计算机的给定值位置时,接受来自上位计算机的给定值SVS,以便实现二级计算机控制。以便实现二级计算机控制。v 2.串级控制串级控制v 当软开关当软开关CAS/SCC切向切向CAS位置时,给定值位置时,给定值SVS来自主调节模块,实现串来自主调节模块,实现串级控制。级控制。v (3)给定值变化率限制)给定值变化率限制v 为了减少给定值突变对控制系统的扰动,防止比例、微分饱和,以实现平稳为了减少给定值突变对控制系统的扰动,防止比例、微分饱和,以实现平稳控制,需要对给定值的变化率控制,需要对给定值的变化率SR加以限制。变化率的选

31、取要适中,过小会使加以限制。变化率的选取要适中,过小会使响应变慢,过大则达不到限制的目的。响应变慢,过大则达不到限制的目的。v 综上所述,在给定值处理框图综上所述,在给定值处理框图6.19中,共具有中,共具有3个输入量个输入量(SVL,SVC,SVS),2个输出量(个输出量(SV,CSV),2个开关量个开关量(CL/CR,CAS/SCC),1个变化量(个变化量(SR)。)。为了便于为了便于PID控制程序调用控制程序调用这些量,需要给每个这些量,需要给每个PID控制模块提供一段内存数据区,来存储以上变量。控制模块提供一段内存数据区,来存储以上变量。2006COLLEGE OF ELECTRICA

32、L ENGINEERING, ZHEJIANG UNIVERSITY6.4 数字控制器的工程实现v2.被控量处理被控量处理v为了安全运行,需要对被控量为了安全运行,需要对被控量PV进行上下限报警处理,其原理图如图进行上下限报警处理,其原理图如图6.20所示,即所示,即v 当当PVPH(上限值)时,则上限报警状态(上限值)时,则上限报警状态(PHA)为为“1”;v 当当PVDL时,则偏差报警状态时,则偏差报警状态DLA为为“1”。v 3.输入补偿输入补偿v 根据输入补偿方式根据输入补偿方式ICM状态,决定偏差状态,决定偏差DVC与输入补偿量与输入补偿量ICV之间的关之间的关系,即系,即v 当当I

33、CM0,代表无补偿,此时代表无补偿,此时CDV=DVC;v 当当ICM=1,代表加补偿,此时代表加补偿,此时CDV=DVC+ICV;v 当当ICM=2,代表减补偿,此时代表减补偿,此时CDV=DVC-ICV;v 当当ICM=4,代表置换补偿,此时代表置换补偿,此时CDV=ICV。v 利用加,减输入补偿,可以分别实现前馈控制和纯滞后补偿(利用加,减输入补偿,可以分别实现前馈控制和纯滞后补偿(Smith)控制。控制。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.4 数字控制器的工程实现v 4.非线性特性非线性特性v 为了实现

34、非线性为了实现非线性PID控制或带死区的控制或带死区的PID控制,设置了非线性区控制,设置了非线性区-A至至+A和和非线性增益非线性增益K,非线性特性如图非线性特性如图6.22所示。即所示。即v 当当K=0时,则为带死区的时,则为带死区的PID控制;控制;v 当当0K1时,则为非线性时,则为非线性PID控制;控制;v 当当K=1时,则为正常的时,则为正常的PID控制。控制。v 偏差处理数据区共存放偏差处理数据区共存放1个输入补偿量个输入补偿量ICV,2个输出量个输出量DLA和和CDV,2个个状态量状态量D/R和和ICM,以及以及4个参数个参数DL,-A,+A和和K。2006COLLEGE OF

35、 ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.4 数字控制器的工程实现v6.4.3 控制算法的实现控制算法的实现v 在自动状态下,需要进行控制计算,即按照各种控制算法的差分方程,计算控制量在自动状态下,需要进行控制计算,即按照各种控制算法的差分方程,计算控制量U,并进行上,下限限幅处理,如图并进行上,下限限幅处理,如图6.23所示。以所示。以PID控制算法为例,当软开关控制算法为例,当软开关DV/PV切向切向DV位置时,则选用偏差微分方式;当软开关位置时,则选用偏差微分方式;当软开关DV/PV切向切向PV位置时,则位置时,则选用测量(即被控量)微分

36、方式。选用测量(即被控量)微分方式。v 在在PID计算数据区,不仅要存放计算数据区,不仅要存放PID参数(参数(KP或或,TI,TD)和采样周期和采样周期T,还要还要存放微分方式存放微分方式DV/PV,积分分离值积分分离值,控制量上限限值控制量上限限值MH和下限限值和下限限值ML,以及控以及控制量制量UK 。为了进行递推运算,还应保存历史数据,如为了进行递推运算,还应保存历史数据,如e(k-1),e(k-2)和和u(k-1)。v6.4.4 控制量处理控制量处理v 一般情况下,在输出控制量一般情况下,在输出控制量UK以前,还应经过图以前,还应经过图6.24所示的各项处理和判断,以所示的各项处理和

37、判断,以便扩展控制功能,实现安全平稳操作。便扩展控制功能,实现安全平稳操作。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.4 数字控制器的工程实现v1.输出补偿输出补偿v 根据输出补偿方根据输出补偿方OCM的状态,决定控制量的状态,决定控制量UK与输出补偿量与输出补偿量OCV之间的关系,之间的关系,v即即 当当OCM=0,代表无补偿,此时代表无补偿,此时UC=UK;v 当当OCM=1,代表加补偿,此时代表加补偿,此时UC=UK+OCV;v 当当OCM=2,代表减补偿,此时代表减补偿,此时UC=UK-OCV;v 当当OCM

38、=3,代表置换补偿,此时代表置换补偿,此时UC=OCV。v 利用输出和输入补偿,可以扩大实际应用范围,灵活组成复杂的数字控制器,以便利用输出和输入补偿,可以扩大实际应用范围,灵活组成复杂的数字控制器,以便组成复杂的自动控制系统。组成复杂的自动控制系统。v2.变化率限制变化率限制v 为了实现平稳操作,需要对控制量的变化率为了实现平稳操作,需要对控制量的变化率MR加以限制。变化率的选取要适中,加以限制。变化率的选取要适中,过小会使操作缓慢,过大则达不到限制的目的。过小会使操作缓慢,过大则达不到限制的目的。v3.输出保持输出保持v 当软开关当软开关FH/NH切向切向NH位置时,现时刻的控制量位置时,

39、现时刻的控制量u(k)等于前一时刻的控制量等于前一时刻的控制量u(k-1),也就是说,输出控制量保持不变。当软开关也就是说,输出控制量保持不变。当软开关FH/NH切向切向FH位置时,又恢位置时,又恢复正常输出方式。软开关复正常输出方式。软开关FH/NH状态一般来自系统安全报警开关。状态一般来自系统安全报警开关。v4.安全输出安全输出v 当软开关当软开关FS/NS切向切向NS位置时,现时刻的控制量等于预置的安全输出量位置时,现时刻的控制量等于预置的安全输出量MS。当当软开关软开关FS/NS切向切向FS位置时,又恢复正常输出方式。软开关位置时,又恢复正常输出方式。软开关FS/NS状态一般来自系状态

40、一般来自系统安全报警开关。统安全报警开关。v 控制量处理数据区需要存放输出补偿量控制量处理数据区需要存放输出补偿量OCV和补偿方式和补偿方式OCM,变化率限制值变化率限制值MR,软开关软开关FH/NH和和FS/NS,安全输出量安全输出量MS,以及控制量以及控制量CMV。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.6 软件抗干扰技术软件抗干扰技术 为了提高工业控制系统的可靠性,仅靠硬件抗干扰措施是不够的,需要为了提高工业控制系统的可靠性,仅靠硬件抗干扰措施是不够的,需要进一步借助于软件措施来克服某些干扰。在计算机控制系统

41、中,如能正确地进一步借助于软件措施来克服某些干扰。在计算机控制系统中,如能正确地采用软件抗干扰措施,与硬件抗干扰措施构成双道抗干扰防线,无疑将大大采用软件抗干扰措施,与硬件抗干扰措施构成双道抗干扰防线,无疑将大大提高工业控制系统的可靠性。经常采用的软件抗干扰技术是数字滤波技术、提高工业控制系统的可靠性。经常采用的软件抗干扰技术是数字滤波技术、开关量的软件抗干扰技术、指令冗余技术、软件陷阱技术等。下面分别加以开关量的软件抗干扰技术、指令冗余技术、软件陷阱技术等。下面分别加以介绍。介绍。v 6.6.1 数字滤波技术数字滤波技术 一般微机应用系统的模拟输入信号中,均含有种种噪音和干扰,它们来一般微机

42、应用系统的模拟输入信号中,均含有种种噪音和干扰,它们来自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪音和干扰。噪音有两大类:一类为周期性的;另一类为消除被测信号中的噪音和干扰。噪音有两大类:一类为周期性的;另一类为不规则的。前者的典型代表为不规则的。前者的典型代表为50HZ的工频干扰。对于这类信号,采用积分的工频干扰。对于这类信号,采用积分时间等于时间等于20ms的整数倍的双积分的整数倍的双积分A/D转换器,可有效地消除其影响。后者转换器,可有效地消除其影响。后者为随机信号,它不是周期信号。

43、对于随机干扰,我们可以用数字滤波方法予为随机信号,它不是周期信号。对于随机干扰,我们可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰在以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰在有用信号中的比重。故实质上它是一种程序滤波。数字滤波克服了模拟滤波有用信号中的比重。故实质上它是一种程序滤波。数字滤波克服了模拟滤波器的不足,它与模拟滤波器相比,有以下几个优点:器的不足,它与模拟滤波器相比,有以下几个优点:v 数字滤波是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。数字滤波是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。v

44、数字滤波可以对频率很低(如数字滤波可以对频率很低(如0.01HZ)的信号实现滤波,克服了模拟滤波)的信号实现滤波,克服了模拟滤波器的缺陷。器的缺陷。v 数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。活、方便、功能强的特点。数字滤波在微机应用系统中得到了广泛的应用。数字滤波在微机应用系统中得到了广泛的应用。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.6 软件抗干扰技术软件抗干扰技术 v1.算术平均值法算术平均值法

45、 第术平均值法是要按输入的第术平均值法是要按输入的N个采样为数据个采样为数据xi(i=1N),寻找这样一个,寻找这样一个y,使,使y与与各采样值间的偏差的平方和为最小,使:各采样值间的偏差的平方和为最小,使: (6.6.1) 由一元函数求极值原理可得:由一元函数求极值原理可得: (6.6.2) 这时,可满足式(这时,可满足式(6.6.1)。式()。式(6.6.2)即是算术平均值的算法。)即是算术平均值的算法。 设第二次测量的测量值包括信号成分设第二次测量的测量值包括信号成分si和噪音成分和噪音成分ci,则进行,则进行N次测量信号成分之次测量信号成分之和为:和为: (6.6.3) 噪音的强度是用

46、均方根来衡量的,当噪音为随机信号时,进行噪音的强度是用均方根来衡量的,当噪音为随机信号时,进行N次测量的噪音强次测量的噪音强度之和为:度之和为: (6.6.4) 上二式中,上二式中,s、C分别表示进行分别表示进行N次测量后信号和噪音的平均幅度。次测量后信号和噪音的平均幅度。 这样对这样对N次测量进行算术平均后的信噪比为:次测量进行算术平均后的信噪比为: (6.6.5) 式中式中S/C是求算术平均值前的信噪比。因此采用算术平均值法后,使信噪比提高是求算术平均值前的信噪比。因此采用算术平均值法后,使信噪比提高了了N1/2倍。倍。 算术平均值法使用于对一般的具有随机干扰信号的滤波。它特别适于信号本身

47、在算术平均值法使用于对一般的具有随机干扰信号的滤波。它特别适于信号本身在某一数值范围附近作上下波动的情况,如流量,液平面等信号的测量。由上式可知,某一数值范围附近作上下波动的情况,如流量,液平面等信号的测量。由上式可知,算术平均值法对信号的平滑滤波程度完全取决于算术平均值法对信号的平滑滤波程度完全取决于N。当。当N较大时,平滑度高,但灵敏较大时,平滑度高,但灵敏度度低,即外界信号的变化对测量计算结果度度低,即外界信号的变化对测量计算结果y的影响小;当的影响小;当N较小时,平滑度低,但灵较小时,平滑度低,但灵敏度高。应按具体情况选取敏度高。应按具体情况选取N,如对一般流量测量,可取,如对一般流量

48、测量,可取N=816;对压力等次量,;对压力等次量,可取可取N=4 21min() NiiEyx11NiiyxN1NiisNs21NiiCNCNssNCNC2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.6 软件抗干扰技术软件抗干扰技术 v 2.中位值滤波法中位值滤波法 中位值滤波法的原理是对被测参数连续采样中位值滤波法的原理是对被测参数连续采样m次(次(m3)且是奇数,)且是奇数,并按大小顺序排列;再取中间值作为本次采样的有效数据。中位值滤波法和并按大小顺序排列;再取中间值作为本次采样的有效数据。中位值滤波法和平均值滤波

49、法结合起来使用,滤波效果会更好。即在每个采样周期,先用中平均值滤波法结合起来使用,滤波效果会更好。即在每个采样周期,先用中位值滤波法得到位值滤波法得到m个滤波值,再对这个滤波值,再对这m个滤波值进行算术平均,得到可用的个滤波值进行算术平均,得到可用的被测参数。被测参数。v 3.限幅滤波法限幅滤波法 由于大的随机干扰或采样器的不稳定,使得采样数据偏离实际值太远,由于大的随机干扰或采样器的不稳定,使得采样数据偏离实际值太远,为此采用上、下限限幅,即为此采用上、下限限幅,即当当y(n)yH时,则取时,则取y(n)=yH(上限值上限值);当当y(n)yL时,则取时,则取y(n)=yL(下限值下限值);

50、当当yLy(n)y0时,则取时,则取y(n)=y(n-1)。其中其中y0为两次相邻采样值之差的可能最大变化量。为两次相邻采样值之差的可能最大变化量。y0值的选取,取决值的选取,取决于采样周期于采样周期T及被测参数及被测参数y应有的正常变化率。因此,一定要按照实际情况来应有的正常变化率。因此,一定要按照实际情况来确定确定y0、yH及及yL,否则,非但达不到滤波效果,反而会降低控制品质。,否则,非但达不到滤波效果,反而会降低控制品质。2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.6 软件抗干扰技术软件抗干扰技术 v 4.惯性

51、滤波法惯性滤波法 常用的常用的RC滤波器的传递函数是:滤波器的传递函数是: (6.6.6) 其中其中Tf=RC,它的滤波效果取决于滤波时间常数,它的滤波效果取决于滤波时间常数Tf。因此,。因此,RC滤波器不可能对极低频率的信号进行滤波。为此,人们模仿上式做成滤波器不可能对极低频率的信号进行滤波。为此,人们模仿上式做成一阶惯性滤波器亦称低通滤波器。一阶惯性滤波器亦称低通滤波器。即将式(即将式(6.6.6)写成差分方程:)写成差分方程: (6.6.7)稍加整理得:稍加整理得: (6.6.8)其中,其中, 称为滤波系数,且称为滤波系数,且0a1,Ts为采样周期,为采样周期,Tf为滤波器时间常数。为滤

52、波器时间常数。 根据惯性滤波器的频率特性,若滤波系数根据惯性滤波器的频率特性,若滤波系数a越大,则带宽越窄,越大,则带宽越窄,滤波频率也越低。因此,需要根据实际情况,适当选取滤波频率也越低。因此,需要根据实际情况,适当选取a值,使得被值,使得被测参数既不出现明显的纹波,反应又不太迟缓。测参数既不出现明显的纹波,反应又不太迟缓。 平均值滤波法适用于周期性干扰,中位值滤波法和限幅滤波法适平均值滤波法适用于周期性干扰,中位值滤波法和限幅滤波法适用于偶然较大的被控对象。如果同时采用几种滤波方法,一般先用中用于偶然较大的被控对象。如果同时采用几种滤波方法,一般先用中位值滤波法或限幅滤波法,然后再用平均值

53、滤波法。位值滤波法或限幅滤波法,然后再用平均值滤波法。( )1( )1fy sx sT s( )(1)( )( )fsy ny nTy nx nT( )( )(1)(1) ( )(1)fsfsFsTTy nx ny na x nay nTTTTffsTaTT2006COLLEGE OF ELECTRICAL ENGINEERING, ZHEJIANG UNIVERSITY6.6 软件抗干扰技术软件抗干扰技术 v 6.6.2 开关量的软件抗干扰技术开关量的软件抗干扰技术v 1.开关量(数字量)信号输入抗干扰措施开关量(数字量)信号输入抗干扰措施 干扰信号多呈毛刺状,作用时间短,利用这一特点,我们

54、在采集某一开干扰信号多呈毛刺状,作用时间短,利用这一特点,我们在采集某一开关量信号时,可多次重复采集,直到连续两次或两次以上结果完全一致方为关量信号时,可多次重复采集,直到连续两次或两次以上结果完全一致方为有效。若多次采样后,信号总是变化不定,可停止采集,给出报警信号。有效。若多次采样后,信号总是变化不定,可停止采集,给出报警信号。 在满足实时性要求的前提下,如果在各次采集数字信号之间接入一段延在满足实时性要求的前提下,如果在各次采集数字信号之间接入一段延时,效果会好一些,就能对抗较宽的干扰。时,效果会好一些,就能对抗较宽的干扰。v 2.开关量(数字量)信号输出抗干扰措施开关量(数字量)信号输

55、出抗干扰措施 输出设备是电位控制型还是同步锁存型,对干扰的敏感性相差较大。前输出设备是电位控制型还是同步锁存型,对干扰的敏感性相差较大。前者有良好的抗者有良好的抗“毛刺毛刺”干扰能力,后者不耐干扰,当锁存线上出现干扰时,干扰能力,后者不耐干扰,当锁存线上出现干扰时,它就会盲目锁存当前的数据,也不管此时数据是否有效。输出设备的惯性它就会盲目锁存当前的数据,也不管此时数据是否有效。输出设备的惯性(响应速度)与干扰的耐受能力。惯性小的输出设备(如通信口、显示设备)(响应速度)与干扰的耐受能力。惯性小的输出设备(如通信口、显示设备)耐受能力就小一些。在软件上,最为有效的方法就是重复输出同一个数据。耐受能力就小一些。在软件上,最为有效的方法就是重复输出同一个数据。只要有可能,其重复周期尽可能短些。外设设备接受到一个被干扰的错误信只要有可能,其重复周期尽可能短些。外设设备接受到一个被干扰的错误信息后,还来不及作出有效的反应,一个正确的输出信息又来到了,就可及时息后,还来不及作出有效的反应,一个正确的输出信息又来到了,就可及时防止错误动作的产生。另外,各类数据锁存器尽可能和防止错误动作的产生。另外,各类数据锁存器尽可能和CPU安装在同一电路安装在同一电路板上,使传输线上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论