0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PID控制器VHDL的制作

454398 来源:wv 2019-10-15 09:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:基本控制理论

PID控制器VHDL的制作

我认为,添加一些基本的控制理论将为想要尝试实施此代码的任何人提供一个良好的基础。

所附的图是一个单回路控制器

r-是参考。这确定了控制器需要去的地方。

e-是错误。这是传感器上的值与参考值之间的差。例如e = r-(传感器的d +输出)。

K-这是控制器。控制器可以由三个项组成。这些项是P,I和D。所有三个项的乘数分别为Kp,Ki和Kd。这些值确定控制器的响应。

P比例。严格的P控制器将具有与电流误差成比例的输出。 P控制器易于实现且工作迅速,但永远不会达到您设置(参考)的值。

I-积分。严格积分的控制器将总结先前的误差,最终将达到所需的参考值。该控制器通常太慢而无法实现。添加P项将减少到达参考点所需的时间。必须考虑对输入采样的时间,积分项是相对于时间进行积分的。

D导数。导数项的输出取决于误差的变化率。该术语通常与P术语或PI术语一起使用。由于这与误差变化率成正比,因此嘈杂的单音会放大其噪声,这可能导致系统不稳定。还必须考虑时间,因为导数项也是关于时间的。

U-这是控制信号。该信号是钻机的输入。在此项目中,u是输入到风扇以改变速度的PWM信号。

G-这是被控制的系统。该系统可以在S或Z域中进行数学建模。该系统可以是n阶,但是对于刚开始使用控制的人来说,应该假设是一阶系统,因为这很容易计算。这是有关在线建模系统的大量信息。根据传感器的采样时间,系统的模型可以是离散的也可以是连续的。这会对控制器产生巨大影响,因此建议对两者进行研究。

d-这是添加到系统中的干扰。干扰是外部力量,系统模型无法解决。一个简单的例子是一架无人驾驶飞机,您希望将其悬停在5米高的阵风处,并将该无人驾驶飞机降落1米,在发生干扰后,控制器将重新定位该无人驾驶飞机。这被称为扰动,因为风是不可重复的,因此无法建模。

要调整控制器,需要命名的规则太多,但我刚开始使用的一些好规则是Cohen Coon和齐格·尼科尔斯(Zieger Nichols)。

在没有精确模型的情况下,对系统建模通常是最重要的部分,因此已设计的控制器将无法根据需要做出响应。

这里应该有足够的信息来了解控制器的工作方式以及一些单独的研究,并且控制器下面的代码可以结合使用这三个术语来实现。

步骤2:编写PID代码

该代码的基本原理位于由于此代码不起作用,但采用了以下链接,并对其进行了修改,但具有许多正确的原则,这些都是很好的起点。原始PID代码有几个错误,例如

连续操作-控制器是继承的离散控制器,因此必须将控制器设置为仅在有新输入可用时才计算所有3个项。此模拟的解决方法是检查自上次以来输入是否已更改。这仅能模拟代码正常工作。

采样时间对积分和微分项没有影响-控制器也没有考虑采样的时间,因此添加了一个称为时间除法器的值以确保积分和导数项在正确的时间间隔内运行。

错误只能是正的-计算错误时还存在一个问题,因为错误永远都不能为负,这意味着当反馈信号超过参考值时,控制器将继续增加输出值应该递减。

3个项的增益值是整数-根据我的经验,我经常发现控制器中3个项的值始终是浮点数,这是因为Basys 3没有必须的浮点数被赋予一个分子值和一个分母值,将作为解决这个问题的工具。

该代码附在下面,它是代码主体和用于模拟代码的测试平台。 zip文件夹包含Vivado中已经存在的代码和测试台,因此可以打开以节省时间。还有一个代码的模拟测试,显示了跟踪参考的输出,这证明该代码可以正常运行。

步骤3:如何为您的系统进行修改

首先,并非所有系统都相同,因此必须分析系统的输入和输出。就我而言,装备的输出为我提供了一个位置值,它是一个模拟信号,系统的输入是一个PWM信号。这意味着需要ADC转换。幸运的是,Basys 3具有内置ADC,因此这没问题,因为这是板载ADC的最大范围,因此红外传感器的输出必须缩小至0V-1V。这是通过使用分压器电路完成的,该分压器电路由1k电阻器构成,该电阻器设置为与1k电阻器串联的3k电阻器。现在,模拟信号在ADC的范围内。风扇的PWM输入能够由Basys 3上的PMOD端口输出直接驱动。

