精华内容
下载资源
问答
  • 基于粒子群优化算法和模糊模拟的核电备件模糊EOQ模型.pdf
  • 基于粒子群优化算法的模糊模拟.pdf
  • 行业资料-电子功用-基于两阶段随机模糊模拟的配电网随机模糊潮流算法.pdf
  • 提出了一种基于模糊模拟进化计算的人体局域网低能量聚类方法。 为了减少通信能耗,我们还设计了一个模糊控制器来动态调整交叉和变异的概率。 通过使用所提出的方法进行聚类仿真基于粒子群优化的方法和基于量子进化...
  • 为了解决协同维修过程中维修作业时间不确定、工序衔接时机不容易把握的难点,避免传统的模糊Petri 网理论和方法在进度分析时依托模糊合成规则带来的问题,提出将模糊模拟技术引入到Petri网理论中的建模思 想,形成协同...
  • 在构建模型时运用层次分析法和模糊理论方法,利用模糊模拟技术处理模型,得到的三个数值用有效面方法来表示。这样可解决评估过程中存在的不确定性变量,使评估结果更加趋于合理。利用模型对三个先进制造技术投资项目...
  • 研究了存在不确定时延的网络控制系统的鲁棒H∞控制器设计方法。首先讨论了系统的建模问题,针对传感器采用时间驱动,控制器和执行器采用事件驱动,考虑不确定时延小于一个采样周期的情况,网络控制系统可建模为一类...
  • 模糊控制,水箱模糊控制,模拟水箱的模糊控制,智能控制,控制原理
  • 提出了一种可以评价模拟电路工作状态的故障校正算法,因为模拟电路里存在一些模糊量,此处将模拟电路转换模糊系统。相结合构成了一个模拟电路故障诊断化算法。对模拟电路的故障程度进行精确量化,从而模拟电路故障...
  • 模拟PID算法实现,并加入模糊控制。内容简单,容易看懂
  • 模糊查询:模仿百度的模糊查询,简单的模拟数据! 模糊查询:模仿百度的模糊查询,简单的模拟数据! 模糊查询:模仿百度的模糊查询,简单的模拟数据,
  • 下面小编就为大家带来一篇js模拟百度模糊搜索的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • A simulated annealing algorithm for fuzzy unit commitment problem,模拟退火算法用于模糊控制单元
  • 针对模拟电路特征参数与工作模式之间关系具有模糊性,采用模糊模式识别方法,通过分析电路故障模式与电路特征参数的模糊映射关系,建立电路故障模糊集字典,是实现模拟电路的故障诊断的方法之一。
  • 压力模拟装置模糊PID控制研究,邢斌,王淮阳,压力模拟装置是一个多变量、非线性、强耦合的系统,针对系统容易受负载干扰的问题,提出了自动切换模糊PID控制算法。首先根据动力
  • OpenCV 运动模糊模拟 C++

    千次阅读 2019-03-26 11:49:30
    运动模糊时,模糊后图片某点的值应该与原图沿运动角度方向前面的点有关,并且越近邻影响越大,即权值越大。所以除了确定卷积核之外,还确定了锚点(anchor) 右下角60度移动,距离50 代码实现: #include ...

    运动模糊时,模糊后图片某点的值应该与原图沿运动角度方向前面的点有关,并且越近邻影响越大,即权值越大。所以除了确定卷积核之外,还确定了锚点(anchor)

    右下角60度移动,距离50

    代码实现:

     

    #include "opencv2/opencv.hpp"

    typedef cv::Mat Mat;
    void genaratePsf(Mat &psf, cv::Point &anchor, double len,double angle);

    int main(int argc, char * argv[])
    {
        if( argc != 2){
            std::cerr << "Usage: " << argv[0] << " <img_name> " << std::endl;
            return -1;
        }

        Mat srcImage = cv::imread(argv[1], cv::IMREAD_COLOR);
        if( srcImage.empty() )
            return -1;
        imshow( "src_img", srcImage );
        double len = 50;
        double angle = -60;
        Mat ker, dst;
        cv::Point anchor;
        genaratePsf(ker, anchor, len, angle);

        /// 使用滤波器
        filter2D(srcImage, dst, -1 , ker, anchor );

    //    cv::normalize(dst_plane[0], dst_plane[0], 1, 0, CV_MINMAX);
        imshow( "dest", dst );
        cv::waitKey(0);

        return 1;
    }


    void genaratePsf(Mat &psf, cv::Point &anchor, double len,double angle)
    {
        //生成卷积核和锚点
        double half=len/2;
        double alpha = (angle-floor(angle/ 180) *180) /180* CV_PI;
        double cosalpha = cos(alpha);
        double sinalpha = sin(alpha);
        int xsign;
        if (cosalpha < 0){
            xsign = -1;
        } else {
            if (angle == 90) {
                xsign = 0;
            } else {
                xsign = 1;
            }
        }
        int psfwdt = 1;
        //模糊核大小
        int sx = (int)fabs(half*cosalpha + psfwdt*xsign - len*FLT_EPSILON );
        int sy = (int)fabs(half*sinalpha + psfwdt - len*FLT_EPSILON);
        cv::Mat_<double> psf1(sy, sx, CV_64F);

        //psf1是左上角的权值较大,越往右下角权值越小的核。
        //这时运动像是从右下角到左上角移动
        for (int i = 0; i < sy; i++){
            double* pvalue = psf1.ptr<double>(i);
            for (int j = 0; j < sx; j++){
                pvalue[j] = i*fabs(cosalpha) - j*sinalpha;

                double rad = sqrt(i*i + j*j);
                if (rad >= half && fabs(pvalue[j]) <= psfwdt){
                    double temp = half - fabs((j + pvalue[j] * sinalpha) / cosalpha);
                    pvalue[j] = sqrt(pvalue[j] * pvalue[j] + temp*temp);
                }
                pvalue[j] = psfwdt + FLT_EPSILON - fabs(pvalue[j]);
                if (pvalue[j] < 0){
                    pvalue[j] = 0;
                }
            }
        }
    //    运动方向是往左上运动,锚点在(0,0)
        anchor.x = 0;
        anchor.y = 0;
    //    运动方向是往右上角移动,锚点一个在右上角
    //    同时,左右翻转核函数,使得越靠近锚点,权值越大
        if (angle<90 && angle>0){
            flip(psf1, psf1, 1);
            anchor.x =psf1.cols-1;
            anchor.y = 0;
        }else if( angle>-90 && angle<0){    //同理:往右下角移动
                flip(psf1, psf1, -1);
                anchor.x =psf1.cols-1;
                anchor.y = psf1.rows-1;
        }else if( angle<-90){   //同理:往左下角移动
                flip(psf1, psf1, 0);
                anchor.x = 0;
                anchor.y = psf1.rows-1;
        }
        /*保持图像总能量不变,归一化矩阵*/
        double sum = 0;
        for (int i = 0; i < sy; i++) {
            for (int j = 0; j < sx; j++){
                sum+= psf1[i][j];
            }
        }
        psf = psf1 / sum;
    }
     

    参考:

    https://www.cnblogs.com/wyh1993/p/7118559.html

    https://blog.csdn.net/lei_yin/article/details/27318955

    展开全文
  • 建立了机载脉冲多普勒(PD)雷达模糊回波模拟源的仿真模型,分析了其工作原理和回波的统计特性,利用先内插后抽样的方法实现了回波数据的速度模糊和频域杂波模糊。通过设置模型参数,可模拟产生多种工作环境下的雷达...
  • 这是模糊C均值聚类与模拟退火算法的结合,在MATLAB中直接运行查看效果即可!!!!
  • 电动汽车热泵空调模糊控制的模拟研究.pdf
  • 文章就火灾模拟试验炉的特点 ,结合国家标准———《建筑构件耐火试验方法》的具体内容 ,提出了炉温的模糊控制算法 ,用以计算机为核心的温度模糊控制系统 ,使炉温的时间温度曲线完全符合该标准要求
  • 基于运动模糊图像产生的原因,自编一个生产运动模糊图像的matlab程序,程序 需要输入模糊长度,默认模糊角度为0,包含一张图片
  • 模糊神经网络matlab模拟仿真

    千次阅读 2019-09-11 09:57:41
    1、基础知识理论 BP网络的传递函数有多种。Log-sigmoid型函数的输入值可取任意值,输出值在0和1之间;tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间;线性传递函数purelin的输入与输出值可取...

    1、基础知识理论

           BP网络的传递函数有多种。Log-sigmoid型函数的输入值可取任意值,输出值在0和1之间;tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间;线性传递函数purelin的输入与输出值可取任意值。BP网络通常有一个或多个隐层,该层中的神经元均采用sigmoid型传递函数,输出层的神经元则采用线性传递函数,整个网络的输出可以取任意值。

    newff()  功能  建立一个前向BP网络,格式  net = newff(PR,[S1 S2...SN1],{TF1 TF2...TFN1},BTF,BLF,PF)

     net为创建的新BP神经网络;  PR为网络输入取向量取值范围的矩阵;  [S1 S2…SNl]表示网络隐含层和输出层神经元的个数;

      {TFl TF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;  BTF表示网络的训练函数,默认为‘trainlm’;  BLF表示网络的权值学习函数,默认为‘learngdm’;  PF表示性能数,默认为‘mse’。

    BP网络一般都是用三层的,传递函数如下:

    compet---竞争型传递函数;
    hardlim---阈值型传递函数;
    hardlims---对称阈值型传输函数;
    logsig---S型传输函数;
    poslin---正线性传输函数;
    purelin---线性传输函数;
    radbas---径向基传输函数;
    satlin---饱和线性传输函数;
    satlins---饱和对称线性传输函数;
    softmax---柔性最大值传输函数;
    tansig---双曲正切S型传输函数;
    tribas---三角形径向基传输函数;

    神经元上的传递函数:

       传递函数是BP网络的重要组成部分,必须是连续可微的,BP网络常采用S型的对数或正切函数和线性函数。

    神经网络输入训练的矩阵必须是,行相同,或者是列相同,使用matlab建立的一般是列相同,就可以训练

     

    2、具体例子

    %bp神经网络
    p=[1 2;-1 1;-2 1;-4 0]';
    t=[0.2 0.8 0.8 0.2];
    net=newff([-1 1;-1 1],[5 1],{'logsig','logsig'},'traingd');
    net.trainParam.goal=0.001;
    net.trainParam.epochs=5000;
    [net,tr]=train(net,p,t);
    disp('网络训练后的第一层权值为:')
    iw1=net.iw{1}
    disp('网络训练后的第一层fa值为:')
    b1=net.b{1}
    disp('网络训练后的第一层权值为:')
    iw2=net.Lw{2}
    disp('网络训练后的第2层fa值为:')
    b2=net.b{2}
     p1=[1 2;-1 1;-2 1;-4 0]';
    a2=sim(net,p1);
    disp('输出分类结果为')
    a2=a2>0.5

    第二个例子:

    load('spectra_data.mat')
    temp = randperm(size(NIR,1));
    % 训练集——50个样本
    P_train = NIR(temp(1:50),:)';
    T_train = octane(temp(1:50),:)';
    % 测试集——10个样本
    P_test = NIR(temp(51:end),:)';
    T_test = octane(temp(51:end),:)';
    N = size(P_test,2);
    net = newff(P_train,T_train,3);
    net.trainParam.epochs = 1000;
    net.trainParam.goal = 1e-3;
    net.trainParam.lr = 0.01;
    net = train(net,P_train,T_train);
    T_sim = sim(net,P_test);
    error = abs(T_sim - T_test)./T_test;
    R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));
    result = [T_test' T_sim' error'];
    figure
    plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
    legend('真实值','预测值')
    xlabel('预测样本')
    ylabel('辛烷值')
    string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};
    title(string)

    R²检验结果

    3、仿真

    首先搭建仿真模块,然后使用subsystem模块,matlab使用gensim()函数,调用刚刚做好的训练模型,gensim(net,-1)一般格式,

    然后引入神经网络模块,进行仿真

    展开全文
  • 主要介绍使用js模拟一个类似百度google的模糊搜索下拉列表,需要的朋友可以参考下
  • 模糊AHP运用于机场管制模拟机仿真评估,首先建立二级指标集,确定专家评语集、专家权重集,然后运用专家评分法确定各甲乙级指标权重值和逼真值,最后综合评价整体逼真度。对某型机场管制模拟机进行仿真度评估,评价结果...
  • 基于遗传模拟退火算法的模糊聚类方法.pdf
  • 基于模糊C均值聚类的模拟电路故障诊断.pdf
  • OpenCV实现运动模糊图像的模拟

    万次阅读 2012-12-03 13:58:10
    产生模糊和噪声的原因有很多,比如拍摄环境的不稳定、拍摄设备的不精密、拍摄对象的快速运动、空气气流的扰动、储存与传输过程电路产生的错误等,本文要考虑的是由于拍摄对象和拍摄设备相对运动引起的运动模糊。...

            产生模糊和噪声的原因有很多,比如拍摄环境的不稳定、拍摄设备的不精密、拍摄对象的快速运动、空气气流的扰动、储存与传输过程电路产生的错误等,本文要考虑的是由于拍摄对象和拍摄设备相对运动引起的运动模糊。关于噪声,其种类和产生的原因也是多种多样,比如白噪声、椒盐噪声、闪烁噪声、褐色噪声等。由于本文关注的重点在于对运动模糊的处理,所以对噪声统一处理为加性的随机噪声。

    运动模糊的数学原理

    运动模糊,是在拍摄设备快门打开的时间内,物体在成像平面上的投影发生平移或旋转,使接受的影像彼此发生重叠。

            为了便于用数学语言描述图像及其变换,现作如下规定:图像的左上角为坐标原点(0,0),图像的长度方向为x轴,宽度方向为y轴,整个图像落在第一象限。

            假设无任何模糊和噪声的真实图像为f(x,y),模糊图像为g(x,y)。由于运动模糊是由图像彼此重叠造成的,所以成立:


            其中,Cx为图像在方向上的平移速度,Cy为在方向上的平移速度,T为快门打开时间即产生模糊图像的时间,n(x,y)为加性噪声。

    计算机实现细节

            为了简化计算过程,我假设只有运动模糊而没有任何加性噪声,而且产生模糊的运动是沿x方向的。

            对于真实图像,模糊图像自然是原始图像的叠加,但对于数字图像,由于像素信息由数值表示,不能简单地将相应像素值相加,而是将像素信息缩小后相加,否则会使亮度成倍增加,使图像严重失真。

    例子一枚

    原图像:



    模糊处理后的图像:


    代码

    /* opencv version 2.3.1 */
    #include "stdafx.h"
    #include "highgui.h"
    #include "cv.h"
    
    void motionblur(IplImage* in, IplImage* out, int steps_x)
    {
    	int cnl,step;
    	int length=in->widthStep;
    	for(int y=0;y<in->height;y++)
    	{
    		uchar* pin=(uchar*)(in->imageData+y*in->widthStep);
    		uchar* pout=(uchar*)(out->imageData+y*out->widthStep);
    		int temp;
    		for(int x=0;x<in->width;x++)
    		{
    			for(cnl=0;cnl<3;cnl++)
    			{
    				float sum = (float)pin[3*x+cnl]/steps_x;
    				for(step=1;step<steps_x;step++)
    				{
    					if(step<=x)
    						temp=step;
    					else
    						temp=step+x;
    					sum += (float)pin[3*x+cnl-temp*3]/steps_x;
    				}
    				pout[3*x+cnl] = (uchar)sum;
    			}
    		}
    	}
    }
    
    int main()
    {
    	IplImage* img = cvLoadImage("H:\\original.jpg");
    	cvNamedWindow("Origin",CV_WINDOW_AUTOSIZE);
    	cvNamedWindow("Blur",CV_WINDOW_AUTOSIZE);
    	cvShowImage("Origin",img);
    	IplImage* blur = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);
    	motionblur(img,blur,10);
    	cvShowImage("Blur",blur);
    	cvSaveImage("H:\\original_mblur.jpg",blur);
    	cvWaitKey(0);
    	cvReleaseImage(&img);
    	cvReleaseImage(&blur);
    	cvDestroyWindow("From");
    	cvDestroyWindow("To");
    	return 0;
    }

    一些问题

        对边界的处理

            最简单的处理方法是忽略,也就是在边界附近仅利用现有的图像内像素进行计算。这样会在边界处留有一列未处理的像素,在其内侧的像素逐渐获得模糊处理直到模糊长度达到预设值。
    从代码可以看出,我的处理方法是让边界处尽量利用内侧的像素,但这样使图像的边缘看起来像是拉伸过一样。
            实际上,还可以使用数学方法推算边界外的图像信息,利用它们完成对边界的正确处理。

        颜色的不连续

            从图像可以发现,这个方法对图案较复杂的图像可以产生很好的效果,但在颜色变化比较平缓的区域,模糊之后容易产生很明显的色阶。这说明仅仅靠叠加一系列相邻像素获得模糊效果是不够的,还需要在模糊处理的过程中进行平滑滤波操作,使模糊后的图像更平滑。
    更新:
    @RuifDu 提到色阶是用char计算累加的运算误差造成的,我改用浮点数计算,产生了正常的结果。我把图片和代码都已经更新。并在博客内提供了cpp版本代码:http://johnhany.net/2013/12/opencv-filter-template/
    展开全文
  • 高斯模糊核聚类的模拟电路在线故障诊断算法.pdf
  • Shader配合后期模拟模糊折射

    千次阅读 2016-06-30 20:11:56
    I robot中的模糊折射: 模糊折射在PBR时代越来越常见,今天尝试用了一种非常非常非PBR但效率奇高、后期空间奇大但方法达到。 思路为在shader中输出从相机射线方向射出的ray从外表面(折射表面)到内部物体...

    I robot中的模糊折射:


    模糊折射在PBR时代越来越常见,今天尝试用了一种非常非常非PBR但效率奇高、后期空间奇大但方法达到。


    思路为在shader中输出从相机射线方向射出的ray从外表面(折射表面)到内部物体(比如琥珀中但老男人)包裹住的物体的距离,这个距离作为模糊的强度就可以了,上面那个图就是这个距离,越黑的模糊越小,越白的模糊越大。

    配合原有的外表面和内部老男人层:


    使用刚才的黑白图将老男人层模糊和较色(将黑白通道shuffle到depth.z,使用zdefocus,将math参数调为direct即可)


    这样模糊的强度、内部填充物的透明度都是可以后期直接调节的。


    关于黑白图的pass的连法出奇的简单:


    展开全文
  • 基于小波分解和模糊聚类的模拟电路软故障诊断.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,851
精华内容 21,540
关键字:

模糊模拟