本帖最后由 风声1923 于 2018-1-17 21:15 编辑
这是Control.com论坛里的一个红毛的回贴,主贴问怎样在PLC中用梯形图实现前馈控制,这里无关紧要,只把回贴翻译过来。
I agree. I have used feed-forward control very successfully many times, starting in the 1970's at Dow Chemical. It can also be termed "open-loopscheduling" or "anticipatory control". 我同意。前馈控制,又称“开环调度”或“超前控制”,从1970年代在DowChemical开始(这哥们貌似已退休),阿拉我已成功应用过好几次。
Using an artillery example, given measured inputs (distance to target, wind speed& direction, performance of gun and shell), you calculate what output response (aim) is needed to hit the target. 以一个火炮控制为例,已知测量量(到目标距离,风速和风向,火炮及炮弹性能),你就可以计算击中目标所需的响应输出。
The amount you miss (error) can be used in a feedback loop - "move 1 deg per 100 m error" (proportional gain) +"move 0.1 deg each miss" (integral gain). 误差量可用在反馈闭环中—“每相差100m移动1度(比例增益)”+“每次有误差移动0.1度(积分增益)”
In practice, you are continuously controlling, so need consider only what output change (delta) is needed for each input change, termed "sensitivity". Innon-linear systems, the sensitivities change with operating condition. 在实践中,你是在不断控制的,所以只需考虑每次输入改变时所需改变的输出,术语叫“灵敏度”。在非线性系统中,灵敏度随工作条件改变。
I find it easier to use algebraic equations in terms of absolute values. But,that is when you have a math model of the system. If experimenting in the control room, you can make delta changes to determine sensitivities. 我发现,用绝对值计算会让代数方程的使用更容易些,但是,这是在你有数学模型的前提下。如果你在控制室做试验,你可以用增量变化的方法来检测灵敏度。
My first application was to adjust steam flow to control a distillation column temperature, given measured inlet and reflux flow-rates and temperatures, i.e.a simple heat balance. 我的第一个(前馈控制)应用是调节蒸汽流量来控制蒸馏柱的温度,已知测量量,入气管和回流管的流速和温度,这就是一个简单的热量平衡。
As the inlet pipe (1 km long) heated from the sun, the FF began reducing the steam so that the column temperature held steady. 当入气管(1km长)因日晒而被加热时,前馈控制就开始减少蒸汽流量,以保持蒸馏柱的温度的稳定。
That was exactly how the Operator's ran the plant, looking at all inputs and adjusting before they caused an error, but their "mental algebra"wasn't as accurate. Of course, a slower feedback loop kept the temperatureright at the setpoint.. 这正是操作工运转车间的方法,观察所有输入,在误差产生之前作出相应的调整,但是,他们“人脑计算”不是那么精确。当然,一个响应速度更慢(与前馈相比)的反馈控制保持着温度在设定值处。
FF is like driving a car by looking ahead and anticipating upcoming curves. Feedback-only is like driving by just looking down at the white line and trying to correct after you realize an error. 前馈控制,就像看着前方开车,能预料前方的弯道。反馈控制,像是只通过(后视镜)看白线来判断是否偏离路线,然后才去矫正。
The prior post explains how to implement in most PLC's. The FF delta can be added to the .Bias term of the PID block (I did in ControlLogix). I think it would beessentially the same to add FF to the control value after PID block sets it. 前一个帖子解释了在大多数PLC中,怎样实现。前馈增量可以加到PID块中的.Bias项(我在ControlLogix中是这样做的)。我想方法基本都是一样的,就是用PID 得到一个控制值后,再把前馈增量加到这个值上。
But,for "bump-less transfer", a PID block adjusts the .Bias term so thecontrol output doesn't jump when going active, so adding FF in later might confusethat. In LD, I used a "math block" (or such, long ago). That washelping a coworker, I much prefer using ST, FBD, and SFC. 但是,对于“无泵传送器”来说,PID块调整.Bias项,让控制输出在激活后不至于跳动,所以加入前馈增量可能会造成扰动。在梯形图编程中,我用“数学块”(或类似的,很久以前了),那是帮同事做的。我更喜欢用ST(结构化文本)、FBD(功能图块),和SFC(顺序功能图)(用的西门子)。
这样有理论、有工程实践的大牛,确实让人佩服,他这个蒸馏柱温度控制,用到前馈,要有数学模型,和八爷那个热压机类似。
|