💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
摘要: 在力矩控制执行器的多样性中,研究者得以应对众多物理人机交互应用,提高了安全性、可靠性和交互能力[1]。然而,仅有少数力矩控制执行器能满足移动性、提高力矩/质量比及结构集成性等挑战性的应用需求。为此,系列弹性执行器(SEA)能够满足这些要求[2],并且在先进机器人平台中得到广泛应用[3]-[5]。因此,随着机器人领域相关子学科需求的增长,SEA的研发正日益受到关注。
力矩控制执行器的多样性使得研究者能够在增强安全、可靠性和交互能力的基础上,处理众多物理意义上的人机交互应用[1]。然而,仅有少数力矩控制执行器能够满足移动性、提升力矩/质量比及结构集成性等严苛的应用需求。在此背景下,系列弹性执行器(SEA)能够符合这些标准[2],并且在当前最先进的机器人平台上被广泛采用[3]–[5]。因此,随着机器人学相关子领域需求的不断增长,SEA的发展正逐渐成为研究热点。
简而言之,一个SEA单元由一个弹性元件(通常是弹簧)构成,该元件部署在机械输出(负载)与电动机之间[6]。因此,它可以被归类为双惯性系统,这一特性使得其力矩控制问题相对更为复杂[7]。早期的研究中,通常采用经典控制方法,例如Pratt等人提出使用传统的比例-积分-微分(PID)控制来实现力矩跟踪[6]。然而,力矩控制性能被认为不够理想,随后他们又增加了一个前馈(FF)项,以消除未建模动力学的影响[8]。
本文中,我们展示了一项实验性基准研究,评估了五种不同的控制器,这些控制器计算高效且能为基于扭转的SEA单元提供足够的力矩跟踪性能。结合Disturbance Observer(DOB),它们被认为能提供满意的结果,因为它们可以充当分散式机器人控制方法中的低层控制器角色[20]。
根据实验结果,我们可以得出结论,所有五个控制器表现良好,在性能指标方面没有显著差异。尽管差异不大,但滑模控制(SMC)+DOB在力矩跟踪方面与其他控制器相比显得相对更有利。考虑到SEA建模易受参数不确定性和误差影响的事实,基于滑模的控制器表现出色,因为它具有内在的干扰衰减能力[15]。此外,滑模控制器的简单结构在增益调整方面提供了相对优势。
显然,一般而言,DOB增强了SEA的力矩控制性能。它消除了由于模型不确定性和控制器结构(如抖振)引起的干扰。对于具有高度软弹簧(0.48 Nm/rad)的SEA单元,也有类似的报告[12]。鉴于这些事实,DOB似乎成为了实现精细跟踪的力矩控制器的一个不可或缺部分。此时,我们强调内环带宽是无损稳定性的虚拟阻抗被动渲染中占主导地位的因素之一[24]。
实验主要在一个带有硬弹簧(91 Nm/deg)的扭转SEA单元上进行。为了提供另一种视角,我们在带有相对较软弹簧(29.5 N/cm)的棱柱形SEA单元上进行了相同的一组实验。结果得到了类似的定性跟踪性能,这表明在实践中,所评估的控制器可能适用于广泛范围的SEA。
为消除关节刚度与机器人动力学之间的耦合效应,我们特意设计了硬弹簧[25],这种方法在配备分散式力矩控制器的机器人中很普遍[3]。虽然使用硬弹簧的好处至关重要,但位移测量会受到噪声和力矩分辨率的影响。使用高分辨率(23位)编码器可能消除后者;然而,测量噪声显得尤为关键。实际上,对含有噪声的传感数据进行微分迫使我们使用截止频率相对较低的滤波器,这可能会限制控制器的带宽。
在最近的一项模拟研究中,我们观察到模型预测控制在解决SEA的力矩跟踪问题上表现出优越性能[20]。这一发现可广义地理解为,基于优化的方法被认为是解决此问题的强大工具[19]。相反,与这些控制器相关的计算成本和算法复杂性限制了它们在分散式控制方法中的实时实施[3]。因此,当前的基准测试仅限于那些能在不违反每秒2千次恒定采样率的实时条件下可靠实施的控制器。
本研究中,所有控制器的增益均按照线性控制器设计的标准规则,即稳定性及不激发未建模非线性动力学的原则,进行了经验性调整。尽管我们在每种情况下都尽可能仔细地调优以获得最佳性能,但在本研究中,可能存在的次优增益调整可能是一个局限。然而,SMC+DOB和DF+DOB在这种情况下具有明显优势,因为它们只需调整两个控制器增益。虽然融合自适应增益调节算法可以解决这个问题,但它可能会增加计算复杂性,因此,根据之前的说明,可能不适合作为内环力矩控制器的选择。
📚2 运行结果
部分代码:
%% Simulation Parameters
Ts = 10; % Simulation Time
dt = 0.001; % Simulation Time Step
nS = Ts/dt + 1; % Number of Iterations
%% Initial Conditions
Qm0 = 0.0; % Initial rotor position
dQm0 = 0.0; % Initial rotor velocity
Ql0 = 0.0; % Initial link position
dQl0 = 0.0; % Initial link velocity
%% SEA Model Parameters
Ks = 5000; % Spring Stifness
Jm = 2.781e-04; % Rotor Inertia
Jl = 0.07; % Link Inertia
Bm = 1.5e-03; % Motor Damping
Bl = 0.2; % Link Damping
Benv = 200; % Environment Damping
Kenv = 5000; % Environment Stifness
N = 100; % Gear Ratio
%% Controller Parameters
Kpm = 0.1; % Inner Loop Proportional Gain
Kim = 15; % Inner Loop Integral Gain
Kpl = 16; % Outer Loop Proportional Gain
Kil = 7; % Outer Loop Integral Gain
Kdl = 0.02; % Outer Loop Derivative Gain
TauMax = 10;
%% Mathematical Parameters used in SEA Model
mu1 = N^2*(2*Jm + Bm*dt);
mu2 = 1/dt^2 + (Benv+Bl)/(2*Jl*dt);
%% Simulation Loop
for i=1:nS
t(i) = (i-1)*dt; % Time vector
%% SEA Model
if i>2
Qm(i) = Qm(i-1)*(4*Jm*N^2 - 2*Ks*dt^2)/mu1 ...
- Qm(i-2)*(-Bm*N^2*dt + 2*Jm*N^2)/mu1 ...
+ Ql(i-1)*2*Ks*dt^2*N/mu1 - dm(i-1)*(2*N*dt^2)/mu1 ...
+ TauM(i-1)*(2*N^2*dt^2)/mu1;
Ql(i) = -Ql(i-2)*(1/dt^2 - (Benv+Bl)/(2*Jl*dt))/mu2 ...
+ Ql(i-1)*(2/dt^2 -(Kenv+Ks)/Jl)/mu2 ...
+ Qm(i-1)*Ks/(Jl*N*mu2) - dl(i-1)/(Jl*mu2);
dQm(i) = (Qm(i) - Qm(i-1)) / (dt);
dQl(i) = (Ql(i) - Ql(i-1)) / (dt);
elseif i>1.5 && i<2.5 % i=1
Qm(i) = dQm0*dt + Qm(i-1);
Ql(i) = dQl0*dt + Ql(i-1);
dQm(i) = dQm0;
dQl(i) = dQl0;
else % i=0
Qm(i) = Qm0;
Ql(i) = Ql0;
dQm(i) = dQm0;
dQl(i) = dQl0;
end
% Motor side (dm) and Link side (dl) disturbances
dm(i) = DistMotor(t(i), dQm(i));
dl(i) = DistLink(t(i));
%% Controller
Ref(i) = InputTl(t(i)); % Reference Input
TauS(i) = Ks*(Qm(i)/N - Ql(i)); % Measured Torque
% Outter Loop Controller (PID)
e1(i) = Ref(i) - TauS(i);
if i>1
De1(i) = (e1(i) - e1(i-1))/dt;
Ie1(i) = Ie1(i-1) + (e1(i) + e1(i-1))*dt/2;
else
De1(i) = 0;
Ie1(i) = 0;
end
DQmRef(i) = e1(i)*Kpl + De1(i)*Kdl + Ie1(i)*Kil;
% Inner Loop Controller (PI)
e2(i) = DQmRef(i) - dQm(i);
if i>1
Ie2(i) = Ie2(i-1) + (e2(i) + e2(i-1))*dt/2;
else
Ie2(i) = 0;
end
% Inner Loop Controller (PI)
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1] Chew C M , Hong G S , Zhou W .Series damper actuator: A novel force/torque control actuator[C]//IEEE/RAS International Conference on Humanoid Robots.IEEE, 2004.DOI:10.1109/ICHR.2004.1442669.
[2]B. Ugurlu, E. Sariyildiz, A. T. Kansizoglu, E. C. Ozcinar and S. Coruk, "Benchmarking Torque Control Strategies for a Torsion-Based Series Elastic Actuator," in IEEE Robotics & Automation Magazine, vol. 29, no. 2, pp. 85-96, June 2022.
[3] Sariyildiz E , Chen G , Yu H .An Acceleration-Based Robust Motion Controller Design for a Novel Series Elastic Actuator[J].IEEE Transactions on Industrial Electronics, 2015.DOI:10.1109/TIE.2015.2512228.
🌈4 Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取