当前位置:文档之家› 第3章C语言程序的流程控制

第3章C语言程序的流程控制

第3章C语言程序的流程控制
第3章C语言程序的流程控制

第3章C语言程序的流程控制

利用计算机进行程序设计时,不仅仅只处理一些简单的数据,在大部分的程序设计里处理的问题还是相当复杂的。对于那些复杂的程序设计,读者不可能直接就能写出程序的源代码,而是要通过一些具体的设计方法(如用程序流程图)把程序设计思想先写出来,然后根据程序流程图编写代码。本章将具体介绍进行程序设计时使用的基本方法和C程序的流程控制。

3.1程序设计的基本知识

3.1.1程序流程图

在描述一个程序的基本结构思想时有很多种方法,其中程序流程图是最常用也是最基本的方法。

1.传统程序流程图

传统流程图表示法的特点是用一些图框表示各种类型的操作,用线表示这些操作的执行顺序。美国国家标准化协会ANSI规定了一些常用的流程图符号,现已为世界各

国普遍采用。我国也有自己的国家标准GB 1526-89与该标准基本相同,本书就参照ANSI标准做具体介绍。标准中各种图示如图3.1所示。

起止框输入输出框判断框处理框

流程线连接点注释框

图3.1 传统流程图表示法

下面对其中一些主要符号作简要说明:

(1)起止框是用来标识程序的开始和结束位置的。规定流程图以起止框开始,以起止框结束。

(2)输入输出框也叫数据框,其中可以注明数据名称、来源、用途或其它的文字说明。

(3)菱形框的作用是对一个给定的条

件进行判断,根据给定的条件是否成立来决定如何执行其后的操作。

(4)处理框用矩形表示各种处理功能。例如,执行一个或一组特定的操作,从而使信息的值、信息的形式或所在位置发生变化。另外在矩形框内可注明特定处理名称或其简要功能。

(5)流程线用带箭头的直线表示程序的执行顺序。当流程自左向右或自上向下时流程线可以不带箭头,其它情况应加箭头表示流程。

(6)连接点用小圆圈表示将画在不同地方的流程线连接起来。下图中有两个以①为标志的连接点,它表示这两个点是互联在一起的,实际它们是同一个点。这种连接通常用在图形画不下而需要分开画时。

(7)注释框不是流程图的必要部分,其不反映流程操作,只是为了流程图中某些操作做解释补充的,以帮助阅读流程图的人更好的理解流程图的作用。

2.N-S流程图

灵活的流程线在程序设计中有它自己的优点,但也隐藏着许多导致错误的祸根。因为它允许用流程线使流程任意转移,这对程序设计是一个隐患,它使程序流程看起来很乱,使程序难以理解和维护。针对这一弊病,1973年美国学者I . Nassi和B . Shneiderman 提出了一种无流程线的流程图,称为N-S图。它的基本表示方法是用一个矩形框,把整个程序算法像堆积木一样组成。其基本结构如图3.3、3.4、3.5、3.6所示。

3.1.2程序的三种基本结构

结构化的程序设计方法是面向过程的程序设计的基本方法。1996年意大利Bobra和Jacopini提出了三种基本程序结构。已经证明,这三种算法可以解决任何复杂的问题。

1.顺序结构

(传统流程图表示) (N-S 流程图表示)

图3.3 顺序结构流程图

2. 选择结构

(传统流程图表示) (N-S 流程图表示)

图3.4 选择结构流程图

3. 循环结构

(1)while 循环结构

( 传统流程图表示) (N-S 流程图表示)

图3.5 当型循环结构流程图

当条件P 成立

语句组

(2)do …while 循环结构

( 传统流程图表示) (N-S 流程图表示) 图3.6 直到型流程图

例3.1 画出求s=1+2+3+ … +100的传统流程图和N-S 流程图。

3.2C语言的基本语句

3.2.1表达式语句

C语言是一种表达式语言,所有的操作运算都是通过表达式来实现的。由表达式组成的语句称为表达式语句,它是由一个表达式后接一个分号组成。这里要特别强调,没有分号的不是语句。

1.赋值语句

赋值语句由赋值表达式加一个分号组成。例如:i = 1 ;

2.函数调用语句

函数调用语句由函数调用表达式后跟一个分号组成。例如:

