Re: [討論] 電勢模擬問題

作者: profyang (prof)   2017-12-11 11:50:39
※ 引述《knutten (biker)》之銘言:
: 大家好, 小弟是matlab新手, 正在努力學matlab中.
: 我在一本書看到以下的程式, 但是書上的例子是設定上面的電壓是100V, 兩側和底部的電壓是0V.
: 但是我想要模擬成上面電壓1500V, 兩側和底部的電壓是700V, 可是好像得不到答案,
: 所以只能將上部取800V, 兩側和底部的電壓是0V, 用壓差來模擬, 請問有沒有什麼方法可以
: 模擬成上面電壓1500V, 兩側和底部的電壓是700V?
這不就FDM? 重新定義一下邊界條件應該就可以了吧?
v0=1500;hx=11;hy=9;
v00=700;
: v1=zeros(hy,hx);
: v1(hy,:)=ones(1,hx)*v0;
: v1(2:hy-1,2:hx-1)=ones(hy-2,hx-2);
%原文上面這行我其實不知道有啥意義 只是代個起始值而已用0和用1應該沒差很多
v2=v00*ones(hy,hx);maxt=1;t=0; %這行這樣才會定義到v2 700V那些邊的邊界條件
: v2(hy,:)=v1(hy,:);
: while (maxt>0.1)
: for i=2:hy-1
: for j=2:hx-1
: v2(i,j)=(v1(i,j-1)+v1(i,j+1)+v1(i-1,j)+...
: v1(i+1,j))/4;
: t=v2(i,j)-v1(i,j);
: maxt=0;
: if(t>maxt) maxt=t; end
: end
: end
: v1=v2;
: end
: subplot(1,2,1),surf(v2)
: axis ([0,11,0,9,1,800])
: subplot(1,2,2),
: contour(v2);
: hold on;
: x=1:1:11;y=1:1:9;
: [xx,yy]=meshgrid(x,y);
: [Gx,Gy]=gradient(v2,0.6,0.6);
: quiver (xx,yy,Gx,Gy,'r'),
: hold off
作者: knutten (biker)   2017-12-17 06:52:00
感謝你的回答,FDM沒學過,matlab助教也只教了迴圈,其他要我們自己google, 所以很多不懂

Links booklink

Contact Us: admin [ a t ] ucptt.com