当前位置:文档之家› linux进程控制与信号互斥实验报告

linux进程控制与信号互斥实验报告

linux进程控制与信号互斥实验报告
linux进程控制与信号互斥实验报告

重庆交通大学信息科学与工程学院综合性设计性实验报告

班级:物联网15xx班

姓名学号:gllh

实验项目名称:进程控制与信号互斥

实验项目性质:综合性

实验所属课程:《Linux操作系统》

实验室(中心):语音楼801信息实验室

指导教师:xx

实验完成时间: 201x年xx月xx日

一、实验目的

理解Linux核心进程及信号量的概念、进程的调度和进程通信以及信号量在进程控制中的作用。本次实验的目标是在Linux环境下实现一个多线程对临界资源的互斥操作,利用信号量实现对临界资源的保护,支持Linux下文件输入输出,提高对Linux环境下进程、信号量机制和文件操作等知识的理解。

二、实验内容及要求

在程序中调用semget()函数实现信号量创建,用semop()函数来改变信号量的值,用semctl()函数打开一个信号量。进行分析、编写、调试——对比分析,熟悉semget()函数和信号量的概念、定义、调用及函数返回值。

1、编写程序,创建信号量或获得在系统中已存在的信号量,掌握信号量semaphore 在进程管理中的应用。

2、编写程序,验证信号量对于进程间通信机制的改变。

3、编写程序,分析信号量函数对一个文件共享资源操作的控制。

三、实验设备及软件

PC机一台,Linux虚拟机一台。

四、设计方案

1. 题目

Linux中信号量对进程间通信的影响。

2. 设计的主要思路

在编程过程中对信号量函数进行调用和进程创建,主要以对文件操作的形式进行对信号量函数的调用,并分析信号量在进程控制中的作用,并熟悉信号量函数的概念、定义、调用及函数返回值。

3. 主要功能

实现对文件的读写操作以及进程间如何使用信号量来进行通信。

4. 主要的流程图

五、主要代码

#include

#include

#include

#include

#include

#include

#include

#include

#include

void main()

{

intfd=0;

key_t key;

intsemid;

char buffer[100];

structsembuf sops;

int ret;

key=ftok("/home",1);

semid=semget(key,1,IPC_CREAT);

ret=semctl(semid,0,GETV AL);

semctl(semid,0,SETV AL,1);

printf("init value of sem is %d\n",ret);

fd=open("./board.txt",O_RDWR|O_APPEND);

sops.sem_num=0;

sops.sem_op=-1;

semop(semid,&sops,1);

write(fd,"wulian1 ",8);

sleep(10);

write(fd,"have a rest",11);

sops.sem_num=0;

sops.sem_op=1;

semop(semid,&sops,1);

int fd2=open("./board.txt",O_RDONL Y);

memset(buffer,0,sizeof(buffer));

while(read(fd2,buffer,sizeof(buffer))>0)

{

printf("%s\n", buffer);

memset(buffer, 0, sizeof(buffer));

}

close(fd2);

}

六、测试结果及说明

1、semget()函数

它的作用是创建一个新信号量或取得一个已有信号量,函数为:

int semget(key_t key, int num_sems, int sem_flags);

第一个参数key是整数值,进程可以通过它访问一个信号量,它代表程序可能要使用的某个资源。

第二个参数num_sems指定需要的信号量数目,它的值总是1。

第三个参数sem_flags是一组标志,当想要当信号量不存在时创建一个新的信号量,如果信号量已存在,返回一个错误。

semget函数成功返回一个相应信号标识符(非零),失败返回-1.

2、semop函数

它的作用是改变信号量的值,函数为:

int semop(int sem_id, struct sembuf *sem_opa, size_t num_sem_o ps);

sem_id是由semget返回的信号量标识符,sembuf结构的定义如下:structsembuf{

shortsem_num;

shortsem_op;

shortsem_flg;

};

3、semctl函数

该函数用来直接控制信号量信息,它的原型为:

int semctl(int sem_id, int sem_num, int command, ...);

前两个参数与前面一个函数中的一样,command通常是下面两个值中的其中一个,SETVAL:用来把信号量初始化为一个已知的值。p 这个值通过union semun中的val成员设置,其作用是在信号量第一次使用前对它进行设置。

IPC_RMID:用于删除一个已经无需继续使用的信号量标识符。

信号量是一个特殊的变量,是用来解决进程间的同步与互斥问题的一种进程间通信机制,包括一个称为信号量的变量和在该信号量下等待资源的进程等待队列,以及对信号量进行的两个原子操作(P/V操作)。其中,信号量对应于某一种资源,取一个非负的整形值。信号量值(常用sem_id表示)指的是当前可用的该资源的数量,若等于0则意味着目前没有可用的资源。

程序执行流程就是,先将信号量值初始化为0,假设程序先执行父进程,通过P操作的特点可知,由于信号量值为0,该进程被阻塞,也就是转而去执行子进程,由V操作可知,执行完子进程后,由于信号量的等待队列中有进程在等待资源,则唤醒一个阻塞进程。