strcpy( s1, "student", 4 );

printf("good afternoon\n " );

3.空语句

空语句是只有一个分号而没有其他表达式的语句。例如:

它不产生任何操作运算,只作为形式上的语句,被填充在控制结构之中。

3.2.2复合语句

C语言还允许把一组语句放在一对花括号之中,称为复合语句。要特别强调一点,一个复合语句的后花括号之后不应再写分号。例如:

{

c = getchar();

b = b +

c ;

putchar();

}

3.2.3流程控制语句

选择型结构语句

循环控制结构语句

流程转向语句

……

3.3选择结构程序设计

在C语言中实现选择结构的语句有两大类:if语句和switch语句。

3.3.1if语句

(1)简单if语句

格式:if(表达式)语句;

功能:如果表达式的值为真,则执行其

后的语句,否则不执行该语句。其N-S流程图如图3.9表示。

图3.9 简单if语句流程图

(2)基本if … else语句

格式:if(表达式)语句1; else 语句2;

功能:如果表达式值为真,则执行语句1,否则执行语句2。其执行过程如图3.10所示。

图3.10 基本if … else语句流程图

例3.3 从键盘输入任意一整数,求其绝对值并输出。

# include

{

int x;

printf(" please enter a number: ");

scanf("%d",&x);

if(x<0)

x=-x;

else

x=x;

printf("number abs is d%",x);

}

(3)if语句的嵌套

当if语句中执行的语句又是if语句时,那么就构成了if语句的嵌套。其一般形式可以表示如下:

if(表达式)

if 语句1;

else 语句2;

else

if 语句3;

else 语句4;

在if语句的三种形式中,如果所要执行的语句超过一条必须用花括号括起来,构成一条复合语句,才能被完全执行。

例如:if(a>b)

{ a++;

b++; }

else

{ a=10;

b=100;

}

3.3.2switch语句

一种用于多分支选择的语句——switch 语句,用该语句编写的程序简洁、易懂。而且,其执行效率要比同样功能的阶梯式if …else if …else语句要高的多。

1.switch语句的一般形式

switch语句的一般形式如下:

switch(表达式)

{

case 常量表达式1:语句组1;

case 常量表达式2:语句组2;

·

··

case 常量表达式n:语句组n;

default :语句组n+1;

}

2.switch语句的执行过程

系统首先计算“表达式”的值,并逐个与其后的“常量表达式”的值相比较,当“表达式”的值与某个“常量表达式”的值相等时,就以此作为程序执行的入口,执行switch 结构中后面的各语句。如果没有任何一个case后面的“常量表达式”的值与“表达式”的值匹配,则执行default后面的语句(组)。例3.6用switch语句实现例3.4的功能。

# include

main()

{

int score;

printf("please input score(0-100):");

scanf(" %d ",&score); /*从键盘输入学生成绩*/

switch(score/10);

{

case 10:

case 9:printf("excellent\n");break;

case 8:printf("good\n"); break;

case 7:printf("medium\n"); break;

case 6:printf("pass\n"); break;

default:printf("fail\n");

}

}

3.4循环结构程序设计

C语言提供了循环控制的三种语句:while语句、do…while循环语句和for循环语句。

3.4.1while语句

while语句是一种条件循环结构,其控制结构如下:

while(条件表达式)

循环体

例3.7计算并输出从1加到100的和:s = 1+2+3+┅100。

# include

main()

{

int sum = 0 , i = 1; /*设置和与循环变量*/

while(i<=100)

{ sum = sum+i;

i++;

}

printf(" Sum=%d ", sum);

}

程序执行结果如下:

The sum of 1 to 100 equals is:5050

3.4.2do…while循环语句

do…while结构在C语言中用于实现“直到型”循环。其一般形式为:

do

循环体

while(条件表达式);

例3.9用do…while语句求1+2+3+…+100的和。

# include

main()

{

int i =1 , sum=0;

do

{ sum = sum+i;

i++;

}

while(i<=100);

printf("sum= %d",sum);

}

3.4.3for循环语句

for语句的使用最为灵活,既可以用于循环次数确定的情况,也可以用于循环次数未知的情况。

for语句的一般形式如下:

for(表达式1;表达式2;表达式3)

循环体

如图3.13所示,for语句的执行流程是:

