优化:调用fmincon在仿真软件(嵌入式块)万博1manbetx

64(30天)
你好,
我要实现一个模型预测控制器模型。万博1manbetx所以我需要解决约束优化问题,从而找到向量mimimises一定多变量函数,约束。(我知道有MPC块在仿真软件,但是我需要实现它自己作为一个更大的仿真软万博1manbetx件模型)的一部分。
在Matlab使用fmincon这是可能的。所以我试着使用嵌入式仿真软件Matlab区块fmincon叫,但这并不工作。万博1manbetx我也试过“coder.extrinsic (fmincon)”代码,但并不奏效。
有人能告诉我如果可以使用fmincon仿真软件模型(因此不工作在00 Matlab文件),或者还有别的选择吗?万博1manbetx还是我必须努力实现这背后的代数函数(二次规划等)在仿真软件自己?万博1manbetx
所有的帮助感激!Maarten
1评论
哈立德
哈立德 2014年11月25日
我知道这是前一段时间,但我想+ 1这个问题。我有一个非常类似的问题的时候。
Maarten我尝试使用coder.extrinsic (fmincon)在MATLAB仿真软件中功能块;万博1manbetx但那是不可能通过处理一个外部函数(这是需要能够运行fmincon)。
有另一个/更好的方法来执行一个仿真软件模型中约束优化(即每个时间步,需要运行一次)。万博1manbetx我熟悉使用约束优化模型的模型参数(即每个目标函数评价模型被称为一次);万博1manbetx但这里我们寻求运行仿真软件模型只有一次,但每个时间步运行万博1manbetx优化一次。
Maarten我拣选的方法似乎是“明显的”一个但不工作。任何指针感激地接受。
——哈立德。

登录置评。

答案(2)

马特奥情景不禁啜泣
马特奥情景不禁啜泣 2018年5月29日
我将同样的答案我给堆栈溢出相同的主题
你需要调用函数最优问题 coder.extrinsic
而不是使用 coder.extrinsic fmincon 功能,我通常编写一个包装器的优化问题,我必须解决 00 Matlab(即文件函数 opt_problem )和声明 coder.extrinsic (“opt_problem”) 在仿真软件Ma万博1manbetxtlab函数。我会给你一个简单的例子:
考虑一下这个模型“模型”,在万博1manbetx每个集成步骤我想解决一些生成数据线性回归问题。优化问题的形式是:
最小化(y - m x - q)²
主题0≤≤1
0≤1
方案很简单,选择回归量调用 fmincon :
让我们看看在回归量:
函数[m q] =回归量(x, y,麦克风,qic)
coder.extrinsic (“opt_problem”);% < -通知编码器
m = 0;
q = 0;
[m q] = opt_problem (x, y,麦克风,qic);包装器调用% < -最优问题
结束
这个函数只是一个外部函数包装器“opt_problem”。让'see(里面有两个功能):
函数[m q] = opt_problem (x, y,麦克风,qic)
fmincon_target = @ (mq)(目标(mq, x, y));
mq = fmincon (fmincon_target,麦克风;qic], []、[] [], [], [0;0],[1;1);
m = mq (1);
q = mq (2);
结束
函数r =目标(mq, x, y)
r =规范(y - xs。* mq (1) - mq (2));
结束
这是所有。正如你所看到的图片,方案和解决方案运行 米,问 参数(在两个显示器)最小化目标函数同时尊重约束(m = 1.2→m_opt = 1)。
3评论
Farshid R
Farshid R 2022年9月28日
你好@ manish库马尔
你能解决你的问题吗?
我有一个类似的问题。

登录置评。


类别

找到更多的在通用应用程序帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!