|
发个用于查找分压电阻【E-24,E96】匹配的Matlab函数
[复制链接]
- function findR(val,err,sel,area)
- %查找匹配电阻
- %val=R2/R1
- %err偏差
- %sel电阻选择,为1时使用1%电阻,为5时使用5%电阻
- %area数量级范围,1时在1~9.9内搜索,2时在1~99内搜索,3时在1~999内搜索
- %E96=round(10.^([0:95]/96)*100)/100
- %E24=round(10.^([0:23]/24)*10)/10
- R1 =[ 1.00 1.02 1.05 1.07 1.10 1.13 1.15 1.18 1.21 1.24 1.27 1.30 1.33 1.37 1.40 1.43 1.47 1.50 1.54 1.58 1.62 1.65 1.69 1.74 1.78 1.82 1.87 1.91 1.96 2.00 2.05 2.10 2.15 2.21 2.26 2.32 2.37 2.43 2.49 2.55 2.61 2.67 2.74 2.80 2.87 2.94 3.01 3.09 3.16 3.24 3.32 3.40 3.48 3.57 3.65 3.74 3.83 3.92 4.02 4.12 4.22 4.32 4.42 4.53 4.64 4.75 4.87 4.99 5.11 5.23 5.36 5.49 5.62 5.76 5.90 6.04 6.19 6.34 6.49 6.65 6.81 6.98 7.15 7.32 7.50 7.68 7.87 8.06 8.25 8.45 8.66 8.87 9.09 9.31 9.53 9.76];
- R5 =[ 1.0 1.1 1.2 1.3 1.5 1.6 1.8 2.0 2.2 2.4 2.7 3.0 3.3 3.6 3.9 4.3 4.7 5.1 5.6 6.2 6.8 7.5 8.2 9.1];
- if sel==5
- Rt=R5;
- else
- Rt=R1;
- end
- if area==1
- R=[Rt];
- elseif area==2
- R=[Rt,Rt*10];
- elseif area==3
- R=[Rt,Rt*10,Rt*100];
- end
- n=length(R);
- Temp=zeros(n,n);
- for i=1:n
- Temp(i,i)=0;
- for j=1:n
- Temp(i,j+1)=R(j)/R(i);
- end
- end
- dev=(Temp-val)/val;
- res=find(abs(dev)<=err);
- A=mod(res,n);
- B=floor(res/n);
- disp('--------R1------R2-------偏差');
- disp([R(A)',R(B)',dev(res)])
复制代码
|
|