图3.13 for语句的执行流程

例3.10输入一个整数,求出它的所有因子。

求一个整数n的所有因子可以采用穷举法,对1~ n的全部整数进行判断,凡是能够整除n的都是n的因子。由分析可知,这是一个已知循环次数的循环,因此可以使用for 语句。

# include

main()

{

int n, k;

printf("Please input a positive integer:");

scanf(" %d ",&n);

printf(" Number %d Factors:",n);

for(k=1;k<=n;k++)

if(n%k= =0)

printf(" %d",k);

printf("\n");

}

程序某次的运行结果如下:

Please input a positive integer:36↙Number 36 Factors:1 2 3 4 6 9 12 18 36

3.4.4循环嵌套

一个循环体内又可以包含另外一个完整的循环结构,从而构成多重循环结构,这就是循环的嵌套。

3.4.5continue和break语句

1.continue语句

continue语句可以出现在循环体中,其作用是结束本次循环,但不退出循环结构。它跳过循环体中下面尚未执行的语句,直接进行下一次是否执行循环的判定。

例3.12输出60~600之间所有不能被9整除的数。

# include

main()

{

int m;

for(m=60; m<=600 ; m++)

{

if(m%9= =0)

continue ;

printf("%d\n",m);

}

}

由这个程序可以看出,当某个自然数m 被9整除时,就利用continue语句结束本次循环(其后的输出语句不执行),但不退出for循环结构,接着对下一个数进行判断。

2.break语句

break语句只能用在switch结构或循环结构,而不能用于其他结构。但用在循环结构中时,只能跳出(或终止)它所在的循环,而不能同时跳出(或终止)多层循环。

本章小结

从程序执行的流程来看,程序可分为三种最基本的结构:顺序结构、分支结构以及循环结构。本章从学习程序的流程图画法入手系统的介绍了这三种基本结构。

程序中执行部分最基本的单位是语句。本章主要介绍了以下三种类型的语句:

(1)表达式语句,任何表达式末尾加上分号即可构成表达式语句,常用的表达式语句为赋值语句。

(2)复合语句,由{}把多个语句括起来组成一个语句。复合语句被认为是单条语句,它可出现在所有允许出现语句的地方,如循环体等。

(3)控制语句,用于控制程序流程,由专门的语句定义符及所需的表达式组成。主要有条件判断执行语句,循环执行语句,转向语句等。

C语言提供了多种形式的条件语句以构成分支结构。

(1)if语句主要用于单向选择。

(2)if…else语句主要用于双向选择。

(3)if …else if…else语句和switch语句用于多向选择。

这几种形式的条件语句一般来说是可以互相替代的。

C语言提供了三种循环语句。for语句主要用于给定循环变量初值、步长增量以及循环次数的循环结构。循环次数及控制条件

要在循环过程中才能确定的循环可用while 或do-while循环。三种循环语句可以相互嵌套组成多重循环。循环之间可以并列但不能交叉。可用转移语句把流程转出循环体外,但不能从外面转向循环体内。在循环程序中应避免出现死循环,即应保证循环变量的值在运行过程中可以得到修改,并使循环条件逐步变为假,从而结束循环。

第3章 Java程序流程控制

第3章Java程序流程控制 实验1 三种基本程序结构 【实验目的】 (1)掌握Java中顺序语句、选择语句及循环语句的使用。 (2)熟练掌握用三种基本程序结构及相关的变量、表达式、运算符及有关类的方法来解决问题的思想。 【实验要求】 (1)设置MyEclipse的当前工作空间为D:\java。 (2)在MyProject3项目中创建GuessNumber类,并实现猜数游戏。 (3)编写程序WhileLoop实现用while结构求0~100整数数字之和。 (4)编写程序DoWhileLoop实现用do-while结构求0~100整数数字之和。 (5)编写程序ForLoop实现用for结构求0~100整数数字之和。 (6)求三个数中的最大值和最小值。 【实验内容】 (1)启动MyEclpise并设置MyEclipse的工作空间为D:\java。 (2)创建MyProject3项目并在该项目创建GuessNumber类,实现猜数游戏。利用Math.random()方法产生1~100的随机整数,利用JOptionPane.showInputDialog()方法产生一个输入对话框,用户可以输入所猜的数。若所猜的数比随机生成的数大,则显示“猜大了,再输入你的猜测:”;若所猜的数比随机生成的数小,则显示“猜小了,再输入你的猜测:”;若所猜的数正好为随机生成的数,则显示“猜对了!”。 (3)在MyProject3项目中创建WhileLoop类,用while结构求0~100的整数数字之和。 (4)在MyProject3项目中创建DoWhileLoop类,用do -while结构求0~100的整数数字之和。 (5)在MyProject3项目中创建ForLoop类,用for结构求0~100的整数数字之和。 (6)在MyProject3项目中创建MaxMinDemo类,求给定三个数中的最大值和最小值并输出这两个值。 【实验步骤】 1.设置MyEclipse的工作空间为D:\java (1)单击【开始】|【所有程序】|【MyEclipse】|【MyEclipse 8.5】选项启动MyEclipse。 (2)在出现的当前工作空间设置对话框中输入“D:\java”,并按【OK】按钮进入MyEclipse 工作界面。

