Matlab 目标函数作为Simulink模型实现的快速数学优化

Matlab 目标函数作为Simulink模型实现的快速数学优化,matlab,mathematical-optimization,simulink,s-function,Matlab,Mathematical Optimization,Simulink,S Function,我有一个Simulink模型形式的目标函数,它需要模拟时间来计算成本。我希望使用类似于fmincon的方法或更简单、直接、自定义的编写方法(例如黄金分割法)来找到最佳输入参数 更具体地说(我不确定这些信息是否有用): 我有一个复杂的电机动态模型,它将电机的机械速度和一些描述如何控制/供应的参数作为输入。作为输出,它返回扭矩波形以及功率损耗。根据这些计算出的“成本”基本上与损耗、转矩脉动等成比例。我想找到最佳控制参数,使“成本”最小 问题是,这将是一个更大的搜索算法的一部分,所以它需要快速。

我有一个Simulink模型形式的目标函数,它需要模拟时间来计算成本。我希望使用类似于
fmincon
的方法或更简单、直接、自定义的编写方法(例如黄金分割法)来找到最佳输入参数


更具体地说(我不确定这些信息是否有用):

我有一个复杂的电机动态模型,它将电机的机械速度和一些描述如何控制/供应的参数作为输入。作为输出,它返回扭矩波形以及功率损耗。根据这些计算出的“成本”基本上与损耗、转矩脉动等成比例。我想找到最佳控制参数,使“成本”最小


问题是,这将是一个更大的搜索算法的一部分,所以它需要快速。 最好的方法是什么

我尝试过并得出结论,从MATLAB运行仿真速度太慢,很可能是因为两者之间的通信速度太慢,而且Simulink每次都必须编译模型。我的下一个方法是以某种方式制作一个s功能块,作为“模拟控制器”,启用、发送功能调用和重置信号到子系统,以及在确定最佳参数时向“停止模拟”块发送信号。有没有更好、更简单的方法