YX70266-MinPro编程器

软件下载:

GitHub官网

驱动安装:

https://blog.csdn.net/chenlu5201314/article/details/53520881 (快照)


部分Flash芯片需要拆下后才可用编程器读取.

eg. 很多Intel有线网卡上的Flash可能就是这样, 直接在PCB板上读不能正确识别Flash类型与型号, 拆下后正常读写.

倍控和乐扩的 Intel i225-v 网卡 Flash 似乎并不完全通用.

直接修改flash中的 15F3为15F2即可将 i225-v 修改为 i225-lm, 不能像 i219 那样用eeupdate直接更新.

具体操作: Qinxz1414/N5105_Router, Qinxz1414/i225v-lm

COMSOL两相流建模指导信息

来自COMSOL技术支持团队:

  1. 需要注意相场中的相场模型中的界面厚度控制参数和迁移率调整参数, 界面厚度控制参数建议设置为最大网格尺寸的一半, 迁移率调整参数可以根据流场中的最大速度设置

  2. 边界层网格您需要绘制在底部壁面上,而非液滴周围,建议使用默认的物理场控制网格绘制网格

  3. COMSOL中模拟两相流有三种方法:相场、水平集和动网格方法,相场和水平集是基于求解网格节点上相场变量值来判断该位置是相1还是相2,动网格的方法则是使用动网格来研究液滴的变化,但是不支持几何拓扑变化,因此您的模型使用相场和水平集的方法较为合适,因此可以删除动网格节点

  4. 您在在层流中设置周期性流动条件的话,建议您在相场模型中也设置周期性条件,与层流中的边界对应

参考连接:

两相流建模指导信息 - 知识库

COMSOL 软件基础强化培训 —— 【训练营】

Excel获取RPM前的数字

文件名文本处于A2单元格

1
2
=IF(LEN(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))))-LEN(SUBSTITUTE(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))),"-",""))>0,TRIM(RIGHT(SUBSTITUTE(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))),"-",REPT(" ",99)),99)),IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))))


为保证结果类型为数字

1
2
=1*(IF(LEN(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))))-LEN(SUBSTITUTE(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))),"-",""))>0,TRIM(RIGHT(SUBSTITUTE(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))),"-",REPT(" ",99)),99)),IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))))


直接换算为 m/s

1
2
=77*2*Pi()/60000*(IF(LEN(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))))-LEN(SUBSTITUTE(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))),"-",""))>0,TRIM(RIGHT(SUBSTITUTE(IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2))),"-",REPT(" ",99)),99)),IF(LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))>6,RIGHT(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)),LEN(MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))-FIND("-",MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))),MID(LEFT(A2,FIND("RPM",A2)-1),FIND("-",A2)+1,LEN(A2)))))


MATLAB转存adtx文件

读取adtx文件

1
A=fread(fopen('0631.adtx'));

保存为csv格式

1
writematrix(A,'0631.csv');

保存为txt格式

1
save 0631.txt -ascii A;

读取并分组保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
clc;
clear;

A=fread(fopen('0631.adtx')); %总计800000000行数据
B=buffer(A,1000000); %每1000000个数据为一列,分为800组

% If you have the Signal Processing Toolbox, use buffer();
% If not, use B = reshape(A,1000000,800);

for i=1:800
FileName=['0631-',num2str(i),'.csv'];
writematrix(B(:,i),FileName);
end

参考链接:

https://blog.csdn.net/iqizheng/article/details/11853919

https://blog.csdn.net/u013555719/article/details/105520735

利用Hough变换检测线条

————————————2022-06 更新————————————

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
clc;
clear;

A=imread('test.png');

frame = A;
FrameBw = imbinarize(frame(:,:,1),0.6);
FrameBw8Delete = bwareaopen(FrameBw,2000,8); %自定义面积,删除小于该面积的连通区域
FrameBw8Delete = 1-bwareaopen(1-FrameBw8Delete,2000,8);


%--------------------------------------------------

BWe = edge(FrameBw8Delete,'canny');
[m,n]=size(BWe); % 获取图片原尺寸
BWe=rot90(BWe,1); % 逆时针旋转90度