七、实验体会

经过这次实验,让我对Linux系统有了更深一步的理解,对Linux核心的一般结构、进程的概念、进程的调度和进程通信有了进一步的认识,尤其是对进程中信号量对于进程调度和进程建德通信和运行情况有了更深的理解,在以后的学习和工作生涯中对遇到的进程问题会有所帮助。

过程控制系统实验报告材料(最新版)

实验一、单容水箱特性的测试 一、实验目的 1. 掌握单容水箱的阶跃响应的测试方法,并记录相应液位的响应曲线。 2. 根据实验得到的液位阶跃响应曲线,用相关的方法确定被测对象的特征参数T和传递函数。 二、实验设备 1. THJ-2型高级过程控制系统实验装置 2. 计算机及相关软件 3. 万用电表一只 三、实验原理 图2-1单容水箱特性测试结构图由图2-1可知,对象的被控制量为水箱的液位H,控制量(输入量)是流入水箱中的流量Q1,手动阀V1和V2的开度都为定值,Q2为水箱中流出的流量。根据物料平衡关系,在平衡状态时 Q1-Q2=0 (1)

动态时,则有 Q1-Q2=dv/dt (2) 式中 V 为水箱的贮水容积,dV/dt为水贮存量的变化率,它与 H 的关系为 dV=Adh ,即dV/dt=Adh/dt (3) A 为水箱的底面积。把式(3)代入式(2)得 Q1-Q2=Adh/dt (4) 基于Q2=h/RS,RS为阀V2的液阻,则上式可改写为 Q1-h/RS=Adh/dt 即 ARsdh/dt+h=KQ1 或写作 H(s)K/Q1(s)=K/(TS+1) (5) 式中T=ARs,它与水箱的底积A和V2的Rs有关:K=Rs。 式(5)就是单容水箱的传递函数。 对上式取拉氏反变换得 (6) 当t—>∞时,h(∞)=KR0 ,因而有K=h(∞)/R0=输出稳态值/阶跃输入当 t=T 时,则有 h(T)=KR0(1-e-1)=0.632KR0=0.632h(∞)

式(6)表示一阶惯性环节的响应曲线是一单调上升的指数函数,如图 2-2 所示。当由实验求得图2-2所示的阶跃响应曲线后,该曲线上升到稳态值的63%所对应的时间,就是水箱的时间常数T。该时间常数 T也可以通过坐标原点对响应曲线作切线,切线与稳态值交点所对应的时间就是时间常数T,由响应曲线求得K和T后,就能求得单容水箱的传递函数。如果对象的阶跃响应曲线为图2-3,则在此曲线的拐点D处作一切线,它与时间轴交于B点,与响应稳态值的渐近线交于A点。图中OB即为对象的滞后时间τ,BC为对象的时间常数T,所得 的传递函数为: 四、实验内容与步骤 1.按图2-1接好实验线路,并把阀V1和V2开至某一开度,且使V1的开度大于V2的开度。 2.接通总电源和相关的仪表电源,并启动磁力驱动泵。

linux进程控制 实验报告

长安大学 操作系统实验报告 实验课程:操作系统 实验名称:linux进程控制 学院:信息学院 专业:软件工程 学号:2406090106 姓名:刘建 日期:2012-5-09

一、实验目的 熟悉进程的创建过程,了解系统调用函数fork() 和execl()。 二、实验内容 1、阅读实例代码fork1,并编辑、编译、运行,记录程序的运行结果,尝试给出合理的解释,查阅有关资料,掌握系统调用fork( )的用法,返回值的意义。 2、阅读实例代码fork2,并编辑、编译、运行,记录程序的运行结果,尝试给出合理的解释,查阅有关资料,掌握在程序中运行一个操作系统命令和运行一个程序的方法。 3、修改fork2,使之能把运行的命令和程序作为参数传给fork2。 三、设计思想 1、程序框架

pid = -1 pid = 0pid> 0 2、用到的文件系统调用函数 fork() 和execl() 四、调试过程 1、测试数据设计 (1)fork1 命名程序1: 编写程序1:

编译程序1: 运行程序1: (2)fork2

编写程序2: 运行程序2:

(3)修改fork2 编写修改程序2: 修改后的运行结果: 2、测试结果分析 (1)对于程序1:因为系统调用fork()函数是一次调用两次返回值,而且先生成子进程还是父进程是不确定的,所以第一次执行生成子进程的时候返回的pid = 0,判断pid!=-1,所以输出了I’m the child. I’m the parent. 第二次,执行父进程的时候,返回的是子进程的进程号pid> 0,即pid的值仍然不为-1,所以又输出了一次I’m the child. I’m the parent。 (2)对于程序2:第一次调用fork()函数时,由于执行的是子进程还是父进程是随机的,所以第一次对父进程返回的是子进程的进程号(大于0),即pid> 0,所以输出I’m the parent. Program end.当第二次执行子进程时返回值是0,即pid = 0,所以输出I’m the child. 并调用了execl()函数,查看了指定路径中的文件。

