adams :
1 对转动副添加驱动,右键两次选择具体关节,选择驱动函数,及随时间变化关系。
2 测量:选择连接关节,测量不同值。
3 点击仿真,设定仿真时间和步长
4 点击后处理,选择测量中的值,浏览,文件保存为表格(设定路径),htm格式
注:选对模型,重力因素等
matlab:
clc,clear ;
%***********************X数据***********************%
%
% t = linspace(0, 2, 20);
t=0:0.01:1;
x = -40+60*t; %驱动函数与adams 一致
% x = 0.3*sin(t);
%************************Y数据***********************%
%
A = [0.0 18.2354
0.01 17.9834
0.02 17.7304
0.03 17.4762
0.04 17.221
0.05 16.9646
0.06 16.7072
0.07 16.4488
0.08 16.1893
0.09 15.9288
0.1 15.6673
0.11 15.4047
0.12 15.1412
0.13 14.8767
0.14 14.6112
0.15 14.3448
0.16 14.0774
0.17 13.8091
0.18 13.5398
0.19 13.2696
0.2 12.9985
0.21 12.7265
0.22 12.4537
0.23 12.1799
0.24 11.9052
0.25 11.6297
0.26 11.3534
0.27 11.0761
0.28 10.7981
0.29 10.5191
0.3 10.2394
0.31 9.9588
0.32 9.6775
0.33 9.3953
0.34 9.1123
0.35 8.8284
0.36 8.5438
0.37 8.2584
0.38 7.9723
0.39 7.6853
0.4 7.3975
0.41 7.109
0.42 6.8197
0.43 6.5297
0.44 6.2388
0.45 5.9472
0.46 5.6549
0.47 5.3618
0.48 5.0679
0.49 4.7733
0.5 4.4779
0.51 4.1818
0.52 3.8849
0.53 3.5872
0.54 3.2889
0.55 2.9897
0.56 2.6898
0.57 2.3892
0.58 2.0878
0.59 1.7857
0.6 1.4828
0.61 1.1792
0.62 0.8748
0.63 0.5696
0.64 0.2637
0.65 -0.0429
0.66 -0.3503
0.67 -0.6585
0.68 -0.9675
0.69 -1.2772
0.7 -1.5877
0.71 -1.8989
0.72 -2.2109
0.73 -2.5238
0.74 -2.8374
0.75 -3.1517
0.76 -3.4669
0.77 -3.7829
0.78 -4.0997
0.79 -4.4172
0.8 -4.7356
0.81 -5.0548
0.82 -5.3748
0.83 -5.6956
0.84 -6.0173
0.85 -6.3398
0.86 -6.6631
0.87 -6.9873
0.88 -7.3123
0.89 -7.6382
0.9 -7.9649
0.91 -8.2925
0.92 -8.621
0.93 -8.9503
0.94 -9.2805
0.95 -9.6117
0.96 -9.9437
0.97 -10.2766
0.98 -10.6104
0.99 -10.9452
1.0 -11.2809]
%*************************************************%
%*******计算********%
y = A(:,2)'
plot(x,y,'*'); %这行代码将以星号形式绘制给定数据点 (x, y)。
p=polyfit(x,y,5) %这行代码使用多项式拟合函数 polyfit 对给定数据点进行多项式拟,合多项式的阶次为 5
%验证:
%输出t= 0.5时的数据,作原始数据对比保证一致
r_05 = polyval(p,-40+60*0.5) %这行代码使用多项式系数 p 来计算 x=0.5 处的多项式值。
plot(x,y,'*',x,polyval(p,x)) %这行代码将同时绘制原始数据点和多项式拟合曲线。星号表示原始数据点,而多项式拟合曲线由 polyval(p,x) 计算得出。
xlabel('右腿右电机转动角度,向上拉')
ylabel('脚pitch角度,向前抬起')
比较几个多项式的:
clc,clear ;
%***********************X数据***********************%
%
% t = linspace(0, 2, 20);
t=0:0.01:1;
x = -40+60*t; %驱动函数与adams 一致
% x = 0.3*sin(t);
% pNo = [ 0.000000000232237 -0.000000062289573 -0.000001831645094 -0.001060697082623 -0.513853133041802 -0.555728844879269];
% pA = [ 0.000000000327608 -0.000000049123415 -0.000002013106151 -0.000983907437940 -0.472694399161010 -0.824820993154404];
% pB = [ 0.000000000175281 -0.000000031103262 -0.000002753118695 -0.001039721115380 -0.469957009579116 -0.254132895022146];
% pC = [ -0.000000000769532 0.000000117560986 -0.000014851069390 -0.000650903643565 -0.491092912455371 -0.153346225347746];
% pD =[ -0.000000000412476 0.000000049669719 -0.000009886607615 -0.000904851824672 -0.486115030030913 -2.753836075793947];
% 去掉初始值
pNo = [ 0.000000000232237 -0.000000062289573 -0.000001831645094 -0.001060697082623 -0.513853133041802 0];
pA = [ 0.000000000327608 -0.000000049123415 -0.000002013106151 -0.000983907437940 -0.472694399161010 0];
pB = [ 0.000000000175281 -0.000000031103262 -0.000002753118695 -0.001039721115380 -0.469957009579116 0];
pC = [ -0.000000000769532 0.000000117560986 -0.000014851069390 -0.000650903643565 -0.491092912455371 0];
pD =[ -0.000000000412476 0.000000049669719 -0.000009886607615 -0.000904851824672 -0.486115030030913 0];
y1 = polyval(pNo, x);
y2 = polyval(pA, x);
y3 = polyval(pB, x);
y4 = polyval(pC, x);
y5 = polyval(pD, x);
% 绘制三个多项式的图像
hold on;
plot(x, y1, 'r', 'LineWidth', 2); % 使用红色绘制第一个多项式
plot(x, y2, 'g', 'LineWidth', 2); % 使用绿色绘制第二个多项式
plot(x, y3, 'b', 'LineWidth', 2); % 使用蓝色绘制第三个多项式
plot(x, y4, 'y', 'LineWidth', 2); % 使用黄色绘制第四个多项式
plot(x, y5, 'c', 'LineWidth', 2); % 使用黄色绘制第5个多项式
hold off;
% % 添加图例
legend('无roll', '-40~0', '-20~20','10~20');
% 添加标题和坐标轴标签
title('Comparison of four 5th Order Polynomials');
xlabel('脚pitch角度');
ylabel('电机角度(两电机角度的平均)');