شبیه‌سازی شبکه‌های بی سیم و کامپیوتری
شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا
  • شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا

مشخصات بلاگ
شبیه‌سازی شبکه‌های بی سیم و کامپیوتری

امکان سفارش، شبیه سازی مقاله و پایان نامه وجود دارد،
مطالب، با ذکر منبع قابل انتشار در سایت ها و وبلاگ ها و.. می باشد.
جهت دریافت مشاوره رایگان تماس بگیرید:

شماره تماس: 09147082079-0098
آیدی تلگرامی:https://t.me/MuosSA_NbO
جی میل :mo30no@gmail.com

تمامی کدهای این وبلاگ در حال حاضر به زبان متلب می باشد

«آنچه می‌دانیم ناچیز و آنچه نمی‌دانیم عظیم و وسیع است»
$$پیر سیمون لاپلاس$$

دوشنبه, ۱ اسفند ۱۴۰۱، ۰۴:۰۰ ب.ظ

رشد مستطیل در یک مسیر سینوسی روی یک صفحه فضایی

 

 

شما می توانید با تغییر معادله صفحه زیر  در سط 4،نمودار  سه بعدی  رشد یافته روی مسیر را روی آن صفحه مشاهده کنین.

f(p,q)=2*p  +2*q;

مثلا  می توانین  معادله صفحه در سط 4 را به فرم  2+ f(p,q)=2*p  +0.5*q;  تغییر دهین و نتیجه را مشاهده کنین.

حتی می تونین، به جای صفحه  معادله یک رویه را وارد کنین، مثلا سطر 4 را با معادله رویه f(p,q)=2*p  +.5*q+2*p*q; جایگزین کنین. و نتیجه شکل زیر را مشاهده کنین.

کد اجرایی:

clc;
clear;
close all;
syms p q X Y Z  yd(X) yl(X) f(p,q) ft(p,q) T xp(T) yp(T) zp(T)
f(p,q)=2*p  +2*q;
[p1,q1]=meshgrid( 0:.1:1 ,-1:.1:1 );
 surf(p1,q1,double(f(p1,q1)),FaceColor='g');alpha(.2);hold on;
 

t=linspace(0,1,100);
x=t;
y=sin(2*pi*x);yprim=2*pi*cos(2*pi*x);
plot3(x,y,f(x,y),'-r');hold on
n=length(t);
t1=linspace(0,1,200);
r=.08;
x1=r*sin(2*pi*t1);
y1=r*cos(2*pi*t1);
 
xM=[];
yM=[];
zM=[];

for s=1:length(t) -1

    %plot equLine for  slop and its 90 slop lines

    %% 
%     yprims =double((y(s+1)- y(s))/(x(s+1)- x(s)));
    yd(X)=yprim(s)*(X-x(s))+y(s);
    yl(X)=(-1./yprim(s))*(X-x(s))+y(s);
    tr=[x(s),x(s)+.00005 ];
    d1=diff( double(tr));
    d2=diff( double(yd(tr)));
    d3=diff( double(f(tr,yd(tr))));

    rd=[d1,d2,d3];
    xp(T)=x(s)+rd(1)*T;
    yp(T)=y(s)+rd(2)*T;
    zp(T)=double(f(x(s),y(s)))+rd(3)*T;
    tr1=double(solve((xp-x(s))^2+(yp-y(s))^2-r^2,T));
%     plot3(xp(tr1),yp(tr1) ,zp(tr1),'b-' );hold on
   


    %%

    d1=diff( double(tr));
    d2=diff( double(yl(tr)));
    d3=diff( double(f(tr,yl(tr))));

    r2=[d1,d2,d3];
%     r2=[1,double(yl(x(s)+1))-double(yl(x(s))),double(f(x(s)+1,double(yl(x(s)+1))))-double(f(x(s),double(yl(x(s)))))];
    xl(T)=x(s)+r2(1)*T;
    yl(T)=y(s)+r2(2)*T;
    zl(T)=double(f(x(s),y(s)))+r2(3)*T;
    tr2=(double(solve((xl-x(s))^2+(yl-y(s))^2-r^2,T)));
