《机器人自动化:建模、仿真与控制》一一2.3仿真

2.3仿真
本节介绍用积分法对下述状态方程描述的非线性系统进行计算机仿真:

该方法是一种近似法,但容易理解,并且对于描述大多数机器人系统的行为是足够的。
2.3.1欧拉法
令dt表示对于系统时间常数而言很小的数值,对应欧拉法的采样周期(例如dt=001),演化方程可以由下式近似表示:
x(t+dt)-x(t)dt≈f(x(t),u(t))
换言之:
x(t+dt)≈x(t)+f(x(t),u(t))·dt
该方程可以理解为1阶泰勒公式,由此可以推导仿真算法(称为欧拉法):

定时器周期性地每隔dt秒产生一个中断,因此如果计算机足够快,可以以实际的物理系统速度进行仿真,这称为实时仿真。有些情况下,我们希望以最短的时间获得仿真结果(例如,为了预测一个系统的未来行为)。在这种情况下,不需要为了与物理时间同步而减慢计算机的速度。
局部误差可以表示为:
et=‖x(t+dt)-x∧(t+dt)‖, 其中, x(t)=x∧(t)
式中,x(t+dt)是微分方程x·=f(x,u)的精确解,x∧(t+dt)是积分法中用到的状态向量的近似值。对于欧拉法而言,et是1阶的,即et=o(dt)。
2.3.2龙格库塔法
有更为有效的积分法,其局部误差是二阶或更高阶,如二阶龙格库塔法,只需要把x∧(t+dt):=x∧(t)+fx∧(t),u(t)·dt替换为:
x∧(t+dt)=x∧(t)+dt·14·f(x∧(t),u(t))

+34·f(x∧(t)+23dt·f(x∧(t), u(t)),x∧
Et+23dtut+23dt)
注意,在该表达式中,x∧Et+23dt可以理解为用欧拉法在时间t+23dt进行积分得到的值。方括号内是f(x(t),u(t))的估计值和fx∧t+23dt, ut+23dt的估计值的平均值。其局部误差et是二阶的,因此该积分法具有更好的精度。本节不会讨论比二阶更高阶数的龙格库塔法。
233泰勒法
欧拉法(实际上是1阶泰勒法)可以扩展到更高的阶数。在不失普遍性的前提下,让我们来看看如何扩展到二阶。我们有:
x(t+dt)=x(t)+x·(t)·dt+x··(t)·dt2+o(dt2)
但:

x·(t)=f(x(t),u(t))

x··(t)=fx(x(t),u(t))·x·(t)+fu(x(t),u(t))·u·(t)
因此,积分方法变为:
x∧(t+dt)=x∧(t)+dt·f(x∧(t),u(t))+

dt2·fx(x∧(t),u(t))·f(x∧(t),u(t))+fu(x∧(t),u(t))·u·(t)

时间: 2024-10-30 19:09:52

《机器人自动化:建模、仿真与控制》一一2.3仿真的相关文章

《机器人自动化:建模、仿真与控制》一一2.4习题

