matlab请问这个程序哪里错了%主程序(matlab):x=[0.137 65*pi/180 0.1 0.125 0.6 0.15 0.275 0.575 0];%赋初值dr=pi/180;%度转化为弧度dth=10*dr;w1=1;%每10度计算一个点for i=1:37y=ntpc(x);%调用从动件位置方程求解函

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 12:41:08
matlab请问这个程序哪里错了%主程序(matlab):x=[0.137 65*pi/180 0.1 0.125 0.6 0.15 0.275 0.575 0];%赋初值dr=pi/180;%度转化为弧度dth=10*dr;w1=1;%每10度计算一个点for i=1:37y=ntpc(x);%调用从动件位置方程求解函

matlab请问这个程序哪里错了%主程序(matlab):x=[0.137 65*pi/180 0.1 0.125 0.6 0.15 0.275 0.575 0];%赋初值dr=pi/180;%度转化为弧度dth=10*dr;w1=1;%每10度计算一个点for i=1:37y=ntpc(x);%调用从动件位置方程求解函
matlab请问这个程序哪里错了
%主程序(matlab):
x=[0.137 65*pi/180 0.1 0.125 0.6 0.15 0.275 0.575 0];%赋初值
dr=pi/180;%度转化为弧度
dth=10*dr;w1=1;%每10度计算一个点
for i=1:37
y=ntpc(x);%调用从动件位置方程求解函数ntpc(自编)
s3=y(1);
theta3=y(2);
theat4=y(4);
se=y(4);%得到位置参数.
%将各位置参数用向量储存,便于后面绘图,角度用度表示
ss3(i)=y(1);th1(i)=x(10)/dr;th3(i)=y(2)/dr;th4(i)=y(3)/dr;sse(i)=y(4);
%进行速度分析
A=[cos(theta3) -s3*sin(theta3) 0 0;
sin(theta3) s3*cos(theta3) 0 0;
0 -x(6)*sin(theta3) -x(7)*sin(theta4) -1;
0 x(6)*cos(theta3) x(7)*cos(theta4) 0];%A机构从动件的位置参数矩阵
B=[-x(5)*sin(x(10));x(5)*cos(x(10));0;0];%B机构原动件的位置参数列阵
yy=w1*inv(A)*B;%公式1-3求解,yy表示机构从动件速度列阵,inv(A)是A的逆阵
vs3=yy(1);w3=yy(2);w4=yy(3);vse=yy(4);
%将各速度参数以向量的方式表示,以便后面绘图
dvs3(i)=yy(1);dw3(i)=yy(2);dw4(i)=yy(3);dvse(i)=yy(4);
%dA为从动件位置参数矩阵对时间一次求导
%进行角速度分析
dA=[-w3*sin(theta3) -vs3*sin(theta3)-s3*w3*cos(theta3) 0 0;
w3*cos(theta3) vs3*cos(theta3)-s3*w3*sin(theta3) 0 0;
0 -x(6)*w3*cos*(theta3) -x(7)*w4*cos(theta4) 0;
0 -x(6)*w3*sin*(theta3) -x(7)*w4*sin(theta4) 0];
%dB就是原动件位置参数列阵对时间一次求导
dB=[-x(5)*w1*cos(x(10));-x(5)*w1*sin(x(10));0;0];
KK=-dA*yy+w1*dB;%KK为公式1-4右端
ya=inv(A)*KK;%公式1-4求解,ya为从动件加速度列阵
%将各加速度以向量表示
as3(i)=ya(1);atheta3(i)=ya(2);atheta4(i)=ya(3);ase(i)=ya(4);
x(10)=x(10)+dth;%计算下一个点
x(1)=s3;
x(2)=theta3;
x(3)=theta4;
x(4)=se;
end
%绘制运动参数曲线
ssubplot(2,2,1); %选择第1个子窗口
plot(th1,th3,th1,th4,th1,sse*1e3);%绘制位置线图
subplot(2,2,2);
plot(th1,dw3,th1,dw4,th1,dvse);%绘制速度线图
subplot(2,2,3);
plot(th1,atheta3,th1,atheta4,th1,ase);%绘制加速度线图
%这个函数是关于牛头刨床位置方程求解,可得:s3,theta3,theta4,sE四个运动变量.
%子程序:
function[y]=ntpc(x)
s3=x(1);
theta3=x(2);
theta4=x(3);
se=x(4);
epsilon=1e-6;%设置求解精度为10-6
%用矩阵的形式表示位置方程组(4x1的矩阵)
f=[s3*cos(theta3)-x(5)*cos(x(10));
s3*sin(theta3)-x(5)*sin(x(10))-x(8);
x(6)*cos(theta3)+x(7)*cos(theta4)-se;
x(6)*sin(theta3)+x(7)*sin(theta4)-x(9)];
%用牛顿-辛普森法求解
while norm(f)>epsilon
%J位置方程组的雅可比矩阵,即从动件位置参数矩阵
J=[cos(theta3) -s3*sin(theta3) 0 0;
sin(theta3) s3*cos(theta3) 0 0;
0 -x(6)*sin(theta3) -x(7)*sin(theta4) -1;
0 x(6)*cos(theta3) x(7)*sin(theta4) 0];
dth=inv(J)*(-1.0*f);%计算增量,进行迭代,inv(J) 为J的逆阵
s3=s3+dth(1);
theta3=theta3+dth(2);
theta4=theta4+dth(3);
se=se+dth(4);
f=[s3*cos(theta3)-x(5)*cos(x(10));s3*sin(theta3)-x(5)*sin(x(10))-x(8);
x(6)*cos(theta3)+x(7)*cos(theta4)-se;x(6)*sin(theta3)+x(7)*sin(theta4)-x(9)];
norm(f);%若未达精度,会继续迭代.
end
%输出4个参数
y(1)=s3;
y(2)=theta3;
y(3)=theta4;
y(4)=se;