自动控制原理实验报告

《自动控制原理》 实验报告 姓名: 学号: 专业: 班级: 时段: 成绩: 工学院自动化系

实验一 典型环节的MATLAB 仿真 一、实验目的 1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、实验原理 1.比例环节的传递函数为 K R K R R R Z Z s G 200,1002)(211 212==-=-=- = 其对应的模拟电路及SIMULINK 图形如图1-3所示。 三、实验内容 按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。 ① 比例环节1)(1=s G 和2)(1=s G ; ② 惯性环节11)(1+= s s G 和1 5.01 )(2+=s s G ③ 积分环节s s G 1)(1= ④ 微分环节s s G =)(1 ⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G ⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+= 四、实验结果及分析 图1-3 比例环节的模拟电路及SIMULINK 图形

① 仿真模型及波形图1)(1=s G 和2)(1=s G ② 仿真模型及波形图11)(1+= s s G 和1 5.01)(2+=s s G 11)(1+= s s G 1 5.01 )(2+=s s G ③ 积分环节s s G 1)(1= ④ 微分环节

过程控制实验报告

过程控制实验 实验报告 班级:自动化1202 姓名:杨益伟 学号:120900321 2015年10月 信息科学与技术学院 实验一过程控制系统建模 作业题目一: 常见得工业过程动态特性得类型有哪几种?通常得模型都有哪些?在Simulink中建立相应模型,并求单位阶跃响应曲线、 答:常见得工业过程动态特性得类型有:无自平衡能力得单容对象特性、有自平衡能力得单容对象特性、有相互影响得多容对象得动态特性、无相互影响得多容对象得动态特性等。通常得模型有一阶惯性模型,二阶模型等、 单容过程模型 1、无自衡单容过程得阶跃响应实例 已知两个无自衡单容过程得模型分别为与,试在Simulink中建立模型,并求单位阶跃响应曲线。 Simulink中建立模型如图所示: 得到得单位阶跃响应曲线如图所示:

2、自衡单容过程得阶跃响应实例 已知两个自衡单容过程得模型分别为与,试在Simulink中建立模型,并求单位阶跃响应曲线。 Simulink中建立模型如图所示: 得到得单位阶跃响应曲线如图所示:

多容过程模型 3、有相互影响得多容过程得阶跃响应实例 已知有相互影响得多容过程得模型为,当参数, 时,试在Simulink中建立模型,并求单位阶跃响应曲线在Simulink中建立模型如图所示:得到得单位阶跃响应曲线如图所示:

4、无相互影响得多容过程得阶跃响应实例 已知两个无相互影响得多容过程得模型为(多容有自衡能力得对象)与(多容无自衡能力得对象),试在Simulink中建立模型,并求单位阶跃响应曲线。 在Simulink中建立模型如图所示: 得到得单位阶跃响应曲线如图所示:

进程管理实验报告

实验2过程管理实验报告学生号姓名班级电气工程系过程、过程控制块等基本原理过程的含义:过程是程序运行过程中对数据集的处理,以及由独立单元对系统资源的分配和调度。在不同的数据集上运行程序,甚至在同一数据集上运行多个程序,是一个不同的过程。(2)程序状态:一般来说,一个程序必须有三种基本状态:就绪、执行和阻塞。然而,在许多系统中,过程的状态变化可以更好地描述,并且增加了两种状态:新状态和终端状态。1)就绪状态,当一个进程被分配了除处理器(CPU)以外的所有必要资源时,只要获得了处理器,进程就可以立即执行。此时,进程状态称为就绪状态。在系统中,多个进程可以同时处于就绪状态。通常,这些就绪进程被安排在一个或多个队列中,这些队列称为就绪队列。2)一旦处于就绪状态的进程得到处理器,它就可以运行了。进程的状态称为执行状态。在单处理器系统中,只有一个进程在执行。在多处理器系统中,可能有多个进程在执行中。3)阻塞状态由于某些事件(如请求输入和输出、额外空间等),执行进程被挂起。这称为阻塞状态,也称为等待状态。通常,处于阻塞状态的进程被调度为-?这个队列称为阻塞队列。4)新状态当一个新进程刚刚建立并且还没有放入就绪队列中时,它被称为新状态。5)终止状态是

什么时候-?进程已正常或异常终止,操作系统已将其从系统队列中删除,但尚未取消。这就是所谓的终结状态。(3)过程控制块是过程实体的重要组成部分,是操作系统中最重要的记录数据。控制块PCB记录操作系统描述过程和控制过程操作所需的所有信息。通过PCB,一个不能独立运行的程序可以成为一个可以独立运行的基本单元,并且可以同时执行一个进程。换句话说,在进程的整个生命周期中,操作系统通过进程PCB管理和控制并发进程。过程控制块是系统用于过程控制的数据结构。系统根据进程的PCB来检测进程是否存在。因此,进程控制块是进程存在的唯一标志。当系统创建一个进程时,它需要为它创建一个PCB;当进程结束时,系统回收其PCB,进程结束。过程控制块的内容过程控制块主要包括以下四个方面的信息。过程标识信息过程标识用于对过程进行标识,通常有外部标识和内部标识。外部标识符由流程的创建者命名。通常是一串字母和数字。当用户访问进程时使用。外部标识符很容易记住。内部标识符是为了方便系统而设置的。操作系统为每个进程分配一个唯一的整数作为内部标识符。通常是进程的序列号。描述性信息(process scheduling message)描述性信息是与流程调度相关的一些有关流程状态的信息,包括以下几个方面。流程状态:表

