番茄的随笔7:从PI和PR的传递函数波特图分析参数的影响

1. 概述

      本文从PI和PR算法的传递函数波特图出发,分析两种控制方法的特性和参数设置。

 2. PI算法  

        PID算法即比例积分微分控制算法,其传递函数为:

   G(s) = K_{p} + K_{i}\frac{1}{s}+K_{d}s

        实际应用时,PID算法可以只采用一个或两个环节变形为PI、PD等算法,逆变器常用的PI算法,其传递函数为

 G(s) = K_{p} + K_{i}\frac{1}{s}

         PI反馈控制的波特图,利用MATLAB绘制,如下:

        可以看到,Kp对于输出的影响在于高频信号下的增益,对于直流信号,其增益基本不变。而Ki影响的是低频信号,对于高频信号的增益影响不大。

        另一方面,我们看到PI的增益曲线在低频时增益达到40dB,可以认为PI闭环对于直流信号输入的增益为无穷大。我们直到在进行逆变器控制时,闭环控制的输入信号为理论目标值和实际采样值的差值e(t),因此,要实现无差控制,就要去闭环控制器在误差e(t)→0时,其输出仍然稳定。换句话说,可以认为在误差为0的时候,闭环控制器的增益为无穷大。很显然,PI控制器正是满足这一特点,因此,我们一般认为PI控制器适合直流信号的控制,可以实现直流信号的无静差控制。

3. PR控制

        交流信号的控制要么把交流信号转换成直流控制,比如逆变器控制常采用Park变换,把三相交流电转换成旋转坐标系下的直流D和Q值,再采用PI控制就行了。

        要么就得采用交流控制器,也就是PR控制。PR控制的传递函数为:

        G(s) = K_{p} + K_{r} \frac{s}{s^{2}+w_{0}^{2}}

        其波特图为:

        传递函数可在wo处获得无穷大的增益,实现对交流信号的无静差跟踪。对于工频50Hz信号而言,wo取2*pi*50即可。PR控制器在进行调参时波形变化不大,跟踪效果相近。这就不是一个好同志的表现。另一方面,考虑采样频率和参考波形频率的误差,实际应用时往往采用准PR控制器(QPR)。QPR控制的传递函数和波特图如下:

        G(s) = K_{p} + \frac{2 K_{r}w_{c}s}{s^{2}+2w_{c}s+w_{0}^{2}}

        QPR很完美:

  •  
    • Kp是QPR控制器对于误差信号的基础增益。
    •  Kr是QPR控制器在谐振点的增益值(峰值增益),Kr增大,控制器的峰值增益也增大,Kr参数与控制器的峰值增益成正比。
    • wc用来调节QPR控制器在谐振点的增益带宽。wc越大,QPR控制器增益带宽越大;wc越小,QPR控制器在谐振点的幅频曲线越接近PR控制器。
    • wo则是QPR控制器的设定谐振频率。

        对于QPR控制,仅在谐振频率wo处表现出较大增益,在其他位置增益较小(带通滤波器)。Kp影响所有频率下的基础增益,Kr影响谐振频率处的最大增益。因此,理论上随着Kr的增大,QPR控制可以对谐振频率的交流信号实现无差控制。

4. 总结

        本文从PI控制器和PR控制器的波特图入手,分析两种控制器的特点,并分别说明控制器系数对于输出信号的影响,希望对控制器的调参有帮助。

 