步骤4:利用Basys 3上的I/O

Basys 3上有许多I/O,可以在运行代码时进行更轻松的调试。 I/O设置如下。

七段显示-用于显示基准值和ADC上以伏特为单位的值。七段显示的前两位数字显示ADC值的小数点后两位,因为该值介于0-1V之间。七段显示器上的数字三和四以伏特表示参考值,这也显示小数点后的前两位,因为范围也在0-1V之间。

16个LED-使用LED来显示输出的值,以确保输出饱和并正确更改输出。

步骤5:IR传感器输出上的噪声

传感器输出上有噪声可以解决此问题,因此放置了一个平均块,因为这足够了,需要完成的工作很少。

第6步:总体代码布局

有一部分代码尚未讨论。此代码是称为触发器的时钟分频器。该代码位触发ADC代码进行采样。 ADC代码最多需要2us的时间才能完成,因此将当前输入和先前输入进行平均。求平均值后的1us,控制器将计算P,I和D项。临时连接图中显示了代码和接口的总体布局。

步骤7:测试

该代码已部署在Basys 3上,并记录了以下响应。参考值在2个值之间变化。在随附的完整项目代码中就是这种情况。随附的视频实时显示了此响应。由于控制器是为此区域设计的,因此振荡在管的上部衰减得更快,但由于系统是非线性的,因此控制器在管的下方无法正常工作。

第8步:修改以改进项目

该项目按预期工作,但如果可以扩展该项目,我将进行一些修改

实施数字滤波器以完全衰减噪声

设置ADC代码,平均代码和积分代码以依次触发。

使用其他传感器进行反馈,因为该传感器的非线性响应在该项目中引起了各种各样的问题,但更多的是控制方面而不是编码方面。

步骤9:额外的工作

在整个暑假期间,我为级联控制器编写了代码,并实现了我为单回路PID控制器推荐的修改方案。

对常规PID控制器所做的修改

·FIR过滤器模板实施的系数必须进行更改以实现所需的截止频率。当前的实现是一个5抽头的fir滤波器。

·已经设置了代码计时,以便该滤波器将新的样本传播通过,并在输出准备就绪时触发积分项,该积分项将被触发。

·驱动程序的主for循环也已减少,因为for循环之前花费了7个周期,因此变慢了。降低了控制器的最大运行速度,但是通过减小for循环t 4状态,这意味着代码的主要块可以在4个时钟周期内运行。

测试

此控制器已按预期进行测试和执行,我没有为此证明拍照,因为该项目的这一部分只是为了保持头脑活跃。用于测试的代码以及测试平台将在此处提供,因此您可以在实现之前测试程序。

为什么要使用级联控制器

级联控制器控制系统的两个部分。在这种情况下,级联控制器将具有外部回路,该外部回路是具有来自红外传感器的反馈的控制器。内环具有来自转速计的脉冲之间的时间形式的反馈,该反馈确定风扇的转速。通过实施控制,可以从系统中获得更好的响应。

级联控制器的工作原理是什么?

控制器外环会向内部环控制器馈送一个在波利之间的时间值。然后,该控制器将增加或减少占空比,以达到脉冲之间的期望时间。

在钻机上实施修改。

很遗憾,我无法在我无法访问的情况下在钻机上实施这些修改。我测试了修改后的单环控制器,该控制器可以按预期工作。我尚未测试级联控制器。我相信控制器可以正常工作,但可能需要进行一些细微的修改才能按预期工作。

测试

我无法像以前那样测试控制器难以模拟两个输入源。我在级联控制器上看到的唯一问题是,当外环试图增加提供给内环的设定点时,较大的设定点实际上是风扇的较低RPS,但这可以轻松解决。从设定值信号的最大值(4095-设定值-tacho_result)中取设定值。

第10步:结论

