离散PID控制器的仿真

14日视图(30天)
斯捷潘Podhorsky
斯捷潘Podhorsky 2019年9月11日
你好,
我实现了一个离散PID控制器通过仿真软件用C语言万博1manbetx
s函数。这是我的C代码我插入的文本字段
输出 选项卡中s函数生成器
tmp;/ /临时控制价值
研究;
dup;/ /增加的成比例的部分
酒后驾车;/ /增加的组成部分
无用的;/ /增加的导数部分
;/ /增加的控制价值
dup = Kp [0] * (xD [0] - xD [1]);/ / dup (k) = Kp * [e (k) - e (k - 1))
酒后驾车= (Kp [0] * T [0]) / (2 * Ti [0]) * (xD [0] + xD [1]);/ /酒后驾车(k) = (Kp * T) / (2 * Ti) * (e (k) + e (k - 1))
无用的= (Kp [0] * Td [0]) / T [0] * (xD [0] - 2 * xD [1] + xD [2]);/ /不良(k) = (Kp * Td) / T * [e (k) - 2 * e (k - 1) + e (k-2)]
du = dup +酒后驾车+不良;/ /杜(k)
tmp = xD [3] + du;/ / u (k) = u (k - 1) + du (k)
/ / antiwind-up
如果(tmp > Umax [0]) {
研究= Umax [0];
}其他的如果(tmp < Umin [0]) {
研究= Umin [0];
}其他的{
研究= tmp;
}
y0[0] =研究;
这里是我的C代码插入到文本字段中
离散的更新 选项卡中s函数生成器
xD[0] =情况[0]- u1 [0];/ / e (k) = sp - cv
xD [2] = xD [1];/ / e (k-2) = e (k - 1)
xD [1] = xD [0];/ / e (k - 1) = e (k)
xD [3] = u2 [0];/ /无扰的转变:u (k - 1) = tr
我准备了以下模拟测试
Control_loop.JPG
即控制器控制FOPDT系统传递函数
和传输延迟 。参数
PID控制器设置在以下方式:
worthwile说控制的PID控制器
是饱和的范围 。我选择采样周期
在对系统的时间常数 (采样周期
使用PID算法和ZOH块)。
模拟输出(没有切换控制器输出和手动设置
下面给出控制价值)
Simulation_output.JPG
控制变量震荡,我不明白为什么。同样的设置
控制器的行为中正确模拟PID控制器块从模型库。万博1manbetx
我试过测试计算式采样周期值,但结果是相同的。谁能给我一个建议吗
我做错了什么?
1评论
穆斯塔法sgaban
穆斯塔法sgaban 2022年5月13日
你把Kp的值,Ti, Td吗?
deosnt包含在代码中

登录置评。

答案(0)

s manbetx 845


释放

R2015a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!