|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
- function num_euler_formula2
- clc
- %m=input('m=');
- %c=input('c=');
- %k=input('k=');
- %x0=input('x0=');
- %v0=input('v0=');
- %f0=input('f0=');
- %w=input('w=');
- %delt=input('delt=');
- %wn=sqrt(k/m);
- %z=c/2/m/wn;
- %lan=w/wn;
- %x=x0;
- %xd=v0;
- %T=input('T=');
- m=18.2
- c=1.49
- k=43.8
- x0=1
- v0=1
- f0=44.5
- w=15
- delt=1
- T=70;
- x=x0;
- xd=v0;
- wn=sqrt(k/m);
- z=c/2/m/wn;
- lan=w/wn;
- for t=1:delt:T
-
- xdd=(f0*sin(w*t)-k*x0-c*xd)/m;
- x0=x0+xd*delt;
- xd=xd+xdd*delt;
- x(t)=x0;
- xxd(t)=xd;
- end
- n=T/delt;
- t=1:delt:T
- x
- subplot(1,2,1);
- plot(t,x);
- grid;
- xlabel('time');
- ylabel('displacement');
- title('time and displacement');
- subplot(1,2,2);
- plot(t,xxd);
- grid;
- xlabel('time');
- ylabel('velocity');
- title('time and velocity');
复制代码
用欧拉法求单自由度谐迫响应,但位移X初始值和最终值差太多,导致用e表示时系统把初始值都认为0了,最终画图时初始阶段画出来的都是一条直线。而且位移应该是衰减的,怎么会递增了 |
|