非线性系统理论(第二版)作者:方勇纯 卢桂章
第一章 非线性系统介绍
前言
看完第一章,写一点总结和课后习题,本人非控制专业,只是个人爱好,如有问题,请多指教
一、总结
1.线性与非线性
- 线性系统:
满足齐次性和叠加性
可利用传函和状态空间方程表示
稳定性完全取决于系统的结构和参数(传函的闭环极点/状态空间的系统矩阵),与系统的初始状态无关
稳定性建立在全局意义上 - 非线性系统:
不满足齐次性和叠加性
稳定性不仅取决于系统的结构和参数,同时也和系统的初始状态直接关系
稳定性还区分为全局还是局部
2.非线性系统的特性
- 多平衡点
系统具有多个平衡点 - 极限环
非线性系统在无外力作用下呈现出一种固有频率和固有振幅的等幅震荡
是系统本身特性,与系统输入无关 - 混沌
对于非线性系统而言,其输出对初始条件变化极其敏感 - 磁滞
系统的输出值不仅取决于当前的输入量,还与输入量变化趋势有关 - 饱和
3.常见的非线性系统设计与分析方法
- 相平面分析法
只适用于二阶系统 - 描述函数法
- 李雅普诺夫法
直接法和间接法
二、课后习题
4.
已知非线性系统动态特性如下:
x
˙
=
−
x
+
x
3
\dot{x}\,\,=\,\,-x+x^3
x˙=−x+x3
试求出系统的所有平衡点并简略分析其稳定性
∵
x
˙
=
−
x
+
x
3
=
−
x
(
x
2
−
1
)
∴
{
x
˙
>
0
,
x
>
1
x
˙
<
0
,
0
<
x
<
1
x
˙
>
0
,
−
1
<
x
<
0
x
˙
<
0
,
x
<
−
1
\because \dot{x}\,\,\,=\,\,-x+x^3=-x\left( x^2-1 \right) \\ \therefore \begin{cases} \dot{x}\,>0,x>1\\ \dot{x}\,<0,0<x<1\\ \dot{x}\,>0,-1<x<0\\ \dot{x}\,<0,x<-1\\ \end{cases}
∵x˙=−x+x3=−x(x2−1)∴⎩
⎨
⎧x˙>0,x>1x˙<0,0<x<1x˙>0,−1<x<0x˙<0,x<−1
可以得到:
i
f
x
>
1
,
x
↗
⟶
∞
i
f
0
<
x
<
1
,
x
↘
⟶
0
i
f
−
1
<
x
<
0
,
x
↗
⟶
0
i
f
x
<
−
1
,
x
↘
⟶
−
∞
综上,可以得到,当
−
1
<
x
<
1
时,
x
会趋近于
0
,
是平衡点
此外,当
x
=
±
1
时,
x
˙
=
0
,也会稳定
if\,\,x>1 , x\nearrow \longrightarrow \infty \\ \,\, if\,\,0<x<1 ,x\searrow \longrightarrow 0 \\ \,\, if\,\,-1<x<0,x\nearrow \longrightarrow 0 \\ \,\, if\,\,x<-1,x\searrow \longrightarrow -\infty \\ \text{综上,可以得到,当}-1<x<1\text{时,}x\text{会趋近于}0,\text{是平衡点} \\ \text{此外,当}x=\pm 1\text{时,}\dot{x}\,=0\text{,也会稳定}
ifx>1,x↗⟶∞if0<x<1,x↘⟶0if−1<x<0,x↗⟶0ifx<−1,x↘⟶−∞综上,可以得到,当−1<x<1时,x会趋近于0,是平衡点此外,当x=±1时,x˙=0,也会稳定
其实,根据之前所学,可以利用相平面法及进行分析
我们可以求得
f
(
x
)
=
x
˙
=
−
x
+
x
3
的零点
x
1
=
1
;
x
2
=
−
1
;
x
3
=
0
在这三个点附近作为为初始点进行分析
\text{我们可以求得}f\left( x \right) \,\,=\,\,\dot{x}\,\,=\,\,-x+x^3\,\text{的零点} \\ x_1=1;x_2=-1;x_3=0 \\ \text{在这三个点附近作为为初始点进行分析}
我们可以求得f(x)=x˙=−x+x3的零点x1=1;x2=−1;x3=0在这三个点附近作为为初始点进行分析
绘制相图函数
%% 绘制相图
clc;clear;close all;
%% 定义微分方程
example_ode = @(t,x) -x+x^3;
% 定义时间范围
tspan = [0 100];
% 初始条件
x0 = 0;
% 解微分方程
[t, x] = ode45(example_ode, tspan, x0);
for i = 1:size(t)
dx(i) = example_ode(t(i),x(i));
end
% 绘制相图
figure;
plot(x, dx, 'LineWidth', 2);
xlabel('x_1');
ylabel('x_2');
title('Phase Plot');
grid on;
图片太多,这里就不放了,读者可以自己运用代码绘制
5.
对于如下非线性系统:
x
˙
=
−
x
+
x
2
\dot{x}\,\,\,=\,\,-x+x^2
x˙=−x+x2
在初始条件为0.5和0.2时的响应曲线
解答代码如下
%% 习题1-5
clc;clear;close all;
%% 定义非线性系统的微分方程
nonlinear_system = @(t,x) -x+x^2;
% 设置初始条件
initial_conditions = [0.5 2];
% 仿真不同初始条件下的系统响应
for i = 1:2
% 设置当前的初始条件
x0 = initial_conditions(i);
% 调用ode45求解器
[t, x] = ode45(nonlinear_system, [0 10], x0);
% 绘制响应曲线
subplot(1, 2, i);
plot(t, x);
title(sprintf('Initial Condition: %d', x0));
xlabel('time');
ylabel('State');
legend('x1');
end
6.
对于如下非线性系统:
x
˙
=
(
x
−
sin
x
)
u
\dot{x}\,\,\,=\,\,\left( x-\sin x \right) u
x˙=(x−sinx)u
设计的非线性控制器为:
u
=
−
x
(
x
−
sin
x
)
u=-x\left( x-\sin x \right)
u=−x(x−sinx)
在初始条件为1时的响应曲线
解答代码如下
%% 习题1-6
clc;clear;close all;
%% 定义非线性系统的微分方程
nonlinear_system = @(t,x) -x*(x-sin(x))^2;
% 设置初始条件
initial_conditions = 1;
% 设置当前的初始条件
x0 = initial_conditions;
% 调用ode45求解器
[t, x] = ode45(nonlinear_system, [0 1000000000000], x0);
% 绘制响应曲线
plot(t, x);
title(sprintf('Initial Condition: %d', x0));
xlabel('time');
ylabel('State');
legend('x1');