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

    文章

    815

    浏览量

    127682
  • PID控制
    +关注

    关注

    10

    文章

    441

    浏览量

    39702
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    pid控制中的p,i,d的概念及意义

    PID控制器是一种常见的控制算法,它由比例(P)、积分(I)和微分(D)三部分组成。这个控制器通过根据给定的参考输入值和实际输出值的误差来计算输出信号,以实现系统的稳定性和响应速度的权
    的头像 发表于 01-19 15:45 2734次阅读

    什么是PID控制器PID控制器积分控制介绍

    PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。
    的头像 发表于 01-11 18:14 819次阅读
    什么是<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>介绍

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

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

    控制算法PID之比例控制(P)的原理和示例代码

    PID是“比例-积分-微分”的缩写,是一种广泛用于控制系统的反馈控制算法。PID控制器根据测量值与期望值之间的误差来调整
    的头像 发表于 11-01 08:00 1031次阅读
    <b class='flag-5'>控制</b>算法<b class='flag-5'>PID</b>之比例<b class='flag-5'>控制</b>(P)的原理和示例代码

    使用Model Composer设计PID控制器的Versal ACAP应用说明

    电子发烧友网站提供《使用Model Composer设计PID控制器的Versal ACAP应用说明.pdf》资料免费下载
    发表于 09-14 14:30 0次下载
    使用Model Composer设计<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>的Versal ACAP应用说明

    如何使用DSP库中的PID控制器功能

    应用程序: CMISIS-DSP 库是一套通用的信号处理和数学功能, Numicro M4 微控制器已经优化。 该文件描述了如何使用 DSP 库的 PID 控制器功能帮助用户获得 DSP 高性能
    发表于 08-31 07:58

    PID算法在控制系统中的特性和指标

    PID算法广泛的被应用在很多的控制系统中,最终的目的都是希望通过pid控制器实现被控量能稳定在预期的目标值。
    的头像 发表于 08-22 11:05 706次阅读
    <b class='flag-5'>PID</b>算法在<b class='flag-5'>控制</b>系统中的特性和指标

    一种基于Petri网的并行控制器VHDL实现

    Petri网是离散事件系统建模的重要工具,本文使用硬件描述语言VHDL实现了基于Petri网的并行控制器。文中通过一个液位控制系统实例具体介绍了这一方法,并通过仿真波形证明了该方法的正确性。这对于离散事件系统并行
    的头像 发表于 08-03 15:33 319次阅读
    一种基于Petri网的并行<b class='flag-5'>控制器</b>的<b class='flag-5'>VHDL</b>实现

    pid控制器原理 PID控制器调节

    等。自动控制系统可分为开环控制系统和闭环控制 系统。一个控制系统包括控制器、传感器、变送器、执行机构、 输入输出接 口。
    发表于 07-20 15:50 0次下载

    基于BP神经网络的PID控制器之锅炉蒸汽压力系统

    ,分别用传统PID控制器和基于BP神经网络的PID控制器对锅炉蒸汽压力加以控制,并采用MATLAB软件进行仿真。仿真结果对比显示,在基于BP
    发表于 07-19 14:25 1次下载

    S7-300的PID控制调节一

    PID控制器是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。
    发表于 05-26 16:22 1348次阅读
    S7-300的<b class='flag-5'>PID</b><b class='flag-5'>控制</b>调节一

    PID回路控制及闭环控制原理

    PID控制器是应用最广泛的闭环控制器,它根据给定值与被控实测值之间的偏差;按照PID算法计算出控制器的输出量,
    发表于 05-17 13:03 4511次阅读
    <b class='flag-5'>PID</b>回路<b class='flag-5'>控制</b>及闭环<b class='flag-5'>控制</b>原理

    电机控制中的PID

    FOC算法中的电流环,速度环都涉及到PID控制 PID又分位置式PID控制算法和增量式PID
    发表于 05-05 11:51 10次下载
    电机<b class='flag-5'>控制</b>中的<b class='flag-5'>PID</b>