栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pid(python代码)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pid(python代码)

    class PID:

        def __init__(self,P,I,D,t):
            self.P = P
            self.I = I
            self.D = D
            self.e = 0

            self.e_old_list = [0,0,0,0]
            self.kp = self.P
            self.ki = 0
            self.kd = self.D
            self.Dt = t
            self.limit_up = float('inf')
            self.limit_down = float('-inf')
            self.out = 0
            self.i = 0

        def input(self,e,t):
            self.e = e
            self.Dt = t - self.Dt

        def Integral_separation(self):                              #积分分离
            self.ki = self.I if abs(self.e) < 0.2 else 0

        def FPCDM(self):                                            #四点中心差分法
            self.e_old_list.insert(0, e)
            self.e_old_list.pop()
            self.Dx = (self.e_old_list[0] + 3 * self.e_old_list[1] - 3 * self.e_old_list[2] + self.e_old_list[3]) / 6 * self.Dt * self.kp * self.kd

        def out_separation(self):                                   #输出分离
            self.out = self.out if self.out < self.limit_up else self.limit_up
            self.out = self.out if self.out > self.limit_down else self.limit_down

        def main(self):
            self.Integral_separation()
            self.FPCDM()
            self.i = self.i + self.i * self.ki * self.Dt
            self.out = self.e * self.kp + self.i + self.Dx 
            self.out_separation()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号