vb程序流程控制

第三章程序流程控制 一、教学内容 在Visual Basic6.0中,其流程控制语句分为条件测试语句和循环语句。本章将重点介绍这两种流程控制语句的用法与功能 二、目的要求 1.熟练掌握行if语句、块if结构、Select Case情况选择结构有使用,掌握选择的嵌套结构; 2.熟练掌握实现循环结构的For/Next循环结构及Exit For语句、Do/Loop循环结构的使用,掌握多重循环。 三、教学重点与难点 教学重点:选择结构及循环结构的实现及其应用 教学难点:选择的嵌套及多重循环结构 四、教学方法 多媒体教学为主。适当提问,加深学生对概念的理解。

第一讲(2学时) 一、教学内容 3种条件测试语句:由If构成的两种类型测试语句和由Select Case构成的测试语句二、目的要求 1.熟悉If…Then结构,If…Then…Else结构,Select…Case 结构 2.了解多重If语句,If语句的嵌套 三、教学重点与难点 教学重点:If…Then结构,If…Then…Else结构。 教学难点:多重If语句,If语句的嵌套 四、教学方法 多媒体教学。 五、教学过程 3.1.1 If测试语句 1. If…Then结构 单行语句格式: If 条件表达式Then 语句 多行语句格式: If 条件表达式Then 语句块 End If 2. If…Then…Else结构

语句格式: If 条件表达式Then 语句块1 Else 语句块2 End If 3. 多重If语句 语句格式: If 条件表达式1 Then 语句块1 ElseIf 条件表达式2 Then 语句块2 ElseIf 条件表达式3 Then 语句块3 …… ElseIf 条件表达式n Then 语句块n Else 语句块 End If

过程控制系统与仪表习题答案---第三章

过程控制系统与仪表习题答案---第三章

第3章 习题与思考题 3-1 什么是控制器的控制规律?控制器有哪些基本控制规律? 解答: 1)控制规律:是指控制器的输出信号与输入偏差信号之间的关系。 2)基本控制规律:位式控制、比例控制、比例积分控制、比例微分控制和比例积分微分控制。 3-2 双位控制规律是怎样的?有何优缺点? 解答: 1)双位控制的输出规律是根据输入偏差的正负,控制器的输出为最大或最小。 2)缺点:在位式控制模式下,被控变量持续地在设定值上下作等幅振荡,无法稳定在设定值上。这是由于双位控制器只有两个特定的输出值,相应的控制阀也只有两个极限位置,总是过量调节所致。 3)优点:偏差在中间区内时,控制机构不动作,可以降低控制机构开关的频繁程度,延长控制器中运动部件的使用寿命。 3-3 比例控制为什么会产生余差? 解答: 产生余差的原因:比例控制器的输出信号y 与输入偏差e 之间成比例关系: e K y p = 为了克服扰动的影响,控制器必须要有控制作用,即其输出要有变化量,而对于比例控制来讲,只有在偏差不为零时,控制器的输出变化量才不为零,这说明比例控制会永远存在余差。 3-4 试写出积分控制规律的数学表达式。为什么积分控制能消除余差? 解答: 1)积分控制作用的输出变化量y 是输入偏差e 的积分:?=edt T y 1 1

