- 积分
- 63
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 5
- 最后登录
- 1970-1-1
该用户从未签到
|
楼主 |
发表于 2009-4-8 17:33
|
显示全部楼层
来自: 中国天津
本帖最后由 fwr0605 于 2009-4-8 17:35 编辑
下图是场域分布图,场域周围均匀分布16个电极,内部有一个圆形物体做自由运动:
其激励测量激励如下图所示,相邻电极电流激励相邻电极电压测量,即1-2电极电流激励(1电极输入电流,2电极接地,其他电极浮空),获取2-3,3-4,...,14-15,15-16,16-1电极对电压差,如下图所示。依次循环,2-3激励,...,15-16,16-1激励。
由于内部圆形物体位置,或者半径大小改变,都会导致边界编号变化,循环出现问题。下面是我用的matlab循环部分程序:
% Geometry
% Import CAD data
garr = geomimport('F:\Program\Comsol_Pro\2009.4.1kalman\model1.mphbin');
[g1,g2,g3]=deal(garr{:});
g3=rotate(g3,0.5235987755982988,[0,0]); %%%%%%%%%%%%%%%%%%%%%% 物体旋转角度任意设定
% Analyzed geometry
clear s
s.objs={g1,g2,g3};
s.name={'CO1','CO2','CO3'};
s.tags={'g1','g2','g3'};
fem.draw=struct('s',s);
fem.geom=geomcsg(fem);
% Initialize mesh
fem.mesh=meshinit(fem, ...
'hauto',5);
% (Default values are not included)
A=[74 80 78 71 65 57 51 45 38 33 34 43 49 55 62 68];%%%% 16个电极编号 %%%%变换物体位置时会发生变化????
for i=1:16 %%%%%%%%%%%% 设置16次循环激励 %%%%%%%%%%%%%
L=16; % The number of electrodes.%%%%%%%%%%%%%%%%%%%%%%%%%%%
[T]=Currenteit(L,'adj'); %%%%%%%%% 调用激励模式子程序 %%%%%%%%%%%%%%%%%%
T(find(T==1))=3;%%%%%%%%% 设置电极电流激励 %%%%%%%%%%%%%5
T(find(T==-1))=4;%%%%%%%% 设置电极接地 %%%%%%%%
T(find(T==0))=1;%%%%%%%%% 设置电极浮空 %%%%%%%%%%55
clear appl
appl.mode.class = 'EmConductiveMediaDC';
appl.module = 'ACDC';
appl.assignsuffix = '_emdc';
clear bnd
bnd.Jn = {0,0,1,0};
bnd.type = {'nJ0','cont','nJ','V0'};
bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, ... %%%%变换物体位置时,有些边界变为内部边界或内部变为外部,导致设置不成立?????
1,1,1,1,2,1,1,1,2,2,1,1,1,2,1,2,1,1,1,2,1,2,1,1,1,2,1,2,1,1,2,1,2,1,1, ...
1,2,1,2,1,1,1,2,3,2,1,1,1,2,4];
bnd.ind(A(:))=T(:,i); %%%%%% 设置电极激励条件 %%%%%%%%%
appl.bnd = bnd;
clear equ
equ.sigma = {5.99e7,80,1};
equ.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3];
appl.equ = equ;
fem.appl{1} = appl;
fem.frame = {'ref'};
fem.border = 1;
clear units;
units.basesystem = 'SI';
fem.units = units;
% ODE Settings
clear ode
clear units;
units.basesystem = 'SI';
ode.units = units;
fem.ode=ode;
% Multiphysics
fem=multiphysics(fem);
% Extend mesh
fem.xmesh=meshextend(fem);
% Solve problem
fem.sol=femstatic(fem, ...
'solcomp',{'V'}, ...
'outcomp',{'V'});
% Save current fem structure for restart purposes
fem0=fem;
for j=1:16%%%%%%%%%%%%%%%%%导出电极电压值%%%%%%%%%%%%%%%%%%%5
I1(i,j)=postint(fem,'V', ... %potenital on each electrode
'unit','V*m', ...
'dl',[A(j)], ...
'edim',1);
end
I1(i,17)=postint(fem,'V', ...
'unit','V*m', ...
'dl',[A(1)], ...
'edim',1);
end
不知问题交代清楚了吗?
请多多指教! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|