[H,T,R] = hough(BWe,'Theta',-1:0.01:1);
P_Hough = houghpeaks(H,1,'threshold',ceil(0.3*max(H(:))));

Hough_T=T(P_Hough(:,2));
Hough_R=R(P_Hough(:,1));

P(1)=tand(Hough_T);
% P(2)=Hough_R*cosd(Hough_T); 注意区分弧度和角度
P(2)=Hough_R*cosd(Hough_T)-Hough_R*tand(Hough_T)*sind(Hough_T)-P(1)*n;

%--------------------------------------------------

frame=insertShape(frame,'Line',[1,P(1)*1+P(2),n,P(1)*n+P(2)],'color','blue','LineWidth',1);

imshow(frame);
% imwrite(frame,'testsave.jpg');


————————————2022-02 原文————————————

Hough变换的介绍参考文末链接

  1. 图片预处理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    clc;
    clear;

    A=imread('test.png');

    frame = A;
    FrameBw = im2bw(frame(:,:,1),0.6);
    FrameBw8Delete = bwareaopen(FrameBw,2000,8); %自定义面积,删除小于该面积的连通区域
    FrameBw8Delete = 1-bwareaopen(1-FrameBw8Delete,2000,8);
  1. 直线拟合

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     % 定义初始值
    LeftLine=768; %左侧边线长度
    y_map=zeros(1,LeftLineL);

    % 寻找边缘
    % 直接寻找最高点
    for X_Line=1:LeftLineL %1:numFrames
    y_map(X_Line)=max(find(FrameBw8Delete(:,X_Line)==1));
    end

    % 直接拟合
    % P=polyfit(1:LeftLineL,y_map,1);
    % 绘制HoughMap
    Hough_Map=zeros(2001,301);
    for Hough_j_X=1:LeftLineL
    Hough_In_X=Hough_j_X;
    Hough_In_Y=y_map(Hough_j_X);
    for Hough_i_X=1:300 % 1:100 映射415-512
    Float_X=Hough_i_X+300.0;
    Hough_K=(Hough_In_Y-Float_X)/Hough_In_X; %-0.1刿0.1 映射 1-2001
    print=floor((Hough_K+0.1)*1000);
    if (0<print)&&(print<2001)
    Hough_Map(print,Hough_i_X) =Hough_Map(print,Hough_i_X)+0.1;
    end
    end
    end

    %Hough投票
    h = fspecial('gaussian',5,5);
    out = imfilter(Hough_Map,h);
    %surf(out);
    Max_Hough=max(max(out));
    [x,y]=find(out(:,:)==Max_Hough);
    P(1)=x/1000-0.1;
    P(2)=y+300;

    %得到直线
    y=P(1)*x+P(2);
  1. 测试图像直接拟合结果

    -0.00935534897757482 448.724735848544

  1. Hough投票结果

    -0.0120000000000000 450


参考链接:

图像处理算法 - Hough变换_桂哥317的博客-CSDN博客_hough变换 (快照)

图像处理:Hough变换原理分析_无水先生的博客-CSDN博客_hough图像 (快照)

hough变换理解 原理 步骤_zqx951102的博客-CSDN博客_hough变换步骤

Hough 变换 - MATLAB hough - MathWorks 中国

基于 Hough 变换提取线段 - MATLAB houghlines - MathWorks 中国

远程桌面无法运行MATLAB

I just using the remote desktop client from Microsoft Windows to using the MATLAB in a remote computer.
I could open the program file, but when I running the program file, the MATLAB crash.
The program using the image processing toolbox and it could be run well in local.

My name is Elijah, and I am writing in reference to your Technical Support Case #05617738 regarding ‘Help troubleshooting recent MATLAB crash’.
I am sorry about the inconvenience that this crash may have caused you. I believe that this crash may be related to a known issue that occasionally occurs when running MATLAB via a remote desktop connection. This crash can be resolved by launching MATLAB with “-softwareopenglmesa” flag in Windows PowerShell, as shown below:

matlab -softwareopenglmesa

If this does not resolve this issue you are having, please send me further information about your workflow.