计算机过程控制实验报告

计算机过程控制实验报告

实验1 单容水箱液位数学模型的测定实验 1、试验方案: 水流入量Qi 由调节阀u 控制,流出量Qo 则由用户通过负载阀R 来改变。被调量为水位H 。分析水位在调节阀开度扰动下的动态特性。 直接在调节阀上加定值电流,从而使得调节阀具有固定的开度。(可以通过智能调节仪手动给定,或者AO 模块直接输出电流。) 调整水箱出口到一定的开度。 突然加大调节阀上所加的定值电流观察液位随时间的变化,从而可以获得液位数学模型。 通过物料平衡推导出的公式: μμk Q H k Q i O ==, 那么 )(1 H k k F dt dH -=μμ, 其中,F 是水槽横截面积。在一定液位下,考虑稳态起算点,公式可以转换成 μμR k H dt dH RC =+。 公式等价于一个RC 电路的响应函数,C=F 就是水容,k H R 0 2= 就是水阻。 如果通过对纯延迟惯性系统进行分析,则单容水箱液位数学模型可以使用以下S 函数表示: ) 1()(0 += TS S KR S G 。 相关理论计算可以参考清华大学出版社1993年出版的《过程控制》,金以慧编著。 2、实验步骤: 1) 在现场系统A3000-FS 上,将手动调节阀JV201、JV206完全打开,使下水箱闸板具有 一定开度,其余阀门关闭。 2) 在控制系统A3000-CS 上,将下水箱液位(LT103)连到内给定调节仪输入端,调节仪 输出端连到电动调节阀(FV101)控制信号端。 3) 打开A3000-CS 电源,调节阀通电。打开A3000-FS 电源。 4) 在A3000-FS 上,启动右边水泵(即P102),给下水箱(V104)注水。 给定值 图1 单容水箱液位数学模型的测定实验

进程管理实验报告

进程的控制 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new

program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。 3 .实验步骤 (1)gedit创建进程1.c (2)使用gcc 1.c -o 1编译并./1运行程序1.c #include #include #include #include void mian(){ int id; if(fork()==0) {printf(“child id is %d\n”,getpid()); } else if(fork()==0) {printf(“child2 id %d\n”,getpid()); } else {id=wait(); printf(“parent id is %d\n”,getpid()); }

自动控制实验报告1

东南大学自动控制实验室 实验报告 课程名称:自动控制原理 实验名称:闭环电压控制系统研究 院(系):仪器科学与工程专业:测控技术与仪器姓名:学号: 实验室:常州楼五楼实验组别:/ 同组人员:实验时间:2018/10/17 评定成绩:审阅教师: 实验三闭环电压控制系统研究

一、实验目的: (1)通过实例展示,认识自动控制系统的组成、功能。 (2)会正确实现闭环负反馈。 (3)通过开、闭环实验数据说明闭环控制效果。 二、实验原理: (1)利用各种实际物理装置(如电子装置、机械装置、化工装置等)在数学上的“相似性”,将各种实际物理装置从感兴趣的角度经过简化、并抽象成相同的数学形式。我们在设计控制系统时,不必研究每一种实际装置,而用几种“等价”的数学形式来表达、研究和设计。又由于人本身的自然属性,人对数学而言,不能直接感受它的自然物理属性,这给我们分析和设计带来了困难。所以,我们又用替代、模拟、仿真的形式把数学形式再变成“模拟实物”来研究。这样,就可以“秀才不出门,遍知天下事”。实际上,在后面的课程里,不同专业的学生将面对不同的实际物理对象,而“模拟实物”的实验方式可以做到举一反三,我们就是用下列“模拟实物”——电路系统,替代各种实际物理对象。 (2)自动控制的根本是闭环,尽管有的系统不能直接感受到它的闭环形式,如步进电机控制,专家系统等,从大局看,还是闭环。闭环控制可以带来想象不到的好处,本实验就是用开环和闭环在负载扰动下的实验数据,说明闭环控制效果。自动控制系统性能的优劣,其原因之一就是取决调节器的结构和算法的设计(本课程主要用串联调节、状态反馈),本实验为了简洁,采用单闭环、比例调节器K。通过实验证明:不同的K,对系性能产生不同的影响,以说明正确设计调节器算法的重要性。 (3)为了使实验有代表性,本实验采用三阶(高阶)系统。这样,当调节器K值过大时,控制系统会产生典型的现象——振荡。本实验也可以认为是一个真实的电压控制系统。 三、实验设备: THBDC-1实验平台 四、实验线路图: 五、实验步骤:

