在已知风机叶片翼型的情况下,请给出基于MATLAB的BEM计算风机功率和载荷的模型实例
时间: 2023-07-15 12:14:09 浏览: 226
好的,以下是一个基于MATLAB的BEM计算风机功率和载荷的模型实例。
首先,需要准备的数据和信息有:
- 风机叶片的几何信息,包括叶片数、叶片长度、叶片弦长、叶片扭转角、叶片翼型等;
- 风机的运行参数,包括进口风速、转速、气密度等。
接着,可以按照以下步骤进行BEM计算:
1. 根据叶片几何信息,生成叶片的网格模型,并计算叶片表面上的法向量和切向量。
2. 将叶片网格划分为若干个小面元,每个面元的大小可以根据需要调整。
3. 对于每个面元,根据当前的进口风速和叶片的位置(包括了叶片扭转角和转速),计算该面元的流速和迎角。
4. 根据叶片翼型的数据,计算每个面元的升力系数和阻力系数。
5. 根据叶片位置和进口风速,计算该位置的风速分量和气密度。
6. 对于每个面元,根据当前位置的风速分量和气密度,计算该面元的升力和阻力。
7. 将所有面元的升力和阻力进行叠加,得到叶片的总升力和总阻力。
8. 根据当前的转速和总升力,计算风机的扭矩和功率。
9. 根据当前的进口风速和总升力,计算风机的载荷。
下面是一个简单的MATLAB代码示例,可以作为BEM计算的参考:
```matlab
% 风机叶片几何信息
numBlades = 3; % 叶片数
bladeLength = 10; % 叶片长度
chordLength = 1; % 叶片弦长
twistAngle = 10; % 叶片扭转角
% 风机运行参数
windSpeed = 10; % 进口风速
rotationalSpeed = 100; % 转速
density = 1.225; % 气密度
% 计算叶片的网格模型和法向量、切向量
[bladeMesh, bladeNormals, bladeTangents] = generateBladeMesh(numBlades, bladeLength, chordLength, twistAngle);
% 对每个面元进行BEM计算
for i = 1:size(bladeMesh, 1)
% 计算流速和迎角
[flowSpeed, angleOfAttack] = calculateFlowSpeedAndAngleOfAttack(windSpeed, rotationalSpeed, bladeMesh(i,:), bladeTangents(i,:));
% 计算升力系数和阻力系数
[cl, cd] = calculateLiftAndDragCoefficients(angleOfAttack);
% 计算该面元的升力和阻力
[lift, drag] = calculateLiftAndDrag(cl, cd, flowSpeed, chordLength, density);
% 将升力和阻力投影到法向量和切向量上
normalForce = dot(lift, bladeNormals(i,:));
tangentialForce = dot(drag, bladeTangents(i,:));
% 统计总升力和总阻力
totalNormalForce = totalNormalForce + normalForce;
totalTangentialForce = totalTangentialForce + tangentialForce;
end
% 计算扭矩和功率
torque = totalTangentialForce * bladeLength / numBlades;
power = torque * rotationalSpeed * 2 * pi / 60;
% 计算载荷
load = totalNormalForce / bladeLength;
```
需要注意的是,这只是一个简单的示例代码,实际的BEM计算还需要考虑更多的因素,例如叶片的变形、风机的气动噪声等。
阅读全文