本人在做毕业论文,要求用MATLAB绘制一维弦系统分别在无控制和边界控制下的三维振动图和边界处的二维振动图,请指教
这是老师给出的参考代码,完全看不懂
- close all;clear all;clc;
-
- tmax=300;
- nt=100*10^3;
- dt=tmax/(nt-1);
- t=linspace(0,tmax,nt);
-
- L=1;
- nx=100;
- dx=L/(nx-1);
- x=linspace(0,L,nx);
-
- pi=3.1415926;
-
- v=zeros(1,nt);
- for j=1:nt
- v(1,j)=0.007+0.0002*j*dt;
- end
-
- T=zeros(nx,nt);
- for i=1:nx
- for j=1:nt
- T(i,j)=(300+0.007*j*dt+0.00001*j*dt*j*dt-i*dx)*(9.8-0.00002);
- end
- end
-
- d=zeros(1,nt);
- for j=1:nt
- d(1,j)=1+sin(pi*j*dt)+sin(2*pi*j*dt)+sin(3*pi*j*dt);
- end
-
- rho=1024;
- CD=1.361;
- D=0.1524;
-
- f=zeros(nx,nt);
- for i=1:nx
- for j=1:nt
- U=2+0.2*sin(2*0.867*pi*j*dt)+0.2*sin(1.827*j*dt)+0.2*sin(2.946*j*dt)+0.2*sin(4.282*j*dt);
- f(i,j)=(0.5*rho.*CD.*U.*U*D+0.2*0.5*rho.*CD*U.*U.*D.*cos(4*pi.*(0.2*U/D)*j*dt))*(i)/3000;
- end
- end
-
- %case1 无控制
- w1=zeros(nx,nt);
- w1(1,:)=0;%w(0,t)=0 边界条件
- w1(2,:)=0;
-
- for i=3:nx-1 %d w(x,0)/dt=0 初始条件
- w1(i,1)=i*dx/5000;
- w1(i,2)=i*dx/5000;
- end
-
- for j=3:nt
- for i=3:nx-2
- w1(i,j)=2*w1(i,j-1)-w1(i,j-2)...
- +(dt^2*(T(i,j-1)))/(dx^2)*(w1(i+1,j-1)-2*w1(i,j-1)+w1(i-1,j-1))...
- +(dt^2)/(dx^2)*(w1(i,j-1)-w1(i-1,j-1))*(T(i,j-1)-T(i-1,j-1))...
- -(dt^2)*2*v(1,j-1)*(w1(i,j-1)-w1(i,j-2)-w1(i-1,j-1)+w1(i-1,j-2))/(dx*dt)...
- -(dt^2)*(v(1,j-1)-v(1,j-2))*(w1(i,j-1)-w1(i-1,j-1))/(dx*dt)...
- -(dt^2)*(v(1,j-1)*v(1,j-1))*(w1(i+1,j-1)-2*w1(i,j-1)+w1(i-1,j-1))/(dx^2)...
- end
- w1(nx-1,j)=2*w1(nx-1,j-1)-w1(nx-1,j-2)...
- -T(nx-1,j-1)*(w1(nx-1,j-1)-w1(nx-2,j-1))/(dx)...
- -(dt^2)*((v(1,j-1)-v(1,j-2))*(w1(nx-1,j-1)-w1(nx-2,j-1)))/((dx*dt)+v(1,j-1)*w1(nx-1,j-1))
- w1(nx,j)=2*w1(nx-1,j)-w1(nx-2,j);
这是理论推导过程

这是所要求的结果示例图

