1
$\开始组$

我正在考虑波动方程位置变化的材料特性

$$m(x)\分数{\部分^2u}{\部分t^2}=\分数{\partial}{\分数x}\左(k(x)\分数{\分数u}{\paratilx}\右),\标签{1}$$

具有$u(t,x)\in\mathbb{R}$对于$t\geq 0美元$$x\英寸[-L,L]$千美元(x)$已知的局部刚度,百万美元(x)$已知的局部密度、初始条件

\开始{align}u(0,x)&=g(x),\标签{2a}\标签{ic1}\\\frac{\partial u}{\partial t}(0,x)&=h(x),\tag{2b}\label{ic2}\结束{对齐}

和边界条件

\开始{align}u(t,-L)&=f(t),\标签{3a}\标签{bc1}\\\压裂{\部分u}{\部分t}(t,L)&=-\sqrt{\压裂{k(L)}{m(L){}\结束{对齐}

具有f(t)美元$已知的时间函数(可能由用户自由选择),这样$\eqref{bc1}$是Dirichlet边界条件$x=-L$、和$\eqref{bc2}$$x=升$非反射边界条件(波只在边界处向右移动)。

我对计算传递函数(或频率响应函数)来自f(t)美元$美元(吨,升)$,因此

$$G(s)=\frac{\mathcal{L}\{u(t,L)\},$$

具有$\mathcal{L}\{f(t)\}(s)$表示拉普拉斯变换属于$f(t)美元$。我对此感兴趣是为了了解空间变化的材料特性对给定频率的传输有何影响。

如何用数字来求解这个传递函数?

$\端组$

1答案1

重置为默认值
1
$\开始组$

为了计算传递函数,可以假设$f(t)=e^{s\,t}$,使用%s美元$表示拉普拉斯变量。使用变量分离$u(t,x)=t(t)\,x(x)$在里面$(1)$产量

$$\压裂{\ddot{T}(T)}{T(T){}=\压裂{\dot{k}(x)\,\dot}x}(x)+k(x)$$

变量分离与第一边界条件(3a)美元$可以使用$T(T)=e^{s\,T}$$X(-L)=1$。这也意味着$c=s^2$,可用于书写$\eqref{sov_eq1}$作为

$$\ddot{X}(X)=\压裂{s^2\,m(X)\,X(X)-\点{k}(X)\,\点{X}(X}){k(X)}。\标签{5}\标签{odex}$$

通过使用变量的分离$T(T)=e^{s\,T}$,第二个边界条件(30亿美元)$也可以写成

$$s,X(L)=-\sqrt{k(L)}{m(L){dot{X}(L)。\标签{6}\标签{odex_bc}$$

二阶常微分方程$\eqref{ode_x}$以及约束条件$X(-L)=1$$\eqref{ode_x_bc}$等价于以下线性“时变”自治系统

$$\左\{\开始{align}\点{z}(x)&=\开始{bmatrix}0 & 1 \\\裂缝{s^2\,m(x)}{k(x){&\\结束{bmatrix}z(x)\\\文本{s.t.}&\\开始{bmatrix}1&0\end{bmatrix}z(-L)=1,\quad\begin{bmatrix}s(矩阵)&\sqrt{\frac{k(L)}{m(L){}\end{bmatrix}z(L)=0,\右端{align}。\标签{7}\标签{LTV}$$

具有$z(x)=\开始{bmatrix}X(x) &\dot{x}(x)\end{bmatrix}^\top$可以注意到$z(升)$间接也是%s美元$传递函数可以用

$$G(s)=\frac{\mathcal{L}\{u(t,L)\}{bmatrix}1&0\end{bmatrix}z(L)\}(s)。\标签{8}\标签{tf}$$


线性时变系统一般没有闭合形式的解析解。因此,为了求解$\eqref{LTV}$然而,该系统是线性的,这意味着最终状态$z(升)$在初始状态下是线性的$z(-L)$根据状态转移矩阵$\Phi(L,-L)$,因此$z(L)=\Phi(L,-L)\,z(-L)$状态转移矩阵的两列可以使用以下公式进行数值计算$\开始{bmatrix}1&0\end{bmatrix}^\top$$\开始{bmatrix}0&1\end{bmatrix}^\top(&1)$作为的初始条件$z(-L)$分别是。一旦近似值为$\Phi(L,-L)$则可以通过求解以下线性方程组来计算初始条件$z(-L)$

$$\开始{bmatrix}\开始{bmatrix}1&0\结束{bmatrix}\\\开始{bmatrix}s&\sqrt{\frac{k(L)}{m(L){}}\end{bmatrix}\Phi(L,-L)\结束{bmatrix}z(-L)=\开始{bmatrix}1\\0\end{bmatrix},\tag{9}\label{LTV_sol}$$

因此,传递函数的值来自$\eqref{tf}$对于给定的%s美元$可以通过求解获得$\eqref{LTV_sol}$对于$z(-L)$和使用$z(L)=\Phi(L,-L)\,z(-L)$.

当存在大量衰减时(因此当$|G |\ll 1$)获得的值$z(升)$将非常小,在这种情况下,获得的数值解可能条件很差。相反,在这种情况下,求解可能更准确$\eqref{LTV}$在相反的方向x美元$方向。例如,通过使用$\hat{z}(x)=z(-x)$,以便从$\eqref{LTV}$可以写为

$$\点{\hat{z}}(x)=\开始{bmatrix}0 & -1 \\\裂缝{-s^2\,m(-x)}{k(-x\结束{bmatrix}\hat{z}(x),标记{10}$$

具有$\hat{z}(-L)=z(L)$,因此计算出的状态转移矩阵为$\Phi(-L,L)$和线性方程组$\eqref{LTV_sol}$会变成

$$\开始{bmatrix}\开始{bmatrix}1&0\结束{bmatrix}\Phi(-L,L)\\\开始{bmatrix}s(矩阵)&\sqrt{\frac{k(L)}{m(L){}}\end{bmatrix}\结束{bmatrix}z(L)=\开始{bmatrix}1\\0\结束{bmatrix}。\标签{11}$$


这可以使用以下代码在Julia中实现:

使用微分方程、控制系统、控制系统标识、绘图主功能(N)欧米茄=经验值(范围(对数(1e-2),对数(1e1),N))G=[eval_TF(1im*omega),对于ω=ω]身体部位(FRD(Omega,G))结束函数eval_TFL=1.0tspan=(-L,L)X0=[1.0 0.0;0.0 1.0]p=s^2b=[1.0 0.0]MdivK,KxdivK=材料参数(L)prob1_back=ODE问题(dx_backward!,X0[:,1],tspan,p)prob2_back=ODE问题(dx_backward!,X0[:,2],tspan,p)sol1=求解(prob1_back,Tsit5();reltol=1e-3,absol=1e-4,saveat=tspan[2])sol2=求解(prob2_back,Tsit5();reltol=1e-3,absol=1e-4,saveat=tspan[2])Phi=[sol1.u[end]sol2.u[end]]A=[b*Phi;[s*sqrt(MdivK)1]]如果是abs。(b*(A\b'))[1]sol1=求解(prob1_back,Tsit5();reltol=1e-10,absol=1e-11,saveat=tspan[2])sol2=求解(prob2_back,Tsit5();reltol=1e-10,absol=1e-11,saveat=tspan[2])Phi=[sol1.u[end]sol2.u[end]]A=[b*Phi;[s*sqrt(MdivK)1]返回(b*(A\b'))[1]其他的prob1_forw=ODE问题(dx_forward!,X0[:,1],tspan,p)prob2_forw=ODE问题(dx_forward!,X0[:,2],tspan,p)sol1=求解(prob1_forw,Tsit5();reltol=1e-10,absol=1e-11,saveat=tspan[2])sol2=求解(prob2_forw,Tsit5();reltol=1e-10,absol=1e-11,saveat=tspan[2])Phi=[sol1.u[end]sol2.u[end]]A=[b;[s*sqrt(MdivK)1]*Phi]return(b*Phi*(A\b'))[1]结束结束函数material_parameters(x)L=1B=5*pi/LMdivK=1#恒定波速KxdivK=-90*sin(B*x)^9#可变阻抗返回MdivK,KxdivK结束函数dx_forward!(dx,x,p,t)MdivK,KxdivK=材料参数(t)dx[1]=x[2]dx[2]=p[1]*MdivK*x[1]-KxdivK*x[2]结束函数dx_backward!(dx,x,p,t)MdivK,KxdivK=材料参数(-t)dx[1]=-x[2]dx[2]=-p[1]*MdivK*x[1]+KxdivK*x[2]结束

例如,它可以生成以下波特图:计算传递函数的波特图

$\端组$

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.