查看: 333|回复: 0|关注: 0

[未答复] 请教,matlab中函数 specifyCoefficients 的用法

[复制链接]

新手

30 麦片

财富积分


050


6

主题

16

帖子

0

最佳答案
发表于 2020-6-3 10:39:05 | 显示全部楼层 |阅读模式
本帖最后由 ph0099 于 2020-6-4 10:32 编辑

我的目的是在不同的区域,系数c有不同的值,半径大于5.005e-6为一个值,半径小于5e-6为一个值,中间为一个值。
请各位大佬指点。
下面是程序
specifyCoefficients(model,'m',0,'d',0,'c',@ccoeffunction,'a',0,'f',0);


function cmatrix = ccoeffunction(location,state)                                             
global vm node N
n1 = 1;
nr = numel(location.x);
cmatrix = zeros(n1,nr)
d1 = abs(sqrt(location.x.^2+location.y.^2)-5.005e-6);
d2 = abs(sqrt(location.x.^2+location.y.^2)-5e-6);
if  d1 > eps
    sigma=0.2;                                                                     
elseif d1 <= eps && d2 <eps
    rm = 0.8e9;
    w0 = 2.65;
    len = 0.15;
    F = 9.65e-4;
    R = 8.314;
    T = 295;
    Con = 0.22;
    l1 = find(abs(node(2,:) - location.x)<eps & abs(node(3,:) - location.y)<eps,1);   
    if isempty(l1) == 1
        l1 = find(abs(node(5,:) - location.x)<eps & abs(node(6,:) - location.y)<eps);
    end   
    vm1=vm(1,l1)*F/(R*T);
    G1=(w0*exp(w0-len*vm1)-len*vm1)/(w0-len*vm1);
    G2=(w0*exp(w0+len*vm1)+len*vm1)/(w0+len*vm1);
    sigma = pi*rm^2*Con*N(end,l1)*(exp(vm1)-1)/(G1*exp(vm1)-G2)+3e-7;                  
elseif d2 > eps
    sigma = 0.3;                                                                        
end
cmatrix = cmatrix + sigma;
end

回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表