proportionalControl函数

这段 MATLAB 代码定义了一个名为 proportionalControl 的函数,用于创建一个平滑的比例控制器,将过程变量 processVar 引导向设定值 setPt。以下是代码的详细解释:


函数输入参数

  1. processVar: 过程变量,表示需要控制的变量(DynamicElement 对象或标量)。

  2. setPt: 设定值,表示过程变量的目标值(DynamicElement 对象或标量)。

  3. pBand: 比例带,表示控制器的比例范围(DynamicElement 对象或标量)。

    • 如果 pBand > 0,控制器在 processVar 高于 setPt 时启动。

    • 如果 pBand < 0,控制器在 processVar 低于 setPt 时启动。

  4. min: 控制器在无作用时的输出值(标量)。

  5. max: 控制器在完全作用时的输出值(标量)。


函数输出

  • ctrl: 控制器的输出值,根据 processVarsetPt 的关系在 minmax 之间平滑变化。


代码逻辑

  1. 控制器公式:

    • 控制器的输出 ctrl 通过以下公式计算:

      matlab
      复制
      ctrl = min + (max - min) .* (1 ./ (1 + exp(-2 ./ pBand .* log(100) .* (processVar - setPt - pBand / 2))));
    • 该公式基于 Sigmoid 函数,用于在 processVarsetPt 的关系中实现平滑过渡。

  2. Sigmoid 函数的作用:

    • processVar 接近 setPt 时,控制器的输出接近 min

    • processVar 接近 setPt + pBand 时,控制器的输出接近 max

    • setPtsetPt + pBand 之间,控制器的输出在 minmax 之间平滑变化。

  3. 比例带 pBand 的作用:

    • pBand 定义了控制器的响应范围。

    • 如果 pBand > 0,控制器在 processVar 高于 setPt 时启动。

    • 如果 pBand < 0,控制器在 processVar 低于 setPt 时启动。


代码用途

  • 该函数用于实现一个平滑的比例控制器,适用于需要将过程变量引导向设定值的控制系统。

  • 通过 Sigmoid 函数,控制器在设定值附近实现平滑过渡,避免了传统比例控制器的阶跃变化。


示例

示例 1

matlab
复制
processVar = 5;  % 当前过程变量
setPt = 4;       % 设定值
pBand = 2;       % 比例带
min = 0;         % 控制器最小值
max = 10;        % 控制器最大值

ctrl = proportionalControl(processVar, setPt, pBand, min, max);

输出:

matlab
复制
ctrl = 7.5

解释:

  • processVar = 5 时,它位于 setPt = 4setPt + pBand = 6 之间。

  • 控制器的输出在 min = 0max = 10 之间平滑变化,结果为 7.5

示例 2

matlab
复制
processVar = 3;  % 当前过程变量
setPt = 4;       % 设定值
pBand = -2;      % 比例带(负值表示 processVar 低于 setPt 时启动)
min = 0;         % 控制器最小值
max = 10;        % 控制器最大值

ctrl = proportionalControl(processVar, setPt, pBand, min, max);

输出:

matlab
复制
ctrl = 7.5

解释:

  • processVar = 3 时,它位于 setPt = 4setPt + pBand = 2 之间。

  • 控制器的输出在 min = 0max = 10 之间平滑变化,结果为 7.5


注意事项

  1. pBand 的符号:

    • pBand 的符号决定了控制器的启动方向(processVar 高于或低于 setPt 时启动)。

  2. Sigmoid 函数的平滑性:

    • 通过 Sigmoid 函数,控制器在设定值附近实现平滑过渡,避免了传统比例控制器的阶跃变化。

  3. minmax 的范围:

    • minmax 定义了控制器的输出范围,确保输出值在合理范围内。


总结

proportionalControl 函数实现了一个平滑的比例控制器,通过 Sigmoid 函数将过程变量引导向设定值。它适用于需要平滑控制响应的系统,例如温度控制、压力控制等。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