小孩子~ 2023-04-11 14:30 采纳率: 0%
浏览 27

不完全微分PID控制低通滤波器传递函数怎样确定

例如已知控制对象为10/(3S^2+S+2),确定其要用到的低通滤波器

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-04-11 21:19
    关注

    以下内容部分参考ChatGPT模型:


    首先需要将控制对象转化成标准形式,即:

    G(s) = K/(Ts+1)
    
    其中,K为系统增益,T为系统时间常数。
    
    对于不完全微分PID控制,需要添加一个低通滤波器,使其变为完全微分PID。低通滤波器的传递函数一般为:
    
    Gf(s) = 1/(Ts+1)
    
    将控制对象和低通滤波器连接起来,得到闭环控制系统的传递函数为:
    
    Gc(s) = Kp + Ki/s + Kd(sT+1)/sT
    
    其中,Kp、Ki、Kd分别为比例、积分、微分系数。
    
    通过将Gc(s)G(s)相乘,并进行化简,可得到完整的传递函数:
    
    G(s) = Kc/(Ts^3 + (1+Kd)Ts^2 + (Kp+Ki+2Kd)Ts + Kp+Ki)
    
    根据这个传递函数,可以确定所需的低通滤波器的传递函数为:
    
    Gf(s) = 1/(Tf*s+1)
    
    其中,Tf为低通滤波器的时间常数。
    
    对于控制对象为10/(3s^2+s+2)的情况,可以将其转化为标准形式,得到:
    
    G(s) = 10/(3s+1)(s+2)
    
    根据上述公式,可以计算出所需的低通滤波器的时间常数为:
    
    Tf = (Kp+Ki+2Kd)/(Kd+1) = 1.5
    
    因此,所需的低通滤波器的传递函数为:
    
    Gf(s) = 1/(1.5s+1)
    
    代码实现如下:
    
    float Kp = 1.0;
    float Ki = 0.5;
    float Kd = 0.2;
    float Tf = 1.5;
    
    float Gf(float s) {
      return 1.0 / (Tf*s + 1.0);
    }
    

    如果我的建议对您有帮助、请点击采纳、祝您生活愉快

    评论

报告相同问题?

问题事件

  • 创建了问题 4月11日

悬赏问题

  • ¥15 大二软件工程基础大题
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数