2)当有偏差存在时,输出信号将随时间增大(或减小)。当偏差为零时,输出停止变化,保持在某一值上。因而积分控制器组成控制系统可以到达无余差。 3-5 什么是积分时间?试述积分时间对控制过程的影响。 解答: 1)? =edt T y 11 积分时间是控制器消除偏差的调整时间,只要有偏差存在,输出信号将随时间增大(或减小)。只有当偏差为零时,输出停止变化,保持在某一值上。 2) 在实际的控制器中,常用积分时间Ti 来表示积分作用的强弱,在数值上,T i =1/K i 。显然,T i 越小,K i 就越大,积分作用就越强,反之亦然。 3-6 某比例积分控制器输入、输出范围均为4~20mA ,若将比例度设为100%、积分时间设为2min 、稳态时输出调为5mA ,某时刻,输入阶跃增加0.2mA ,试问经过5min 后,输出将由5mA 变化为多少? 解答: 由比例积分公式:??? ? ??+=?edt T e P y 111分析: 依题意:%1001==p K p ,即K p =1, T I = 2 min , e =+0.2; 稳态时:y 0=5mA , 5min 后:mA edt T e P y y )7.05()52.02 12.0(151110±=??±±?+=???? ??++ =? 3-7 比例控制器的比例度对控制过程有什么影响?调整比例度时要注意什么问题? 解答:P74 1)控制器的比例度P 越小,它的放大倍数p K 就越大,它将偏差放大的能力越

过程控制系统与仪表习题答案---第三章

第3章 习题与思考题 3-1 什么是控制器的控制规律?控制器有哪些基本控制规律? 解答: 1)控制规律:是指控制器的输出信号与输入偏差信号之间的关系。 2)基本控制规律:位式控制、比例控制、比例积分控制、比例微分控制和比例积分微分控制。 3-2 双位控制规律是怎样的?有何优缺点? 解答: 1)双位控制的输出规律是根据输入偏差的正负,控制器的输出为最大或最小。 2)缺点:在位式控制模式下,被控变量持续地在设定值上下作等幅振荡,无法稳定在设定值上。这是由于双位控制器只有两个特定的输出值,相应的控制阀也只有两个极限位置,总是过量调节所致。 3)优点:偏差在中间区内时,控制机构不动作,可以降低控制机构开关的频繁程度,延长控制器中运动部件的使用寿命。 3-3 比例控制为什么会产生余差? 解答: 产生余差的原因:比例控制器的输出信号y 与输入偏差e 之间成比例关系: e K y p = 为了克服扰动的影响,控制器必须要有控制作用,即其输出要有变化量,而对于比例控制来讲,只有在偏差不为零时,控制器的输出变化量才不为零,这说明比例控制会永远存在余差。 3-4 试写出积分控制规律的数学表达式。为什么积分控制能消除余差? 解答: 1)积分控制作用的输出变化量y 是输入偏差e 的积分:?=edt T y 1 1

2)当有偏差存在时,输出信号将随时间增大(或减小)。当偏差为零时,输出停止变化,保持在某一值上。因而积分控制器组成控制系统可以到达无余差。 3-5 什么是积分时间?试述积分时间对控制过程的影响。 解答: 1)? =edt T y 11 积分时间是控制器消除偏差的调整时间,只要有偏差存在,输出信号将随时间增大(或减小)。只有当偏差为零时,输出停止变化,保持在某一值上。 2) 在实际的控制器中,常用积分时间Ti 来表示积分作用的强弱,在数值上,T i =1/K i 。显然,T i 越小,K i 就越大,积分作用就越强,反之亦然。 3-6 某比例积分控制器输入、输出范围均为4~20mA ,若将比例度设为100%、积分时间设为2min 、稳态时输出调为5mA ,某时刻,输入阶跃增加0.2mA ,试问经过5min 后,输出将由5mA 变化为多少? 解答: 由比例积分公式:??? ? ??+=?edt T e P y 111分析: 依题意:%1001==p K p ,即K p =1, T I = 2 min , e =+0.2; 稳态时:y 0=5mA , 5min 后: m A edt T e P y y )7.05()52.0212.0(151110±=??±±?+=??? ? ??++=? 3-7 比例控制器的比例度对控制过程有什么影响?调整比例度时要注意什么问题? 解答:P74 1)控制器的比例度P 越小,它的放大倍数p K 就越大,它将偏差放大的能力越

