单索并联机构动力学模型
单索并联机构动力学模型
定义
介绍 单索并联机构 的动力学模型构建,给出其基本的动力学建模技巧
方案
索机构动力学模型是进行索机构原型测试的必要条件,之前研究的运动学模型是动力学模型上的自然延伸,在研究过程中涉及到的主要映射如下:
正逆动力学的基本框架如下图:
动力学模型介绍
绳索的动力学特性与其长度、材料乃至预紧力都有关系,下面总结了可能影响绳索动力学特性的原因:
- 弹性变形:对长距离绳索以及大负载绳索影响大
- 热变形
- 蠕变 (Creeping?):是绳索材料中变形的一种特殊形式,比如高分子材料。Creeping 是一种 hysteresis(迟滞) 效应,可以引起绳索一定时间的可恢复拉伸变形
- 下垂 (Saggingg):由于绳索重力导致的静态变形
- 横向振动 (Transversal vibration):绳索像琴弦一样的横向振动,会导致 effective length 和 tension 出现高频的震动。这一现象在以高加速度运动、绳索质量相对运动平台的质量不可忽略的时候容易出现
- 纵向振动 (Longitudinal vibration):对大尺度的绳索机器人,绳索材料中的音速导致不可忽略的延迟,从而减小了机器人的动力学带宽 (dynamic bandwidth);这也出现在超级高加速度运行的机构中
- 并不是完全的可变形的 (Imperfect flexiblity):绳索通常来说是忽略了其 bending 和 torsional 的刚度的,但在有些情况下,比如金属制造的绳索在小滑轮上会体现出一定的弯曲刚度
动力学模型分析
理想模型
Pott_2018_Cable-Driven Parallel Robots
理想模型中,绳索的传递函数就是一个符号函数,使得拉力为正时传递力,为负时不传递力
这一方法虽然之间实现简单,但是其使得仿真分析变得比较困难,因为这一模型是一个不连续的模型,而且具有强烈的非线性性
弹簧 - 阻尼模型
绳索也被建模为一个并联的弹簧 - 阻尼模型,其中弹簧弹性系数和阻尼比都是可变的,取决于绳索的有效变形长度
这一模型忽略了绳索自身的质量,认为绳索的张力只取决于其弹性变形,这表示纵向和横向的振动都被忽略
在此基础上建立绳索的模型为:
其中有效绳长的初始条件 可以通过绳索原长计算:
其中 是绳索在滑轮上的长度, 是绳索在 winch 上的长度。注意到缠绕的绳索长度为 ,从而可以将有效长度表示为:,从而可以计算出变形量为:
估计模型中弹簧的刚度还是一个未定的问题,目前一般使用弹性模量进行估算:
其中 是绳索的原始的长度
弹性绳索建模——集中质量法
^7bd30c
这是很经典的一种方法,通过将绳索离散为多段单元,并将质量集中到每段的端点上,利用线性变形的假设将端点之间通过弹簧连接,最终通过拉格朗日方法建立动力学模型
动力学模型
note
我们只看其中一半模型
将 winch 外的绳索划分为 n 段,取系统坐标为:
其中
是划分段数的 相对坐标, 代表末端坐标的相对坐标
note
事实上如果你愿意,将末端那一节勉强也能看成是第n+1段,只不过质量有所变化
可以将系统的动能和使能以及 Rayleigh dissipation 表示为:
其中 ,,,且:
其中
对离散的绳索有:
其中 是 winch 转动惯量
note
这里其实是有点暗示角度不能太大,否则 ?
那么为什么不定义成:
进一步建立拉格朗日方程可以得到:
其中
代表了施加在 winch 上的转矩系数
这一些项是在考虑了 winch 之后,由于第一段绳子的质量和刚度改变带来的非线性项:
note
注意如果将位移分散到每一段中,即
那么计算的时候会复杂很多...全部质量非线性
数值仿真
仿真参数:
%% INIT PARAMS
mp = 1; % 负载质量
r = 0.5; % 滑轮半径
Jw = 1.39e-1; % winch 转动惯量
L = 5; % 绳索原长
A = 17.95e-6; % 绳索截面面积
rho = 2200; % 绳索密度
E = 500e6; % 弹性模量
tau = @(t) 1; % 转矩
f = @(t) 0; % 外力
n = 5; % 瑞利基数
% damper coefficients
D = zeros(n+2);
% params
P.r = r;
P.rho = rho;
P.A = A;
P.Jw = Jw;
P.mp = mp;
P.D = D;
P.tau = tau;
P.f = f;
P.L = L;
P.E = E;
P.n = n;
t_end = 1;
tspan = [0 t_end];
simu_num = 500;
仿真代码:
q0 = zeros(n+2,1);
dq0 = zeros(n+2,1);
y0 = [q0;dq0];
sol = ode45(@(t,y) CableLMModel(t, y, P),tspan,y0)
x = linspace(0,t_end,simu_num);
y = deval(sol,x);
LM_theta = y(1, :);
LM_dx = sum(y(2:(n+2), :), 1);
LM_xp = L - r.*LM_theta + LM_dx;
LM_figPlot(x, LM_theta, LM_xp, LM_dx)
弹性绳索建模——Rayleigh-Ritz 方法
参考 @gosselinCableDrivenParallelRobots2018 的 P14:Modelling of Flexible Cable-Driven Parallel Robots Using a Rayleigh-Ritz Approach
关于 Rayleigh-Ritz 方法可以参考: Chap3 弹性体振动,Chap3 弹性体振动
模型基础
其中 分别是世界坐标系,winch 坐标系和绳索坐标系
Payload 到 winch 切点距离为 ,winch 转角为 ,绳子名义的初始长度 (总长) 为 ,那么有:。定义 时不变的坐标 x 为绳子上一点相对 C 点的长度, 为 winch 上绳子相对竖直位置的角度, 是 payload 中心相对 winch 中心在 方向的位置
note
注意这里的是不考虑变形时候的payload到切点的距离,而是考虑变形后实际的payload到切点的距离
选取 Ritz 基为:
^eqn-ritz-basis
其中
我们根据 Ritz 基给出绳子在任一点上的变形量为:
这里的 就是弹性变形相对 Ritz 基的时变的坐标,有 n 个自由度
从而根据上面的分析将整个系统的广义坐标表示为:
^eqn-generalized-coordinates
note
我知道这么选取广义坐标是不独立的,但这么建立动力学模型,在后面如果涉及到多索机构的时候可以方便的添加约束上去,从而保证独立性
动力学模型
使用拉格朗日方程可以建立起动力学模型:
Assumption
在 inertial fram(i) 下进行分析
首先对 winch 上的绳子进行分析:
一个单位质量元 对应的坐标可以表示为:
从而动能可以表示为:
其中
类似的可以得到 winch 和 payload 的动能:
其中 ,
对 winch 外的绳子进行分析:
其中
从而可以得到 unwarpped cable 的动能为:
从而可以将其写成一个二次型的形式:
通过变换 ,可以得到问题方程被简化为:
其中 ,,,,
note
这一质量方程的简化是通过选取合适的这种三角函数基完成的
对绳子的势能可以通过弹性变形得到:
其中
为了引入绳索自然的阻尼项,加入 Rayleigh dissipation 为:
从而系统的拉格朗日方程导出的动力学方程为:
其中
p18r47 ^eqn-dynamic-model
note
注意,到目前为止,末端的payload还没有被连接到绳索末端,需要后面增加constraints
基于能量的模型简化
- 注意到仿真中,unwarpped cable 的动能 ,其中的 比 小了很多 (约 量级),从而忽略这一项,进而忽略了 这几项,方程简化为:
其中
代表第 k 个元素
连接约束
在 ^eqn-dynamic-model 中,选取的广义坐标并不是独立的,因此需要对其施加约束来保证问题的求解:
考虑到初始选取的广义坐标为:
从而考虑其缺失的一个约束,即末端位置 和前 2 个坐标存在关系:
note
这里的约束其实感觉不是对时间的导数,有点像虚位移的感觉=>虚功那一套
从而构造约束 为:
我们考虑构造带约束的拉格朗日系统为:
其中 为拉格朗日乘子,用于约束系统
我们考虑构造新的广义坐标为:
使得其在约束 的零空间中,即:
通过约束可以直接得到 R 为:
从而考虑新系统:
新系统下就可以直接进行仿真了
remark
这么做的主要优势是将约束放在最后进行考虑,对多索耦合的系统可以按照范式方便的进行拓展
note
对比弹性绳索建模——集中质量法,集中质量法构造的单索模型就不需要施加约束,但是多索的话还是需要的
仿真结果
仿真条件为:
mp = 5; % 负载质量
r = 0.5; % 滑轮半径
Jw = 1.39e-1; % winch 转动惯量
L = 20; % 绳索原长
A = 17.95e-6; % 绳索截面面积
rho = 2200; % 绳索密度
E = 500e6; % 弹性模量
n = 5; % 瑞利基数
% damper coefficients
D = zeros(n+2);
% init conditions: (n+2)x2
% q = [\theta, q_e^T]
% y = [q;dq]
q0 = zeros(n+1,1);
dq0 = zeros(n+1,1);
y0 = [q0;dq0];
仿真时长 10s,250 步
note
这里的瑞利基选取5个,而不选取更高阶是因为高阶的基计算出的 会有很大的条件数,测试发现的是:
- 5阶:9.6306e+04
- 10阶:1.4618e+12
- 20阶:9.0865e+16
因此不能算高了,会导致数值计算不稳定
不对拉结果为:
tau = @(t) 1; % 转矩
f = @(t) 0; % 外力
对拉拉力为:
tau = @(t) 1; % 转矩
f = @(t) tau(t)/r; % 外力
至少说明施加的力还是有效果的
仿真代码参考:
符号计算参考:
对比:集中质量 Vs 瑞雷 - 李兹
从理论推导上来看,集中质量法 是 瑞雷李兹法 的一种特例,无非是选取的基函数变成了分段的单位函数,这一改变的影响体现在推导瑞雷李兹法过程中的 上
注意到建立的模型大概为:
因此对集中质量法 (至少我参考的文章),其要求 winch 转角 不能太大,否则超过了第一段的长度会导致计算错误(比如出现负质量、负刚度),特别地:
note
额外选取一个最简单的模型:绳索认为完全刚性,可以立即传导双向的力和力矩,忽略绳子的质量,那么动力学模型为:
选取基本的仿真参数为:
mp = 1; % 负载质量
r = 0.5; % 滑轮半径
Jw = 1.39e-1; % winch 转动惯量
L = 5; % 绳索原长
A = 17.95e-6; % 绳索截面面积
rho = 2200; % 绳索密度
E = 500e6; % 弹性模量
n = 5; % 瑞利基数
% damper coefficients
D = zeros(n+2);
t_end = 1;
tspan = [0 t_end];
simu_num = 500;
带入可以计算得到:
代码可以参考:
单向转矩
对单向转动的情况,考虑:
tau = @(t) 1; % 转矩
f = @(t) 0; % 外力
进行仿真有:
基本上比较贴合
附上和完全刚性的结构进行对比的图片:
单向拉力
tau = @(t) 0; % 转矩
f = @(t) 1; % 外力
可以发现,LM 角度基本不变,这是因为按照设计他就不能按照这个方向被拉;而反过来的 RR 就可以被拉伸,产生反方向的转动
双向对拉
tau = @(t) 1; % 转矩
f = @(t) tau(t)/r; % 外力
可以发现 RR 基本是满足期望的,但是对 LM 就不太对,这应该是程序 Bug,还没想到为什么
大力矩拉动
tau = @(t) 5; % 转矩
f = @(t) 0; % 外力
可以发现,LM 模型在角度为 1.6 度左右的时候出现反向振动,这就是前面说的到了最大转动角度,出现了负质量和负刚度
如果更极端一点,取下面这样的条件:
mp = 1; % 负载质量
r = 0.1; % 滑轮半径
Jw = 1.39e-1; % winch 转动惯量
L = 5; % 绳索原长
A = 17.95e-6; % 绳索截面面积
rho = 2200; % 绳索密度
E = 500e6; % 弹性模量
tau = @(t) 5; % 转矩
f = @(t) 0; % 外力
仿真 5s 的结果:
这里可以发现,RR 方法当其绳子全部缠到了 winch 上后就出问题了,这表明还是存在局限性的
note
不过确实这个情况很极端了
总结
对比 LM 方法和 RR 方法,有下面特点:
- RR 方法仿真的使用情况更广,多种情况下仿真
- RR 方法在低阶的时候稳定,高阶的话会出现高条件数的情况从而出现奇异
- 经过验证,无阻尼情况下,两个方法基本高阶和低阶解的结果基本一样