Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何在MatlabM文件中使用simulink模型的变量?_Algorithm_Simulink_S Function_Matlab - Fatal编程技术网

Algorithm 如何在MatlabM文件中使用simulink模型的变量?

Algorithm 如何在MatlabM文件中使用simulink模型的变量?,algorithm,simulink,s-function,matlab,Algorithm,Simulink,S Function,Matlab,我希望我的关键词能描述我的处境。基本上,我在Simulink中使用Simulink块和S功能块使用SMC(滑模控制)。现在,我想使用DE(差分进化)算法来确定SMC的参数,以获得最佳结果。DE由两个m文件实现,其中一个包含一个目标函数(这需要DE),另一个包含DE算法的其余部分,用于运行。我所做的是,我将一个m文件转换为s函数,因为它需要Simulink模型中的一些变量,我的问题是,现在我想使用另一个m文件(DE算法)中目标函数的值来运行DE进行一些迭代。希望我清楚。 我找到了一些东西,但看起来

我希望我的关键词能描述我的处境。基本上,我在Simulink中使用Simulink块和S功能块使用SMC(滑模控制)。现在,我想使用DE(差分进化)算法来确定SMC的参数,以获得最佳结果。DE由两个m文件实现,其中一个包含一个目标函数(这需要DE),另一个包含DE算法的其余部分,用于运行。我所做的是,我将一个m文件转换为s函数,因为它需要Simulink模型中的一些变量,我的问题是,现在我想使用另一个m文件(DE算法)中目标函数的值来运行DE进行一些迭代。希望我清楚。
我找到了一些东西,但看起来,我正在寻找完全相反的情况。

让我们先定义两个DE文件:

  • DE1:包含目标函数的函数

  • DE2:包含DE算法的其余部分

据我所知,您已将DE2转换为S函数,并希望使用DE1中的变量进行迭代

  • 如果DE1中的变量是常量,则使用block 在Simlink中,可以解决您的问题。只需将这些变量放入 常数块并连接到DE2作为输入
  • 如果DE1中的变量在迭代过程中发生变化,那么 将DE1转换为S函数应该是正确的方法

  • 所以,我的第一个想法是,有一些特殊的原因,您不能将第二个文件转换为Simulink s函数?在这种情况下,恐怕您唯一的选择可能是在每个时间步手动将每个需要的变量保存到工作区。您应该能够使用。