<think>好的,我现在需要帮助用户解决如何在MATLAB中绘制PIR控制器的伯德图的问题。首先,我需要确认用户的需求。用户提到了PIR控制器,也就是比例-积分-谐振控制器,通常用于并网逆变器等需要抑制特定频率谐波的场合。用户可能已经有一定的控制理论背景,但需要具体的MATLAB操作步骤。 首先,我应该回忆一下伯德图的绘制方法。伯德图包括幅频特性相频特性,通常使用bode函数来绘制。用户提到的是PIR控制器,所以需要构建其传递函数,然后调用bode函数。根据引用中的信息,用户可能已经有了部分代码,比如引用3中的PIR参数,例如p=0.5,Ti=0.01,Kr=5000,w0=100*2&pi;。这些参数需要整合到传递函数中。 接下来,我需要考虑PIR控制器的结构。通常,PIR控制器由比例积分(PI)部分谐振(R)部分串联组成。根据引用3中的代码,PI部分可能是pi = tf([p*Ti 1], [Ti 0]),而谐振部分R_controller = tf([Kr 0], [1 0 w0^2])。然后整个控制器是这两个传递函数的串联,即sys_controller = series(pi, R_controller)。因此,正确的传递函数构建是第一步。 然后,用户需要绘制伯德图。在MATLAB中,可以使用bode(sys_controller)来自动生成,或者使用bode函数返回幅值相位数据,再手动绘图以进行自定义设置。此外,用户可能需要调整频率范围,特别是谐振频率附近的区域,比如w0=100Hz对应的频率点,可能需要设置对数间隔的频率点,例如使用logspace从1到1000 rad/s。 另外,用户可能对Simulink中的操作感兴趣,但根据问题描述,主要是MATLAB代码实现。不过引用4提到了Z域传递函数差分方程,但伯德图通常是针对连续系统的,所以可能需要确认是否用户需要离散系统的分析,但根据常见情况,可能还是连续域。因此,使用Control System Toolbox中的tfbode函数即可。 还需要注意,用户提供的引用中有关于PID模糊控制器的内容,但当前问题集中在PIR控制器的伯德图,所以应专注于传递函数的正确构建绘图步骤。可能的错误点包括传递函数的系数是否正确,特别是谐振环节的传递函数形式。例如,谐振控制器的标准形式通常是Kr*s / (s² + w0²),但需要检查引用3中的R_controller是否正确。根据引用3中的代码,R_controller的分子是[Kr 0],分母是[1 0 w0^2],即s的系数为0,因此传递函数是Kr*s / (s² + w0²),这符合常见的谐振控制器结构。 另外,可能需要将PIR部分的传递函数正确串联。series函数或者乘法运算都可以,例如sys_controller = pi * R_controller。 然后,绘制伯德图时,可能需要添加标题、网格等,使图像更清晰。同时,如果用户需要分析特定频率点的幅值相位,可以使用bode函数的输出参数,然后通过查找接近w0的频率点来查看谐振峰的情况。 用户还可能关心如何验证传递函数是否正确,可以通过阶跃响应或者极点位置来初步判断,但伯德图本身已经能够直观显示频率响应特性。 总结步骤应该是: 1. 定义控制参数; 2. 构建PI部分传递函数; 3. 构建谐振部分传递函数; 4. 串联得到PIR控制器; 5. 绘制伯德图; 6. 可选的自定义设置,如频率范围、网格、标题等。 此外,需要注意MATLAB版本工具包的兼容性,Control System Toolbox是必须的。如果用户没有该工具包,可能需要其他方法,但通常假设用户已安装。 可能的相关问题包括如何调整PIR参数对伯德图的影响,如何将连续传递函数转换为离散形式(如引用4提到的Z域),或者如何在Simulink中实现该控制器并分析。因此,生成相关问题时应围绕参数调整、离散化、Simulink应用等方面。</think>### 如何用MATLAB绘制PIR控制器的伯德图? #### 步骤说明: 1. **定义控制参数** 根据引用[3]的PIR调节器参数定义: ```matlab p = 0.5; % 比例系数 Ti = 0.01; % 积分时间常数 Kr = 5000; % 谐振环节增益 w0 = 100*2*pi; % 谐振角频率(100Hz) ``` 2. **构建PI环节传递函数** PI控制器的传递函数为: $$ G_{PI}(s) = p + \frac{1}{T_i s} = \frac{p T_i s + 1}{T_i s} $$ 对应MATLAB代码: ```matlab num_pi = [p*Ti 1]; % 分子系数 den_pi = [Ti 0]; % 分母系数 PI = tf(num_pi, den_pi); % 生成传递函数 ``` 3. **构建谐振环节传递函数** 谐振控制器的传递函数为: $$ G_R(s) = \frac{K_r s}{s^2 + \omega_0^2} $$ 对应代码: ```matlab num_R = [Kr 0]; % 分子系数 den_R = [1 0 w0^2]; % 分母系数 R = tf(num_R, den_R); ``` 4. **串联组成PIR控制器** 总传递函数PI与R环节的串联: ```matlab PIR = series(PI, R); % 或直接使用 PIR = PI * R; ``` 5. **绘制伯德图** 使用`bode`函数绘制,并添加自定义频率范围: ```matlab w = logspace(0, 3, 1000); % 频率范围1~1000 rad/s(覆盖谐振频率) figure; bode(PIR, w); grid on; title('PIR控制器伯德图'); ``` #### 代码验证与输出说明: - **关键验证点**:谐振峰应出现在$f = \frac{\omega_0}{2\pi} = 100\ \text{Hz}$处,幅值增益约为$K_r$(需计算实际分贝值)。 - **输出结果**:伯德图会显示低频段由PI环节主导的积分特性,以及在100Hz处的谐振峰[^3]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的番茄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值