第一章 非线性系统介绍
看完第一章,写一点总结和课后习题,本人非控制专业,只是个人爱好,如有问题,请多指教
已知非线性系统动态特性如下:
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;
图片太多,这里就不放了,读者可以自己运用代码绘制
对于如下非线性系统:
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
对于如下非线性系统:
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 00], x0); % 绘制响应曲线 plot(t, x); title(sprintf('Initial Condition: %d', x0)); xlabel('time'); ylabel('State'); legend('x1');