Chapter10.2:相平面法

Posted FUXI_Willard

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chapter10.2:相平面法相关的知识,希望对你有一定的参考价值。

该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。
自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468.html?spm=1001.2014.3001.5482
博客参考书籍:《MATLAB/Simulink与控制系统仿真》。



2.相平面法

2.1 相平面的概念

考虑如下的二阶时不变系统:
x ¨ = f ( x , x ˙ ) \\ddotx=f(x,\\dotx) x¨=f(x,x˙)
其中: f ( x , x ˙ ) f(x,\\dotx) f(x,x˙) x ( t ) x(t) x(t) x ˙ ( t ) \\dotx(t) x˙(t)的线性或非线性函数;

x ( t ) x(t) x(t) x ˙ ( t ) \\dotx(t) x˙(t)称为系统运动的相变量(状态变量),以 x ( t ) x(t) x(t)为横坐标, x ˙ ( t ) \\dotx(t) x˙(t)为纵坐标构成的直角坐标平面称为相平面;

相变量从初始时刻 t 0 t_0 t0对应的状态点 ( x 0 , x ˙ 0 ) (x_0,\\dotx_0) (x0,x˙0)起,随着时间 t t t的推移,在相平面上运动形成的曲线称为相轨迹;

根据微分方程解的存在与唯一性定理,对于任一给定的初始条件,相平面上有一条相轨迹与之对应;多个初始条件下的运动对应多条相轨迹,形成相轨迹簇,由一簇相轨迹组成的图形称为相平面图;

相轨迹在某些特定情况下,可以通过积分法,直接由微分方程获得 x ˙ ( t ) \\dotx(t) x˙(t) x ( t ) x(t) x(t)的解析关系式;
x ¨ = d x ˙ d t = d x ˙ d x ⋅ d x d t = x ˙ d x ˙ d x \\ddotx=\\frac\\rm d\\dotx\\rm dt=\\frac\\rm d\\dotx\\rm dx·\\frac\\rm dx\\rm dt=\\dotx\\frac\\rm d\\dotx\\rm dx x¨=dtdx˙=dxdx˙dtdx=x˙dxdx˙
可得:
x ˙ d x ˙ d x = f ( x , x ˙ ) \\dotx\\frac\\rm d\\dotx\\rm dx=f(x,\\dotx) x˙dxdx˙=f(x,x˙)

g ( x ˙ ) d x ˙ = h ( x ) d x g(\\dotx)\\rm d\\dotx=h(x)\\rm dx g(x˙)dx˙=h(x)dx

两端积分可得:
∫ x ˙ 0 x ˙ g ( x ˙ ) d x ˙ = ∫ x 0 x h ( x ) d x \\int_\\dotx_0^\\dotxg(\\dotx)\\rm d\\dotx=\\int_x_0^xh(x)\\rm dx x˙0x˙g(x˙)dx˙=x0xh(x)dx
其中: x 0 、 x ˙ 0 x_0、\\dotx_0 x0x˙0为初始条件;

2.2 相轨迹绘制的等倾线法

等倾线的基本思想:先确定相轨迹的等倾线,进而绘制相轨迹的切线方向场,然后从初始条件出发,沿方向场逐步绘制相轨迹;

相轨迹微分方程:
d x ˙ d x = f ( x , x ˙ ) x ˙ \\frac\\rm d\\dotx\\rm dx=\\fracf(x,\\dotx)\\dotx dxdx˙=x˙f(x,x˙)
上式给出了相轨迹在相平面上任一点 ( x , x ˙ ) (x,\\dotx) (x,x˙)处切线的斜率,取相轨迹切线的斜率为某一常数 α \\alpha α,得等倾线方程:
x ˙ = f ( x , x ˙ ) α \\dotx=\\fracf(x,\\dotx)\\alpha x˙=αf(x,x˙)
使用等倾线法绘制相轨迹应注意的几点:

  • 坐标轴 x x x x ˙ \\dotx x˙应选用相同的比例尺,以便于根据等倾线斜率准确绘制等倾线上一点的相轨迹切线;
  • 在相平面的上半平面,由于 x ˙ > 0 \\dotx>0 x˙>0,则 x x x t t t增大而增加,相轨迹的走向是由左向右;在相平面的下半平面,由于 x ˙ < 0 \\dotx<0 x˙<0,则 x x x t t t增大而减小,相轨迹的走向应由右向左;
  • 除系统的平衡点外,相轨迹与 x x x轴的相交点处切线斜率 α = f ( x , x ˙ ) x ˙ \\alpha=\\displaystyle\\fracf(x,\\dotx)\\dotx α=x˙f(x,x˙)应为 + ∞ +\\infty + − ∞ -\\infty ,即相轨迹与 x x x轴垂直相交;
  • 一般地,等倾线分布越密,所作的相轨迹越准确,等倾线法主要用来分析相轨迹的形状和走向;
2.3 线性系统的相轨迹
  1. 线性一阶系统的相轨迹

    描述线性一阶系统自由运动的微分方程为:
    T c ˙ + c = 0 T\\dotc+c=0 Tc˙+c=0
    相轨迹方程为:
    c ˙ = − 1 T c \\dotc=-\\frac1Tc c˙=T1c
    设系统初始条件为: c ( 0 ) = c 0 c(0)=c_0 c(0)=c0,则

    4. 整数规划:割平面法python代码

    参考技术A

    割平面简单来说,就是添加约束条件 。比如在分支定界算法中,添加的x≤floor[x s ]和x≥ceil[x s ]便是两个用来割平面的约束条件。
    分支定界法最终生成一颗树,当整数变量非常多时,求解节点会指数速度增加,因此需要使用一些方法提高求解速度,割平面法便是重要方法之一。分支的过程其实本身就是割平面的过程,floor[x]和ceil[x]之间的整个可行域在对x进行分支的过程中被切割掉了。

    核心思想是: 将约束条件中的小数部分分离出来形成新的约束
    假设整数规划的线性松弛问题求解结果中有一个基变量x i =b i0 不是整数,对应的约束条件为:
    x i j∈J x j b ij = b i0
    其中J是非基变量下标集合。
    令Z(b) = floor(b),也就是b的整数部分;S(b) = b-floor(b),也就是b的小数部分。则有:
    S(b i ) - Σ j∈J x j S(A ij ) = Z(b i ) + Σ j∈J x j Z(A ij ) - Z(b i )
    因此S(b i ) - Σ j∈J x j A(b ij ) 是一个整数。
    再结合S(b i ) - Σ j∈J x j S(A ij ) ≤ S(b i ) <1
    得到:
    S(b i ) - Σ j∈J x j S(b ij ) ≤ 0
    好了,这就是松弛问题每个非整数基变量带来的新的约束条件。为了转为标准型,还需要给这个约束条件添加一个剩余变量x\':
    Σj∈ j∈J x j S(A ij ) - x\' = S(b i )

    基本框架还是用分支定界法,每次求解完之后添加割平面的约束条件:

    以上是关于Chapter10.2:相平面法的主要内容,如果未能解决你的问题,请参考以下文章

    Chapter10.3:描述函数法

    平面波法用于一维光子晶体

    如何用MATLAB求解0-1整数规划?

    整数规划该如何用MATLAB求解?

    MATLAB学习——三维曲面图像绘制

    MATLAB学习——三维曲面图像绘制