马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
程序m文件:
%定义方程组如下,其中k为变量
function F = myfun(x,k)
rs(1)=304.8;
rs(2)=101.6;
rs(3)=254.0;
rs(4)=177.8;
dr=pi/180.0;
F=[rs(2)*cos(k)-rs(1)+rs(3)*cos(x(1))-rs(4)*cos(x(2));rs(2)*sin(k)+rs(3)*sin(x(1))-rs(4)*sin(x(2))];
以下为程序:
>> %求解过程
rs(1)=304.8;
rs(2)=101.6;
rs(3)=254.0;
rs(4)=177.8;
dr=pi/180.0;
x0=[1;1]; % 取初值
options = optimset('Display','off');
k=[0:1/36:2]*pi; % 变量取值范围[0 2*pi]
for i=1:length(k)
kk=k(i);
x= fsolve(@(x) myfun(x,kk), x0, options); %求解非线性方程组
x1(i)=x(1);
x2(i)=x(2);
end
x(1)=x1(i);
x(2)=x2(i);
dth=5*dr;
y=250; % 曲柄角速度(等速输入)
T=2*pi/y; % 机构周期-曲柄旋转1周的时间(秒)
% 曲柄输入角从0度变化到360度,步长为5度,计算y1,y2
for i=1:72
k=i*dth;
A=[-rs(3)*sin(x(1)) rs(4)*sin(x(2)); rs(3)*cos(x(1)) -rs(4)*cos(x(2))];
B=[y*rs(2)*sin(k);-y*rs(2)*cos(k)];
yy=inv(A)*B; % 输出角速度矩阵
y1(i)=yy(1);
y2(i)=yy(2);
end
% 设置初始条件
yy(1)=y1(i);
yy(2)=y2(i);
y=250;
dt=5*pi/180/y;
for i=1:72
w(1)=diff(yy(1))/dt;
w(2)=diff(yy(2))/dt;
w1(i)=w(1);
w2(i)=w(2);
t(i)=i*T/72;
end
plot(t, w1,'-b',t, w2,'-r');
legend('连杆3角加速度w1','摇杆4角加速度w2')
axis([0 0.026 -6*1e4 8*1e4])
title('角加速度线图')
xlabel('时间t/s')
ylabel('从动件加速度/rad/s^{2}')
grid
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
找出错误,绘出图形!!!!非常感谢了!!! |