Adams后处理里Kane方法算的摆角曲线和Adams仿真曲线在第二秒以后相位差越来越大,两条线分开的时候以为是偏速度矩阵推错了,检查三遍才发现Adams里旋转副的初始角度没设对。平面双摆,两根1m长的连杆,质量1kg,初始水平,重力9.81沿-Z,Kane用Matlab符号工具箱推,偏速度偏角速度算完得到两个二阶方程,转成一阶状态空间,ode45积分,相对容差1e-8绝对1e-10。
Kane方法的流程:选广义坐标θ1 θ2,求每个刚体的偏速度v_i和偏角速度ω_i,广义主动力F_r=Σ(F_i·v_i + M_i·ω_i),广义惯性力F_r^*=-Σ(m_i a_i·v_i + I_i α_i·ω_i),令F_r+F_r^*=0,整理成M(q)q''+C(q,q')+G(q)=0,写成x'=f(x)的形式,ode45跑。偏速度矩阵对q的依赖关系别写错,双摆的v_i里含sinθ和cosθ,求导的时候链式法则漏一项后面全错。
Adams里建两个连杆,revolute副,第一个跟ground,第二个跟第一个,不加驱动自由摆动。重力设置MMKS,9810沿-Z,joint里的friction关掉,默认有的版本是0.1,不关的话摆幅衰减,跟Kane的无阻尼模型对不上。求解器GSTIFF,积分容差1e-4,最大步长0.001,输出角度和角速度。

跑完导出Adams的角位移,Matlab画同一张图,前两秒几乎重合,第三秒以后Adams的周期比Kane短,频率高0.5%左右。把Adams积分容差从1e-4改到1e-6,步长0.0001,重跑,两条线重合到第四秒。Kane的ode45默认容差太松,也改成1e-8,结果跟Adams的1e-6基本一致。误差来源是数值积分精度,不是方程本身,Kane的符号推导如果偏速度矩阵写错了,曲线会从第一秒就开始偏,不会等到第三秒。
曲柄滑块也对比过,Kane推三个广义坐标加两个约束,剩一个自由度,Adams里旋转驱动恒定转速,滑块位移最大误差0.2mm出现在曲柄转过90度附近,那里加速度变化大,Adams的积分步长在高速段不够,把步长减半误差降到0.05mm。三连杆机械臂,Kane考虑科氏力,Adams加关节力矩,末端轨迹偏差1mm以内,如果Adams里连杆当刚体Kane也当刚体,偏差主要来自积分器,柔性体另说。
单位制统一,MMKS下重力9810,长度mm,质量tonne,Kane推导时也用mm-tonne-s,别一边SI一边MMKS,力单位N,力矩N·mm,转动惯量tonne·mm²,Adams里检查一下当前单位制再开始建。旋转副的marker方向跟广义坐标定义一致,Z轴是转轴,方向反了角度符号反,Adams里用右手定则看一眼。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删