项目开始时我的总体项目功能符合我的预期,因此我对结果感到满意。感谢您抽出宝贵的时间阅读我在VHDL中开发PID控制器的尝试。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • vhdl
    +关注

    关注

    30

    文章

    820

    浏览量

    131338
  • PID控制
    +关注

    关注

    11

    文章

    464

    浏览量

    42154
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    怎样理解变频内置PID控制参数的含义

    变频内置PID控制参数是工业自动化领域中实现精确控制的核心要素,其合理配置直接影响电机调速、压力调节、温度控制等过程的稳定性和响应速度。要
    的头像 发表于 12-06 07:39 710次阅读

    Aerodiode高带宽激光锁定PID控制器

    Aerodiode激光PID伺服控制器产品图 Aerodiode的超高带宽激光锁定PID控制器能够动态最小化系统信号与目标设定值之间的差异。适用于高带宽低噪声
    的头像 发表于 10-22 07:48 165次阅读
    Aerodiode高带宽激光锁定<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>

    CW32电机控制基础——PID控制原理

    将偏差的比例(Proportion)、积分(Integral)和微分(Differential)通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器
    的头像 发表于 09-30 11:44 2072次阅读
    CW32电机<b class='flag-5'>控制</b>基础——<b class='flag-5'>PID</b><b class='flag-5'>控制</b>原理

    一步到位,Moku数字PID控制器实现系统实时调节与验证

    PID控制被广泛应用于实验控制和工业自动化系统中,但在实际调试中,传统的PID控制器往往需要大量计算与经验积累,调节过程既繁琐又耗时。而通过
    的头像 发表于 06-03 12:00 1056次阅读
    一步到位,Moku数字<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>实现系统实时调节与验证

    改进粒子群算法的永磁同步电机PID控制器

    较好的输出增益,振荡较小,抗干扰能力较强。 纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:改进粒子群算法的永磁同步电机PID控制器.pdf【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!
    发表于 05-28 15:44

    改进的BP网络PID控制器在无刷直流电机中的应用

    通过分析学习速率对BP算法的影响,提出一种分层调整学习速率的改进BP 网络算法,并把该方法设计成 PID控制器应用在无刷直流电机控制系统中,仿真结果验证了基于改进的 BP 网络的PID
    发表于 05-28 15:42

    工程机械控制器厂家 控制器国产替代 #国产控制器#控制器厂家#控制器品牌

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年04月29日 14:15:05

    请问什么是“循环”PI 控制器

    您好 Daniel,amclib 文档中提到了“递归”PI 控制器形式,但似乎该行业的术语与基于神经网络的 PID 有关。我怀疑 AMClib 是这种情况。您能否解释一下 amclib 中 PI 控制器的“标准递归形式”到底是什
    发表于 04-03 07:05

    工程机械控制器如何选型?控制器选型指南 #控制器 #车载控制器 #整车控制器 #控制器选型

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年03月14日 10:54:24

    激光 PID 控制器的工作原理与优势

    在激光技术广泛应用的今天,激光设备的性能优劣直接影响着众多领域的生产与科研成果。而激光 PID控制器,凭借其卓越的调控能力,成为激光设备的 “智能核心调控”。
    的头像 发表于 03-12 16:03 914次阅读

    PID控制详解(可下载)

    ,尤其适用于可建立精确数学模型的确定性控制系 统。 在工程实际中,应用最为广泛的调节控制规律为比例、积分、微分控制,简称PID
    发表于 02-27 15:42 6次下载

    资料免费下!PID电机控制系统(控制原理+控制算法+程序范例)

    原理延伸到位置式和增量式的PID算法,以及控制器参数整定的三大方法,全面解析PID的用法和特点,并通过程序的流程和说明让读者轻松可以进行实战练习,并附赠大量程序范例给读者测试与参考。
    发表于 02-27 14:17

    PID发展趋势分析

    摘要:文档中简要回顾了 PID 控制器的发展历程,综述了 PID 控制的基础理论。对 PID 控制
    发表于 02-26 15:27

    PID控制器介绍

    PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。比例(P)调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少 偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。
    发表于 02-26 15:14

    比例谐振(PR)控制器的学习过程记录

    控制器就是比例微分积分(Proportion Integration Differentiation,PID)控制器了。然而,在交流系统中,PID
    的头像 发表于 01-20 10:46 1938次阅读
    比例谐振(PR)<b class='flag-5'>控制器</b>的学习过程记录