查看: 89|回复: 2|关注: 0

[已答复] MATLAB程序算完后工作区空白

[复制链接]

新手

5 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 7 天前 | 显示全部楼层 |阅读模式

%Wilson-theta 法
function wilson(m,c,k,x0,v0,time,delt)
n=time/delt;
disp=zeros(3,n);%设定存储位移矩阵
m_inv=inv(m+delt*c/2+delt^2*k/6);
[mod,fre]=eig(inv(m)*k);
diag(sqrt(fre));%固有频率
i=1;
beta=1/4;
for t=0:delt:time
f =[ 2.0sin 2.5t,-3.0cos2.2t]; %简谐作用力向量,需要根据实际情况确定输入
if t==0
xdd0=inv(m)*(f-k*x0-c*v0);%初始加速度
else
xdd=m_inv*(f-c*(v0+delt/2*xdd0)-k*(x0+delt*v0+(1/2-beta)*delt^2*xdd0));
x=m_inv*(m*(x0+delt*v0+delt^2/3*xdd0)+c*(delt/2*x0+delt^2/3*v0+delt^3/12*xdd0)
+delt^2/6*f);%计算位移
xd=v0+delt*(xdd0+xdd)/2;%计算速度
xdd0=xdd;
v0=xd;
x0=x;
disp(:,i)=x0;%显示质点位移
i=i+1;
end
end
t=1:n;
figure('numbertitle','off','name','第一层框架位移','pos',[450 180 400 420]);
plot(t,disp(1,:)),grid,xlabel('时间(s/10)'), ylabel('位移(m)'),title('第一层框架时程曲线');
figure('numbertitle','off','name','第二层框架位移','pos',[450 180 400 420]);
plot(t,disp(2,:)),grid,xlabel('时间(s/10)'), ylabel('位移(m)'),title('第二层框架时程曲线');

相关帖子

新手

9 麦片

财富积分


050


0

主题

19

帖子

1

最佳答案
发表于 6 天前 | 显示全部楼层
你这是个程序,还没输出

新手

11 麦片

财富积分


050


2

主题

9

帖子

1

最佳答案
发表于 6 天前 | 显示全部楼层
function wilson(m,c,k,x0,v0,time,delt)
这表明你贴出来的程序是个函数,函数里面的变量,不在workspace里面显示。
而且这个函数不直接向主程序返回任何数值。
你的主程序呢?主程序里面的变量总能在workspace里面显示出来吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表