1 线性插值
线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为零。
线性插值相比其他插值方式,如抛物线插值,具有简单、方便的特点。
线性插值的几何意义即为概述图中利用过A点和B点的直线来近似表示原函数。
线性插值可以用来近似代替原函数,也可以用来计算得到查表过程中表中没有的数值。
1.2 基础知识
已知函数在区间
上
个互异点
上的函数值
,若存在一简单函数
,使
并要求误差
的绝对值在整个区间
上比较小。这样的问题称为插值问题。
其中:
:插值节点
:被插值函数
:插值函数
:插值区间
如果在插值区间内部用代替
则称为内插;在插值区间以外,用
代替
则称为外插。
1.3 简介
线性插值是一种较为简单的插值方法,其插值函数为一次多项式。线性插值,在各插值节点上插值的误差为0。
设函数在两点
,
上的值分别为
,
,求多项式
使满足
由解析几何可知
称为
在
处的一阶均差,记以
。于是,得
如果按照整理,则
以上插值多项式为一次多项式,这种插值称为线性插值。
1.4 几何意义
线性插值的几何意义如图1所示,即为利用过点和
的直线
来近似原函数
。
1.5 应用
1)线性插值在一定允许误差下,可以近似代替原来函数;
2)在查询各种数值表时,可通过线性插值来得到表中没有的数值。
2一维线性插值仿真实例
首先,在Baltamulink中,添加输出正弦波模块、一维插值模块、信号合并模块、输出模块,建立一维插值仿真模型,每个模块参数都设置为默认值;模型如下图所示;
设置仿真参数:
仿真时长:10s;步长0.01s;求解器:ode4
得到的仿真结果,如下图所示:
绿色代表原正弦波数据;
橙色表示一维插值后的正弦波数据。
已知质量块质量 m = 1kg,阻尼 b = 3 N.s/m,弹簧系数 k = 90 N/m,且物块的初始位移 x(0) = 0.04m,其初始速度为x’(0) = 0.01 m/s。创建该系统的北太真元模型,并运行仿真。弹簧-质量-阻尼系统如下图所示:
建立理论数学模型。对于无外力的系统,根据牛顿定理可以得到:
mx’’ + bx’ + kx = 0
代入数值并整理得:
x’’ = -3x’ - 90x
在北太真元建立模型如下图所示:
设置仿真参数:
仿真时长:10s;步长0.01s;求解器:ode4
得到的仿真结果,如下图所示:
已知二自由度质量-弹簧-阻尼串联系统模型如下图所示:
这个系统由两个质量块(小车)和三组弹簧阻尼器组成,假设地面是光滑的,这样系统中没有摩擦作用。 u1(t) 和 u2(t) 分别是两个质量块所受的外力, x1(t) 和 x2(t) 分别是两个质量块的位移。 m1,2、k1,2,3 和 b1,2,3 分别对应图中的质量、弹簧刚度和阻尼系数。是对于整个系统而言,输入两个外力,输出两个位移,因此这是一个多输入多输出系统。两个小车都只能沿横向左右运动,因此为二自由度系统。
根据牛顿第二定律,物体所受合力等于物体的惯性力,而惯性力是物体质量与加速度的乘积。可以理解为物体受力后产生加速度,而有加速度存在就会产生运动趋势,造成物体运动。
对两个质量块分别进行受力分析:
首先需定义系统的状态变量,在这种情况下一般用物体的位移和速度作为状态变量。设状态向量 Z分别对应质量块1的位移和速度、质量块2的质量和速度:
根据上面对模型的数学推导,当将各状态向量 z 对时间求导(微分),可以将系统整理为各状态量的一阶微分方程组:
因为这是一个线性系统,因此系统的状态可以表示为矩阵形式:
式中,A 为系统状态矩阵;B 为输入矩阵;u 为输入(控制)向量:
有了系统的状态空间方程,接下来考虑系统的输出,也就是我们希望得到的量。我们假设对两个质量块的位移感兴趣,即 z1 和 z3 ,那么就将它两个状态作为系统的输出,则输出方程的矩阵形式为:y = Cz;
式中,y 为输出向量;C 为输出矩阵:
以上,使用状态空间模型对系统完成描述。
令,质量:m = 1kg;弹簧刚度: k = 1N/m;阻尼系数:b = 1N.s/m。
则,状态空间方程系数如下:
A = [0 1 0 0;-2 -2 1 1;0 0 0 1;1 1 -2 -2];
B = [0 0;1 0;0 0;0 1];
C = [1 0 0 0;0 0 1 0];
D = [0 0;0 0];
在北太真元建立模型如下图所示:
设置仿真参数:
两个质量块所受的外力u1是常量模块 = 2 N; u2是阶跃型号=1N。
仿真时长:10s;步长0.01s;求解器:ode4
得到的仿真结果,如下图所示:
求解二阶微分方程:x’’(t) + 0.4x’(t) + 0.9x(t) = 0.7u(t) 的解,其中u(t)是脉冲信号。
在北太真元建立模型如下图所示:
设置仿真参数:
脉冲信号u(t)为方波信号模块,参数振幅 = 1;周期 = 2.5;脉冲宽度 = 50;相位 = 0;
仿真时长:10s;步长0.01s;求解器:ode4
得到的仿真结果,如下图所示:
力——质量系统,要拉动一个箱子(拉力f=1N),箱子质量为M(1kg),箱子与地面的摩擦力为[(b=0.4N.m/s)],其大小与车子的速度成正比。如下图所示:
其运动方程式为:
F - bx’ = Mx’’
拉力作用时间为2s。
在北太真元建立模型如下图所示:
设置仿真参数:
设置stepInputOne模块的阶跃时间为0,表示摩擦力作用时间;
设置stepInputTwo模块的阶跃时间为2,表示拉力作用时间;
设置gainTwo模块的增益值为0.4表示摩擦力;
仿真时长:10s;步长0.01s;求解器:ode4
得到的仿真结果,如下图所示:
因为有摩擦力存在,箱子最终会停止前进。
零极点增益模型实际上是传递函数的另一种表现形式,其原理是分别对源系统传递函数的分子、分母进行因式分解处理,以获得系统零点和几点的表示形式。
式中,k为系统增益;zi(i = 1,2,3,...,m)为分子多项式的根,称为系统的零点;pj(j = 1,2,...,n)是分母多项式的根,称为系统的极点。
传递函数的分母多项式就是它的特征多项式,它等于零的方程就是传递函数的特征方程,特征方程的根也就是传递函数的极点。传递函数的极点决定了所描述系统的自由运动状态;零点影响系统各模态在系统响应中的比重。
零点增益模型的命令格式如下:
ZPG = zpk(z, p, k)
其中ZPG是建立的零极点增益模型;z、p、k分别是系统的零点向量、极点向量和增益。
例:利用Baltamulink建立系统
G(s) = 18(s + 2) / (s + 0.4)(s + 15)(s + 25)
的零点增益模型,进行系统仿真。
将上面零点增益模型进行转换得到模型的传递函数如下:
G(s) = 18(s + 2)/(s^3 + 40.4s^2 + 391s + 150)
根据该传递函数模型,在北太真元建立模型如下图所示:
设置仿真参数:
仿真时长:20s;步长0.01s;求解器:ode4
得到的仿真结果,如下图所示: