此示例显示如何使用几种离散化方法将补偿器从连续时间转换为离散时间,以确定在频域中产生良好匹配的方法。
您可能会设计一个连续时间的补偿器,然后需要将其转换为离散时间进行数字实现。这样做时,您希望离散化保留对性能和稳定性要求至关重要的频域特性。
在下面的控制系统中,G
是一个连续时间的二阶系统,具有3 rad/s左右的尖锐共振。
此系统的一个有效控制器包括与积分器串联的陷波滤波器。创建此控制器的模型。
切口=特遣部队([1,0.5,9],[1、5、9]);integ = pid (0, 0.34);C = integ *切口;bodeplot (C)
以3 rad/s为中心的陷波滤波器抵消了谐振的影响G
. 此配置允许更高的环路增益,以实现更快的整体响应。
将补偿器离散化。
Cdz=c2d(C,0.5);
这个c2d
命令支持几种不同金宝app的离散化方法。由于该命令没有指定方法,c2d
使用默认方法Zero-Order Hold (ZOH)。在ZOH方法中,离散补偿器的时域响应在每个时间步长与连续时间响应相匹配。
离散控制器Cdz
采样时间为0.5 s。在实践中,您选择的采样时间可能受到实现控制器的系统或控制系统带宽的限制。
比较的频域响应C
和Cdz
.
bodeplot (C, Cdz)传说(“C”,“Cdz”);
垂直线表示奈奎斯特频率, 哪里 是采样时间。在奈奎斯特频率附近,离散补偿器的响应相对于连续时间响应失真。因此,离散化陷波滤波器可能无法正确抵消设备共振。
要解决此问题,请尝试使用Tustin方法对补偿器进行离散化,并与ZOH结果进行比较。Tustin离散化方法通常比ZOH方法在频域中产生更好的匹配。
Cdt=c2d(C,0.5,“塔斯汀”); plotopts=bodeoptions;plotopts.Ylim={[-60,40],-225,0]};bodeplot(C、Cdz、Cdt、plotopts)图例(“C”,“Cdz”,“Cdt”)
Tustin方法保留槽口深度。但是,该方法引入的频率偏移在许多应用中都是不可接受的。您可以通过在Tustin变换中将槽口频率指定为预扭曲频率来纠正频率偏移。
用频率预扭曲的Tustin方法离散补偿器,并比较结果。
discopts = c2dOptions (“方法”,“塔斯汀”,“预扭曲频率”, 3.0);Cdtp =汇集(0.5 C, discopts);bodeplot (C, Cdt, Cdtp plotopts)传说(“C”,“Cdt”,“Cdtp”)
要指定离散化方法之外的其他离散化选项,请使用c2掺杂
.这里是离散化选项集discopts
指定Tustin方法和预扭曲频率。预扭曲频率为3.0 rad/s,即补偿器响应中槽口的频率。
使用带有频率预翘曲的Tustin方法比不带预翘曲的Tustin方法产生更好的匹配频率响应。