MATLAB中针对任务参数识别的无条件优化方法——恒定温度下水温冷却

在MATLAB中研究无条件优化的函数,以解决应用的工程问题:用给定的数学模型结构确定动态系统的参数。

本文针对该主题选择的示例为
工作目的
在MATLAB中研究无条件优化的函数,以解决一个应用的工程问题:用给定的数学模型结构确定动态系统的参数。

主要理论规定
动态系统以各种方式描述,其中之一是常微分方程。
x=f(t,x),x(0)=x0x'=f(t, x), x(0)=x_{0}

在某些情况下,方程式的一般形式是已知的。例如,对于环境温度恒定的冷却物体,牛顿提出了一阶微分方程。
T=K(TTcnv)T(0)=T0\begin{aligned} &T'=K\left(T-T_{cnv}\right)\\ &T(0)=T_{0} \end{aligned}

其中T0是初始温度,Tenv是环境温度,K <0是一个常数,如果一阶方程式(2)不能很好地描述实际过程的动力学,则可以使用二阶方程式。

T=K1(TTcnv)+K2TT(0)=T0\begin{aligned} &T'^{\prime}=K_{1}\left(T-T_{cnv}\right)+K_{2} T'\\ &T(0)=T_{0} \end{aligned}

要求解方程式,我们需要采用普通的柯西形式。为此,您需要引入一个虚拟变量,该变量负责冷却速率r,该变量等于对象温度的一阶导数。然后,方程组将采用以下形式。
{T=rr=K1(TTcnv)+K2rT(0)=T0,r(0)=r0\begin{aligned} &\left\{\begin{array}{l} T^{\prime}=r \\ r^{\prime}=K_{1}\left(T-T_{cnv}\right)+K_{2} r \end{array}\right.\\ &T(0)=T_{0}, r(0)=r_{0} \end{aligned}

更准确地说,如果在方程系统中考虑了其他反馈,则可以选择模型。
{T=K3T+K4rr=K1(TTcnv)+K2rT(0)=T0,r(0)=r0\begin{aligned} &\left\{\begin{array}{l} T^{\prime}=K_{3} T+K_{4} r \\ r=K_{1}\left(T-T_{cnv}\right)+K_{2} r \end{array}\right.\\ &T(0)=T_{0}, r(0)=r_{0} \end{aligned}
为了找到微分方程的系数,必须解决优化问题-通过给定的微分方程,找到参数K或K1,K2,K3和K4,以便方程的解以最佳方式与实验数据匹配。指定数学模型的另一种方法是例如分数阶微分方程。
T(α)=K(TTcnv)T(0)=T0\begin{aligned} &T^{(\alpha)}=K\left(T-T_{cnv}\right)\\ &T(0)=T_{0} \end{aligned}
如果我们想象在α= 0.5时应用分数微分算子会得到整个导数的两倍,那么就可以理解分数阶的含义。在这种情况下,参数K和α被优化。
MATLAB中针对任务参数识别的无条件优化方法——恒定温度下水温冷却
1图1 冷却杯的实验数据
MATLAB中针对任务参数识别的无条件优化方法——恒定温度下水温冷却
2图2 近似结果
MATLAB中针对任务参数识别的无条件优化方法——恒定温度下水温冷却
3fminunc1图3 fminunc方法对优化1阶方程系数的有效性
附上所有程序代码链接
https://download.csdn.net/download/woaihuazelei/12336083