强度计算:数值计算方法之谱方法与有限元方法比较_第1页
强度计算:数值计算方法之谱方法与有限元方法比较_第2页
强度计算:数值计算方法之谱方法与有限元方法比较_第3页
强度计算:数值计算方法之谱方法与有限元方法比较_第4页
强度计算:数值计算方法之谱方法与有限元方法比较_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

强度计算:数值计算方法之谱方法与有限元方法比较1强度计算:数值计算方法概述1.1强度计算的重要性在工程设计与分析中,强度计算是确保结构安全性和可靠性的重要环节。它涉及评估结构在各种载荷作用下抵抗破坏的能力,包括但不限于静态载荷、动态载荷、热载荷等。强度计算的准确性直接影响到工程项目的成功与否,以及人员和财产的安全。1.1.1应用领域航空航天:飞机、火箭的结构设计。土木工程:桥梁、建筑、道路的结构分析。机械工程:汽车、船舶、重型机械的部件强度评估。材料科学:新材料的性能测试与优化。1.1.2面临的挑战复杂几何形状:实际工程结构往往具有复杂的几何形状,难以用解析方法求解。非线性问题:材料的非线性行为、接触问题等增加了计算的难度。多物理场耦合:热、电、磁等物理场的耦合效应,需要综合考虑。1.2数值计算方法概述面对上述挑战,数值计算方法成为解决复杂工程问题的有效工具。这些方法通过将连续问题离散化,转化为一系列可计算的线性或非线性方程组,从而在计算机上实现求解。常见的数值计算方法包括有限元方法(FEM)、谱方法(SpectralMethod)、边界元方法(BEM)等。1.2.1有限元方法(FEM)有限元方法是最广泛使用的数值计算方法之一,它将结构划分为有限数量的单元,每个单元用简单的函数(如多项式)来近似其行为。这种方法能够处理复杂的几何形状和材料非线性,是解决工程问题的首选工具。代码示例#使用Python的FEniCS库进行有限元分析示例

fromfenicsimport*

#创建网格和定义函数空间

mesh=UnitSquareMesh(8,8)

V=FunctionSpace(mesh,'P',1)

#定义边界条件

defboundary(x,on_boundary):

returnon_boundary

bc=DirichletBC(V,Constant(0),boundary)

#定义变分问题

u=TrialFunction(V)

v=TestFunction(V)

f=Constant(1)

a=dot(grad(u),grad(v))*dx

L=f*v*dx

#求解变分问题

u=Function(V)

solve(a==L,u,bc)

#可视化结果

plot(u)

plt.show()1.2.2谱方法(SpectralMethod)谱方法是一种高精度的数值计算方法,它使用全局或局部的正交多项式作为基函数来表示解。与有限元方法相比,谱方法在光滑解的情况下能提供更高的收敛速度,但在处理非光滑解或复杂边界条件时可能不如有限元方法灵活。代码示例#使用Python的SciPy库进行谱方法求解示例

importnumpyasnp

fromscipy.fftpackimportfft,ifft

#定义问题的参数

N=256#离散点数

L=2*np.pi#周期长度

x=np.linspace(0,L,N,endpoint=False)#空间离散点

f=np.sin(x)+0.5*np.sin(2*x)#初始函数

#使用FFT进行谱方法求解

f_hat=fft(f)#求解傅里叶系数

k=np.fft.fftfreq(N)*N*2*np.pi/L#波数

g_hat=-k**2*f_hat#求解导数的傅里叶系数

g=ifft(g_hat)#反变换得到导数

#打印结果

