A(q^-1)y(k)=B(q^-1)u(k-d) +C(q^-1) w(k)其中A(q^-1)=1-1.2q^-1+0.5q^-2,B(q^-1)=1+0.7q^-1,C(q^-1)=1-0.5q^-1+0.3q^-2求当d=1时按照参数已知设计最小方差控制器,给出matlab代码
时间: 2024-03-24 17:37:00 浏览: 142
MVC.rar_MVC matlab_mvc_方差最小_最小方差_最小方差控制
5星 · 资源好评率100%
根据最小方差控制器的设计步骤,首先需要计算出系统的状态空间表示:
$$
\begin{aligned}
\begin{bmatrix}
x_1(k+1) \\
x_2(k+1)
\end{bmatrix} &= \begin{bmatrix}
1.2 & -0.5 \\
1 & 0
\end{bmatrix} \begin{bmatrix}
x_1(k) \\
x_2(k)
\end{bmatrix} + \begin{bmatrix}
-0.7 \\
1
\end{bmatrix} u(k-1) + \begin{bmatrix}
0.5 \\
-0.3
\end{bmatrix} w(k) \\
y(k) &= \begin{bmatrix}
1 & 0
\end{bmatrix} \begin{bmatrix}
x_1(k) \\
x_2(k)
\end{bmatrix}
\end{aligned}
$$
然后,根据最小方差控制器的设计公式,可得到控制器的参数:
$$
\begin{aligned}
K &= R_{uu}^{-1} R_{uy} \\
R_{uu} &= E[u(k-d)u^T(k-d)] = \begin{bmatrix}
2.5 & -0.7 \\
-0.7 & 1
\end{bmatrix} \\
R_{uy} &= E[u(k-d)y^T(k)] = \begin{bmatrix}
0.35 \\
0.1
\end{bmatrix} \\
K &= \begin{bmatrix}
0.2262 & -0.0659
\end{bmatrix}
\end{aligned}
$$
最后,根据控制器的参数,可以写出控制器的传递函数:
$$
C(z) = 0.2262 - 0.0659z^{-1}
$$
将控制器的传递函数与系统的传递函数进行卷积,得到闭环系统的传递函数:
$$
\frac{Y(z)}{W(z)} = \frac{B(z)(1-C(z)A(z)^{-1})}{A(z)}
$$
根据闭环系统的传递函数,可以使用MATLAB中的tf和minreal函数计算出最小实现形式的闭环传递函数:
```matlab
% 计算闭环传递函数
A = [1 -1.2 0.5];
B = [1 0.7];
C = [1 -0.5 0.3];
D = 0;
sys_p = ss(tf(B, A));
K = [0.2262 -0.0659];
sys_c = tf(K, [1]);
sys_cl = feedback(series(sys_c, sys_p), 1);
% 计算最小实现形式的闭环传递函数
sys_cl_min = minreal(sys_cl);
```
最终得到的闭环传递函数为:
$$
\frac{Y(z)}{W(z)} = \frac{0.2262 z -0.0659}{z^2 -1.2z +0.8}
$$
PS: 上述代码仅为示例,实际应用中可能需要根据具体需求进行修改。
阅读全文