%     plot3(double(xl(tr2)),double(yl(tr2)) ,double(zl(tr2)),'c-' );hold on
    df=(double((yprim(s))))/abs(double((yprim(s))));
    
    if  df==-1
    tr2=tr2(end:df:1);
    end
    %%
%     plot3(x1+x(s),y1+y(s) ,double(f(x1+x(s),y1+y(s))),'b-' );hold on

    %%
    r3=double([subs(gradient(f ),[p,q],[x(s),y(s)])',-1]);
    xr=double(xl(tr2));
    yr=double(yl(tr2));
    zr=double(zl(tr2));

    xr0(T)=xr(1)+r3(1)*T;
    yr0(T)=yr(1)+r3(2)*T;
    zr0(T)=zr(1)+r3(3)*T; 
    
    xr1(T)=xr(2)+r3(1)*T;
    yr1(T)=yr(2)+r3(2)*T;
    zr1(T)=zr(2)+r3(3)*T; 
    tr3=[-.02,.02];
%     plot3(double([xr0(tr3),xr1([tr3(2),tr3(1)]),xr0(tr3(1))]),double([yr0(tr3),yr1([tr3(2),tr3(1)]),yr0(tr3(1))]),double([zr0(tr3),zr1([tr3(2),tr3(1)]),zr0(tr3(1))]));hold on
%     plot3(xr0(tr3),yr0(tr3),zr0(tr3),'*')
   
    xM=[xM;double([xr0(tr3),xr1([tr3(2),tr3(1)]),xr0(tr3(1))])];
    yM=[yM;double([yr0(tr3),yr1([tr3(2),tr3(1)]),yr0(tr3(1))])];
    zM=[zM;double([zr0(tr3),zr1([tr3(2),tr3(1)]),zr0(tr3(1))])];


  % peripendecular plane
  % peripendecular passpoints
    rpX=diff(double(xl(tr2))');
    rpY=diff(double(yl(tr2))') ;
    rpZ=diff(double(zl(tr2)'));
    B=[rpX,rpY,rpZ] ;
    
    C=double([subs(gradient(f ),[p,q],[x(s),y(s)])',-1]);
    C=cross(B,C);
    refPlane=C(1)*(X-x(s ))+C(2)*(Y-y(s))+C(3)*(Z-f(x(s ),y(s))) ;

    verPlaneCoff='XYZ';
    [~,ind]=find(C);
    ind=ind(end);
    in=find(~ismember([1,2,3],ind));

    ft(p, q)=subs(refPlane-C(ind)*sym(verPlaneCoff(ind)),[sym(verPlaneCoff(in(1))),sym(verPlaneCoff(in(2)))],[p,q]);
    ft=-(ft/C(ind));

      plot3(double([xr0(tr3),xr1([tr3(2),tr3(1)]),xr0(tr3(1))]),double([yr0(tr3),yr1([tr3(2),tr3(1)]),yr0(tr3(1))]),double([zr0(tr3),zr1([tr3(2),tr3(1)]),zr0(tr3(1))]),'r');hold on


% surf(double([xr0(tr3);xr1(tr3)]),double([yr0(tr3);yr1(tr3)]),double([zr0(tr3);zr1(tr3)]),FaceColor='g');hold on
% surf(double([xr0(tr3);xr1(tr3)]),double([yr0(tr3);yr1(tr3)]),double(ft(double([xr0(tr3);xr1(tr3)]),double([yr0(tr3);yr1(tr3)]))),FaceColor='b');hold on
plot3(double([xr0(tr3);xr1(tr3)])',double([yr0(tr3);yr1(tr3)])',double(ft(double([xr0(tr3);xr1(tr3)]),double([yr0(tr3);yr1(tr3)])))','b');hold on
plot3(double([xr0(tr3);xr1(tr3)]),double([yr0(tr3);yr1(tr3)]),double(ft(double([xr0(tr3);xr1(tr3)]),double([yr0(tr3);yr1(tr3)]))),'b');hold on



    view(3)
    xlabel('X');
    ylabel('Y');
    zlabel('Z');
%      axis equal
     pause(.0001)
end

axis equal
plot3(xM ,yM ,zM )
h=surf(xM ,yM ,zM ,'FaceColor','g');alpha(h,.1)

موافقین ۰ مخالفین ۰ ۰۱/۱۲/۰۱
موسی حسن زاده

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی