1.2机械系统
运用动力学的基本原理很容易得到机械系统(例如机器人)的状态方程。对复杂系统而言,计算相对复杂,而且计算机对代数系统的使用也是有效的。为了获得由若干个假定为严格的子系统S1,S2,…,Sm构成的机械系统的状态方程,可遵循以下三个步骤。
1)获取微分方程。对每一个具有质量m和惯性矩阵J的子系统Sk,可以用下列关系式:
∑ifi=ma
∑iΜfi=Jω·
其中,fi是作用在子系统Sk上的力,Mfi表示由力fi作用在Sk中心上产生的转矩。向量a表示Sk的切向加速度,向量ω·表示Sk的角加速度。根据它们的组成要素分解这2m个向量方程后,可得到6m个标量微分方程,它们中的一些可能产生退化。
2)消除内力。在微分方程中存在所谓的黏合力,它们在机械系统的内部,但在组成机械系统的每个子系统的外部。它们表示一个子系统Sk对另一个子系统Sl的作用。根据作用反作用原理,这种力(用fk,l来表示)的存在意味着另一个力fl,k(表示Sl对Sk的作用)的存在,使得fl,k=-fk,l。在计算微分方程的同时考虑作用反作用原理,就有可能消除内力。由此得到的微分方程的数目减少为n,n为系统的自由度q1,…,qn。
3)获得状态方程。从n个微分方程构成的方程组中解出二阶导数q··1,…,q··n,由此得到向量关系如下:
q··=f(q, q·, u)
其中,u是除了势能之外的外力向量(也就是那些施加到系统中的力向量),状态方程可写成:
ddtq
q·=q·
f(q,q·,u)
机械系统的完整约束动力学可以用关系式q··=f(q,q·,u)来描述。对于一个完整约束系统,q和q·是相互独立的。如果有一个非完整约束使它们中的两个关联(如h(q,q·)=0),则该系统称为非完整约束系统。轮式移动机器人可能就属于这种系统[LAU 01]。对机械系统建模的更多细节感兴趣的读者可以参考[KHA 07]。