补充练习第三章流程控制

补充练习第三章流程控制 第三章流程控制 一、单项选择题: 1. 两次运行下面的程序,如果从键盘上分别输入6和4,输出的结果是。 main() { int x; scanf(―%d‖,&x); if(x++>5) printf(―%d‖,x); else prinf(―%d\n‖,x--); } 2. 设a为整型变量,不能正确表达数学关系: 1010&&a<15 D. !(a<=10)&&!(a>=15) 3. 在以下一组运算符中,优先级最高的是。 A. <= B. = C. % D. && 4. 设a,b,c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是。 A. ‘a‘&&‘b‘ B. a<=b C. c||+c&&b-c D. !((a

10.逻辑运算符两侧运算对象的数据类型。 A. 只能是0或1 B. 只能是0或非0正数 C. 只能是整型或字符型数据 D. 可以是任何类型的数据 11.当执行以下程序段时,供选择的答案是___________。 x=-1; do { x=x*x; } while(!x); A. 循环体将执行一次 B. 循环体将执行两次 C. 循环体将执行无限次 D. 系统提示有语法错误 12.执行语句: for(i=1;i++<4;);后,变量i的值,供选择的答案是___________。 A. 3 B. 4 C. 5 D. 不定 13. 以下for循环是: for(x=0,y=0;(y!=123)&&(x<4);x++); A. 无限循环 B. 循环次数不变 C. 执行4次 D. 执行3次 14.若i,j已定义为int类型,则以下程序段中 for(i=5;i;i--) for(j=0;j<4;j++) {…} 内循环体的总的执行次数,供选择的答案是___________。 A. 20 B. 24 C. 25 D. 30 15.执行下列程序段后,变量i的正确结果, 供选择的答案是___________。 int i=10,j=0; do { switch(i) { case 9 : i++; case 10 : i++; case 11 : i++; defaut : i++; } } while (j); A. 10 B. 11 C. 12 D. 13 16.若a,b均为int型变量,且a=100,则关于循环语句 for(b=100;a!=b;++a,b++) printf(―---―); 的正确说法, 供选择的答案是___________。 A. 循环体只执行一次, B. 是死循环, C. 循环体一次也不执行, D. 输出---.

过程控制系统与仪表习题答案 第三章

第3章 习题与思考题 3-1 什么是控制器的控制规律?控制器有哪些基本控制规律? 解答: 1)控制规律:是指控制器的输出信号与输入偏差信号之间的关系。 2)基本控制规律:位式控制、比例控制、比例积分控制、比例微分控制和比例积分微分控制。 3-2 双位控制规律是怎样的?有何优缺点? 解答: 1)双位控制的输出规律是根据输入偏差的正负,控制器的输出为最大或最小。 2)缺点:在位式控制模式下,被控变量持续地在设定值上下作等幅振荡,无法稳定在设定值上。这是由于双位控制器只有两个特定的输出值,相应的控制阀也只有两个极限位置,总是过量调节所致。 3)优点:偏差在中间区内时,控制机构不动作,可以降低控制机构开关的频繁程度,延长控制器中运动部件的使用寿命。 3-3 比例控制为什么会产生余差? 解答: 产生余差的原因:比例控制器的输出信号y 与输入偏差e 之间成比例关系: 为了克服扰动的影响,控制器必须要有控制作用,即其输出要有变化量,而对于比例控制来讲,只有在偏差不为零时,控制器的输出变化量才不为零,这说明比例控制会永远存在余差。 3-4 试写出积分控制规律的数学表达式。为什么积分控制能消除余差? 解答: 1)积分控制作用的输出变化量y 是输入偏差e 的积分:? =edt T y 11 2)当有偏差存在时,输出信号将随时间增大(或减小)。当偏差为零时,输出停止变化,保持在某一值上。因而积分控制器组成控制系统可以到达无余差。 3-5 什么是积分时间?试述积分时间对控制过程的影响。 解答:

