idol不接 2021-11-22 21:52 采纳率: 100%
浏览 41
已结题

Matlab程序写出,图出不来

四个图都是只有坐标轴,没有点与曲线



```{clc;clear all;
syms a1 m2 m3 r l lBS J2 yC % a1为角度变量
a2=r*sin(a1)/l;
xB=r*cos(a1);yB=r*sin(a1);
xC=r*cos(a1)+l*cos(a2);
xS2=xC-(l-lBS)*cos(a2);yS2=(l-lBS)*sin(a2);xS3=r*cos(a1)+l*cos(a2);
h=yB-yS2;i=xS2-xB;j=yS2-yC;k=xC-xS2;
m2=1.36;m3=0.907;
r=50.8;l=203;lBS=50.8;J2=0.0102;yC=0;
A=[-1,0,1,0,0,0,0,0;
    0,-1,0,1,0,0,0,0;   
    0,0,-yB,xB,0,0,0,1;
    0,0,-1,0,1,0,0,0;
    0,0,0,-1,0,1,0,0;
    0,0,h,i,j,k,0,0;
    0,0,0,0,-1,0,0,0;
    0,0,0,0,0,-1,1,0];
b=[0 0 0 m2*diff(xS2,2) m2*diff(yS2,2) J2*diff(a2,2) m3*diff(xS3,2) 0]';
x=A\b;
a1=0:pi/90:2*pi;
t1=str2double(x(1,1));t2=str2double(x(2,1));
t3=str2double(x(7,1));t4=str2double(x(8,1));
Fsx=t1;Fsy=t2+t3;Ms=xC*t3;Md=t4;
figure(1);plot(a1,Fsx,'k:');xlabel('角1');ylabel('Fsx/N');
figure(2);plot(a1,Fsy,'k:');xlabel('角1');ylabel('Fsy/N');
figure(3);plot(a1,Ms,'k:');xlabel('角1');ylabel('Ms/Nm');
figure(4);plot(a1,t4,'k:');xlabel('角1');ylabel('Md/Nm');}

###### 运行结果及报错内容 

###### 我的解答思路和尝试过的方法 

###### 我想要达到的结果




  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-11-22 22:06
    关注

    你好,有两个地方要注意,第一个是预定义参数,第二个是把sym转化成关于a1的函数——可以用matlabFunction命令(如有帮助,还麻烦帮忙点个采纳支持一下答主答题哟,谢谢啦):

    clc;clear all;
    syms a1 m2 m3 r l lBS J2 yC % a1为角度变量
    r=50.8;l=203;lBS=50.8;J2=0.0102;yC=0; % 把预定义变量放最前面
    a2=r*sin(a1)/l;
    xB=r*cos(a1);yB=r*sin(a1);
    xC=r*cos(a1)+l*cos(a2);
    xS2=xC-(l-lBS)*cos(a2);yS2=(l-lBS)*sin(a2);xS3=r*cos(a1)+l*cos(a2);
    h=yB-yS2;i=xS2-xB;j=yS2-yC;k=xC-xS2;
    m2=1.36;m3=0.907;
    
    A=[-1,0,1,0,0,0,0,0;
        0,-1,0,1,0,0,0,0;   
        0,0,-yB,xB,0,0,0,1;
        0,0,-1,0,1,0,0,0;
        0,0,0,-1,0,1,0,0;
        0,0,h,i,j,k,0,0;
        0,0,0,0,-1,0,0,0;
        0,0,0,0,0,-1,1,0];
    b=[0 0 0 m2*diff(xS2,2) m2*diff(yS2,2) J2*diff(a2,2) m3*diff(xS3,2) 0]';
    x=A\b;
    a1=0:pi/90:2*pi;
    t1=x(1,1);t2=x(2,1);
    t3=x(7,1);t4=x(8,1);
    Fsx=t1;Fsy=t2+t3;Ms=xC*t3;Md=t4;
    Fsx = matlabFunction(Fsx); % 转化成关于a1的函数
    Fsy = matlabFunction(Fsy); % 转化成关于a1的函数
    Ms = matlabFunction(Ms); % 转化成关于a1的函数
    t4 = matlabFunction(t4); % 转化成关于a1的函数
    figure(1);plot(a1,Fsx(a1),'k:');xlabel('角1');ylabel('Fsx/N');
    figure(2);plot(a1,Fsy(a1),'k:');xlabel('角1');ylabel('Fsy/N');
    figure(3);plot(a1,Ms(a1),'k:');xlabel('角1');ylabel('Ms/Nm');
    figure(4);plot(a1,t4(a1),'k:');xlabel('角1');ylabel('Md/Nm');
    

    img

    img

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月22日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示