查看: 544|回复: 1
收起左侧

拉丝机专用PID 包含中文注释

邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
//定义常量CONST    k_P: REAL := 0.5;       //比例系数    k_I: REAL := 0.2;       //积分系数    k_D: REAL := 0.1;       //微分系数    T: TIME := T#1S;        //采样时间
//定义变量VAR    pv: REAL := 0.0;        //实际值    sp: REAL := 0.0;        //设定值    err: REAL := 0.0;       //误差    last_err: REAL := 0.0;  //上一次误差    integral: REAL := 0.0;  //积分值    derivative: REAL := 0.0;//微分值    output: REAL := 0.0;    //输出值
//定义函数块FUNCTION_BLOCK PIDVAR_INPUT    setpoint: REAL;         //设定值    process_value: REAL;    //实际值END_VARVAR_OUTPUT    control: REAL;          //PID输出值END_VARVAR    error: REAL := 0.0;     //误差值    last_error: REAL := 0.0;//上一次误差值    integral: REAL := 0.0;  //积分值    derivative: REAL := 0.0;//微分值END_VARBEGIN    //计算误差    error := setpoint - process_value;
[backcolor=rgba(0,0,0,var(--tw-bg-opacity))][color=rgba(217,217,227,var(--tw-text-opacity))][size=0.75]Copy code
//计算积分值integral := integral + (error * T);//避免积分饱和IF integral > 100 THEN    integral := 100;ELSIF integral < -100 THEN    integral := -100;END_IF//计算微分值derivative := (error - last_error) / T;//计算输出值control := (k_P * error) + (k_I * integral) + (k_D * derivative);//保存误差值last_error := error;

END_FUNCTION_BLOCK
//主程序WHILE TRUE DO    //读取实际值    pv := ReadPV();
[backcolor=rgba(0,0,0,var(--tw-bg-opacity))][color=rgba(217,217,227,var(--tw-text-opacity))][size=0.75]Copy code
//调用PID函数块计算控制值PID(setpoint:=sp, process_value:=pv, control:=output);//输出控制值WriteOutput(output);//等待采样时间DELAY T;

END_WHILE
//辅助函数FUNCTION ReadPV: REAL    //读取实际值    RETURN <实际值>;END_FUNCTION
FUNCTION WriteOutput(value: REAL)    //输出控制值END_FUNCTION

点评

表示太深奥了看不懂  发表于 2023-6-2 09:17




上一篇:自封装的上升沿,下降沿功能块
下一篇:循环飞剪凸轮算法

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部