adams驱动与测量, 与matlab 多形式拟合

本文介绍了如何在Matlab中使用Adams软件对机械系统进行驱动设置,包括添加转动副、选择关节、设置驱动函数和随时间变化的关系。随后,通过测量和仿真操作,以及多项式拟合分析脚pitch角度与电机角度的关系。
摘要由CSDN通过智能技术生成

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('电机角度(两电机角度的平均)');

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值