在MATLAB中研究无条件优化的函数,以解决应用的工程问题:用给定的数学模型结构确定动态系统的参数。
本文针对该主题选择的示例为
工作目的
在MATLAB中研究无条件优化的函数,以解决一个应用的工程问题:用给定的数学模型结构确定动态系统的参数。
主要理论规定
动态系统以各种方式描述,其中之一是常微分方程。 x′=f(t,x),x(0)=x0
在某些情况下,方程式的一般形式是已知的。例如,对于环境温度恒定的冷却物体,牛顿提出了一阶微分方程。 T′=K(T−Tcnv)T(0)=T0
其中T0是初始温度,Tenv是环境温度,K <0是一个常数,如果一阶方程式(2)不能很好地描述实际过程的动力学,则可以使用二阶方程式。
T′′=K1(T−Tcnv)+K2T′T(0)=T0
要求解方程式,我们需要采用普通的柯西形式。为此,您需要引入一个虚拟变量,该变量负责冷却速率r,该变量等于对象温度的一阶导数。然后,方程组将采用以下形式。 {T′=rr′=K1(T−Tcnv)+K2rT(0)=T0,r(0)=r0
更准确地说,如果在方程系统中考虑了其他反馈,则可以选择模型。 {T′=K3T+K4rr=K1(T−Tcnv)+K2rT(0)=T0,r(0)=r0
为了找到微分方程的系数,必须解决优化问题-通过给定的微分方程,找到参数K或K1,K2,K3和K4,以便方程的解以最佳方式与实验数据匹配。指定数学模型的另一种方法是例如分数阶微分方程。 T(α)=K(T−Tcnv)T(0)=T0
如果我们想象在α= 0.5时应用分数微分算子会得到整个导数的两倍,那么就可以理解分数阶的含义。在这种情况下,参数K和α被优化。
图1冷却杯的实验数据
图2近似结果
图3fminunc方法对优化1阶方程系数的有效性
附上所有程序代码链接
https://download.csdn.net/download/woaihuazelei/12336083
|
请发表评论