作业1-加热罐实时控制案例分析
加热罐实时控制案例分析
功能分析:
这个例子的实质就是一个电机控制系统,系统的核心就是控制电动阀。溶液由阀门流进加热罐,由加热罐地底部的排水管流出,罐中还有一个可控的加热器,系统如图所示。
在这个控制系统中,假设电机控制阀门位置,从罐中流出的液体的速率与液面高度成正比,罐中溶液混合极好,没有温度梯度,没有热量损失。就热能来说,温度的变化取决于流入流出的溶液间的能量传输和加热器释放的能量。测量装置有两个,分别测量液位和温度。控制系统需要保证液体的温度和所处的液位符合要求。由此可以建立相应的控制过程模型。
控制系统的结构:
如图所示,采用双环控制结构,内环控制阀门位置,外环控制液面。
如果你是软件设计者,要实现这些实时功能,要设计几个实时任务?:
全部任务及其优先级顺序是:
驱动任务;
报警任务;
阀门/液面控制任务;
温度控制任务;
检测任务;
数据 记录任务;
输出流和操作员的交互后台任务;
最高优先级的的任务是数据采集和驱动控制。例如ADC和电机驱动信号发送,必须保证高的实时性,要求的计算时间足够短。
控制计算是次高优先级的任务,由于液面控制室串联形式,把控制部分分作两个任务。液面控制环的采样时间要长于阀门位置环,这样使CPU的效率分更高。
比控制人物优先级更低的任务是检测任务,它的功能是根据生产状况的检测,确定控制的给定值,常常由管理生产的计算机传送到控制计算机。本例中检测任务设定初始给定值,然后改变为新的给定值。
数据记录任务的优先级更低,它的功能是使用采集到的数据数据信息进行参数调节,或者故障诊断。
后台任务的优先级最低,后台主要是提供与操作系统的接口,与操作人员交互作用。操作系接口的特征取决于特殊的实时软件,以及所使用的操作系统。在后台有几个不同功能的情况下,采用扩展的操作接口,可以把这些功能分解为几个单独的任务,以相同的优先级进行时间片任务调度。
在这个系统中,如果液面超过某个预定的极限值,就看做是异常状态或者有潜在危险。因此必须立刻采取某些措施,建立一个报警任务来处理这种情况。它的优先级比控制任务的优先级高,保证报警及时进行。报警时可以切断溶液的输入和关断加热器。报警任务可以直接驱动输出,让阀门和关断加热器。报警任务首先悬挂其他任务,然后直接发送驱动命令到外部设备,同时记录信息到输出流,通过声光信号或者媒体语音信号等通知操作人员。
该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计。
强实时功能有数据采集和驱动控制,例如ADC和电机驱动信号发送,必须保证高的实时性,要求的计算时间足够短。为了保证模拟数字转换的实时性,在考虑ADC性能和相关参数的前提下,可以设置ADC响应时间在30ms以内,从而满足实时测量的需求。电机驱动信号与阀门位置控制紧密相关,而且在控制回路中处于内环部分,必须保证有较高的实时性,根据实际需求(例如某can总线控制驱动电机通信报文要求的字节信号间隔时间最大为3ms)可以设置其响应时间在3ms以内,能够保证电机控制的实时性和控制功能的正确性。同时在满足整体实时性功能完整的同时,还要保证器件、通信的时序要求,例如伺服电机的驱动信号是总线信号的时候,相应通信报文字节信号发送的时间间隔不能超过硬件协议的规定值,否则会产生通信错误,无法达到基本的控制要求。因此,在进行系统调试的时候,硬件和软件的调试要同时进行,计算机上的模拟与硬件运行的实际情况是不同的。
这几个实时任务是时间触发的还是事件触发的,如果是时间触发的,周期大约是多少?
根据控制功能的逻辑功能,驱动任务、报警任务、阀门控制任务、温度控制任务是事件触发的可以根据状态转换图设计相应的自动机模型。而检测任务、数据记录任务、输出流和操作员的交互后台任务都具有一定的独立性,只需要按照时间周期进行就能满足要求,是时间触发的。例如,检测任务中,温度检测和、液面检测阀门位置检测都需要较高的采样速率以满足实时控制任务的需求。可以设置温度检测的时间周期为20ms,液面检测任务的时间触发周期为20ms。数据记录任务的实时性要求不高,优先级也较低,可以设置其出发周期为100ms,充分利用硬件资源。输出流和后台交互任务要满足人体工程学需求,例如按键响应、屏幕的刷新、键盘等外接设备的响应等。
任务间通信与数据、硬件资源依赖关系:
各个任务之间由于存在一定的逻辑关系,因此在逻辑、时序上有一定的依赖关系。例如驱动任务和温度控制必须要在液面检测和温度检测得到相应判断结果之后才能执行其相应的功能。
同时,由于各个任务之间可能共享数据、硬件资源等,也存在一定的依赖性。例如多个受控装置都是通过同一通信通道进行通信的,在硬件资源不充足的情况下要根据优先级等因素考虑,合理分配控制权
由于为了使整个系统具备恰当的功能,任务中的信息变化、传输必须是有序的。各个任务之间的数据依赖关系如下,左边一列是产生数据的任务,右边一列是使用数据的任务,中间一列表示数据的特征。多数任务既耗散数据,同时也产生数据。
在进行软件设计时,需要考虑到数据传送、拷贝时的安全,充分利用中断互斥技术等。