自动控制原理学习笔记(四)—— 一阶系统的实验表征和 MATLAB 仿真

前几节笔记如下:

自动控制原理学习笔记(一)—— 控制介绍,一阶离散系统-CSDN博客

自动控制原理学习笔记(二)—— 一阶离散系统的通解,稳定性和收敛性-CSDN博客

自动控制原理学习笔记(三)—— 一阶线性定常离散系统与稳态误差-CSDN博客

一、一阶系统:系统内参数的估计

在前三节中,我们学会了如何求解一阶系统。如果给定该系统的数学模型,我们就可以采用 P 控制器来找到最优的 Kp 。然而,当我们设计一个控制系统时,系统中数学模型中的关键参数值该如何确定?我们要通过通过系统辨识来实现。系统辨识是研究人员通过测得的输入输出,通过最小化误差标准函数,确定数学模型中未知的参数取值。

我们举一个例子来具体阐明。给定某个一阶系统的系统方程为

y[n]=y[n-1]+\Delta T(\beta y[n-1]+\gamma c[n-1])

其中 \beta 和 \gamma 是我们想测量得到的系统参数,c[n] 为一个合理的控制信号。注意我们的目标是测量 \beta 和 \gamma ,而不是最优控制这个系统。我们尝试从两个角度来解决这个问题。

反馈控制:

u[n]=K_{p}(y_{d}[n]-y[n])

给定该反馈控制器,系统方程变为

y[n]=y[n-1]+\Delta T(\beta y[n-1]+\gamma K_{p}(y_{d}[n-1]-y[n-1]))

y[n]=y[n-1]+\Delta T(\beta y[n-1]-\gamma K_{p}y[n-1])+\gamma \Delta TK_{p}y_{d}[n-1]

y[n]-y[n-1]-\Delta T(\beta y[n-1]-\gamma K_{p}y[n-1])=\gamma \Delta TK_{p}y_{d}[n-1]

y[n]=y[n-1](1+\Delta T\beta - \Delta T \gamma K_{p})+\gamma \Delta TK_{p}y_{d}[n-1]

于是固有频率为

\lambda =1+\Delta T\beta - \Delta T \gamma K_{p}

我们发现,当改变 K_{p} 时,固有频率也会改变,因此测量 \beta 和 \gamma 会非常复杂。我们再尝试另一种控制器。

开环控制:

u[n]=K_{ff}y_{d}[n]

给定该开环控制器,系统方程变为

y[n]=y[n-1]+\Delta T(\beta y[n-1]+\gamma K_{ff}y_{d}[n-1])

y[n]=y[n-1]+\Delta T\beta y[n-1]+\gamma \Delta T K_{ff}y_{d}[n-1]

y[n]-y[n-1]-\Delta T\beta y[n-1]=\gamma \Delta T K_{ff}y_{d}[n-1]

y[n]=y[n-1](1+\Delta T\beta) + \gamma \Delta T K_{ff}y_{d}[n-1]

固有频率为

\lambda =1+\Delta T\beta

显然,这个固有频率更好。为了测量 \beta 和 \gamma ,我们将观察这个系统的阶跃响应(一种比较常用的做法)。当 n>0 时,我们令 y_{d}[n]=1 ;当 n=0 时,令 y[n]=0 。我们通过程序仿真并得到下图:

通过观察图像我们可以得到两个方程。

首先,通过测量 y[n] 到达 y[\infty ] 一半的时间来计算 \lambda ,于是

\lambda ^{n^{*}}=0.5

在上图中,我们测量 n^{*}=3 。则

\lambda =\exp (\frac{1}{n^{*}}\log_{e}(0.5))

由 \lambda 推得 \beta 为

\beta =\frac{\exp (\frac{1}{n^{*}}\log_{e}(0.5))-1}{\Delta T}=-4.1

接下来我们将在稳态条件下求解 \gamma ,由图像得 y[\infty ]=0.5 。于是当系统达到稳态时,方程为

y[\infty ]=y[\infty ](1+\Delta T\beta )+\gamma \Delta TK_{ff}

于是

\gamma =-\frac{y[\infty ]\beta }{K_{ff}}=2.1

二、使用 MATLAB 模拟一阶系统

虽然我们能够求解大部分简单的一阶系统,但对于高阶系统我们要处理更加复杂的计算。因此我们需要能用来解决控制问题的工具。MATLAB 就是一个非常好的工具,它不但提供了丰富便利的包,还提供了强大的仿真工具 Simulink 。

