1. 零阶保持器与离散系统基础
第一次接触"零阶保持器"这个概念时,我正调试一个电机控制系统。当时采样数据总是出现奇怪的阶梯状波形,导师指着屏幕说:"这就是ZOH在起作用"。零阶保持器(Zero-Order Hold, ZOH)本质是一种信号重构装置,它会把离散采样点之间的信号"保持"为最后一个采样值,就像用乐高积木搭建连续曲线时的台阶效果。
在控制系统中,连续时间状态空间方程描述为:
dx/dt = A*x + B*u
y = C*x + D*u
而经过ZOH离散化后会变成:
x[k+1] = F*x[k] + G*u[k]
y[k] = C*x[k] + D*u[k]
其中F和G矩阵的计算公式看起来有点吓人:
F = e^(A*Ts)
G = A^(-1)*(F-I)*B
但别被指数运算吓到,MATLAB的c2dm函数(现在推荐用c2d)能帮我们自动完成这些计算。我常跟学生说,这就像用微波炉热饭——你不需要知道磁控管工作原理,只要会按按钮就行。
2. MATLAB实现步骤详解
去年给某无人机公司做培训时,他们最头疼的就是离散化代码实现。其实用MATLAB操作就四步:
2.1 建立连续系统模型
先定义系统矩阵,比如一个二阶振荡系统:
A = [0 1; -2 -3];
B = [0; 1];
C = [1 0];
D = 0;
这里A矩阵的-2和-3决定了系统动态特性,相当于汽车的"悬挂软硬度"。
2.2 选择采样周期
采样周期Ts的选择有门道。我一般先用:
BW = bandw


1万+

被折叠的 条评论
为什么被折叠?



