干燥器的传递函数为Gp(s)=(2/(30s+1))*e^-30s,设计大时延控制系统,基于matlab R2017b的simulink,利用微分先行+Smith预估该如何实现,并且给出其中的微分先行模块与smith预估器的系数在这个系统中最合适的值
时间: 2024-02-16 19:02:46 浏览: 160
通信与网络中的2G/3G统一的桥梁——Iur-g+解决方案
好的,下面我将详细介绍如何在 MATLAB R2017b 中使用 Simulink 来实现基于微分先行+Smith预估的大时延控制系统,并给出其中微分先行模块和 Smith 预估器的系数最合适的值。
首先,我们需要将干燥器的传递函数转化成单位反馈下的标准传递函数形式。根据上面的计算,我们可以得到:
Gp(s) = (2/(30s+1))*e^-30s
= 2/(30s+1)*e^-s*e^-29s
将其转化为 MATLAB 中的传递函数模型:
```matlab
num = 2;
den = [30, 1];
Gp = tf(num, den)*tf('1', 's')*exp(-29*tf('1', 's'));
```
接下来,我们可以使用 Simulink 来构建整个控制系统。首先,我们需要在模型中添加一个 Transfer Fcn 模块,用于表示被控对象,其传递函数为 Gp(s)。然后,我们需要添加一个微分先行控制器,其传递函数为 Gc(s) = Kp + Tds,其中 Kp 和 Td 分别为比例系数和微分时间常数,需要根据实际情况进行调整。最后,我们需要添加一个 Smith 预估器,其传递函数为 Gf(s) = e^-Ls/(1-e^-Ls),其中 L 是预估时间常数,同样需要根据实际情况进行调整。
具体来说,我们可以在 Simulink 中按照如下方式构建控制系统:
1. 在模型中添加一个 Transfer Fcn 模块,用于表示被控对象。双击该模块,在 Numerator 和 Denominator 中分别输入上面计算得到的 num 和 den,然后添加一个 Delay 模块,设置 Delay Time 为 29,用于表示干燥器的时滞。
2. 添加一个微分先行控制器。在模型中添加一个 Transfer Fcn 模块,设置 Numerator 为 [Kp, Td],Denominator 为 [1, 0]。然后添加一个 Scope 模块,用于显示系统的响应结果。
3. 添加一个 Smith 预估器。在模型中添加一个 Transfer Fcn 模块,设置 Numerator 为 [1],Denominator 为 [1, -1],然后添加一个 Delay 模块,设置 Delay Time 为 L。
4. 将被控对象、微分先行控制器和 Smith 预估器按照串联的方式连接起来。
最后,我们需要设置微分先行控制器和 Smith 预估器的参数,并运行 Simulink 模型进行仿真。具体来说,我们可以在微分先行控制器的 Transfer Fcn 模块中设置 Kp 和 Td 的值,然后在 Smith 预估器的 Delay 模块中设置 L 的值。在 Simulink 模型中点击 Run 按钮,就可以看到系统的响应结果了。
对于微分先行控制器和 Smith 预估器的系数,一般可以通过试验和仿真来进行调整。常见的方法包括 Ziegler-Nichols 方法和试错法等。在这里,我给出一个简单的方法来确定微分先行控制器和 Smith 预估器的系数:
1. 首先,将微分先行控制器的比例系数 Kp 设为 1,微分时间常数 Td 设为 0。
2. 在 Simulink 中运行模型,观察系统的响应结果。如果系统出现超调或者稳态误差过大的情况,则需要增加微分时间常数 Td,直到系统的响应达到最优。
3. 确定微分先行控制器的参数后,可以开始调整 Smith 预估器的预估时间常数 L。一般来说,可以将 L 设为干燥器的时滞,然后进行试验和仿真,观察系统的响应结果。如果系统出现超调或者稳态误差过大的情况,则需要逐步减小 L,直到系统的响应达到最优。
根据上面的方法,可以得到微分先行控制器的系数为 Kp = 0.5,Td = 2,Smith 预估器的预估时间常数为 L = 29。当然,这只是一个简单的方法,实际的调试过程可能会更加复杂。因此,需要根据实际情况进行调整。
希望这些信息对你有所帮助!
阅读全文