上一节中的系统辨识图由如下代码生成,我们测量的参数值 \beta =-4.1 ,\gamma =2.1 与真实值几乎相等:

% 定义变量
Kff = 1;
beta = -4;
gamma = 2;
dt = 1/20;

% 定义传递函数的分子和分母
% 传递函数以后会讲
den = [1 -(1+dt*beta)];
num = [0 dt*gamma*Kff];

% 生成新的图像
close all; figure(2); hold on

% 模拟离散控制系统
sys = tf(num, den, dt, 'variable', 'z^-1');
step(sys, 1.5) % 模拟 1.5 秒

% 作图
axis([-0.2 1.5 -0.1 1.2]);
plot([-0.2 0], [0 0], 'r-');
plot([0 0], [0 1], 'r-');
plot([0 1.5], [1 1], 'r-');

代码可能比较难理解,因为传递函数(tf)的定义我们还没有学过,但我们可以认为它是描述控制系统的数学模型之一,先把它当作一个黑盒来使用。我们先解释一下代码中传递函数的分子和分母是如何得到的:

y[n]=y[n-1]+\Delta T\beta y[n-1]+\gamma \Delta T K_{ff}y_{d}[n-1]

y[n]-y[n-1](1+\Delta T\beta) = \gamma \Delta T K_{ff}y_{d}[n-1]

分母由 y[n] 和 y[n-1] 前的系数表示:

den=[1,-\Delta T\beta -1]

分母由 y_{d}[n] 和 y_{d}[n-1] 前的系数表示:

num=[0,\Delta T\gamma K_{ff}]

我们还可以修改代码来实现上一节中反馈控制的仿真。在反馈控制中,系统方程为:

y[n]-y[n-1](1+\Delta T\beta - \Delta T \gamma K_{p})=\gamma \Delta TK_{p}y_{d}[n-1]

因此我们只需修改代码中传递函数的分子和分母部分即可,这里我们令 Kp 等于 10 :

% 修改代码为反馈控制
den = [1 -(1+dt*beta)+dt*gamma*Kp];
num = [0 dt*gamma*Kp];

重新程序仿真,得到新的图像如下:

 三、名义信号和扰动信号

在许多情况下我们想在稳态附近控制系统。举个例子,假设我们想控制一台四旋翼无人机,这台无人机有一个能测量瞬时高度的高度传感器,我们想让它在距离地面 1m 的距离悬停。于是我们可以将这个问题看作在稳态附近控制系统。其中我们不关心名义信号(控制电压)甚至单纯的传感器输出(高度),我们关心 “ 受扰动 ” 的控制信号和传感器输出高度与设定高度的差值。下图展示了名义信号与扰动信号的关系:

当我们绘制系统方框图时,需要确定哪些信号为名义信号,哪些信号是扰动信号。该四旋翼无人机的系统方框图如下。

四、复数回顾

为了之后对高阶控制系统的分析,我们需要复习复变函数与积分变换课程中的知识。下表为复数的简单回顾。一个复数由实部 a 和虚部 b 组成。它既可以用有序实数对 (a, b) 表示,也可以在复平面中用模(r)和辐角(\phi)表示。

z=a+jb

z=re^{i\phi }

r=\sqrt{a^{2}+b^{2}}

\phi =\tan^{-1}(b/a)

a=r\cos\phi

b=r\sin\phi

我们一般用 j 来表示虚数。虚数有许多性质,下面列举两条:

j^{2}=-1 ,\frac{1}{j}=\frac{j}{j^{2}}=-j

我们一般使用复数的指数表示式来分析系统的稳定性。例如:

\lambda ^{n}=(a+jb)^{n}=(re^{j\phi })^{n}=r^{n}e^{jn\phi }

其中,e^{jn\phi } 的模为 1 。于是 r^{n} 决定了系统是否稳定。举个例子,如果系统收敛,那么 r<1 一定成立。保守起见,为了使系统保持稳定,所有固有频率 \lambda 的大小均小于 1 。

我们回过头再看一下第二节笔记中对一阶离散系统解的分析。当 \lambda 在复平面的实轴上运动时(如左图),系统的阶跃响应如右图 1 ~ 7 所示。

一阶系统我们先介绍到这里。关于二阶控制系统详见下回分解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值