print("原函数的导数近似值:",g)1.2.3比较与选择精度:谱方法在光滑解上精度更高,有限元方法在非光滑解上表现更佳。灵活性:有限元方法在处理复杂几何和边界条件时更灵活。计算效率:谱方法在高维问题上可能更高效,但有限元方法在工程应用中更普及。选择哪种方法取决于具体问题的性质和计算资源的可用性。在实际工程中,有限元方法因其广泛的适用性和成熟的软件支持而被广泛采用,但在某些特定领域,如流体动力学,谱方法因其高精度而受到青睐。2谱方法基础2.1谱方法的定义谱方法是一种数值计算技术,主要用于求解偏微分方程。与有限元方法和有限差分方法不同,谱方法在全局或局部域上使用高阶多项式作为解的逼近函数。这种方法在处理光滑解时特别有效,因为它可以提供比低阶方法更高的精度。谱方法的“谱”一词来源于其在傅里叶级数或正交多项式级数中的应用,这些级数在频谱分析中是常见的。2.1.1原理谱方法的基本思想是将解表示为一组正交函数的线性组合,这些函数在特定的域内具有良好的性质。例如,对于周期性问题,可以使用傅里叶级数;对于非周期性问题,可以使用Chebyshev多项式。通过将偏微分方程中的解表示为这些函数的级数,可以将原问题转化为一组关于级数系数的代数方程,从而简化数值求解过程。2.1.2代码示例假设我们使用Python和NumPy库来实现一个简单的谱方法,求解一维热传导方程:importnumpyasnp

importmatplotlib.pyplotasplt

#定义傅里叶变换函数

deffourier_transform(f,N):

k=np.fft.fftfreq(N,1/N)*2*np.pi

returnnp.fft.fft(f),k

#定义傅里叶反变换函数

definverse_fourier_transform(F):

returnnp.fft.ifft(F)

#定义一维热传导方程的谱方法求解

defspectral_method(N,dt,timesteps):

x=np.linspace(0,2*np.pi,N,endpoint=False)

f=np.sin(x)#初始条件

F,k=fourier_transform(f,N)

fortinrange(timesteps):

F=np.exp(-k**2*dt)*F#热传导方程的傅里叶空间解

f=inverse_fourier_transform(F).real#反变换回物理空间

returnx,f

#参数设置

N=128

dt=0.01

timesteps=100

#求解

x,f=spectral_method(N,dt,timesteps)

#绘图

plt.plot(x,f)

plt.title('一维热传导方程的谱方法解')

plt.xlabel('x')

plt.ylabel('f(x)')

plt.show()此代码示例展示了如何使用傅里叶变换来求解一维热传导方程。通过将解表示为傅里叶级数,我们可以直接在频域中求解方程,然后使用傅里叶反变换将解转换回物理空间。2.2谱方法的数学基础谱方法的数学基础主要涉及正交多项式和傅里叶分析。在谱方法中,解的逼近函数通常选择为正交多项式,如Chebyshev多项式、Legendre多项式或Laguerre多项式。这些多项式在特定的权重函数下是正交的,这意味着它们在积分意义上的内积为零,除了它们自身之外。2.2.1正交多项式正交多项式是谱方法的核心。例如,Chebyshev多项式在区间[-1,1]上是正交的,权重函数为1/TTTn+12.2.2代码示例下面的代码示例展示了如何使用Python和NumPy库生成Chebyshev多项式的前几项:importnumpyasnp

importmatplotlib.pyplotasplt

#定义Chebyshev多项式函数

defchebyshev(n,x):

ifn==0:

returnnp.ones_like(x)

elifn==1:

returnx

else:

return2*x*chebyshev(n-1,x)-chebyshev(n-2,x)

#参数设置

N=5

x=np.linspace(-1,1,100)

#生成多项式

polynomials=[chebyshev(n,x)forninrange(N)]

#绘图

forpolyinpolynomials:

plt.plot(x,poly)

plt.title('Chebyshev多项式的前几项')

plt.xlabel('x')

plt.ylabel('T_n(x)')

plt.legend([f'T_{n}(x)'forninrange(N)])

plt.show()此代码生成了Chebyshev多项式的前几项,并将其可视化,展示了这些多项式的正交性质。2.3谱方法在强度计算中的应用在强度计算中,谱方法可以用于求解结构动力学问题,如振动分析和波传播问题。通过将结构的位移、速度或加速度表示为正交多项式的级数,可以有效地求解结构的动力响应。这种方法在处理具有周期性或准周期性特性的结构时特别有用,因为它可以提供高精度的解,同时减少计算资源的需求。2.3.1例子假设我们使用谱方法来求解一个简单的振动问题,其中结构的位移由一个周期性力驱动。我们可以使用傅里叶级数来表示位移和力,然后求解相应的代数方程组。2.3.2代码示例下面的代码示例展示了如何使用Python和NumPy库来实现一个简单的振动问题的谱方法求解:importnumpyasnp

