matlab求x(k+1)=2x(k)+u(k),y(t)=-2x(k-t)的增广系统矩阵并求增广系统矩阵的谱半径,其中t是延时
时间: 2023-06-15 07:07:24 浏览: 102
我们可以将这个系统表达为如下形式:
```
x(k+1) = [2 0] x(k) + [1] u(k)
y(k) = [-2 0] x(k-t)
```
我们可以将其写成增广矩阵的形式:
```
[ x(k+1) ] [2 0 1] [ x(k) ]
[ x(k-t) ] = [-2 0 0] [x(k-t)] + [0 u(k)]
```
这样,增广矩阵就是:
```
[2 0 1]
[-2 0 0]
[0 1 0]
```
增广矩阵的谱半径可以通过计算其特征值的模的最大值得到。使用 MATLAB 可以进行如下计算:
```
>> A = [2 0 1; -2 0 0; 0 1 0];
>> rho = max(abs(eig(A)))
rho =
2.0000
```
因此,增广矩阵的谱半径为 2。
相关问题
离散系统x(k+1)=2x(k)+u(k),y(t)=-2x(k-t),其中t是小于四个采样周期的延时,用matlab求系统矩阵的谱半径,
首先,我们可以将系统表示为状态空间形式:
$$
\begin{aligned}
\mathbf{x}(k+1) &= \begin{bmatrix} 2 \end{bmatrix} \mathbf{x}(k) + \begin{bmatrix} 1 \end{bmatrix} \mathbf{u}(k) \\
\mathbf{y}(k) &= \begin{bmatrix} -2 \end{bmatrix} \mathbf{x}(k-t)
\end{aligned}
$$
其中,$\mathbf{x}(k)$ 是系统的状态向量,$\mathbf{u}(k)$ 是输入向量,$\mathbf{y}(k)$ 是输出向量。
为了求系统矩阵的谱半径,我们需要先求出系统矩阵。根据上述状态空间方程,可以得到:
$$
\begin{aligned}
\begin{bmatrix} \mathbf{x}(k+1) \\ \mathbf{y}(k) \end{bmatrix} &= \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} \mathbf{x}(k) \\ \mathbf{y}(k-t) \end{bmatrix} + \begin{bmatrix} 1 \\ 0 \end{bmatrix} \mathbf{u}(k) \\
\begin{bmatrix} \mathbf{x}(k) \\ \mathbf{y}(k-t) \end{bmatrix} &= \begin{bmatrix} 1 & 0 \\ 0 & -2 \end{bmatrix} \begin{bmatrix} \mathbf{x}(k-1) \\ \mathbf{y}(k-t-1) \end{bmatrix}
\end{aligned}
$$
将上述两个式子代入,可以得到:
$$
\begin{aligned}
\begin{bmatrix} \mathbf{x}(k+1) \\ \mathbf{y}(k) \end{bmatrix} &= \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} \mathbf{x}(k) \\ \mathbf{y}(k-t) \end{bmatrix} + \begin{bmatrix} 1 \\ 0 \end{bmatrix} \mathbf{u}(k) \\
&= \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} 1 & 0 \\ 0 & -2 \end{bmatrix} \begin{bmatrix} \mathbf{x}(k-1) \\ \mathbf{y}(k-t-1) \end{bmatrix} + \begin{bmatrix} 1 \\ 0 \end{bmatrix} \mathbf{u}(k) \\
&= \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} 1 & 0 \\ 0 & -2 \end{bmatrix}^2 \begin{bmatrix} \mathbf{x}(k-2) \\ \mathbf{y}(k-t-2) \end{bmatrix} + \begin{bmatrix} 1 \\ 0 \end{bmatrix} \begin{bmatrix} \mathbf{u}(k-1) \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \end{bmatrix} \mathbf{u}(k-2) + \cdots \\
&= \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix}^{k+1} \begin{bmatrix} \mathbf{x}(0) \\ \mathbf{y}(-t) \end{bmatrix} + \sum_{i=0}^{k} \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix}^{k-i} \begin{bmatrix} 1 \\ 0 \end{bmatrix} \mathbf{u}(i)
\end{aligned}
$$
其中,$\mathbf{x}(0)$ 是初始状态,$\mathbf{y}(-t)$ 是初始时刻的输出(因为 $k-t$ 小于四个采样周期的延时,所以 $k-t$ 肯定小于等于当前时刻 $k$)。
我们可以看到,系统矩阵是 $\begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix}$。该矩阵的特征值为 $\lambda_1 = 2$ 和 $\lambda_2 = 0$,因此其谱半径为 $\rho(\begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix}) = \max(|\lambda_1|, |\lambda_2|) = 2$。
x(k+1)=2x(k)+u(k),y(t)=-2x(k-t),其中t是小于四个采样周期的延时,用matlab求系统增广系统矩阵并求增广系统矩阵的谱半径,
首先,将系统写成状态空间形式:
$$
\begin{bmatrix} x(k+1) \\ y(k) \end{bmatrix} = \begin{bmatrix} 2 & 0 \\ -2\delta(t) & 0 \end{bmatrix} \begin{bmatrix} x(k) \\ y(k-t) \end{bmatrix} + \begin{bmatrix} u(k) \\ 0 \end{bmatrix}
$$
其中,$\delta(t)$ 为单位阶跃函数,表示 $y(k)$ 向后延迟了 $t$ 个采样周期。
为了求增广系统矩阵,我们需要将输入向量 $u(k)$ 加入状态向量中:
$$
\begin{bmatrix} x(k+1) \\ y(k) \\ u(k) \end{bmatrix} = \begin{bmatrix} 2 & 0 & 1 \\ -2\delta(t) & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} x(k) \\ y(k-t) \\ u(k-1) \end{bmatrix}
$$
这就是增广系统矩阵的形式。接下来,我们可以用 MATLAB 求解:
```matlab
t = 2; % 延时
A = [2 0 1; -2*heaviside(t) 0 0; 0 0 0];
rho = max(abs(eig(A))); % 求谱半径
```
其中,`heaviside(t)` 表示单位阶跃函数。求得的谱半径为:
```
rho = 2
```
因此,这个系统是稳定的。
阅读全文