各位论坛的前辈们,向大家请教一个问题
我在一个微电网的能量管理系统的项目,我需要用simulink来搭建微电网的主电路,然后控制环路需要用到JAVA编写的控制程序。大体的背景就是这样,我想向大家请教的问题是如何使得simulink和JAVA程序实时通信呢?
举一个简单的例子就是,假如在simulink中有一个正弦输入,输出是输入的两倍,虽然这很容易用simulink实现,但是我需要将这个处理过程调用外部的JAVA程序来处理。如何将simulink中正弦输入的信号传递给外部的JAVA程序,此时simulink需要等待JAVA处理,等JAVA处理结束之后,将数据传递给simulink,simulink继续下一个步长的仿真,下一个步长的运行过程与此类似。
关于这个问题,我已经研究来一周了,现在有一个想法就是通过S函数来处理这个数据传递。下面介绍一下我的想法,请前辈们指点一下。
hhhh.png (11.19 KB, 下载次数: 8)
2018-7-11 18:35 上传
这是simulink最简单的输入放大两倍的模型,我采用的level1的S-function。
我想在工作区中创建两个数组A和B,其中A数组用来存储输入信号的采样,然后A数组通过matlab自带的JAVA引擎将数据传递给java程序处理。此时通过一个while循环可以控制simulink等待接收java处理。Java处理完放大两倍的程序之后通过引