2.4习题 习题21--捕食者猎物系统的向量场 捕食者猎物系统也称为LotkaVolterra系统,由下式表示: x·1(t)=(1-x2(t))x1(t) x·2(t)=(x1(t)-1)x2(t) 状态变量x1(t)和x2(t)表示捕食者和猎物的数目.例如,x1表示猎物以千计数量,x2表示捕食者以千计数量.即使猎物和捕食者的数目是整数,我们仍假设x1和x2是实数.该状态方程的二次项表示两者之间的相互影响.当没有捕食者时,猎物会以指数形式进行增长.同样,当没有猎物时捕食者的数目会减少. (

《机器人自动化:建模、仿真与控制》一一导读

前言 Automation for RoboticsⅠ.1状态表达式与我们紧密相关的生物.经济和机械系统通常都可以用如下微分方程来描述: 假设该系统的时间t是连续的[JAU 05], u(t)是系统的输入(或控制)向量,y(t)是以一定精度检测出的系统输出向量.向量x(t)称为系统的状态,它表示系统的记忆,或者说当系统输入为u(t)时预测系统结果所需的信息.方程组中的第一个方程称为演化方程,该方程是一个微分方程,它给出了t时刻的状态向量x(t)的当前值和施加的控制向量u(t).第二个方程称为观测

《机器人自动化:建模、仿真与控制》一一1.3伺服电动机

1.3伺服电动机 机械系统由力或力矩控制并遵循动力学模型,该动力学模型依赖许多未知的系数.由运动学模型表述的相同的机械系统由位置.速度或加速度控制,运动学模型取决于已知的几何系数而且比较容易写成方程.在实际中,通过加入伺服电动机,可以将动力学模型转换成运动学模型.总而言之,伺服电动机是具有电气控制电路和(位置.速度或加速度)传感器的直流电动机.控制电路计算出电动机的给定电压u,以便与传感器测量的设定点w对应,w通常以脉宽调制(PWM)的方波形式给出.有以下三种伺服电动机. ● 位置伺服.传感器测

《机器人自动化:建模、仿真与控制》一一1.2机械系统

1.2机械系统 运用动力学的基本原理很容易得到机械系统(例如机器人)的状态方程.对复杂系统而言,计算相对复杂,而且计算机对代数系统的使用也是有效的.为了获得由若干个假定为严格的子系统S1,S2,-,Sm构成的机械系统的状态方程,可遵循以下三个步骤. 1)获取微分方程.对每一个具有质量m和惯性矩阵J的子系统Sk,可以用下列关系式: ∑ifi=ma ∑iΜfi=Jω· 其中,fi是作用在子系统Sk上的力,Mfi表示由力fi作用在Sk中心上产生的转矩.向量a表示Sk的切向加速度,向量ω·表示Sk的角加

《机器人自动化:建模、仿真与控制》一一2.2图形表示

2.2图形表示本节将给出几个概念,这对于仿真期间系统的图形表示是必要的. 2.2.1模式模式是一个具有两行或三行(取决于对象是在平面还是空间中)和n列的矩阵,列表示一个固定形状的多边形的n个顶点,用来表示对象.在该模式中,所有两个连续的点构成的线段的集合形成所希望的多边形的边是很重要的,例如,汽车(带有后轮)底盘(见图22)的模式M如下: 显然,图22中的汽车是运动的,前轮相对于底盘移动,同时前轮之间也有相对运动,因此它们不能纳入底盘模式.为了绘制汽车图形,需要采用3种模式:底盘的模式.左前

《机器人自动化:建模、仿真与控制》一一第2章 Automation for Robotics 仿真

**第2章Automation for Robotics仿真** 本章将介绍如何对下述状态方程描述的非线性系统进行计算机仿真:x·(t)=f(x(t),u(t)) y(t)=g(x(t),u(t))这对测试一个(受控或非受控)系统的行为很重要.在介绍仿真方法之前,先介绍向量场的概念,该概念可以让我们更好地理解仿真方法和一些可能在非线性系统出现的特定行为,也会给出几个图形化的概念,这对系统的图形表示是必要的.

《机器人自动化:建模、仿真与控制》一一第1章 Automation for Robotics 建模

**第1章Automation for Robotics建模** 寻找系统相对精确的状态表示的过程称为建模.一般情况下,常量参数(例如物体的质量.惯性力矩.黏性摩擦系数.电容容量等)会出现在状态方程中,在这些情况下,系统辨识是必不可少的.本书中假设所有的参数都是已知的,否则,请读者阅读Eric Walter的书[WAL 14]来了解各种辨识方法.当然,不存在普适的系统建模方法.本章及后面习题的目的是用一些不同的例子来展示如何获取状态表达式.

《机器人自动化:建模、仿真与控制》一一2.1向量场的概念

2.1向量场的概念下面提出向量场的概念,同时展示它对更好地理解系统的不同行为是很有帮助的.为了获得相关主题的更多细节,建议读者阅读Khalil的著作 [KHA 02].向量场是一个从Rn到Rn的连续函数f,当n=2时,可以用图形来表示函数f向量场.例如,在图21中绘制了与线性函数相关的向量场: 为了画出这张图,我们从初始集中取出一组向量,并给它加上网格,然后以每一个网格向量x为原点画出其图像向量f(x). 图21与线性系统相关的向量场 可以用以下MATLAB代码生成这个向量场: 该程序也可以

《机器人自动化:建模、仿真与控制》一一1.1线性系统

1.1线性系统在连续时间的情况下,线性系统可以用以下状态方程描述: x·(t)=Ax(t)+Bu(t) y(t)=Cx(t)+Du(t) 实际上,线性系统非常少.然而,用线性代数方法相对容易计算,并且在非线性系统工作点附近用线性系统方法是可接受的.