开环条件temporary分支表现很好,dev的PF控制信号有差异
闭环条件下两个分支表现都不好,temporary的快控很差,dev的PF很差
程序中有他们做的一个带滤波器功能的pid模块,输出不太理想,simulink中该部分是基本模块连线得到的
将delay模块增加功能,可以从端口读初始数据,按照simulink中连线
连线中有部分系统成环,dssim会报代数环错误,但是simulink没报。
发现从input port端口读数据时,虽然delay是直通系统,但是此时它对输入依赖的是第二个端口,该端口如果不在环内,环内系统可以确定执行顺序
该环内所有系统是直通系统,且delay的数据部分来源于add,会产生代数环
一时不知道怎么处理,就把14这个delay设置初始值,不从端口读,delay变成非直通,不会有代数环。但是这样就和simulink版的有了一点差异,不过在后面测试时发现差异不大。
最终测试
dev的开环和闭环效果都很好,让他们使用了这个版本的程序
temporary使用该系统仍然快控很差
从上面结果看,dev效果更好,temporary这样设置非连续系统小周期不更新的策略还有用吗?(他们有个问题,用他们的pid模块开环时为什么temporary比dev好?)
我觉得如果建立在认为他们pid有问题的基础上,他问的这个没法回答。(在新的连线版本中temporary和dev的开环都很好)
temporary分支对比dev分支的准确度优势没有了,不过有速度优势,这个系统更新完pid之后因为加了非常多模块(有十几个pid),现在运行很慢。temporary需要七八分钟,dev差不多是15分钟以上。
之前是用开环证明了temporary的效果更好,现在不存在了,还需要设置模块在小周期不更新吗
代数环的判断逻辑
现在delay是固定的两个端口,上边是u,下边是输入端口。如果不使用输入端口,连不连线都不会使用该端口的数据。simulink是使用初始值时,只有一个端口。使用初始端口时,有两个端口。
本文章使用limfx的vscode插件快速发布