变周期控制思路

19 篇文章 10 订阅
2 篇文章 0 订阅

举例:热值调节的过程中,调节周期在偏差较小时,可以设置较大些,调节周期在偏差较大时,可以设置较小些。并且在偏差较大时,立刻进入调节(计时器清零)。
-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; 
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
周期硬布线控制器是一种基于硬件实现的控制器,其设计思路是将指令的执行分为若干个阶段(如取指、译码、执行、访存、写回等),每个阶段通过硬布线的方式完成对应的操作。以下是单周期硬布线控制器的实验设计步骤: 1. 确定指令集和指令格式:选择常见的指令集,如MIPS指令集或x86指令集,并确定指令格式,如操作码、寄存器编号、立即数等。 2. 设计指令存储器:指令存储器是用来存储指令的硬件模块,可以使用ROM或RAM实现。根据指令格式和指令集,设计指令存储器的地址和数据宽度,以及访问方式。 3. 实现指令的取指和译码阶段:取指和译码阶段是将指令从指令存储器中取出并解码的阶段。可以使用多路选择器和解码器实现,根据操作码选择对应的控制信号。 4. 实现指令的执行阶段:执行阶段是对指令进行计算或数据处理的阶段。根据操作码和指令格式,选择对应的运算器或ALU,并设计数据通路。 5. 实现指令的访存和写回阶段:访存和写回阶段是访问数据存储器并将结果写入寄存器的阶段。可以使用多路选择器和数据缓存实现,根据指令格式和控制信号选择对应的数据通路。 6. 设计时序逻辑和控制信号:根据不同阶段的需要,设计时序逻辑和控制信号,实现指令的顺序执行。 7. 进行仿真和调试:使用仿真软件对设计的单周期硬布线控制器进行仿真和调试,验证其正确性。 以上是单周期硬布线控制器的实验设计步骤,需要注意硬件资源的限制和时序逻辑的设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨铮...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值