基于Matlab的定容燃烧弹喷雾宏观特性参数获取

喷雾宏观特性参数获取(喷雾贯穿距离、喷雾锥角、喷雾面积)

文中出现的程序只针对某一张图片,未将批处理程序完整贴出
喷雾图像处理介绍见:https://blog.csdn.net/yusuhuayu/article/details/115458959

根据实际需求,在获取宏观参数之前根据所获取的图像进行处理

  1. 图像减去背景,去除喷嘴及其他背景干扰imsubtract()

    I0=imread('0.tif');						%读取背景图
    I1=imread('1.tif');						%读取喷雾图
    I=imsubtract(I1,I0);                    %减去背景
    
  2. 裁剪图片,得到合适的尺寸imcrop()
    为方便后续计算,此处选取的图片起点纵坐标与喷嘴纵坐标一致。

    rect=[151 42 200 359];  				%[起点坐标 宽度 长度]
    I = imcrop(I,rect);                     %裁剪图片
    
  3. 提高精度,调整图片深度(如果原图像为RGB图像,需要先获取灰度图rgb2gray())。
    我的原图像为12位的灰度图,为了方便后期处理,转换为8位。方法有如下两种,原理如下:

    • 获取图片最大亮度值,作为8位灰度图的最大亮度,其余等比例转换。此方法可以较好地保留图像的细节,但为了后期的边缘检测还需要提高亮度,调整对比度。
    • 直接使用uint8()函数,大于255的值设置为255,小于0的值设置为0,其余不变。对于喷雾图像,此方法变相提高了整体的亮度,虽然损失了较多的图像细节,但有利于后期进行边缘检测。
      两种方法对比图如下:
      在这里插入图片描述
      代码如下,按需采用:
    I=double(I);                            %提高计算精度
    m=max(max(I));
    img=uint8((I.*(256/(m+1))));        	%调整图片到8位
    R=uint8(I);
    
  4. 获取二值图并进行边缘检测
    为方便处理,直接采用自动获取阈值的方式,并通过形态学处理,填补二值图中出现的空洞。
    在这里插入图片描述
    代码如下:

    T = graythresh(R);                      %自动获取阈值 大津法
    OTSU = im2bw(R,T);                      %获取二值图
    
    OTSU1=imfill(OTSU,'hole');              %填充图像中的空洞区域
    se=strel('disk',5);                     %创建半径为5的圆盘型结构
    OTSU1=imclose(OTSU1,se);                %形态学闭运算,先膨胀后腐蚀 
    

未经形态学处理进行边缘检测,效果较差,除喷雾的外部轮廓以外,空洞的轮廓也被检测出来。形态学处理后,只保留喷雾外部轮廓,且采用canny算子,效果较好。对比如下图:
在这里插入图片描述

获取宏观参数

  • 喷雾贯穿距离(Spray Penetration)
    贯穿距有两种计算方式:喷嘴到喷雾最末端的距离;喷嘴到喷嘴所在铅垂线与喷雾前锋面交点的距离。本文采用第一种。
    获取图像边缘后,只需要找到喷雾最末端的纵坐标即可。
    [hs,ls]=find(canny==1);					%返回边界像素点所在的行数列数
    pl=max(hs);							
    P=pl/k;									%喷雾贯穿距,k为像素数与实际距离的比值
    
  • 喷雾锥角(Spray Angle)
    从喷嘴出口沿着喷雾边界到S/2 处的两条切线所形成的角度。(喷雾锥角有多种表示方法,此处非最优)
    yhalf=idivide(int16(pl),2,'fix');           	%贯穿距一半处的纵坐标,截断取整
    x=find(canny(yhalf,:)==1);                      %贯穿距一半处边界横坐标
    x=[min(x),max(x)];
    alpha=atan(abs((x0-x)/double((yhalf))));		%x0为喷嘴横坐标
    Angle=rad2deg(sum(alpha));
    
  • 喷雾面积(Spray Area)
    Area=sum(OTSU(:))*((1/k)^2);					%计算像素数。并进行换算
    

通过亮度与对比度的调整(ps或matlab),可以使处理后的二值图更接近原始的喷雾图像,减小误差。
手动测量与程序计算结果对比(获取二值图前调整了亮度):
在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于Matlab的闭环控制系统参数整定是指利用Matlab软件进行闭环控制系统参数的设计和调节。闭环控制系统是一种反馈控制系统,其中包括输入信号、输出信号和反馈信号,目的是使输出信号尽可能接近期望值。 参数整定是通过调节控制系统中的参数,以达到系统响应特性的要求。系统参数主要包括比例增益、积分时间和微分时间等。 基于Matlab的闭环控制系统参数整定的设计一般包括以下步骤: 1.确定控制系统的数学模型,可以采用传递函数、状态空间模型等形式。 2.利用Matlab软件进行系统模型的建模与仿真。可以使用系统辨识的方法来获取系统模型的参数。通过仿真,可以获得系统的时域和频域响应特性,为参数整定提供基础。 3.确定合适的闭环控制器类型。常见的闭环控制器类型有比例控制器(P控制器)、比例积分控制器(PI控制器)、比例微分控制器(PD控制器)和比例积分微分控制器(PID控制器)等。不同的控制器类型有不同的特点和适用范围。 4.利用Matlab中的控制系统工具箱进行参数整定。控制系统工具箱中包含了一些常用的参数整定方法,如经验法、根轨迹法、频率响应法等。根据系统的需求和性能指标,选择合适的方法对控制器的参数进行整定,使系统满足性能要求。 通过以上步骤,基于Matlab的闭环控制系统参数整定的设计可以得到一个合适的控制器参数配置,使系统具有良好的鲁棒性和稳定性,能够实现对输出信号的准确控制。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值