1、a1基于基于Simulink的控制系统建模与仿真的控制系统建模与仿真例例1 强制阻尼二阶系统强制阻尼二阶系统 考虑如图所示强制阻尼二阶系统。图中,小车所受外力考虑如图所示强制阻尼二阶系统。图中,小车所受外力为为F,小车位移为,小车位移为x。设小车质量。设小车质量m=5,弹簧弹性系数,弹簧弹性系数k=2,阻尼系数阻尼系数f=1。设系统的初始状态为静止在平衡点处,外力函。设系统的初始状态为静止在平衡点处,外力函数为幅值为数为幅值为1的阶跃量。仿真此小车系统的运动。的阶跃量。仿真此小车系统的运动。mFxfka2建模:建模:根据牛顿第二定律,小车受弹簧的弹性力、根据牛顿第二定律,小车受弹簧的弹性力、阻
2、尼器的阻尼力、加速度力,运动方程如下:阻尼器的阻尼力、加速度力,运动方程如下:例例exm1。xxtuxFtuFxxxFkxx fxm4.02.0)(2.0)(2.04.02.0 a3例例2 蹦极跳系统蹦极跳系统 蹦极跳是一种挑战身体极限的运动,蹦极者系蹦极跳是一种挑战身体极限的运动,蹦极者系着一根弹力绳从高处的桥梁或山崖等向下跳。在下着一根弹力绳从高处的桥梁或山崖等向下跳。在下落的过程中,蹦极着几乎处于失重状态。应用落的过程中,蹦极着几乎处于失重状态。应用Simulink对蹦极跳系统进行仿真研究。对蹦极跳系统进行仿真研究。a4建模:建模:根据牛顿运动定律,自由下落物体的位置:根据牛顿运动定律,
3、自由下落物体的位置:式中,式中,a1、a2为空气阻力系数。为空气阻力系数。选择桥梁作为蹦极者开始起跳的起点,表明位置选择桥梁作为蹦极者开始起跳的起点,表明位置x的基的基准为蹦极者开始跳下的位置,并设低于桥梁的位置为正值,准为蹦极者开始跳下的位置,并设低于桥梁的位置为正值,高于桥梁的位置为负值。高于桥梁的位置为负值。设弹力绳索的弹性系数为设弹力绳索的弹性系数为k,定义绳索长度为,定义绳索长度为l,则其对,则其对下落体位置的影响为:下落体位置的影响为:这样,整个蹦极跳系统的数学描述为:这样,整个蹦极跳系统的数学描述为:可见,蹦极跳系统是一个典型的非线性连续时间系统。可见,蹦极跳系统是一个典型的非线
4、性连续时间系统。xxaxamgxm 21l)(x 0l)(x )(kxxbxxaxaxbmgxm 21)(a5 设:桥梁距离地面为设:桥梁距离地面为50m;绳索长度为;绳索长度为10m;蹦;蹦极者从桥梁起跳,起始位置处绳索末端位置为极者从桥梁起跳,起始位置处绳索末端位置为0(即(即在起跳处);蹦极者起始速度为零;其余参数为:在起跳处);蹦极者起始速度为零;其余参数为:k=20,a2=a1=1,m=70kg,g=10m/s2。通过仿真,分析蹦极跳系统对体重为通过仿真,分析蹦极跳系统对体重为70kg的蹦的蹦极者而言是否安全;若不安全,如何改进,以保证极者而言是否安全;若不安全,如何改进,以保证安全
5、。安全。例例exm2。a6例例3 汽车速度控制系统汽车速度控制系统 汽车行驶在下图所示的斜坡上(可看作汽车沿汽车行驶在下图所示的斜坡上(可看作汽车沿直线山坡路向前行驶)。要求设计一个简单的比例直线山坡路向前行驶)。要求设计一个简单的比例控制器,使汽车能以设定的速度运动。控制器,使汽车能以设定的速度运动。xFwFeFha71.建立汽车运动的数学模型建立汽车运动的数学模型 根据牛顿第二定律,汽车的运动方程:根据牛顿第二定律,汽车的运动方程:式中,式中,m为汽车质量,设为汽车质量,设m=100;Fe是引擎动力,汽车最大驱动力为是引擎动力,汽车最大驱动力为600,最大制动力为,最大制动力为-600;即
6、;即 Fw是空气阻力,是空气阻力,式中第二项是为近似考虑式中第二项是为近似考虑“阵风阵风”而引入的;而引入的;为行驶汽车的速度;为行驶汽车的速度;Fh是重力分量,是重力分量,式中式中为坡路与水平方向的夹角。为坡路与水平方向的夹角。hweFFFxm 2)01.0sin(20(001.0txFwsinmgFh600600eFx a82.建立比例控制器的数学模型建立比例控制器的数学模型 比例控制器工作原理:根据期望速度和实际速度之差产比例控制器工作原理:根据期望速度和实际速度之差产生生“指令指令”驱动驱动Fc,其数学模型是:,其数学模型是:式中,式中,Ke为比例系数,可取为比例系数,可取Ke=50;
7、为汽车期望速度,为汽车期望速度,为汽车实际速度。为汽车实际速度。“指令指令”驱动力驱动力Fc与实际驱动力与实际驱动力Fe的差别在于:前者是的差别在于:前者是理理论上需要的计算力,后者是受物理限制后实际能提供的力。论上需要的计算力,后者是受物理限制后实际能提供的力。例例exm3。)(xxKFcec x cx a9例例4 汽车行驶控制系统汽车行驶控制系统 汽车行驶控制系统是应用非常广泛的控制系统,其主汽车行驶控制系统是应用非常广泛的控制系统,其主要目的是对汽车速度进行合理的控制。系统工作原理如下:要目的是对汽车速度进行合理的控制。系统工作原理如下:(1)汽车速度操纵机构的位置发生改变以设置汽车的速
8、)汽车速度操纵机构的位置发生改变以设置汽车的速度,这是因为操纵机构的不同位置对应着不同的速度。度,这是因为操纵机构的不同位置对应着不同的速度。(2)测量汽车当前速度,并求取它与指定速度的差值。)测量汽车当前速度,并求取它与指定速度的差值。(3)由速度差值信号驱动汽车产生相应牵引力,并由此)由速度差值信号驱动汽车产生相应牵引力,并由此牵引力改变汽车的速度直到其速度稳定在指定的速度。牵引力改变汽车的速度直到其速度稳定在指定的速度。由系统工作原理看,汽车行驶控制系统为典型的反馈控由系统工作原理看,汽车行驶控制系统为典型的反馈控制系统。下面建立此系统的制系统。下面建立此系统的Simulink模型并进行
9、仿真分析。模型并进行仿真分析。a101汽车行驶控制系统的物理模型与数学描述汽车行驶控制系统的物理模型与数学描述 速度操纵机构的位置变换器速度操纵机构的位置变换器 位置变换器是汽车行驶控制系统的输入部分,其位置变换器是汽车行驶控制系统的输入部分,其目的是将速度操纵机构的位置转换为相应的速度,二目的是将速度操纵机构的位置转换为相应的速度,二者之间的数学关系如下所示:者之间的数学关系如下所示:4550 xv 1,0 xa11 离散行驶控制器离散行驶控制器 行驶控制器是整个汽车行驶控制系统的核心。行驶控制器是整个汽车行驶控制系统的核心。简单说来,其功能是根据汽车当前速度与指定速度简单说来,其功能是根据
10、汽车当前速度与指定速度的差值,产生相应的牵引力。行驶控制器为一典型的差值,产生相应的牵引力。行驶控制器为一典型的的PID控制器,其数学描述为:控制器,其数学描述为:积分环节:积分环节:微分环节:微分环节:系统输出:系统输出:)()1()(nunxnx)1()()(nunund)()()()(nDdnIxnPunya12 汽车动力机构汽车动力机构 汽车动力机构是行驶控制系统的执行机构。其汽车动力机构是行驶控制系统的执行机构。其功能是在牵引力的作用下改变汽车速度,使其达到功能是在牵引力的作用下改变汽车速度,使其达到指定的速度。牵引力与速度之间的关系为:指定的速度。牵引力与速度之间的关系为:其中其中
11、v为汽车的速度、为汽车的速度、F为汽车的牵引力、为汽车的牵引力、m为汽车为汽车的质量、的质量、b为阻力因子。为阻力因子。bvvmFa132.建立汽车行驶控制系统的模型建立汽车行驶控制系统的模型 按照汽车行驶控制系统的物理模型与数学描述建立系统按照汽车行驶控制系统的物理模型与数学描述建立系统模型。下面给出建立系统模型所需的主要系统模块:模型。下面给出建立系统模型所需的主要系统模块:(1)Math模块库中的模块库中的Slider Gain滑动增益模块:对位滑动增益模块:对位置变换器的输入信号的范围进行限制。置变换器的输入信号的范围进行限制。(2)Discrete模块库中的模块库中的Unit Del
12、ay单位延迟模块:用来单位延迟模块:用来实现行驶控制器(即实现行驶控制器(即PID控制器)。控制器)。(3)Continuous模块中的模块中的Integrator积分器模块:用来积分器模块:用来实现汽车动力机构。实现汽车动力机构。(4)Subsystems模块库中的模块库中的Subsystem子系统模块:用子系统模块:用来对系统不同的部分进行封装。来对系统不同的部分进行封装。然后建立系统模型,并将速度操纵机构的位置变换器、然后建立系统模型,并将速度操纵机构的位置变换器、行驶控制器、汽车动力机构封装到不同的子系统之中。行驶控制器、汽车动力机构封装到不同的子系统之中。a14 位置变换器 汽车动力
13、机构 汽车行驶控制系统之位置变换器与汽车动力机构汽车行驶控制系统之位置变换器与汽车动力机构 a15行驶控制系统之行驶控制器行驶控制系统之行驶控制器 a163系统模块参数设置与仿真参数设置系统模块参数设置与仿真参数设置 建立系统模型之后,接下来按照系统的要求设置系统模建立系统模型之后,接下来按照系统的要求设置系统模块参数与仿真参数。这里仅给出模块参数与相应仿真参数。块参数与仿真参数。这里仅给出模块参数与相应仿真参数。速度操纵机构的位置变换器参数:速度操纵机构的位置变换器参数:(1)Slider Gain模块:最小值模块:最小值Low为为0、最大值、最大值High为为1、初始取值初始取值0.555
14、。(2)Gain模块:增益取值为模块:增益取值为50。(3)Constant1模块:常数取值为模块:常数取值为45。行驶控制器参数:行驶控制器参数:(1)所有)所有Unit Delay模块:初始状态为模块:初始状态为0、采样时间为、采样时间为0.02s。(2)P、I、D增益模块:取值分别为增益模块:取值分别为1、0.01、0。a17 汽车动力机构参数:汽车动力机构参数:(1)Gain模块:取值为模块:取值为1/m,即,即1/1000。(2)Gain1模块:取值为模块:取值为b/m,即,即20/1000。(3)Integrator模块:初始状态为模块:初始状态为0,即速度初值为,即速度初值为0。
15、系统仿真参数:系统仿真参数:(1)仿真时间范围:从)仿真时间范围:从0至至1000s。(2)求解器:使用变步长连续求解器。)求解器:使用变步长连续求解器。4系统仿真与分析系统仿真与分析 在对系统模块参数与系统仿真参数设置之后,接下来对在对系统模块参数与系统仿真参数设置之后,接下来对系统进行仿真分析。为了使用户对离散行驶控制器的作用有系统进行仿真分析。为了使用户对离散行驶控制器的作用有一个直观的认识,这里使用两组不同的一个直观的认识,这里使用两组不同的PID控制参数对系统控制参数对系统进行仿真,其结果如下图所示。进行仿真,其结果如下图所示。a18 行驶控制器参数设置:P=1 I=0.01 D=0
16、 行驶控制器PID 参数:P=5 I=0.005 D=2 不同控制参数下的仿真结果不同控制参数下的仿真结果 a19 汽车行驶控制系统的目的是使汽车的速度在较短汽车行驶控制系统的目的是使汽车的速度在较短的时间内平稳地达到指定的速度。从上图的仿真结果的时间内平稳地达到指定的速度。从上图的仿真结果中可以看出,在行驶控制器控制参数取值为中可以看出,在行驶控制器控制参数取值为P=1、I=0.01、D=0时,汽车时,汽车的速度并非直接达到指定的速的速度并非直接达到指定的速度,而是经过一个振荡衰减过程,最后逐渐过渡到指度,而是经过一个振荡衰减过程,最后逐渐过渡到指定的速度。定的速度。此时行驶控制系统为此时行
17、驶控制系统为典型的二阶欠阻尼控典型的二阶欠阻尼控制系统。制系统。a20 系统中最为重要的部分为行驶控制器,行驶控系统中最为重要的部分为行驶控制器,行驶控制器是一个典型的制器是一个典型的PID反馈控制器。现要求使用命反馈控制器。现要求使用命令行方式对行驶控制系统中的行驶控制器中比例调令行方式对行驶控制系统中的行驶控制器中比例调节的性能进行定性的分析。已知行驶控制器中节的性能进行定性的分析。已知行驶控制器中PID控制器的控制器的I(积分)、(积分)、D(微分)参数如下取值分别(微分)参数如下取值分别为为I=0.01、D=1。P(比例)的取值由(比例)的取值由MATLAB脚脚本文件所决定(以分析不同
18、本文件所决定(以分析不同P值下行驶控制器的性值下行驶控制器的性能)。能)。a21 为了对行驶控制器中比例调节的性能进行定性为了对行驶控制器中比例调节的性能进行定性的分析,需要对行驶控制系统模型做一些改变,如的分析,需要对行驶控制系统模型做一些改变,如下所示:下所示:(1)将行驶控制器子系统中的比例增益的取值改将行驶控制器子系统中的比例增益的取值改为为p。(2)在系统模型的最顶层加入一个在系统模型的最顶层加入一个Outport模块输模块输出仿真结果。出仿真结果。下图所示为修改后的汽车行驶控制系统的系统下图所示为修改后的汽车行驶控制系统的系统模型框图。模型框图。a22修改后的汽车行驶控制系统模型修
19、改后的汽车行驶控制系统模型a23 然后编写然后编写MATLAB脚本文件对行驶控制系统在脚本文件对行驶控制系统在不同的比例调节器取值下进行仿真,并绘制出不同不同的比例调节器取值下进行仿真,并绘制出不同取值下系统仿真结果以对比例调节性能进行分析。取值下系统仿真结果以对比例调节性能进行分析。其要求如下:其要求如下:(1)编写一个编写一个for循环改变循环改变p的值,取值范围为的值,取值范围为0到到25,间隔为,间隔为5。(2)在同一幅图中作出不同在同一幅图中作出不同p值下系统的仿真结值下系统的仿真结果以对比例调节性能进行分析。果以对比例调节性能进行分析。a24不同比例调节器取值下的系统响应不同比例调
20、节器取值下的系统响应a25 从系统仿真的结果中可以明显看出比例调节器从系统仿真的结果中可以明显看出比例调节器取值对汽取值对汽 车行驶控制系统性能的影响:增加比例调车行驶控制系统性能的影响:增加比例调节器的取值可以有效的改善行驶控制系统的动态性节器的取值可以有效的改善行驶控制系统的动态性能。这是因为,对于行驶控制系统而言,其速度变能。这是因为,对于行驶控制系统而言,其速度变化越平稳越好(但并非变化缓慢)。从图中可以看化越平稳越好(但并非变化缓慢)。从图中可以看出,对于取值较大的比例调节器,汽车速度的过渡出,对于取值较大的比例调节器,汽车速度的过渡时间较小,而且变化平稳(仿真结果曲线无振荡,时间较
21、小,而且变化平稳(仿真结果曲线无振荡,光滑)。光滑)。a26例例5 滑艇动态方程及其线性化滑艇动态方程及其线性化1.滑艇动力学方程滑艇动力学方程 在滑艇的运行过程中,滑艇主要受到如下作用在滑艇的运行过程中,滑艇主要受到如下作用力的控制:滑艇自身的牵引力力的控制:滑艇自身的牵引力 ,滑艇受到的水的阻,滑艇受到的水的阻力力 。其中水的阻力。其中水的阻力 ,为滑艇的运动速度。,为滑艇的运动速度。由运动学的相关定理可知,整个滑艇系统的动力学由运动学的相关定理可知,整个滑艇系统的动力学方程为方程为其中其中m为滑艇的质量。由滑艇系统的动力学方程易为滑艇的质量。由滑艇系统的动力学方程易知,此系统为一非线性系
22、统。下面来建立此系统的知,此系统为一非线性系统。下面来建立此系统的Simulink模型并进行线性分析。模型并进行线性分析。vvf2)(-(12vvFmvFfa272.滑艇速度控制系统的模型建立与仿真滑艇速度控制系统的模型建立与仿真 使用下面的使用下面的Simulink模块建立滑艇速度控制系统模块建立滑艇速度控制系统的模型:的模型:(1)Sources模块库中的模块库中的Step模块:用来产生滑艇模块:用来产生滑艇的牵引力。的牵引力。(2)Subsystems模块库中的模块库中的Subsystem模块:构模块:构成滑艇速度控制器子系统。成滑艇速度控制器子系统。a28 (3)Sinks模块库中的模
23、块库中的Scope模块:输出滑艇的速模块:输出滑艇的速度。度。(4)Functions&Tables模块库中的模块库中的Fcn模块:求模块:求取水的阻力。取水的阻力。(5)其它模块:其它模块:Math模块库中的模块库中的Gain模块、模块、Continuous模块库中的模块库中的Integrator模块。模块。使用使用Simulink建立的系统模型框图如下图所示。建立的系统模型框图如下图所示。a29 滑艇速度控制系统模型框图滑艇速度控制系统模型框图a30 然后设置正确的系统模型参数与仿真参数对此然后设置正确的系统模型参数与仿真参数对此系统进行仿真,其中系统进行仿真,其中Step的的Final
24、Value值设置为值设置为1000(即滑艇牵引力)、子系统中增益模块(即滑艇牵引力)、子系统中增益模块Gain的的取值为取值为1/1000(即(即1/m)、)、Fcn模块的模块的expression设置设置为为u2-u(求取水的阻力)、系统仿真时间为(求取水的阻力)、系统仿真时间为0至至100s。下图为系统仿真的结果。下图为系统仿真的结果。a31滑艇在牵引力为(值 1000)的作用下,速度在 80s 左右由 0 上升并稳定到 33km/h。滑艇在牵引力(值1000)的作用下,速度在经过 80 s左右的时间后,由 0上升并稳定在 33 km/h滑艇系统仿真结果滑艇系统仿真结果a32 3.滑艇速度
25、控制器系统的线性化滑艇速度控制器系统的线性化 对于滑艇速度控制器系统而言,如果要在比赛对于滑艇速度控制器系统而言,如果要在比赛中获得胜利,则滑艇必须在尽可能短的时间内达到中获得胜利,则滑艇必须在尽可能短的时间内达到最大速度。设此速度控制器所能达到的最大速度为最大速度。设此速度控制器所能达到的最大速度为100 mph(miles per hour,英里每小时)。而在前,英里每小时)。而在前面所提供的滑艇牵引力仅为面所提供的滑艇牵引力仅为1000,故需要设置合适,故需要设置合适的牵引力对速度控制器进行操纵。的牵引力对速度控制器进行操纵。a33 既然滑艇速度最大值为既然滑艇速度最大值为100mph,
26、因此在对滑艇,因此在对滑艇速度控制系统进行线性化时,希望此系统能够使滑速度控制系统进行线性化时,希望此系统能够使滑艇的速度基本稳定在最大速度处。换句话说,系统艇的速度基本稳定在最大速度处。换句话说,系统的工作点应该选择为使速度达到的工作点应该选择为使速度达到100mph时的系统输时的系统输入与系统状态。由于对非线性系统进行线性化表示入与系统状态。由于对非线性系统进行线性化表示需要给出系统所在的操作点(即平衡点),因此在需要给出系统所在的操作点(即平衡点),因此在对滑艇速度控制系统进行线性化之前,需要获得滑对滑艇速度控制系统进行线性化之前,需要获得滑艇速度稳定在艇速度稳定在100 mph处的系统
27、平衡点。按照如下步处的系统平衡点。按照如下步骤可以获得滑艇速度控制系统的平衡点:骤可以获得滑艇速度控制系统的平衡点:a34 (1)修改系统模型,如下图所示。修改系统模型,如下图所示。其中其中Inport、Outport分别表示系统的输入与输分别表示系统的输入与输出,增益模块的作用是将速度单位出,增益模块的作用是将速度单位km/h转变为转变为mph,其值为其值为5/8。(2)求取滑艇速度控制系统在此工作点处的平衡求取滑艇速度控制系统在此工作点处的平衡状态。状态。在在MATLAB命令窗口中使用命令窗口中使用trim命令获得系统命令获得系统在输出为在输出为100 mph时的平衡状态:时的平衡状态:x
28、,u,y,dx=trim(exm5_2_,100,1);a35 (3)求取滑艇速度控制系统的线性系统描述。求取滑艇速度控制系统的线性系统描述。在获得使滑艇速度稳定在在获得使滑艇速度稳定在100 mph处时系统的平处时系统的平衡点衡点x、u与与y之后,在之后,在MATLAB命令窗口中使用命令窗口中使用linmod命令便可以获得相应的线性系统描述:命令便可以获得相应的线性系统描述:A,B,C,D=linmod(exm5_2_,x,u);从而得到线性化后系统的状态空间描述,其中从而得到线性化后系统的状态空间描述,其中A、B、C与与D是线性系统的状态空间矩阵。故相应的线性是线性系统的状态空间矩阵。故相应的线性系统的状态空间描述方程为系统的状态空间描述方程为xyuxx625.0001.0319.0a36滑艇速度控制系统的阶跃响应滑艇速度控制系统的阶跃响应