专栏
标签
工况改变时,继承上一工况的值
一般问题
发布于 2024-11-13 20:18:12
查看 20过去592天

例如这个代码
if G1G1set
then
fdiandaiti:= feding-1;
else
fdiandaiti:= fdian;
end if;
当G1为待控制流量,G1set为希望得到的流量,通过频率fdiandaiti来控制,feding是额定频率为60HZ,这个代码有个问题就是当工况改变时,它会发生阶跃。我想实现这一功能
当流量G1<G1set 时,fdiandaiti会基于 feding的值随着时间变化逐渐加一,而如果当G1>G1set时, fdiandaiti又会基于前一工况的fdiandaiti减一。反过来也同样能实现。也就是第一秒是基于feding的值调整,之后都按照fdiandaiti来进行更新,该怎么做到呢?

所属专栏:Modelica语言
产品信息:Sysplorer系统建模仿真环境
系统建模
采纳的回答
发布于 2024-11-14 11:36:31

您好,G1=fdiandaiti是否成立?
如果是,可以使用when和pre来进行建模,如下所示

algorithm 
  when sample(0, 1 / fdian) then
    G1 := G1 + 1 / fdian;
  end when;
  when G1 > G1set then
    G1 := G1 - 1;
  elsewhen G1 < G1set then
    G1 := G1 + 1;
  end when;

返回结果如下
image.png

全部回答 1

发布于 2024-11-14 11:36:31

您好,G1=fdiandaiti是否成立?
如果是,可以使用when和pre来进行建模,如下所示

algorithm 
  when sample(0, 1 / fdian) then
    G1 := G1 + 1 / fdian;
  end when;
  when G1 > G1set then
    G1 := G1 - 1;
  elsewhen G1 < G1set then
    G1 := G1 + 1;
  end when;

返回结果如下
image.png

用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天