LINUX实验报告

实验报告 ( 2014/ 2015 学年第一学期) 课程名称操作系统A 实验名称文件系统 实验时间2014 年12 月8 日指导单位计算机学院计算机科学与技术系 指导教师徐鹤 学生姓名王生荣班级学号B12040809 学院(系) 计算机学院专业软件工程

实验名称文件系统指导教师徐鹤 实验类型设计实验学时 2 实验时间2014.12.08 一、实验目的和要求 1. 学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。 2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。 3.实现一个文本文件的某信息的插入和删除 4.实现一个记录文件的某记录的插入和删除 二、实验环境(实验设备) Windows XP + VMWare + RedHat Linux 8

三、实验过程描述与结果分析 1. 目录/proc下与系统相关的文件和目录 (1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。 例如:#ls /proc/851/fd 0 1 2 255 这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。 (2)/proc/filesystems:该文件记录了可用的文件系统类型。 (3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat /proc/mount (4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps 2.常用命令讲解 ls 命令 用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ ls -liah * 22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile

过程控制实验报告

东南大学自动化学院 实验报告 课程名称:过程控制实验 实验名称:水箱液位控制系统 院(系):自动化专业:自动化姓名:学号: 实验室:实验组别: 同组人员: 实验时间: 评定成绩:审阅教师:

目录 一、系统概论 (3) 二、对象的认识 (4) 三、执行机构 (14) 四、单回路调节系统 (15) 五、串级调节系统Ⅰ (18) 六、串级调节系统Ⅱ (19) 七、前馈控制 (21) 八、软件平台的开发 (21)

一、系统概论 1.1实验设备 图1.1 实验设备正面图图1.2 实验设备背面图 本实验设备包含水箱、加热器、变频器、泵、电动阀、电磁阀、进水阀、出水阀、增压器、流量计、压力传感器、温度传感器、操作面板等。 1.1.2 铭牌 ·加热控制器: 功率1500w,电源220V(单相输入) ·泵: Q40-150L/min,H2.5-7m,Hmax2.5m,380V,VL450V, IP44,50Hz,2550rpm,1.1kw,HP1.5,In2.8A,ICL B ·全自动微型家用增压器: 型号15WZ-10,单相电容运转马达 最高扬程10m,最大流量20L/min,级数2,转速2800rmp,电压220V, 电流0.36A,频率50Hz,电容3.5μF,功率80w,绝缘等级 E ·LWY-C型涡轮流量计: 口径4-200mm,介质温度-20—+100℃,环境温度-20—+45℃,供电电源+24V, 标准信号输出4-20mA,负载0-750Ω,精确度±0.5%Fs ±1.0%Fs,外壳防护等级 IP65 ·压力传感器 YMC303P-1-A-3 RANGE 0-6kPa,OUT 4-20mADC,SUPPLY 24VDC,IP67,RED SUP+,BLUE OUT+/V- ·SBWZ温度传感器 PT100 量程0-100℃,精度0.5%Fs,输出4-20mADC,电源24VDC

浙工大过程控制实验报告

浙工大过程控制实验报告 202103120423徐天宇过程控制系统实验报告 实验一:系统认识及对象特性测试 一实验目的 1了解实验装置结构和组成及组态软件的组成使用。 2 熟悉智能仪表的使用及实验装置和软件的操作。 3熟悉单容液位过程的数学模型及阶跃响应曲线的实验方法。 4学会有实际测的得单容液位过程的阶跃响应曲线,用相关的方法分别确定它们的参数,辨识过程的数学模型。二实验内容 1 熟悉用MCGS组态的智能仪表过程控制系统。 2 用阶跃响应曲线测定单容液位过程的数学模型。三实验设备 1 AE2000B型过程控制实验装置。 2 计算机,万用表各一台。 3 RS232-485转换器1只,串口线1根,实验连接线若干。四实验原理 如图1-1所示,设水箱的进水量为Q1,出水量为Q2,水箱的液面高度为h,出水阀V2固定于某一开度值。根据物料动态平衡的关系,求得: 在零初始条件下,对上式求拉氏变换,得:

式中,T为水箱的时间常数(注意:阀V2的开度大小会影响到水箱的时间常数),T=R2*C,K=R2为单容对象的放大倍数, R1、R2分别为V1、V2阀的液阻,C 为水箱的容量系数。 阶跃响应曲线法是指通过调节过程的调节阀,使过程的控制输入产生一个阶跃变化,将被控量随时间变化的阶跃响应曲线记录下来,再根据测试记录的响应曲线求取输入输出之间的数学模型。本实验中输入为电动调节阀的开度给定值OP,通过改变电动调节阀的开度给定单容过程以阶跃变化的信号,输出为上水箱的液位高度h。电动调节阀的开度op通过组态软件界面有计算机传给智能仪表,有智能仪表输出范围为:0~100%。水箱液位高度有由传感变送器检测转换为4~20mA的标准信号,在经过智能仪表将该信号上传到计算机的组态中,由组态直接换算成高度值,在计算机窗口中显示。因此,单容液位被控对象的传递函数,是包含了由执行结构到检测装置的所有液位单回路物理关系模型有上述机理建模可知,单容液位过程是带有时滞性的一阶惯性环节,电动调节阀的开度op,近似看成与流量Q1成正比,当电动调节阀的开度op为一常量作为阶跃信号时,该单容液位过程的阶跃响应为 需要说明的是表达式(2-3)是初始量为零的情况,如果是在一个稳定的过程下进行的阶跃响应,即输入量是在原来的基础上叠加上op的变化,则输出表达式是对应原来输出值得基础上的增

自动控制原理实验报告2

自动控制原理课程实验 2010-2011学年第一学期 02020801班 张驰2008300566

? 课本实验内容 6-26 热轧厂的主要工序是将炽热的钢坯轧成具有预定厚度和尺度的钢板,所得到的最终产品之一是宽为3300mm 、厚为180mm 的标准板材。他有两台主要的辊轧台:1号台与2号台。辊轧台上装有直径为508mm 的大型辊轧台,由4470km 大功率电机驱动,并通过大型液压缸来调节轧制宽度和力度。 热轧机的典型工作流程是:钢坯首先在熔炉中加热,加热后的钢坯通过1号台,被辊轧机轧制成具有预期宽度的钢坯,然后通过2号台,由辊轧机轧制成具有与其厚度的钢板,最后再由热整平设备加以整平成型。 热轧机系统控制的关键技术是通过调整热轧机的间隙来控制钢板的厚度。热轧机控制系统框图如下: 扰动)(s N )(s R (1)已知)54(/)(20++=s s s s s G ,而)(s G c 为具有两个相同实零点的PID 控制器。要求:选择PID 控制器的零点和增益,使闭环系统有两对对等的特征根; (2)考察(1)中得到的闭环系统,给出不考虑前置滤波器)(s G P 与配置适当)(s G P 时,系统的单位阶跃响应; (3)当)(s R =0,)(s N =1/s 时,计算系统对单位阶跃扰动的响应。 ? 求解过程 解:(1)已知 )54(/)(20++=s s s s s G )(s G P )(s G C )(0s G

选择 s z s K s G c /)()(2+= 当取K=4,Z=1.25时,有 s s s s s G c 4/25.610/)25.1(4)(2++=+= 系统开环传递函数 )54(/)25.1(4)()(2220+++=s s s s s G s G c 闭环传递函数:)25.61094/()5625.15.2(4))()(1/()()()(2 34200++++++=+=s s s s s s s G s G s G s G s c c φ (2) 当不考虑前置滤波器时,单位阶跃输入作用下的系统输出 )25.61094(/)5625.15.2(4)()()(2342++++++==s s s s s s s s R s s C φ 系统单位阶跃响应如图1中(1)中实线所示。 当考虑前置滤波器时,选 2)25.1/(5625.1)(+=s s G p 则系统在单位阶跃输入作用下的系统输出 )25.61094(/25.6)()()()(234++++==s s s s s s R s s G s C p φ 系统单位阶跃曲线如图1中(1)虚线所示。 (3)当)(s R =0,)(s N =1/s 时,扰动作用下的闭环传递函数 )25.61094/())()(1/()()(23400++++-=+-=s s s s s s G s G s G s c n φ 系统输出 )25.61094/(1)()()(2 34++++-==s s s s s N s s C n n φ 单位阶跃响应曲线如图1中(2)所示。 MATLAB 程序代码: MA TLAB 程序:exe626.m K=4;z=1.25; G0=tf(1,conv([1,0],[1,4,5])); Gc=tf(K*conv([1,z],[1,z]),[1,0]); Gp=tf(1.5625,conv([1,z],[1,z])); G1=feedback(Gc*G0,1); G2=series(Gp,G1); G3=-feedback(G0,Gc); t=0:0.01:10; [x,y]=step(G1,t);[x1,y1]=step(G2,t); figure(1);plot(t,x,'-',t,x1,':');grid

过程控制系统实验报告

《过程控制系统实验报告》 院-系: 专业: 年级: 学生姓名: 学号: 指导教师: 2015 年6 月

过程控制系统实验报告 部门:工学院电气工程实验教学中心实验日期:年月日 姓名学号班级成绩 实验名称实验一单容水箱液位定值控制实验学时 课程名称过程控制系统实验及课程设计教材过程控制系统 一、实验仪器与设备 A3000现场系统,任何一个控制系统,万用表 二、实验要求 1、使用比例控制进行单溶液位进行控制,要求能够得到稳定曲线,以及震荡曲线。 2、使用比例积分控制进行流量控制,能够得到稳定曲线。设定不同的积分参数,进行 比较。 3、使用比例积分微分控制进行流量控制,要求能够得到稳定曲线。设定不同的积分参数,进行比较。 三、实验原理 (1)控制系统结构 单容水箱液位定值(随动)控制实验,定性分析P, PI,PD控制器特性。 水流入量Qi由调节阀u控制,流出量Qo则由用户通过负载阀R来改变。被调量为水位H。使用P,PI , PID控制,看控制效果,进行比较。 控制策略使用PI、PD、PID调节。 (2)控制系统接线表 使用ADAM端口测量或控制量测量或控制量标号使用PLC端 口 锅炉液位LT101 AI0 AI0 调节阀FV101 AO0 AO0 四、实验内容与步骤 1、编写控制器算法程序,下装调试;编写测试组态工程,连接控制器,进行联合调试。这些步骤不详细介绍。

2、在现场系统上,打开手阀QV-115、QV-106,电磁阀XV101(直接加24V到DOCOM,GND到XV102控制端),调节QV-116闸板开度(可以稍微大一些),其余阀门关闭。 3、在控制系统上,将液位变送器LT-103输出连接到AI0,AO0输出连到变频器U-101控制端上。 注意:具体哪个通道连接指定的传感器和执行器依赖于控制器编程。对于全连好线的系统,例如DCS,则必须安装已经接线的通道来编程。 4、打开设备电源。包括变频器电源,设置变频器4-20mA的工作模式,变频器直接驱动水泵P101。 5、连接好控制系统和监控计算机之间的通讯电缆,启动控制系统。 6、启动计算机,启动组态软件,进入测试项目界面。启动调节器,设置各项参数,将调节器的手动控制切换到自动控制。 7、设置PID控制器参数,可以使用各种经验法来整定参数。这里不限制使用的方法。 五、实验结果记录及处理 六、实验心得体会: 比例控制特性:能较快克服扰动的影响,使系统稳定下来,但有余差。 比例积分特性:能消除余差,它能适用于控制通道时滞较小、负荷变化不大、被控量不允许由余差的场合。 比例微分特性:对于改善系统的动态性能指标,有显著的效果。

过程控制实验报告

《过程控制实验》 实验报告

第一章、过程控制实验装置的认识 一、过程控制实验的基本内容及概述 本次过程控制实验主要是对实验室的水箱水位进行控制。水箱液位控制系统是一个简单控制系统,所谓简单液位控制系统通常是指由一个被控对象、一个检测变送单元(检测元件及变送器)、以个控制器和一个执行器(控制阀)所组成的单闭环负反馈控制系统,也称为单回路控制系统。 简单控制系统有着共同的特征,它们均有四个基本环节组成,即被控对象、测量变送装置、控制器和执行器。 图1-1 水箱液位控制系统的原理框图 这是单回路水箱液位控制系统,单回路调节系统一般指在一个调节对象上用一个调节器来保持一个参数的恒定,而调节器只接受一个测量信号,其输出也只控制一个执行机构。本系统所要保持的恒定参数是液位的给定高度,即控制的任务是控制水箱液位等于给定值所要求的高度。 二、主要设备 1)水路装置的认识 过程控制实验用的水路装置图如下

图1-2 水路图 由水路装置图我们看到,装置主要有水箱,交流电动泵,热炉,管道,电动阀,电磁阀,流量计,液位传感器,温度传感器组成,可以构成一个完整的过程控制实验平台。从上图我们可以看出,装置主要分为两大部分,第一水路,管道,热炉,水箱等等物理对象,第二是传感器,执行机构等等的控制部分的装置。 实验装置具体介绍如下:

b)电气连接图 由电气装置的图我们可以看到,所有的电器连接都在这里,主要是一些传感器信号,电动驱动信号,用于电动装置的驱动。 见附件 c)操作面板图: 从操作面板上我们可以看到主要是由四个表,由P909构成,用于测量控制压力、流量、液位、温度的测量以及控制,PV代表反馈测量,外给定可以用于串级控制,OUT用于输出信号,以上接口均使用4-20mA标准 见附件 第二、三章、实验系统的认知(包括力控软件,P909,实验装置) a)力控软件的安装 首先使用光盘里的Setup.exe安装力控软件的主题部分,然后将IO Servers文件夹拷到力控软件的安装目录下,安装IO Servers驱动 然后打开力控软件,寻找到力控软件的目录,点击开发模式,然后找到COM设置的部分,如图