importmatplotlib.pyplotasplt

#定义周期性力函数

defperiodic_force(t,omega,amplitude):

returnamplitude*np.sin(omega*t)

#定义傅里叶级数系数计算函数

deffourier_coefficients(f,N):

T=2*np.pi/omega

dt=T/N

t=np.linspace(0,T,N,endpoint=False)

F=np.fft.fft(f(t))

returnF/N

#定义傅里叶级数重构函数

deffourier_series(t,F,omega):

N=len(F)

series=np.zeros_like(t)

forninrange(N):

series+=F[n]*np.exp(1j*n*omega*t)

returnseries

#参数设置

omega=1

amplitude=1

N=128

#计算力的傅里叶系数

F=fourier_coefficients(lambdat:periodic_force(t,omega,amplitude),N)

#重构位移的傅里叶级数

t=np.linspace(0,2*np.pi/omega,1000)

u=fourier_series(t,F,omega)

#绘图

plt.plot(t,u.real)

plt.title('周期性力驱动下的结构位移')

plt.xlabel('时间')

plt.ylabel('位移')

plt.show()此代码示例展示了如何使用傅里叶级数来求解一个由周期性力驱动的结构振动问题。通过计算力的傅里叶系数,我们可以重构结构的位移,从而得到其动力响应。总结,谱方法是一种强大的数值计算技术,它在强度计算和解决偏微分方程中具有广泛的应用。通过使用正交多项式或傅里叶级数作为解的逼近函数,谱方法可以提供高精度的解,同时简化数值求解过程。3有限元方法基础3.1有限元方法的定义有限元方法(FiniteElementMethod,FEM)是一种数值计算技术,主要用于求解复杂的工程问题,如结构分析、热传导、流体动力学等。它将连续的物理系统离散化为有限数量的单元,每个单元用一组节点来表示,通过在这些节点上求解偏微分方程的近似解,然后将这些解组合起来,得到整个系统的解。这种方法能够处理形状复杂、边界条件多变的工程问题,是现代工程分析中不可或缺的工具。3.2有限元方法的数学基础3.2.1基本原理有限元方法基于变分原理和加权残值法。在结构分析中,通常使用的是最小势能原理。对于一个弹性体,其总势能由内部能量(应变能)和外部能量(外力做功)组成。在平衡状态下,总势能达到极小值。有限元方法通过将结构离散化为多个小单元,然后在每个单元上应用最小势能原理,从而得到整个结构的平衡状态。3.2.2离散化过程几何离散化:将连续的结构体分割成有限数量的单元,如梁、壳、实体等。函数逼近:在每个单元内,用插值函数来逼近位移场,这些插值函数通常由单元节点的位移来定义。方程建立:基于最小势能原理,建立每个单元的平衡方程,然后将所有单元的方程组合起来,形成整个结构的平衡方程组。求解:通过数值方法(如直接求解或迭代求解)求解方程组,得到节点位移,进而计算出应力、应变等物理量。3.2.3示例代码:使用Python实现简单梁的有限元分析importnumpyasnp

#定义单元刚度矩阵

defelement_stiffness_matrix(E,I,L):

"""

E:弹性模量

I:惯性矩

L:单元长度

"""

k=E*I/L**3*np.array([[12,6*L,-12,6*L],

[6*L,4*L**2,-6*L,2*L**2],

[-12,-6*L,12,-6*L],

[6*L,2*L**2,-6*L,4*L**2]])

returnk

#定义全局刚度矩阵

defglobal_stiffness_matrix(elements):

"""

elements:单元列表,每个单元包含节点、弹性模量、惯性矩和长度

"""

n_nodes=max([max(e[0])foreinelements])+1

n_dofs=2*n_nodes

K=np.zeros((n_dofs,n_dofs))