matlab请问这个程序哪里错了%主程序(matlab):x=[0.137 65*pi/180 0.1 0.125 0.6 0.15 0.275 0.575 0];%赋初值dr=pi/180;%度转化为弧度dth=10*dr;w1=1;%每10度计算一个点for i=1:37y=ntpc(x);%调用从动件位置方程求解函
我不知道你的算法所以没法帮你改,但是我可以从语法上帮你指出哪里错误了
所先从%子程序:
function[y]=ntpc(x)
到结尾y(4)=se;这些代码你要剪切下来另存为ntpc.m
其次
y=ntpc(x);%调用从动件位置方程求解函数ntpc(自编)
在调用ntpc(x)时
f=[s3*cos(theta3)-x(5)*cos(x(10));
x(10)就溢出了.
自己看看吧

matlab请问这个程序哪里错了%主程序(matlab):x=[0.137 65*pi/180 0.1 0.125 0.6 0.15 0.275 0.575 0];%赋初值dr=pi/180;%度转化为弧度dth=10*dr;w1=1;%每10度计算一个点for i=1:37y=ntpc(x);%调用从动件位置方程求解函 请问我这个matlab代码哪里错了我想画一个三维图%函数function dxdt=differential1(t,x,y)dxdt=[0.5*x(1)*(1-x(1)); 0.5*x(2)*(1-x(2)); 0.5*x(3)*(1-x(3))];end%主程序clear%y-xfor i=0:0.1:1for j=0:0.1:1for m=0:0.1:1[T,Y]=ode45('different 这个简单的matlab程序错在哪里了?这个简单的程序错在什么地方?x=(0.1:0.1:100); y=(3.742e+8)*(x.^(-5))./(exp((1.439e+4)/(x*5800))-1); 谁能帮我看一下这个程序哪里错了? matlab画图x = 0:0.01:10; y =sin(2*x)*cos(100*x)/(2*x); plot(x, y)这个程序为什么matlab总是报错?哪里错了?求大神赐教 请问我这个matlab程序哪里错了啊,Q=input('请输人泄漏源强(mg/s):Q=');H=input('输人计算风速(m/s):H=');d=input('请输人计算精度(m):d=');Z0=input('请输人地面粗糙长度(m):Z0:');Yj=meshgrid(50:d:1000,-100:d:100);% 请问一下这个matlab程序的syms哪里错了syms x; f(x)=x^3+2*x^2+10*x-20;d(x)=3*x^2+4*x+10;x2=1.5; x1=1.49;a=0.5;while x2==x1&&abs(f(x2)) matlab画傅里叶变换图像用matlab画e^(-x)的傅里叶变换1/(1+j*2*pi*f)),f 为[-4,4],程序如下f=linspace(-4,4); a=1./(1+j*2*pi*f);plot(f,abs(a))为什么画出来的图像跟书上给的不一样啊?请问程序哪里错了,该怎么写 请问下面的matlab程序哪里出错了?请帮我改正一下,function[f,k]=sconv(f1,f2,k1,k2,p) %计算连续 请问这个英语作文哪里错了? 请问这个电路哪里错了 请问这个C语言哪里错了 请问谁能将这个matlab仿真动画保存为gif或者是avi格式啊?主程序已经编好了.主程序如下clear,rm=2;r=0.01:0.02:rm;th=linspace(0,2*pi,300);[R,TH]=meshgrid(r,th);[X,Y]=pol2cart(TH,R);eth=-3:0.3:3;rh=0.5:0.1:rm;phi=(0:10:350)*pi y=1./abs(n-6);matlab里面程序的一个语句,请问这个点起什么作用?去了这个点就报错! t=0:0.1:8; y=sin.^2(t./8); plot(t,y) matlab画图,程序哪里错了,我觉得问题在第二行, 高手看一下我的matlab程序哪里错了function y=rrp(x) % % Input paramenters % % x(1)=theta-1 % x(2)=the 初学matlab 一个小程序,折磨我一天了,也不知道应该怎么改.主程序:clear all;clcsyms C1 C2 C3x=[C1 C2 C3];for i=1:5Y(i)=1*C1*i+2*C2*i+3*C3*i;endY1=Y';b=[4;5;6;7;8];yo=Y1-b;options=gaoptimset('PopulationSize',500,'Generations',100 几个程序怎么在MATLAB仿真呀这个已经解决了