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
x0、x˙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 线性系统的相轨迹
-
线性一阶系统的相轨迹
描述线性一阶系统自由运动的微分方程为:
参考技术A
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代码
割平面简单来说,就是添加约束条件 。比如在分支定界算法中,添加的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:相平面法的主要内容,如果未能解决你的问题,请参考以下文章