• 变周期控制思路


    举例:热值调节的过程中,调节周期在偏差较小时,可以设置较大些,调节周期在偏差较大时,可以设置较小些。并且在偏差较大时,立刻进入调节(计时器清零)。
    -350<=偏差<=600,调节周期20秒,从零开始计数,大于等于20,清零,计时器等于0,调节一次,其它计数值不调节,当偏差>600 || 偏差<-350时,计数器立刻清零,调节一次,且调节周期由20变为10。

    在这里插入图片描述

    #include "apdefap.h"
    
    int gscAction( void )
    {
    
    double r=GetTagDouble("R");
    double rset=GetTagDouble("RSET");
    double dout;
    
    static int timer;
    static int mode;
    static int modearray[2];
    
    int i;
    int inum;
    int time;
    //modearray[2]数组大小为2
    inum=2;
    if(mode==1)
    	time=10;
    else
    	time=20;
    if(timer!=0)
    {	
    	if(r-rset<-350 || r-rset>600)
    		mode=1;
    	else
    		mode=2;
    }
    //if(modearray[0]-modearray[1]<0)//模式2到模式1(下降沿)
    //	timer=0;
    if(fabs(modearray[0]-modearray[1])>0)
    	timer=0;
    
    if(mode==1 && timer==0)
    	dout = xtoy(r-rset,-1,1, 200,-0.5,-200, 0.5);
    else if(mode==2 && timer==0)
    	dout = xtoy(r-rset,-1,1, 200,-0.5,-200, 0.5);
    else
    	dout = 0;
    
    
    if(timer>=time)
    	timer=0;
    else
    	timer=timer+1;
    
    for(i = inum-1;i>=1;i--)
    {
    	modearray[i]=modearray[i-1];
    }
    modearray[0]=mode;
    
    //modearray[1]=modearray[0];
    //modearray[0]=mode;
    
    SetTagDouble("DOUT",dout);
    SetTagWord("TIMER",timer);
    SetTagWord("MODE",mode);
    return 0; 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    源代码下载地址`
    https://download.csdn.net/download/weixin_37928884/88552808

  • 相关阅读:
    35个Redis企业级性能优化点与解决方案
    它来了,Nacos 2.1.1 正式发布
    Java多线程基础,你可以这样学
    04 `Linux`的VIM
    JVM——5.类文件结构
    所有API接口分类,淘宝/天猫API、1688API、拼多多API、京东API、各大电商API接口及测试平台
    事件修饰符
    Java 实现MD5
    linux定时任务(crontab)启动sh脚本
    Oracle database 创建只读账号(新建用户与只读用户)
  • 原文地址:https://blog.csdn.net/weixin_37928884/article/details/134494738