使用MATLAB绘制重复控制器的bode图

目录

0 背景

1 重复控制器模型

2 编写matlab程序

3 结果示例


0 背景

      上午想绘制重复控制器的伯德图,但是因为重复控制器属于离散系统,所以不同于常规的线性连续系统,不是很好绘制,同时CSDN、MATLAB/SIMULINK论坛上也没有什么分享,经过1个多小时的摸索,我终于搞明白了,现在分享给大家,防止大家重复浪费时间。

1 重复控制器模型

Fig.1 重复控制器的框图
Fig.2 重复控制器数学模型

         当我们取Q = 0.95,N = 200的时候,重复控制器的数学模型就是这样了:G(z)=\frac{1}{1-0.95z^{-200}},我们编写.m文件如下:

2 编写matlab程序

N = 200;%1个系统单位时间内的采样个数
Q = 0.95
ts = 1/(N*50);%采样时间,50表示系统频率是50Hz,如工频电网
    H4 = tf([ 1 zeros(1,N)],[1 zeros(1,N-1) -Q],ts);%重复控制器的模型
    bode(H4)%绘制重复控制器的伯德图

3 结果示例

       显然,重复控制器在系统倍周期处,具有较大的增益,可以有效地抑制周期性干扰,跟随周期性给定信号

Fig.3 bode图

当然,有的同学可能想对比一下Q取不同值的结果,以及希望横坐标为Hz,并且限制为[0 1000]Hz,只需要如下程序即可: 

P = bodeoptions;%设置bode图对象
P.FreqUnits = 'Hz';%设置横轴为Hz
P.grid = 'on';%打开网格
P.XLim={[10      1000]};%设置横轴范围
N = 200;%1个系统单位时间内的采样个数
ts = 1/(N*50);%采样时间,50表示系统频率是50Hz,如工频电网
for i = 0.8:-0.2:0
    Q = 1 - i;%改变多个Q值
    H4 = tf([ 1 zeros(1,N)],[1 zeros(1,N-1) -Q],ts);%重复控制器的模型
    bode(H4,P)%绘制重复控制器的伯德图
    hold on
end
Fig.4 bode图

 PS :

      有什么问题,留言在评论区即可,看见后会回复。

      觉得对你有用的话,可以点赞、关注我哦,我会经常分享自己学的小知识,避免大家浪费时间。

  • 24
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 在MATLAB绘制比例积分调节器(PI)伯德可以通过以下步骤实现: 1. 定义PI控制器的传递函数:在MATLAB使用tf函数创建一个比例积分控制器的传递函数。例如,可以使用以下代码定义一个PI控制器: ```matlab Kp = 2; % 比例增益 Ki = 1; % 积分增益 s = tf('s'); PI_controller = Kp + Ki/s; % PI控制器的传递函数 ``` 2. 绘制伯德使用MATLAB的bode函数绘制PI控制器的伯德。代码示例如下: ```matlab bode(PI_controller); ``` 执行上述代码将在MATLAB形窗口中绘制出PI控制器的伯德。 伯德是一种显示系统频率响应的形。它由频率(横轴)和系统增益(纵轴)组成。在伯德中,增益以对数刻度表示。频率越高,增益越低,可以通过观察伯德来分析系统的稳定性和频率响应特性。 注意:在绘制伯德之前,确保已经安装了Control System Toolbox,否则将无法使用bode函数。 ### 回答2: 在MATLAB中,可以使用proportional-integral(PI,比例积分)控制器来设计和绘制伯德。 首先,我们需要将系统转换为传输函数形式。传输函数是输入和输出之间的代表关系。对于比例积分控制器,传输函数的形式是: G(s) = Kp + Ki/s 其中,Kp是比例增益,Ki是积分增益,s是Laplace变换的复频率。可以根据系统性质和要求选择合适的Kp和Ki。 接下来,我们可以使用MATLAB中的控制系统工具箱来绘制伯德。首先,我们需要创建一个传输函数对象,并设置Kp和Ki的值。 例如,假设我们要绘制一个比例积分控制器,其比例增益Kp为2,积分增益Ki为3。我们可以使用下面的代码来创建传输函数对象: sys = tf([2 3],[1 0]) 其中,[2 3]是传输函数的分子多项式,表示比例增益和积分增益,[1 0]是传输函数的分母多项式。 接下来,我们可以使用MATLAB中的bode函数来绘制伯德。 bode(sys) bode函数会自动计算和绘制系统的频率响应曲线和相位曲线,并显示在形窗口中。我们可以通过调整比例增益Kp和积分增益Ki的值来观察形的变化。 通过以上步骤,我们可以在MATLAB绘制比例积分控制器的伯德,以更好地理解和设计控制系统。 ### 回答3: 在MATLAB绘制比例积分调节器(PI控制器)的伯德可以通过以下步骤实现: 1. 创建一个新的MATLAB脚本或函数文件。 2. 定义PI控制器的传递函数Gc(s),根据控制对象和控制要求确定比例增益Kp和积分时间Ti的值。例如,Gc(s) = Kp + Kp/Ti * 1/s。 3. 使用bode函数绘制控制器的开环频率响应,其中输入参数为控制器传递函数Gc(s)。 4. 使用grid函数添加网格线,以便更清晰地查看伯德。 5. 设置坐标轴的标签和标题,使像更具可读性。 6. 使用legend函数添加例,以说明中的线条对应的是哪个参数。 以下是一个示例代码,演示如何在MATLAB绘制PI控制器的伯德: ```matlab % 定义PI控制器的传递函数 Kp = 1; % 比例增益 Ti = 2; % 积分时间 Gc = tf([Kp*Kp, Kp], [Ti, 0]); % 绘制伯德 bode(Gc); grid on; % 设置标签和标题 xlabel('频率 (rad/s)'); ylabel('增益 (dB)'); title('PI控制器的伯德'); % 添加例 legend('PI控制器'); % 输出像 print('PI_controller_bode_plot', '-dpng'); ``` 运行上述代码后,MATLAB会生成一个名为"PI_controller_bode_plot.png"的像文件,显示PI控制器的伯德。可以根据实际情况调整代码中的比例增益Kp和积分时间Ti的值,以符合控制要求。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值