当前位置: 首页 > news >正文

汕头网站设计制作公司/针对百度关键词策划和seo的优化

汕头网站设计制作公司,针对百度关键词策划和seo的优化,知页怎么转换wordpress,2023年适合小学生的新闻有哪些用python实现PID控制器 (PyCharm) 文章目录用python实现PID控制器 (PyCharm)PID框图python实现控制器被控对象主函数调参顺序建议程序下载PID框图 PID 的控制框图如下图所示: python实现 控制器 PID的三个参数一般是我们自己设计的,而且一般是固定的&…

用python实现PID控制器 (PyCharm)

文章目录

  • 用python实现PID控制器 (PyCharm)
    • PID框图
    • python实现
      • 控制器
      • 被控对象
      • 主函数
      • 调参顺序建议
      • 程序下载

PID框图

PID 的控制框图如下图所示:

pid

python实现

控制器

PID的三个参数一般是我们自己设计的,而且一般是固定的,所以最好在初始化的时候设置一下。

在具体实现的时候,当前误差需要知道系统的输出和目标值,因此误差作为参数传入。dt是系统的步长,即调节周期,也将其作为参数传入

为了适应某些变参数算法(al,bp),设计一个函数仅用来改变三个参数

控制器代码如下:

class PID_Controller:# 给pid的三个参数赋初值def __init__(self, kp, ki, kd):self.kp = kpself.ki = kiself.kd = kdself.last_error = 0.0self.integral = 0.0def change_para(self, kp, ki, kd):self.kp = kpself.ki = kiself.kd = kddef control_action(self, error, dt):"""Args:error: 当前误差dt: 步长Returns: pid的输出"""p = self.kp * errorself.integral += errori = self.ki * self.integralderivative = (error - self.last_error) / dtd = self.kd * derivativeself.last_error = errorreturn p + i + d

被控对象

被控对象一般是用传递函数表示的,这边可以用欧拉公式实现

对传递函数为:

G(S)=3.1877S2+4900G(S)=\frac{3.1877}{S^2+4900} G(S)=S2+49003.1877

进行变换

import numpy as npclass levitationSys:def __init__(self, ncount, x10, x20, y10, y20):self.x10 = x10self.x20 = x20self.X1 = np.zeros(ncount)self.y10 = y10self.y20 = y20self.Y1 = np.zeros(ncount)self.Y2 = np.zeros(ncount)def system_io(self, i, input, h, f):y1 = self.y10 + h * self.y20y2 = self.y20 + h * (-4900 * self.y10 + 3.1877 * input);self.Y1[i] = self.y10self.Y2[i] = self.y20self.y10 = y1self.y20 = y2return y1

主函数

控制器和传递函数设计好之后,我们只需要建立一个主函数去调用它即可


from pid import PID_Controller
from system import levitationSysimport matplotlib.pyplot as plt
import numpy as npif __name__ == '__main__':wc = 50kp = wc * wc / 3.2ki = 15kd = wc / 1.6ncount = 200000    # 循环次数h = 0.0002  #步长ts = np.zeros(ncount)# 被控对象sys = levitationSys(ncount, 0, 0, 0, 0)# 控制器PID = PID_Controller(kp, ki, kd)gap = 0.0gap_last = 0.0for i in range(ncount):gap = sys.system_io(i, PID.control_action(0.004 - gap_last, h), h, 0)ts[i] = i * hprint(gap)gap_last = gap# 图像输出plt.plot(ts, sys.Y1)plt.xlabel('x-axis')plt.ylabel('y-axis')plt.title('Simple Line Plot')plt.show()

运行结果:

图

调参顺序建议

  1. 先调节比例系数 kp,使系统的响应能够快速达到稳定状态,并具有合理的超调量。因为它是最基本的参数,可以快速反应出控制效果。
  2. 然后调节积分时间常数 ki,使系统的静态误差消失或达到最小值。增加 ki 可以减小稳态误差,但过大的 ki 会引起系统的震荡和不稳定。
  3. 调节微分时间常数 kd,使系统的稳定性和动态响应之间取得平衡。增加 kd 可以使系统更加稳定,减小系统的超调和振荡,但过大的 kd 会引起系统的噪声和抖动。
  4. 最后综合进行微调

需要注意的是,这只是一种基本的调参顺序,实际情况可能因为不同系统的特点而有所不同

程序下载

https://mp.csdn.net/mp_download/manage/download/UpDetailed

http://www.lbrq.cn/news/1301095.html

相关文章:

  • 关注公众号在哪里查找/吉安seo
  • 微信网站建设教程/天津网站排名提升多少钱
  • 哪个公司搭建网站/chatgpt网址
  • 义务网站建设/企业网站优化解决方案
  • 做网站要找什么公司/昆明seo网站管理
  • 苹果cms做的影视网站/关键词检索
  • 内蒙营销型网站建设/展示型网站设计公司
  • 婚纱摄影网站/美国疫情最新数据消息
  • 如何做慕课网站/网站的网站建设
  • dw网站建设视频下载/sem竞价教程
  • 广州中小学安全教育平台/aso关键词覆盖优化
  • 网站做的app有哪些/天津疫情最新情况
  • 网站设计与运营第二次/直播引流推广方法
  • 哪有网站建设的/网站推广的方法和途径
  • 阿里云个人怎么免费做网站/软件推广怎么赚钱
  • 外贸网站建设公司流程/建网站的公司
  • 沧州做网站的专业公司/百度竞价专员
  • 网站建设的行业代码是多少钱/下载优化大师并安装
  • 来年做那些网站致富/人工智能培训班收费标准
  • v电影主题 wordpress/网站关键词优化排名软件系统
  • 想在自己的网站做支付/请输入搜索关键词
  • 外贸营销型网站制作/seo文章生成器
  • 创建网站需要备案吗/百度爱采购关键词优化
  • 营销型网站建设urkeji/免费长尾词挖掘工具
  • 用帝国cms系统怎么做网站/搜索引擎有哪些好用
  • 最早做视频播放网站/竞价排名什么意思
  • 网站建设销售提点20个点/泉州关键词优化软件
  • 运营网站需要多少钱/360seo
  • wordpress 更新 慢/如何对一个网站进行seo
  • 做网站为什么要买服务器/网店运营教学
  • 子线程不能直接 new Handler(),而主线程可以
  • 【Qt开发】Qt的背景介绍(三)-> 认识Qt Creator
  • 柴油机活塞cad【4张】三维图+设计说明书
  • STM32-CAN
  • 从“代码工坊“到“思维引擎“:Claude Code如何重塑编程权力结构
  • MBIST - Memory BIST会对memory进行清零吗?