《过程控制系统》实验报告

《过程控制系统》实验报告 学院:电气学院 专业:自动化 班级:1505 姓名及学号:任杰311508070822 日期:2018.6.3

实验一、单容水箱特性测试 一、 实验目的 1. 掌握单容水箱阶跃响应测试方法,并记录相应液位的响应曲线。 2. 根据实验得到的液位阶跃响应曲线,用相关的方法确定被测对象的特征参数T 和传递函数。 二、 实验设备 1. THJ-FCS 型高级过程控制系统实验装置。 2. 计算机及相关软件。 3. 万用电表一只。 三、 实验原理 图1 单容水箱特性测试结构图 由图 2-1 可知,对象的被控制量为水箱的液位 h ,控制量(输入量)是流入水箱中的流量 Q 1,手动阀 V 1 和 V 2 的开度都为定值,Q 2 为水箱中流出的流量。根据物料平衡关系,在平衡状态时02010=-Q Q (式2-1),动态时,则有dt dV Q Q = -21,(式2-2)式中 V 为水箱的贮水容积,dt dV 为水贮存量的变化率,它与 h 的关

系为Adh dV =,即dt dh A dt dV =(式2-3),A 为水箱的底面积。把式(2-3)代入式(2-2)得dt dh A Q Q =-21(式2-4)基于S R h Q =2,S R 为阀2V 的液阻,(式2-4)可改写为dt dh A R h Q S =-1,1KQ h dt dh AR S =+或()()1s 1+=Ts K s Q H (式2-5)式中s AR T =它与水箱的底面积A 和2V 的S R 有关,(式2-5)为单容水箱的传递函数。若令()S R S Q 01=,常数=0R ,则式2-5可表示为()T S KR S R K S R T S T K S H 11/000+-=?+= 对上式取拉氏反变换得()()T t e KR t h /01--=(式2-6),当∞→t 时()0KR h =∞,因而有()0/R h K ∞==输出稳态值/阶跃输入,当T t =时,()() ()∞==-=-h KR e KR T h 632.0632.01010,式2-6表示一阶惯性响应曲线是一单调上升的指数函数如下图2-2所示 当由实验求得图 2-2 所示的阶跃响应曲线后,该曲线上升到稳态值的 63%所对应的时间,就是水箱的时间常数 T 。该时间常数 T 也可以通过 坐标原点对响应曲线作切线,切线与稳态值交点所对应的时间就是 时间常数 T ,由响应曲线求得 K 和 T 后,就能求得单容水箱的传递函 数如式(2-5)所示。 如果对象的阶跃响应曲线为图 2-3,则在此曲线的拐点 D 处作一切线,它与时间轴交于 B 点,与响应稳态值的渐近线交于 A 点。图中OB 即为对象的滞后时间

