这次记录一下用Simulink建模移相全桥DCDC,单电压环仿真到代码生成的问题,目前问题仍然存在,期待以后解决。
输入电压:800V
设计功率:3Kw
起因是这样的,当把模型建好,传递函数计算好,控制器设计好后,仿真出现了以下情况:
最上面是给定电压:14V
可以看到负载突变也能很好的控制住,但是细看下,电压其实不稳定
放大电压波形:
看上去除了固有的纹波,还有很多小波动,刚开始以为是控制器没有设计好,又重新核对了硬件参数,重新计算传递函数,再重新设计了控制器参数,结果没有任何改善,还是能看到电压上有明显小幅度的波动。想想光仿真都这样,生成代码到硬件上会不会更差,于是又想办法。
重新建模,把功率部分和相位拷贝到另一个模型,通过Matlab扫频得到传递函数,再试试
于是把和硬件参数一致的模型拿出来,不管2阶,3阶,4阶都试了个遍,没啥用
还是一样的抖,控制器的带宽也从500Hz尝试到8KHz,效果依旧不明显。
正在一愁莫展之际,抛开一切控制,直接来个开环。就把上图的模型运行下,上图的模型和参数,除了没有控制器,完全一样,运行效果如下:
除了开关纹波,没有波动的现像,好像再一次证明了我设计的补偿器有问题。再反复检查传递函数,补偿器(2P2Z). 依旧没有啥效果。
后面猜测是不是两个模型配置不一样,再一次检查配置,也是一样的,把生成代码的模型也用开环同样的参数来跑一下试试吧!
当看到下面这个图,开环都不稳,另一个模型同样的参数是稳的,这是何解?
看看,大家都是同样的参数,同样的解算器,不同的就是前一个有一个没有使用的补偿器和相关的状态机模型,开环参数也一样,但是一个很光滑,一个很不稳!为了能得到如下的光滑开环波形更换了各种solver,仿真步长没啥用,于是再来个交叉很复制,把带有控制器的模型复制到纯开环的模型,把纯开环的模型复制到带有控制器的模型,结果:只要两个在一起,波形永远不稳定,本来稳定的也不稳定!
到这一步,我尝试了各种方法,看了各种help,尝试了各个solver,依旧不稳定。于是我把生成代码的模型,把补偿器去掉,把各个观测点去掉几乎和纯开环的模型一样了,结果稳了,但我需要控制器仿真验证啊!下面是不同的solver可能会引起的效果,但对于我遇到的情况没啥用。
为什么simulink控制系统仿真时变步长ode45是稳定的但定步长ode3却不稳定? - 知乎
到这一步,没有时间再尝试,直接上硬件测试,因为是按照实际硬件建模,上去直接可以闭环控制。赶紧看看输出电压有没有明显波动。
测试下来松了一口气,输出电压没有像Simiulink仿真表现的一样,输出电压很稳定。
总结:目前还没有找到问题的原因,大概率是Simulink软件问题,或许可以通过什么方式改善这个问题,但是现在还没找到,暂且记下吧。