foreinelements:

nodes,E,I,L=e

k=element_stiffness_matrix(E,I,L)

foriinrange(4):

forjinrange(4):

K[2*nodes[0]+i,2*nodes[0]+j]+=k[i,j]

K[2*nodes[0]+i,2*nodes[1]+j]-=k[i,j]

K[2*nodes[1]+i,2*nodes[0]+j]-=k[i,j]

K[2*nodes[1]+i,2*nodes[1]+j]+=k[i,j]

returnK

#定义单元

elements=[([0,1],200e9,0.01,1),

([1,2],200e9,0.01,1)]

#计算全局刚度矩阵

K=global_stiffness_matrix(elements)

print("全局刚度矩阵:\n",K)3.3有限元方法在强度计算中的应用在强度计算中,有限元方法主要用于预测结构在各种载荷下的响应,包括位移、应力和应变。通过将结构离散化,可以精确地模拟结构的几何形状和材料属性,从而得到更准确的计算结果。有限元分析可以用于静态分析、动态分析、热分析、电磁分析等多种工程问题。3.3.1静态分析静态分析是最常见的有限元分析类型,用于求解在静态载荷作用下结构的位移、应力和应变。静态分析假设载荷是缓慢施加的,结构的响应是时间无关的。3.3.2动态分析动态分析用于求解在动态载荷作用下结构的响应,如振动、冲击等。动态分析需要考虑时间因素,通常使用时间步进法或频域分析法。3.3.3热分析热分析用于求解结构在热载荷作用下的温度分布,以及由此产生的热应力和热变形。热分析可以是稳态的,也可以是瞬态的。3.3.4电磁分析电磁分析用于求解结构在电磁场作用下的响应,如电磁感应、电磁辐射等。电磁分析通常用于电子设备、电力系统等领域的设计和分析。有限元方法在强度计算中的应用,不仅限于上述几种类型,还可以扩展到多物理场耦合分析、非线性分析、优化设计等领域,是现代工程设计和分析的重要工具。4谱方法与有限元方法的比较4.1方法的精度对比4.1.1原理谱方法和有限元方法在处理强度计算问题时,两者在精度上的对比主要取决于它们如何逼近解空间。谱方法利用全局多项式来逼近解,而有限元方法则基于局部多项式。谱方法的精度通常随着多项式的阶数增加而显著提高,这在光滑解的情况下尤为明显。有限元方法的精度则依赖于网格的细化和多项式的阶数。4.1.2内容谱方法:在光滑解的情况下,谱方法可以达到指数级收敛,这意味着随着多项式阶数的增加,误差以非常快的速度减小。谱方法的这种高精度特性使其在处理具有高阶连续导数的解时非常有效。有限元方法:有限元方法的收敛速度通常为代数级,即误差与网格尺寸的幂次成正比。然而,通过增加网格的密度或提高单元内的多项式阶数,有限元方法也可以达到较高的精度。4.1.3示例考虑一个简单的强度计算问题,即求解一维弹性杆的位移,其微分方程为:d其中,ux是位移,fx是外力分布,L谱方法示例使用Chebyshev多项式作为基函数,我们可以将位移表示为:u其中,Tkx是第k阶Chebyshev多项式,aimportnumpyasnp

importmatplotlib.pyplotasplt

fromscipy.specialimporteval_chebyt

#定义外力分布函数

deff(x):

returnnp.sin(2*np.pi*x)

#定义Chebyshev谱方法求解

defchebyshev_spectral(N,L):

x=np.linspace(-1,1,N+1)#Chebyshev节点

x=(L/2)*(x+1)#映射到[0,L]区间

a=np.zeros(N+1)#初始化系数

a[0]=np.trapz(f(x),x)/L#计算常数项

forkinrange(1,N+1):

a[k]=2*np.trapz(f(x)*eval_chebyt(k,x),x)/L

returna

#参数设置

N=10

L=1

#求解

a=chebyshev_spectral(N,L)

x=np.linspace(0,L,100)

u=np.sum([a[k]*eval_chebyt(k,(2*x/L-1))forkinrange(N+1)],axis=0)