北邮-大三-操作系统-进程管理实验报告

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include<> #include<> #include <> #include <> int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){

printf("b\n"); } else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!

自动控制原理实验报告73809

-150-100 -50 50 实验一 典型环节的模拟研究及阶跃响应分析 1、比例环节 可知比例环节的传递函数为一个常数: 当Kp 分别为0.5,1,2时,输入幅值为1.84的正向阶跃信号,理论上依次输出幅值为0.92,1.84,3.68的反向阶跃信号。实验中,输出信号依次为幅值为0.94,1.88,3.70的反向阶跃信号, 相对误差分别为1.8%,2.2%,0.2%. 在误差允许范围内可认为实际输出满足理论值。 2、 积分环节 积分环节传递函数为: (1)T=0.1(0.033)时,C=1μf (0.33μf ),利用MATLAB ,模拟阶跃信号输入下的输出信号如图: T=0.1 T=0.033 与实验测得波形比较可知,实际与理论值较为吻合,理论上T=0.033时的波形斜率近似为T=0.1时的三倍,实际上为8/2.6=3.08,在误差允许范围内可认为满足理论条件。 3、 惯性环节 i f i o R R U U -=TS 1 CS R 1Z Z U U i i f i 0-=-=-=15 20

惯性环节传递函数为: K = R f /R 1,T = R f C, (1) 保持K = R f /R 1 = 1不变,观测T = 0.1秒,0.01秒(既R 1 = 100K,C = 1μf , 0.1μf )时的输出波形。利用matlab 仿真得到理论波形如下: T=0.1时 t s (5%)理论值为300ms,实际测得t s =400ms 相对误差为:(400-300)/300=33.3%,读数误差较大。 K 理论值为1,实验值2.12/2.28, 相对误差为(2.28-2.12)/2.28=7%与理论值 较为接近。 T=0.01时 t s (5%)理论值为30ms,实际测得t s =40ms 相对误差为:(40-30)/30=33.3% 由于ts 较小,所以读数时误差较大。 K 理论值为1,实验值2.12/2.28, 相对误差为(2.28-2.12)/2.28=7%与理论值较为接近 (2) 保持T = R f C = 0.1s 不变,分别观测K = 1,2时的输出波形。 K=1时波形即为(1)中T0.1时波形 K=2时,利用matlab 仿真得到如下结果: t s (5%)理论值为300ms,实际测得t s =400ms 相对误差为:(400-300)/300=33.3% 读数误差较大 K 理论值为2,实验值4.30/2.28, 1 TS K )s (R )s (C +-=

linux操作系统实验报告

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年 05月 16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,容是hello,然后再使用追加重定向输入容为word。 4、使用管道方式分页显示/var目录下的容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入容为word。步骤与输入容HELLO一样,然后用命令显示文件的全部容。 4.使用命令ls /etc显示/etc目录下的容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1);

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