第一篇:MATLAB GUI数据传递总结
Matlab的GUI参数传递方式总结
其实Matlab提供了很多种直接或间接方法实现多fig中的数据共享,只是大家没有注意
罢了:
1、全局变量
2、作为函数的参数传递
3、利用控件的userdata数据
4、为handles结构体添加新字段
5、setappdata函数为句柄添加数据
6、跨空间计算evalin和赋值assignin
7、将数据保存到文件,需要时读取
8、带参数调用GUI的M文件
9、嵌套函数(不适用于GUIDE中,只适用纯命令是的GUI)
一、全局变量
运用global定义全局变量传递参数,适用于gui内控件间以及不同gui间。这种方式恐怕是最简单的方式,是很省心!但是,简单的问题就在于有时你会很头疼!因为在每一个要到该全局变量的地方,你都要添一句gloal x,还有就是如果你在一个地方修改了 x的值,那么所有x的值就都变了!有的时候恐怕会出现紊乱。另一个更重要的问题在于,套用C++的一句话,全局变量破坏了程序的封装性!所以,全局变量是能少用尽量少用。
以下创造一个简单的GUI给大家说明一下,建一个GUI,包含两个按钮,一个坐标系,一个用来画y=sin(x),一个用来画y=cos(x);eg:在GUI的OpeningFcn函数中写: global x y1 y2 x=0:.1:2*pi;y1=sin(x);y2=cos(x);在pushbutton1_Callback函数中写 Global x y1 Plot(x,y1)在pushbutton1_Callback函数中写 Global x y2 Plot(x,y2)全局变量是比较方便的,但全局变量会破坏封闭性,如果不是有大量数据要传递,建议不要使用。
二、运用gui本身的varain{}、varaout{}传递参数
这种方式仅适用于gui间传递数据,且只适合与主子结构,及从主gui调用子gui,然后关掉子gui,而不适合递进结构,即一步一步实现的方式。输入参数传递(主要在子gui中设置):
比如子GUI的名称为subGUI, 设想的参数输入输出为:[out1, out2] = subGUI(in1, in2)在subGUI的m文件中(由GUIDE自动产生):
1.第一行的形式为:function varargout = subGUI(varargin)该行不用做任何修改;varargin 和 varargout 分别是一个可变长度的cell型数组。输入参数in1和in2保存在varargin中,输出参数out1,out2包含在varargout中; 2.在subGUI的OpeningFcn中,读入参数,并用guidata保存,即: handles.in1 = varargin{1};handles.in2 = varargin{2};guidata(hObject, handles);返回参数的设置:
1.在主GUI的OpeningFcn函数中加上[out1, out2] = subGUI(in1, in2),用于调用子gui,并在结尾加上uiwait(handles.figure1);figure1是subGUI的Tag,主要是等待调用子gui的过程,从而获得子gui的输出参数out1、out2;
2.subGUI中控制程序结束(如“OK”和”Cancel"按钮)的callback末尾加上uiresume(handles.figure1),注意是主gui的窗口handles.figure1,不要将delete命令放在这些callback中;
3.在子GUI的OutputFcn中设置要传递出去的参数,如 varargout{1} = handles.out1;varargout{2} = handles.out2;末尾添加 delete(handles.figure1);结束程序。
在GUI的OpenFcn中,如果不加uiwait,程序会直接运行到下面,执行OutputFcn。也就是说程序一运行,返回值就确定了,再在其它部分对handles.output作更改也没有效果了。
加上uiwait后,只有执行了uiresume后,才会继续执行到OutputFcn,在此之前用户有充分的时间设置返回值。
通过以上设置以后,就可以通过 [out1, out2] = subGUI(in1, in2)的形式调用该子程序。
在一个GUI中调用另一个GUI时,主GUI不需要特别的设置,同调用普通的函数一样。在打开子GUI界面的同时,主程序还可以响应其它的控件。不需要担心子GUI的返回值被传错了地方。
三、userdata数据
直接通过对象的userdata属性进行各个callback之间的数据存取操作,主要适用于gui内。首先必须将数据存储到一个特定的对象中,假设对象的句柄值为ui_handle,需要存储的值为value,则输入以下程序即可:
set('ui_handle','UserData',Value);此时,value数据就存在句柄值为ui_handle的对象内,在执行的过程中若要取回变量可以通过以下方式在任意callback中获取该数据值 :
value=get(''ui_handle,'UserData');虽然使用这种方法简单,但是每个对象仅能存取一个变量值,因此当同一对象存储两次变量时,先前的变量值就会被覆盖掉,因此都用UserData存储简单与单一的数据。如下面有两个gui函数,myloadfn加载mydata.mat文件,该文件内存储XYData变量,其值为m*2的绘图矩阵,加载后将该变量值存储到 当前的窗口的UserData属性中。另一个myplotfcn函数则是用以获取该UserData属性中存取的绘图数据,然后绘图。代码如下:
function myloadfcn load mydata;set(gcbf,'UserData',XYdata)
function myplotfcn XYdata=get(gcbf,'UserData');x=XYData(:,1);y=XYData(:,2);plot(x,y);userdata的缺点就是一个句柄只能放一个Userdata。
四、GUI数据(handles)
结合handles和guidata函数,适用于gui内,如果你在pushbutton1中得到一个变量X,相传出去,那么在pushbutton1的callback中,在得到X后添加如下代码: handles.X=X;guidata(hObject,handles)(注意,一定是两行连写)在pushbutton2中要用到X是,在其callback先添加 X=handles.X; 即可得到X的值。注:
1.guidata(object_handle,data);如果object_handle不是figure型句柄,那么会将data保存在object_handle的父figure对象中。这样不必担心在一个pushbutton的callback中存储的变量在其他对象中无法提取。
2.data = guidata(object_handle);获取当前object_handle的handles数据,最后一次guidata(object_handle,data)保存的数据。
一个简单的GUI给大家说明一下,建一个GUI,包含两个按钮,一个坐标系,一个用来画y=sin(x),一个用来画y=cos(x);eg:在GUI的OpeningFcn函数中写: x=0:.1:2*pi;y1=sin(x);y2=cos(x);handles.x=x;handles.y1=y1;handles.y2=y2;guidata(hObject, handles);%注意,在OpeningFcn函数中这句是本身存在的,若在其它函数中,务必加上这句
在pushbutton1_Callback函数中写 x=handles.x;y1=handles.y1;plot(x,y1)在pushbutton2_Callback函数中写 x=handles.x;y2=handles.y2;plot(x,y2)
五、Application数据
应用setappdatagetappdata与rmappdata函数,适用于gui间和gui内。使用上面三个函数最有弹性处理数据的传送问题,与UserData的方式相类似,但是克服UserData的缺点,使一个对象能存取多个变量值。
(1)getappdata函数
value=getappdata(h,name)(2)setappdata函数
setappdata(h,name,value)(3)rmappdata函数 rmappdata(h,name)首先在matlab命令窗口输入magic(3)数据,因此当前的工作空间就存储了magic(3)这组数据了,然后建立一个按钮来获取并显示magic(3)数据。A=magic(3);setappdata(gcf,'A',A);%save uicontrol('String','显示矩阵
A','callback','A=getappdata(gcf,''A'')');A =
1 6 3 5 7 4 9 2 当在主、子gui内调用时,可以如下设置
fig1调用fig2时,使用fig2指令来打开fig2, 在fig2的m文件中,在回调函数中用setappdata(fig1,'A',A);实现返回fig1,并将参数A传递给fig1 然后在fig1的使用A的地方添加A=getappdata(fig1,‘A’)。
但这种方式的一个问题就是每调用一次,fig1的数据就得初始化一次,这是因为setappdata(fig1,'A',A)中出现了fig1,调用一次setappdata就得运行一次fig1的缘故,解决方案就是把setappdata(fig1,'A',A)改为setappdata(0,'A',A),这样把A读入matlab workspace,相当于一个全局变量了,但当然比直接用global定义全局变量好!同样的例子:
eg:在GUI的OpeningFcn函数中写: x=0:.1:2*pi;y1=sin(x);y2=cos(x);setappdata(handles.figure1,'x',x)%在figure1下创建’x’,包含数据x,也可以放在其它句柄下,如setappdata(handles.pushbutton1,'x',x),不过一般放在figure1下,记起来方便…… setappdata(handles.figure1,'y1',y1)setappdata(handles.figure1,'y2',y2)在pushbutton1_Callback函数中写
x=getappdata(handles.figure1,'x');%提取,当然用get了…… y1=getappdata(handles.figure1,'y1');plot(x,y1)在pushbutton1_Callback函数中写
x=getappdata(handles.figure1,'x');y2=getappdata(handles.figure1,'y2');plot(x,y2)
六、跨空间计算evalin和赋值assignin 适用于gui间和gui内 Assignin函数基本语法
assignin(ws, 'var', val)其中'base' or 'caller',分别表示基本工作空间和调用函数(caller function)工作空间,Assinin函数将值val指定给工作空间ws中的变量var,若变量var不存在,则创建一个变量var。从一个函数function向MATLAB工作空间中输入数据; 在一个函数function内部,需要改变一个在caller function函数工作空间中定义的变量,例如函数形参列表中的变量。例子:
%向基本工作空间中传输数据变量 Function assignin_test1 prompt = {'Enter image name:','Enter colormap name:'};title = 'Image display-assignin example';lines = 1;def = {'my_image','hsv'};answer = inputdlg(prompt,title,lines,def);assignin('base','imfile',answer{1});assignin('base','cmap',answer{2});
evalin函数基本语法
evalin(ws, expression)[a1, a2, a3,...] = evalin(ws, expression)在特定的工作空间执行MATLAB语句,expression的形式如
expression = [string1, int2str(var), string2,...] [a1, a2, a3,...] = evalin(ws, expression),将返回值赋予变量a1,a2,a3,...evalin(ws,'[a1, a2, a3,...] = function(var)')注:
evalin('caller', expression),只能指定callerfunction函数中的变量为expression的语句,而不能是subfunction 该函数不可嵌套使用,evalin('caller', 'evalin(''caller'', ''x'')')是错误的
例子:
如果在figure1中有个变量a1 则传入时assignin('base','a1',data)%data是workplace中的变量 在figure2传出时a2=evalin('base','data');%a2是figure2中的变量
七、将数据保存到文件,需要时读取
运用save和load(importdata)传递参数,适用于gui间和gui内。将某变量x的值先存到磁盘,用的时候在调用。格式如下:save('*.mat','x');用的时候就用load('*.mat'),但这样只是把x读到了matlab workspace,不会用显示,你还要再去查看这个变量名, 然后才能用,建议使用p=importdata('*.mat'),p是一个结构体,可以随意使用了。当然,这种方式涉及到磁盘读写,速度当然会有影响的,一般情况不用,通常用在保存以及导入某个变量时!
八、带参数调用GUI的M文件
这个相信大家都很熟悉了,适用于gui间和gui内。
总结几点:
① 如果变量数据量很大,需要占用大量内存,不要将变量存储为handles的变量,因为每个控件每次调用callback function都会使用handles,增加不必要的内存开销。若改变量存取不频繁,可以考虑UserData数据或者Application数据;若存取比较频繁,建议使用Global变量和Application结构体,这里的Application要定义为setappdata(0,'var',val)以及getappdata(0,'var',val)。② 对于GUI界面之间的数据传递,可以考虑以下几种方法: 方法1:采用global函数。可以采用这种方法共享数据;
方法2:采用findobj和findall函数查找对象句柄 findall(0, 'Type', 'figure', 'Tag', 'figure1')查找标签为figure1的窗口,无论该窗口是否隐藏。
方法3:采用handles结构。
假设我们在窗口1的Opening函数中,采用函数创建了一个子窗口2: h_fig = figure('Visible', 'off',...);h_btn1 = uicontrol('Parent', h_fig, ‘Tag', 'btn1',...);h_btn2 = uicontrol('Parent', h_fig, ‘Tag', 'btn2',...);h_btn3 = uicontrol('Parent', h_fig, ‘Tag', 'btn3',...);
如果我们要在窗口1的任何回调函数中,直接访问子窗口2的任意控件,可以在上述语句后紧跟着写下如下语句:
handles.btn1 = h_btn1;handles.btn2 = h_btn2;handles.btn3 = h_btn3;最后,需要一个guidata语句。当然,Opening函数最后有guidata语句,所以不用自己添加。
方法4:将要共享的数据使用save函数存入mat文件;或者使用文件I/O函数,存入文本文件中。
第二篇:matlabGUI图像处理
图像处理
一、实习任务
利用MATLAB里面的一些特定函数和GUI可视化图形界面设计一个属于自己的photoshop,使其完成简易的放大、缩小、截图以及直方图统计等功能。
二、实习内容
1、布局设计
2、程序设计 %文件打开
[name,path]=uigetfile({'*.*';'*.bmp';'*.tif';'*.png';'*.gif';'*.jpg'},'载入图像');if isequal(name,0)|isequal(path,0)errordlg('没有选中文件','出错');return;else x=imread([path,name]);axes(handles.axes1);imshow(x);handles.img=x;handles.noise_img=x;guidata(hObject,handles)end
%文件保存
[filename,pathname] = uiputfile({'*.*';'*.bmp';'*.tif';'*.png';'*.gif';'*.jpg'},'图片保存为');if isequal([filename,pathname],[0,0])errordlg('没有保存','出错');return;else file=strcat(pathname,filename);(handles.axes2);i=getimage(gca);imwrite(i,file);end
%文件退出 clc;close all;close(gcf);
%灰度处理
axes(handles.axes2);if isrgb(handles.img)y=rgb2gray(handles.img);%RGB•••••••••• imshow(y);else msgbox('这已经是灰度图像','转换失败');end %截图
set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);y=imcrop(handles.img);imshow(y);handles.Timage=y;
%双线性缩小
axes(handles.axes2);prompt={'输入放大倍数:'};defans={'0.2'};p=inputdlg(prompt,'输入放大倍数',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'bilinear');%法缩小 imshow(y);
%双线放大
axes(handles.axes2);prompt={'输入放大倍数:'};defans={'2'};p=inputdlg(prompt,'输入放大倍数',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'bilinear');%值法放大 imshow(y);
%上下翻转
最近邻插值最近邻插axes(handles.axes2);x=(handles.img);if isrgb(handles.img)for k=1:3 y(:,:,k)=flipud(x(:,:,k));%上下翻转函数 end imshow(y);else x=(handles.img);y=flipud(x);imshow(y);end
%左右翻转
axes(handles.axes2);if isrgb(handles.img)x=(handles.img);for k=1:3 y(:,:,k)=fliplr(x(:,:,k));%左右翻转函数 end imshow(y);else x=(handles.img);y=fliplr(x);imshow(y);end
%左转90度
axes(handles.axes2);x=(handles.img);y=imrotate(x,90);imshow(y);
%右转90度
axes(handles.axes2);x=(handles.img);y=imrotate(x,-90);imshow(y);
%任意角度旋转 axes(handles.axes2);prompt={'输入参数1:'};defans={'30'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});y=imrotate(handles.img,p1);imshow(y);
%亮度处理
prompt={'输入参数1','输入参数2','输入gamma'};defans={'[0 0.7]','[0 1]','1'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});p3=str2num(p{3});gamma=p3;x=(handles.img);y=imadjust(x,p1,p2,gamma);axes(handles.axes2);imshow(y);%G直方图
set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);if isrgb(handles.img)x=imhist(handles.img(:,:,2));%直方图统计 x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,'xtick',0:50:255);else msgbox('这是灰度图像','旋转失败');end %R直方图
set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);x=imhist(handles.img(:,:,1));%统计
x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,'xtick',0:50:255);%B直方图
set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);if isrgb(handles.img)
直方图x=imhist(handles.img(:,:,3));%直方图统计
x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%axis([0 255 0 150000]);set(handles.axes2,'xtick',0:50:255);%set(handles.axes2,'ytick',0:2000:15000);else msgbox('这是灰度图像','旋转失败');end
%直方图均衡
set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);if isrgb(handles.img)a=histeq(handles.img(:,:,1));b=histeq(handles.img(:,:,2));c=histeq(handles.img(:,:,3));k(:,:,1)=a;k(:,:,2)=b;k(:,:,3)=c;imshow(k);else h=histeq(handles.img);%直方图均衡 imshow(h);end
3、效果图
三、遇到的问题及解决方法
1、遇到的问题
最开始在Command里面用imread打开图片是可行的,但到了GUI里面之后,会出现一些错误,主要就是提示说:找不到对应的地方。还有就是在编写完程序之后,放大感觉没有任何变化。
2、解决方法
在查询资料后发现,在GUI里面打开图片是需要编写图片的地址以及格式的,要先判断你要操作的图片是否存在,如果不存在,应该提示你不存在的错误;在不能放大这个问题上,后来发现是axes2不够大,也就是画布不够大,再放大了画布后,放大就明显多了,缩小的时候也是这样。
四、主要收获和心得体会
在俩周的自动化软件实训里面,最大的感触就是MATLAB很强大,不但可以用自己自带的函数,还可以和C语言Java等语言连接共用,在处理图像上有自己独特的优势,在编辑菜单之后再进行相应的编程,做出来的界面和网页一样好看,这俩周特别快,不过收获很多,在很大程度上锻炼了我们的设计能力。
第三篇:工地数据传递流程规定
工作流程规定
为确保各部门、各项目部数据信息上报渠道畅通,做到信息资源共享,特制定工作流程规定如下:
一、数据信息传输渠道
项目部数据信息传输及原始单据和凭证,可采取邮件、短信及邮寄等方式。一是所有生产施工数据信息,传公司经营部造价员处;二是所有工程内业资料信息,传经营部资料员处;三是所有物资采购申请与消耗数据信息,传经营部物资助理处;四是所有行政、人事信息资料,传综合部人力资源助理处;五是所有原始单据和凭证,邮寄财务部出纳处。
二、数据信息传输时间规定
(一)生产日报表
项目部出纳(或指定人员),每天的产值、点工及运输等日报表,务于次日12点前上传公司经营部;同时,将现金日记帐上传财务部。
(二)票据报送
项目部出纳(或指定人员)每月3号、15号、25号前,将所有原始单据和凭证(包括费用报销单、供应商送货单、与甲方有关业务单据、出入库单及相关统计报表等),寄回公司财务部。
(三)验工计价单
项目部出纳(或指定人员)每月28号前,将甲方验工计价单及班组、点工结算单上传公司经营部。
(四)材料消耗表与物资计划、采购申请单
每周一,项目部出纳(或指定人员)将生产消耗主、辅材料统计表上传公司经营部;每月15号、30号前,项目部出纳(或指定人员)将物资计划、采购申请单上传经营部。
(五)考勤表与请假单
每月3号前,项目部出纳(或指定人员)将项目负责人审核签字的上月考勤表及请假单一并上传公司综合部;每月10号前,综合部统计核实完毕各部门及项目部考勤,一并交到财务部,作为发放工资的依据。
(六)会议记录
项目部每周必须召开一次工作例会,出纳(或指定人员)务于次日12点前,将会议记录上传公司综合部。
(七)考核表(具体考核目标,视各项目而定)
每月30日前,分管副总负责对所属项目负责人(项目经理、副经理)当月完成目标产值、安全文明施工等情况进行考核,项目负责人对所属现场管理人员履行职责、生产施工监管等情况进行考核,并于次月3号前将考核结果上传公司综合部。
(八)用工协议与离职报告
项目用工需与项目部负责人签订用工协议,辞职需写离职报告并经项目负责人签字同意,并在第一时间将当事人用工协议、身份证件、离职报告等人事资料,扫描上传公司综合部。
上述报送内容,不按规定时间报送的,延误一天/项处罚50元。此规定自二0一四年元月一日起执行,执行中若有不妥之处,请各部门、各项目部及时提出,以便修订和完善。
综合部
二0一三年十二月三十一日
第四篇:传递总结(定稿)
.第一章1.扩散传递方式有分子传递和涡流传递;其中分子传递是因流场中存在速度梯度,分子的随
积分得
机热运动引起的,涡流传递时有微团的脉动引起的(湍流)。2.“通量=-扩散系数×浓度梯度”称为
1p2uxyC1yC22x
dqhzdidz(tstb)(qA)sdidz设流体经过微分段管长
d
z后,温度升高
di2ubcpdtbdtb,由热量衡算可得
dq
4现象方程。“-”表示通量的方向与梯度的方向相反。由下列边界条件确定积分常数: 上述二式的dq相等,经整理后得
(qA)dzdi
第二章1.柱坐标系的连续性方程为
对于不可压缩流体在1(ru1r平面的二维流动,rrr)r(u)z(uz)0常数,u0,uz0,故有1zrr(ru1u zr)r0
2.采用适当坐标系的一般化连续性方程描述,并结合下述具体条件加以简化(1)在矩形截面管道内,可压缩流体作稳态一维流动;(2)在平板壁面上不可压缩流体作稳态二维流动;(3)在平板壁面上可压缩流体作稳态二维流动;(4)不可压缩流体在圆管中作轴对称的轴向稳态流动;(5)不可压缩流体作球心对称的径向稳态流动。
稳u0uuuxyuyuzxuyzzxxyz0态: ,一维流动:u,u∴,即
0x0y0uzzuzz0(u z)z0(2)(ux)(uy)xy(uz)
z0稳态:,二维流动:u∴,从而 z0(ux)u,又y)0x(y0constu xxuyy0(3)(2)中const∴(ux)(u y)xy0(4)1
rrru1rruzuz0稳态:,轴向流动:u,轴对称:∴,u0r0u
(不z0z0zz0可压缩const)
稳态,沿球11r2r(r2ursinu1r)(sin)rsin(u)00心对称,不可压缩 0const 0∴1,即 2d
r2r(rur)0dr(r2ur)0
p2uyy23(uxxuyyuzz)uxxxp2x23(uxxuyyuzyyz)xyyx(uxyuyx)yzzy(uzuyyz)4.随体加速度向量的表达式。DuDDuDuDu(uxuuuuyDxDiDjuuxuxuxxuyyuxzz)i(yuyxxuyyyuyzz)j第三章1.如本题附图所示,两平行的水平平板间有两层互不相溶的不可压缩流体,这两层流体的密度、动力粘度和厚度分别为、、11h和为1、2、2h,设两板静止,流体在常压力梯度2作用下发生层流运动,试求流体的速度分布。
解:将直角坐标下的连续性方程和运动方程化简,可得 d2u x1pdy2x
(1)
yh0;(2)
yh(3)
(4)
1,ux12,ux20;y0,ux1ux2;y0,dux1dux21dy2dy将以上4个边界条件代入式(1)与(2)作业:
1.在一无内热源固体热圆筒壁中进行径向稳态导热
r11mt1200℃,r22mt2100℃,kk40(1t)k00.138W/(mK),1.95101K,推导q表达式并求单位长度导热速率.3.将厚度为0.3 m的平砖墙作为炉子一侧的衬里,衬里的初始温度为30 ℃。墙外侧面绝热。由于炉
内有燃料燃烧,炉内侧面的温度突然升至600℃并维持此温度不变。试计算炉外侧绝热面升至100℃
时所需的时间。已知砖的平均导热系数k =1.12
5W/(mK),导温系数5.2107m2/s。
解:将平砖墙视为一维导热,则其温度分布式为
式
中
Ttts4ttexp[(2)2Fo]cos(2L*)1333exp[(2)2Fo]cos(2L*)……0sx对于此题,*。为了计
Fo*l2, lL, lL00, t.100,3 tsm600, t030 算方便计,只取级数的第一项,即
10060
306000e4xp[(22Fo)]0.8772解之,Fo0.151
此时,级数的第二项
3exp[(2)2Fo]0.01170.8772所以只取级数的第一项是合理的。
由
,得
Fol20.151
Fol20.320.1515.2107261347.26h4.有一半径为25 mm的钢球,其导热系数为433
W/(mK),密度为7849 kg/m
3,比热容为0.4609
kJ/kg,钢球的初始温度均匀,为700 K。现将此钢球置于温度为400 K的环境中,钢球表面与环境之间的对流传热系数为11.36
W/(m2K)。试求1小时后钢球所达到的温度。
解:由于
h值较小,k值较大,估计可以采用集总热容法,为此首先计算
Bi数。
V/A43r30/4r21031330325108.310h(V/A)3 Bik11.368.3104332.21040.1故可应用集总热容法求解。
Fok4333600(460.9(8.3103)26.255103V/A)2cP(V/A)27849t400e2.21046.255103
0.253 700400t0.253(700400)400 475.8K
2.温度为tb、速度为ub的不可压缩流体进入一半径为
ri的光滑圆管与壁面进行稳态对流传热,设
管截面的速度分布均匀为ub、热边界层已在管中心汇合且管壁面热通量恒定,试从简化后的能量方程
(8-82)出发,推导流体与管壁间对流传热系数的表达式,并求
Nuhd/k的值。
解:根据题意可知,此情况下的能量方程可化为
1t1t
(1)已知
zu(r)zrrr热边界层已在管中心汇合,即热边界层已经充分发展,则
展
开
后
得
ttt (s)0ztszttsztt(tbts)0btsbtszz(2)通过微分段管长d
z的传热速率为
s4ubcpdtb由上式得
t
b(qAz4)sdiubcp对流传热系数与壁面温度梯度之间的关系为式(8-8),即
或
hzkdttstbdrrri
hkdtkdttszttd(rr()sbdrrrrii)tbtsrr当热边界层充分发展后,上式右侧导数中的量
tt与轴向距离
z无关,故对流传热系数与z
stbts无关为一常量。由于
(qA)和shz均为常量,故tbz常数
由
h的定义式(8-1)可知tt=常数
sb则
tst=常数
zbz将以上二式代入式(b)中,可得
ttst= 常数
(3)即此种情况下流场中
zzbz各点流体的温度均随z线性增加。
将式(2)及uz等于常量代入式(1)中,可得如下形式的常微分方程,即
ddtut(4)
dr(rdr)brz边界条件为(1)
r0,t0(2)rri,qt=常数
rAkr将式(4)积分一次,得
rdtdrubr2t
2zC1(5)
应用边界条件(1),得
C10,将式(5)再积分一次,得
2上式中的C2可借助管中心温度tc(r = 0)求出,即于是管壁热通量
tubrtC2tc4zC2恒定情况下的温度分布方程为
(6)
ttutcb4r2z应予指出,tz为常数使得边界条件(2)自动满足。
为了求
h,可先由温度分布方程计算tzb、t和。将式(6)代入tsdtb的定义式,即式(8-87)drrri中,经积分后得
tt(7)
btubr2ic8zdt可由式(6)对r求导得到,即dtbrit
(8)
壁面温度ts可由
drrridrrrui2z式(6)求取,即
tturi2t(9将式(7)、(8)和式(9)代入
sh的定义
rritcb4zz式,整理得
hz4k(10)
ri或写为
Nuhzdik84.不可压缩型流体以均匀速度
u在相距为2b的两无限大平板间做平推流流动,上下两板分别
0以恒定热通量
(qA)向流体传热,假定两板间的温度边界层已充分发展,有关的物性为常数,试
s从直角坐标系的能量方程(6-26a)出发,写出本题情况下的能量方程特定形式及相应的定解条件并
求出温度分布及对流传热系数的表达式。
解:稳态传热t,平推流u,无限大平板、,于是
y0ux00t2t2txtyx2y2能量方程(6-26)简化为
ut2t0zy2边界条件为yb,(qA)常数
sy0,t
根据温度边界层充分发展的定义,即
y0,ttstf(y)z(ttst)0btsbbts有
(tstttststbzz)t()0btszz因为
=常数
hkdtkdttstt(t)bbsdyby0d(yb)bts又(qA)
sh(tbts)常数
故 t常数,于是
btstszttbzz对微分换热面积(取单位宽度)进行热量衡算,有
u
0(2b1)cpdtbh(2dz1)(tbt
s)得 dt常数 bh(tbts)(qA)sdzu0bcpu0bcp故
t=常数
sttbzzz对积分两次并代入边界条件,得 ut0zd2tdy2u
t0t2zy2C式中C为一常数。tut
0s2zb2C
bt0cpu0dy1tdtu
0tbbu0t6zb2Cdyybzb0cpu0dy1于是
hkdt3ktbtsdybb
hb
Nuk3
3.在总压力为P、温度为T的条件下,直径为r的萘球在空气中进行稳态分子扩散。设萘在空气中0的扩散系数为D,在温度ABT下,萘球表面的饱和蒸汽压为p,试推导萘球表面的扩散通量A0N为 A
NDABpppA0ARTrln0p 解:该过程为拟稳态过程,且N B0
NDABpdyAARTdryA(NANB)DABdpApRTdrApNA NDAABdpART(1pA/p)dr依题意,G A4r2NAconst从而
G AABdpA4r2DRT(1pA/p)dr整理得 GARTdrdp4DAABr21pA/pG
ARTppA04D(11)plnABrr0ppA当r时,pA0
故
G ART14DplnppA0ABr0p NArr0GA4r2DABp0RTrlnppA00p5.假定某一块地板上洒有一层厚度为1mm的水,水温为297K,欲将这层水在297K的静止空气中蒸干,试求过程所需的时间。
已知气相总压为1atm,空气湿含量为0.002kg/(kg干空气),297K时水的密度为997.2kg/m3,饱和蒸气压为22.38mmHg,空气-水系统的 DAB0.26104m2/s。假设水的蒸发扩散距离为5mm。
解: pA122.38133.322983.7Pa p0.002/18Pa A2cA2RT0.002/9971/1.1898314297326.pB2ppA2101325326.2100998.8Pa pB1ppA11013252983.798341.3PaPappB2pB1100998.8BMlnp98341.399664.1B2100998.8plnB198341.3NDABp
ARTzp(pA1pA2)BM0.26104101325(2983.7326.2)2
·
s)
831429799664.151035.69106kmol/(mN
AAMAA水水103997.2.70h
N1AMA5.69106189736.426.常压和45℃的空气以3m/s的流速在萘板的一个面上流过,萘板的宽度为0.1m、长度为1m,试求萘板厚度减薄0.1mm时所需的时间。
已知45℃和latm下萘在空气中的扩散系数为6.92×10-6
m2
/s,萘的饱和蒸气压为0.555mmHg,固体萘密度为1152kg/m3,摩尔质量为128kg/kmol。
解:常压下45℃空气的物性
=1.11kg/m3,=1.935
105Pas
Lu05
故为层流边界层
ReL131.111.9351051.7210Rexc5105k0cm0.664DABLRe1213 LSc
Sc1.935105DD1062.52ABAB1.116.92k0cm0.6646.92106=2.591031(1.72105)12(2.52)13m/s 空气中萘含量很少,yBm1
萘扩散很慢,u
ys0则
kcmk0cm
NpAkcm(cAscA0)kcm(As RT0)
=
2.591030.555101325 76083143187.24108kmol/(m2s)NAAMAAs
s0.11031152
N3.45hAMA7.241081283600
第五篇:消防 年终 数据 总结
2012年工作总结
3.1本着投资节约的原则,加强对公司消防设施、设备的精心维护和保养,保证了消防设施、设备处于良好备用状态。申请配置了部分较为经济实用的消防设施、设备,为股份公司更换各类灭火器129具、灭火器箱25个、室内消火栓4套、室外地上式消火栓2根、消防水带16盘;为改制企业更换各类灭火器112具,灭火器箱21个,室内消火栓箱5套,室外消火栓6根,水带44盘,水枪17支;充装氧气瓶235个、空气瓶107个,校准氧气呼吸器730台次,检测空气呼吸器132台、氧气气瓶120个,送检氧压表340块。
3.2坚持消防救护安全巡检和日常工作,发现隐患,及时整改。2012年共进行消防、气防安全月度检查35人次,查出各类隐患48起,全部督促整改完毕;坚持每周对股份公司和改制单位进行氧气呼吸器巡查、每季度检查防毒面具,查出的问题都及时处理。开展气防安全、防火防爆、冬季防火等专项检查,共查出各类隐患34起,全部督促整改。坚持每周检查抢险救援器材,并启动、试验、保养;每日车辆例检,发现问题,及时解决。
3.3接警及时,出动迅速。共接报火警22起,出动火警消防车31台/次,消防人员173人/次(其中公司内10次,地方12次);完成各类动活作业监护276次,出动消防车辆311台/次,消防员1258人次;生产现场救护6次,出动救护车辆6台/次,救护人员19人/次;抢险救援9次,出动车辆22台/次,人员103人/次(其中公司内2次,地方7次),成功救出5人。参加泸州市人员密集场所、宾馆以及泸州市、纳溪区防灾救灾综合演练等,共出动消防救护车辆22台次,消防指战员112人次;其他工作任务50次,出动消防救护车辆58台次,人员265人次。社会救助2次,救出1人。在“7.23”抗洪抢险中,共出动消防车辆14台次、人员84人次投入到抗洪抢险中,成功救出落水群众1人、疏散30余人、清洗淤泥路面1500余平方米。
3.4强化消防救护人员的基本功、适用性训练,不断提高消防救护人员专业技能。全年组织消防救护人员进行了为期6个月的消防救护理论和技能训练,其中春训安排在4-6月,秋训9-11月,由中心领导亲自任教、督促,抽调业务骨干和当班班长担任教员进行消防业务22项基本功及业务应用性训练。春训结束已进行了考核,目前,秋训工作正在开展中,待训练结束后完成考核任务。
3.5加强从业人员和特种作业人员的消防救护安全教育、培训,不断提高他们的消防救护安全知识和技能。上半年对各单位进行教育培训9次,培训人员约200余人次。积极宣传消防好人好事,利用安全生产月和119宣传日等,大力宣传消防法律法规、消防常识、火场逃生自救技能等。向报社投稿10余篇。
(统计起止日期:2011年10月20日—2012年10月19日)