#绘图

plt.figure()

plt.plot(x,u,label='SpectralSolution')

plt.plot(x,f(x),'r--',label='ForceDistribution')

plt.legend()

plt.show()有限元方法示例使用线性单元,我们可以将位移表示为:u其中,ϕix是局部线性基函数,uimportnumpyasnp

importmatplotlib.pyplotasplt

#定义外力分布函数

deff(x):

returnnp.sin(2*np.pi*x)

#定义有限元方法求解

deffinite_element(N,L):

x=np.linspace(0,L,N+1)#网格节点

dx=x[1]-x[0]#网格尺寸

A=np.zeros((N+1,N+1))#系数矩阵

b=np.zeros(N+1)#右手边向量

foriinrange(N):

A[i,i]+=2/dx**2#刚度矩阵元素

A[i,i+1]-=1/dx**2

A[i+1,i]-=1/dx**2

A[i+1,i+1]+=2/dx**2

b[i]+=np.trapz(f(x[i:i+2]),x[i:i+2])

b[i+1]+=np.trapz(f(x[i:i+2]),x[i:i+2])

u=np.linalg.solve(A,b)#求解线性方程组

returnu

#参数设置

N=10

L=1

#求解

u=finite_element(N,L)

x=np.linspace(0,L,100)

u_interp=erp(x,np.linspace(0,L,N+1),u)

#绘图

plt.figure()

plt.plot(x,u_interp,label='FiniteElementSolution')

plt.plot(x,f(x),'r--',label='ForceDistribution')

plt.legend()

plt.show()4.2计算效率的比较4.2.1原理谱方法和有限元方法在计算效率上的差异主要体现在矩阵的构造和求解上。谱方法通常产生满矩阵,而有限元方法则产生稀疏矩阵。满矩阵的求解通常比稀疏矩阵更耗时,尤其是在高维问题中。然而,谱方法的高精度意味着在达到相同精度时,可能需要较少的未知数。4.2.2内容谱方法:谱方法的矩阵构造和求解可能比有限元方法更耗时,尤其是在高维问题中。但是,由于谱方法的高精度,它可能需要较少的未知数来达到相同的精度水平。有限元方法:有限元方法的矩阵通常是稀疏的,这使得求解过程相对高效,尤其是在大规模问题中。然而,为了达到高精度,可能需要更细的网格,从而增加计算成本。4.3适用范围的讨论4.3.1原理谱方法和有限元方法在适用范围上的差异主要取决于问题的性质。谱方法在处理光滑解和规则几何形状的问题时表现优异,而有限元方法则更适合处理复杂几何形状和非光滑解的问题。4.3.2内容谱方法:谱方法最适合于解空间光滑且几何形状规则的问题。它在流体力学、电磁学和量子力学等领域中广泛应用,特别是在求解偏微分方程时。有限元方法:有限元方法在处理复杂几何形状和非光滑解的问题时更为灵活。它广泛应用于结构力学、热传导、电磁学和流体力学等领域,特别是在工程设计和分析中。4.3.3结论在选择谱方法或有限元方法时,应考虑问题的特性、所需的精度和计算资源。谱方法在处理光滑解和规则几何形状时提供更高的精度,但可能需要更多的计算资源。有限元方法在处理复杂几何形状和非光滑解时更为灵活,且在大规模问题中计算效率更高。5实例分析5.1谱方法解决强度问题案例5.1.1案例描述考虑一个简单的强度计算问题:一维弹性杆的振动。假设杆的长度为1米,两端固定,且受到周期性外力的作用。我们使用谱方法来求解此问题,以展示谱方法在处理强度计算中的应用。5.1.2数学模型弹性杆的振动可以由以下偏微分方程描述:∂其中,ux,t是杆在位置x和时间t5.1.3谱方法求解谱方法通过将解表示为一组正交函数的线性组合来求解偏微分方程。对于一维弹性杆问题,我们可以使用傅里叶级数展开。步骤1:离散化将空间域x离散化为N个点,使用傅里叶级数表示位移uxu步骤2:时间离散化使用时间离散化方法(如欧拉法或龙格-库塔法)来求解时间导数。步骤3:求解系数将偏微分方程代入傅里叶级数表示中,求解系数uk5.1.4代码示例importnumpyasnp

