我想使用Matlab中的微分方程系统在2或3个办公室内的离散时间内解决热平衡问题。因此,我设置了以下等式:
C1*(dT1/dt)=U12*A1*(T1(t)-T2(t))+U13*A2*(T1(t)-T3(t))+H1(t);
C2*(dT2/dt)=U21*A1*(T1(t)-T2(t))+U23*A2*(T2(t)-T3(t))+H2(t)
C,U,A 是参数, T3(t),H1(t)和H2(t)是随时间变化的函数。我想在离散时间内计算T1和T2。除此之外,我想在方程式中涉及恒温器控制。
我已经尝试解决这个问题,但只有一个方程,我得到了线性图。有人可以给我一些指示或建议我需要如何设置并解决它吗?我真的很感谢你的帮助!
谢谢!
答案 0 :(得分:0)
我会使用finite difference作为衍生物。
dT/dt =~ (T(n) - T(n-1))/(dt)
其中T(n)
是时间步n
的温度,dt
是样本之间的时间。
C1*((T1(n) - T1(n-1))/dt)=U12*A1*(T1(n)-T2(n))+U13*A2*(T1(n)-T3(n))+H1(n)
C2*((T2(n) - T2(n-1))/dt)=U21*A1*(T1(n)-T2(n))+U23*A2*(T2(n)-T3(n))+H2(n)
现在,只需解决T1(n)
和T2(n)
的方程组。我使用sympy来做这样简单但乏味的代数。然后只需初始化所有参数并模拟N
步骤的等式,如下所示:
function [T1,T2] = simHeatEqns(N)
dt = ..
U12 = ..
.
.
.
% simulate for N steps
for n=2:N
T1(n) = (A1*A2*T3(n)*U12*U23*dt^2 - A1*A2*T3(n)*U13*U21*dt^2 + A1*C1*T1(n-1)*U21*dt - A1*C2*T2(n-1)*U12*dt + A1*H1n*U21*dt^2 - A1*H2n*U12*dt^2 + A2^2*T3(n)*U13*U23*dt^2 - A2*C1*T1(n-1)*U23*dt - A2*C2*T3(n)*U13*dt - A2*H1n*U23*dt^2 + C1*C2*T1(n-1) + C2*H1n*dt)/(A1*A2*U12*U23*dt^2 - A1*A2*U13*U21*dt^2 + A1*C1*U21*dt - A1*C2*U12*dt + A2^2*U13*U23*dt^2 - A2*C1*U23*dt - A2*C2*U13*dt + C1*C2)
T2(n) = (A1*U21*(-A2*T3(n)*U13*dt + C1*T1(n-1) + H1n*dt)/(A1*U12*dt + A2*U13*dt - C1) - (-A2*T3(n)*U23*dt + C2*T2(n-1) + H2n*dt)/dt)/(A1^2*U12*U21*dt/(A1*U12*dt + A2*U13*dt - C1) + (-A1*U21*dt + A2*U23*dt - C2)/dt)
end
end