1)?=edt T y 1 1 积分时间是控制器消除偏差的调整时间,只要有偏差存在,输出信号将随时间增大(或减小)。只有当偏差为零时,输出停止变化,保持在某一值上。 2) 在实际的控制器中,常用积分时间Ti 来表示积分作用的强弱,在数值上,T i =1/K i 。显然,T i 越小,K i 就越大,积分作用就越强,反之亦然。 3-6 某比例积分控制器输入、输出范围均为4~20mA ,若将比例度设为100%、积分时间设为2min 、稳态时输出调为5mA ,某时刻,输入阶跃增加,试问经过5min 后,输出将由5mA 变化为多少? 解答: 由比例积分公式:??? ? ??+=?edt T e P y 111分析: 依题意:%1001==p K p ,即K p =1, T I = 2 min , e =+; 稳态时:y 0=5mA , 5min 后:mA edt T e P y y )7.05()52.02 12.0(151110±=??±±?+=???? ??++ =? 3-7 比例控制器的比例度对控制过程有什么影响?调整比例度时要注意什么问题? 解答:P74 1)控制器的比例度P 越小,它的放大倍数p K 就越大,它将偏差放大的能力越强,控制力也越强,反之亦然,比例控制作用的强弱通过调整比例度P 实现。 2)比例度不但表示控制器输入输出间的放大倍数,还表示符合这个比例关系的有效输入区间。一表的量程是有限的,超出这个量程的比例输出是不可能的。 所以,偏差的变化使控制器的输出可以变化全量程(16mA ),避免控制器处于饱和状态。 3-8 理想微分控制规律的数学表达式是什么?为什么常用实际为分控制规律? 解答:

过程控制系统 第3章 简单系统 习题与解答

第3章习题与思考题 3-1.简单控制系统由哪几部分组成?各部分的作用是什么? 解答: 简单控制系统由检测变送装置、控制器、执行器及被控对象组成。 检测变送装置的作用是检测被控变量的数值并将其转换为一种特定输出信号。 控制器的作用是接受检测装置送来的信号,与给定值相比较得出偏差,并按某种运算规律算出结果送往执行器。 执行器能自动地根据控制器送来的控制信号来改变操纵变量的数值,以达到控制被控变量的目的。 被控对象是指需要控制其工艺参数的生产设备或装置。 3-2.什么叫直接参数和间接参数?各使用在什么场合? 解答: 如果被控变量本身就是需要控制的工艺指标,则称为直接参数;如果被控变量本身不是需要控制的工艺指标,但与其有一定的间接对应关系时,称为间接参数。 在控制系统设计时,尽量采用直接参数控制,只有当被控变量无法直接检测,或虽能检测,但信号很微弱或滞后很大,才考虑采用间接参数控制。 3-3.被控变量的选择应遵循哪些原则? 解答: 被控变量的正确选择是关系到系统能否达到预期控制效果的重要因素,它选择的一般原则是: (1)被控变量应能代表一定的工艺操作指标或是反映工艺操作状态重要变量; (2)被控变量应是工艺生产过程中经常变化,因而需要频繁加以控制的变量;

(3)被控变量应尽可能选择工艺生产过程的直接控制指标,当无法获得直接控制指标信号,或其测量或传送滞后很大时,可选择与直接控制指标有单值对应关系的间接控制指标; (4)被控变量应是能测量的,并具有较大灵敏度的变量; (5)被控变量应是独立可控的; (6)应考虑工艺的合理性与经济性。 3-4.操纵变量的选择应遵循哪些原则? 解答: (1)操纵变量应是工艺上允许加以控制的可控变量; (2)操纵变量应是对被控变量影响诸因素中比较灵敏的变量,即控制通道的放大系数要大一些,时间常数要小一些,纯滞后时间要尽量小; (3)操纵变量的选择还应考虑工艺的合理性和生产的经济性。 3-5.简述选择调节器正、反作用的目的,如何选择? 解答: 其目的是使控制器、执行器、对象三个环节组合起来,能在控制系统中起负反馈作用。 一般步骤,首先由操纵变量对被控变量的影响方向来确定对象的作用方向,然后由工艺安全条件来确定执行器(调节阀)的气开、气关型式,最后由对象、执行器、控制器(调节器)三个环节组合后为“负”来确定控制器的正、反作用。(变送器总为正作用) “对象”ד执行器”ד控制器”=“负反馈” 3-6.被控对象、执行器、控制器的正、反作用方向各是怎样规定的? 解答:

相关主题
文本预览
相关文档 最新文档