importmatplotlib.pyplotasplt

#参数设置

N=128#空间离散点数

L=1.0#杆的长度

c=1.0#波速

dt=0.01#时间步长

t_end=1.0#模拟结束时间

#空间离散化

x=np.linspace(0,L,N,endpoint=False)

#初始条件

u0=np.sin(2*np.pi*x)

#傅里叶系数

u_hat=np.fft.fft(u0)

#时间离散化

t=np.arange(0,t_end,dt)

#主循环

fortiint:

#计算傅里叶系数的时间导数

d2u_hat=-np.pi**2*(np.arange(-N/2,N/2)[:,None]**2)*u_hat

du_hat=c**2*d2u_hat

#更新傅里叶系数

u_hat+=dt*du_hat

#反变换得到位移

u=np.fft.ifft(u_hat).real

#绘图

plt.figure()

plt.plot(x,u)

plt.title('谱方法求解弹性杆振动')

plt.xlabel('位置x')

plt.ylabel('位移u')

plt.show()5.1.5解释此代码示例使用了傅里叶级数来表示弹性杆的位移,并通过时间离散化求解了位移随时间的变化。初始条件为一个正弦波,模拟结束后,我们得到了杆在不同位置的位移。5.2有限元方法解决强度问题案例5.2.1案例描述同样考虑一维弹性杆的振动问题,但这次我们使用有限元方法来求解。5.2.2数学模型有限元方法将弹性杆离散为多个小段,每段称为一个单元。在每个单元内,位移ux5.2.3有限元方法求解步骤1:离散化将杆离散为N个单元,每个单元有两个节点。步骤2:建立刚度矩阵对于每个单元,建立局部刚度矩阵,并将其组合成全局刚度矩阵。步骤3:求解使用时间离散化方法(如欧拉法或龙格-库塔法)求解节点位移。5.2.4代码示例importnumpyasnp

importmatplotlib.pyplotasplt

#参数设置

N=128#单元数

L=1.0#杆的长度

E=1.0#弹性模量

rho=1.0#密度

dt=0.01#时间步长

t_end=1.0#模拟结束时间

#空间离散化

x=np.linspace(0,L,N+1)

#初始条件

u0=np.sin(2*np.pi*x)

#刚度矩阵

K=np.zeros((N+1,N+1))

foriinrange(N):

K[i:i+2,i:i+2]+=E/L*np.array([[1,-1],[-1,1]])

#质量矩阵

M=np.zeros((N+1,N+1))

foriinrange(N):

M[i:i+2,i:i+2]+=rho*L/2*np.array([[1,0],[0,1]])

#时间离散化

t=np.arange(0,t_end,dt)

#主循环

u=u0.copy()

fortiint:

#计算加速度

a=np.linalg.solve(M,np.dot(K,u))

#更新位移

u+=dt**2*a

#绘图

plt.figure()

plt.plot(x,u)

plt.title('有限元方法求解弹性杆振动')

plt.xlabel('位置x')

plt.ylabel('位移u')

plt.show()5.2.5解释此代码示例使用有限元方法求解弹性杆的振动问题。我们首先建立了刚度矩阵和质量矩阵,然后通过时间离散化求解了节点位移。初始条件同样为一个正弦波,模拟结束后,我们得到了杆在不同位置的位移。5.3案例对比分析5.3.1分析谱方法和有限元方法在求解强度计算问题时各有优势。谱方法在处理周期性或光滑解时非常有效,因为它可以提供高精度的解,尤其是在解的频谱集中在低频时。然而,对于非周期性或具有复杂边界条件的问题,谱方法可能需要更多的计算资源。有限元方法则更加灵活,可以处理各种形状和边界条件的问题。它通过将结构离散为多个单元来近似解,这使得它在处理非均匀材料或复杂几何形状时非常有用。然而,有限元方法的精度通常低于谱方法,尤其是在处理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论