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

    文章

    816

    浏览量

    128040
  • PID控制
    +关注

    关注

    10

    文章

    449

    浏览量

    39997
收藏 人收藏

    评论

    相关推荐

    VIDs、PID和固件:使用TI USB设备控制器时的设计决策

    电子发烧友网站提供《VIDs、PID和固件:使用TI USB设备控制器时的设计决策.pdf》资料免费下载
    发表于 09-30 14:52 0次下载
    VIDs、<b class='flag-5'>PID</b>和固件:使用TI USB设备<b class='flag-5'>控制器</b>时的设计决策

    PID调节中的d指的是什么控制器

    (Proportional)、积分(Integral)和微分(Derivative),这三个参数分别对应控制器的三种基本控制作用。 在PID控制器中,D代表微分(Derivative)
    的头像 发表于 09-12 14:48 458次阅读

    工业控制中常用的pid控制器是什么

    PID控制器是一种广泛应用于工业控制领域的控制器,其全称为比例-积分-微分控制器(Proportional-Integral-Derivat
    的头像 发表于 06-30 10:41 798次阅读

    PID控制器与PWM控制器的区别

    在工业自动化和控制系统设计中,PID控制器(比例-积分-微分控制器)和PWM控制器(脉冲宽度调制控制器
    的头像 发表于 06-05 18:25 2493次阅读

    PID控制器在热管理系统中的应用

    在现代工业领域中,热管理系统扮演着至关重要的角色。从电厂的热工过程到各类机械设备的温度控制,热管理系统的准确性和稳定性直接关系到整个系统的运行效率和安全性。PID(比例-积分-微分)控制器作为一种
    的头像 发表于 06-05 16:28 535次阅读

    PID控制器在工业自动化中的应用

    在工业自动化领域中,控制器的应用至关重要,它直接决定了生产过程的稳定性和效率。PID(比例-积分-微分)控制器作为工业自动化控制的核心组件之一,因其结构简单、参数可调、适用性强等优点,
    的头像 发表于 06-05 16:24 1401次阅读

    PID控制器与电阻的区别

    在电子技术和控制系统中,PID控制器和电阻都扮演着重要的角色。然而,它们在功能、工作原理和应用领域等方面存在显著的差异。本文将从多个角度对PID
    的头像 发表于 06-05 16:01 827次阅读

    PID控制器与开关控制器的区别

    在工业自动化控制系统中,PID控制器和开关控制器是两种常见的控制策略。它们各自具有独特的工作原理、应用场景和优缺点。本文旨在详细探讨
    的头像 发表于 06-05 15:50 644次阅读

    PID控制器和PLC的区别

    在工业自动化和过程控制领域,PID控制器(比例-积分-微分控制器)和PLC(可编程逻辑控制器)是两个非常重要的组成部分。它们各自拥有独特的功
    的头像 发表于 06-05 15:32 2619次阅读

    PID控制器中P、I、D的含义

    PID(Proportional-Integral-Derivative)控制器,作为工业自动化领域中最常用的控制算法之一,其广泛应用于各种控制系统中,如温度
    的头像 发表于 06-05 15:30 3520次阅读

    什么是PID控制器?有哪些作用?

    在现代工业自动化控制系统中,PID(比例-积分-微分)控制器无疑是最常见且重要的控制算法之一。PID控制
    的头像 发表于 06-05 15:30 2097次阅读

    什么是pid控制,其控制作用是什么

    信号进行比例、积分和微分运算,从而实现系统的稳定控制和性能优化。 PID控制器由三个部分组成:比例控制器(P),积分控制器(I)和微分
    的头像 发表于 02-01 14:51 2201次阅读

    什么是pid控制原理 pid各个参数对系统的影响

    参数对系统的影响。 一、PID控制原理 PID控制的基本原理是根据反馈信号来调整输出控制量,使得系统的实际输出与期望输出尽可能接近。
    的头像 发表于 01-22 15:35 4772次阅读

    什么是PID控制器?PID控制器控制器中的积分控制是什么?

    PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。 一、PID控制器
    的头像 发表于 01-11 08:35 1370次阅读
    什么是<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>?<b class='flag-5'>PID</b><b class='flag-5'>控制器</b><b class='flag-5'>控制器</b>中的积分<b class='flag-5'>控制</b>是什么?

    基于VHDL的洗衣机控制器的设计

    电子发烧友网站提供《基于VHDL的洗衣机控制器的设计.pdf》资料免费下载
    发表于 11-07 10:28 2次下载
    基于<b class='flag-5'>VHDL</b>的洗衣机<b class='flag-5'>控制器</b>的设计