【机翼形状优化GUI】基于matlab求解机翼形状优化研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

翼型是描述飞机机翼形状的重要参数,在模拟和设计飞行器时经常使用。这里提供了一个4位数的翼型程序,由于输入格式的限制,用户需要指定一个4位数。我们推荐尝试使用0012(对称翼型)和2412(弯曲翼型)进行试验。

迎角(AoA)是指流体(如空气)与物体(如飞机机翼)表面形成的夹角。在此程序中,攻角设置仅用于可视化目的,不会影响坐标文件。如果在面板代码中使用坐标文件,则无需在坐标文件中包含AoA;AoA应该在面板代码本身中设置。这样,您可以使用相同的翼型坐标文件为任何AoA值创建模型。

网格点数指定了用于上表面和下表面的网格点数量。即,如果指定了10个网格点,则上表面和下表面分别有10个网格点,总共有20个网格点。但是需要注意的是,用户使用的最小网格点数是三个。如果只使用两个网格点,则产生的翼型只是一条线,有三个网格点时翼型具有小厚度的钻石形状。要获得精确的形状解析,我们建议使用更大的网格点数。

用户可以指定统一或非统一的网格类型。在统一网格类型中,翼型均匀地从零到一分割。而非统一网格类型可在翼型前缘(LE)和后缘(TE)处聚集更多的网格点。这样做可以在相同数量的数据点下更好地解析LE和TE,这在求解涡流时显得特别重要。推荐用户使用非统一网格类型。

此程序还提供了后缘选项,用户可以选择是否将翼型的后缘关闭或打开。如果关闭翼型的后缘,上表面和下表面的最后一个点具有相同的X和Y值。如果打开翼型的后缘,上表面和下表面的最后一个点拥有相同的X值,但是Y值不同(下表面为上表面的负值)。如果用户将要用于制作模型的激光切割,建议选择开放式后缘,因为这样比较不容易折断。

绘图函数可让用户自由选择翼型的绘制方式。用户可以将其绘制成一条线、圆圈、点,或者填充为一个多边形。使用线条绘制时,可以看到翼型表面上的光滑程度。使用点绘图时,可以更好地观察网格类型的聚类情况。填充的多边形看上去也相当漂亮。

还提供了另一个可供用户使用的功能——显示弧线。如果选中这个选项,程序将会在翼型图上显示红色的弧线以显示翼型的曲率。虽然此选项只是用于可视化,但还是很有用的,用户可以通过它更好地了解翼型的基本参数。

在输入完所有参数后,点击"情节机翼"按钮即可计算并显示翼型坐标。如果您更改了任何输入,都需要重新计算翼型并再次显示它。如果输入的翼型不是由4个数字组成,或者网格点数小于或等于2,则保存数据按钮将被禁用并且无法使用。

📚2 运行结果

部分代码:

% --- Executes just before GUI_NACA_4_Digit_Airfoil is made visible.
function GUI_NACA_4_Digit_Airfoil_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.
function varargout = GUI_NACA_4_Digit_Airfoil_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;

% INITIALIZATION
evalin('base','clear');
evalin('base','clc');

flagPlot        = 1;                                                        % (Flag) indicating whether you can plot
typeNACA        = get(handles.editAirfoil,'String');                        % Type of airfoil [####]
aoa             = str2double(get(handles.editAoA,'String'));                % Angle of attack [deg]
gridPts         = str2double(get(handles.editGridPoints,'String'));         % Number of grid points [#]
radioShowCamber = 0;                                                        % Show camber line or not [1 = Show, 0 = Don't Show]
saveFilename    = get(handles.editSaveFilename,'String');                   % Filename for saving data

% Assign variables into base workspace
assignin('base','flagPlot',flagPlot);
assignin('base','typeNACA',typeNACA);
assignin('base','aoa',aoa);
assignin('base','gridPts',gridPts);
assignin('base','radioShowCamber',radioShowCamber);
assignin('base','saveFilename',saveFilename);
assignin('base','flagPlot',flagPlot);

% Change units for GUI to normalized so we can resize it
set(handles.figure1,'Resize','on');
set(handles.figure1,'Units','Normalized');
set(handles.textTitle,'Units','Normalized');
set(handles.textAirfoil,'Units','Normalized');
set(handles.textAoA,'Units','Normalized');
set(handles.textGridPoints,'Units','Normalized');
set(handles.textGridType,'Units','Normalized');
set(handles.textTE,'Units','Normalized');
set(handles.textPlotAs,'Units','Normalized');
set(handles.editAirfoil,'Units','Normalized');
set(handles.editAoA,'Units','Normalized');
set(handles.editGridPoints,'Units','Normalized');
set(handles.popGridType,'Units','Normalized');

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]范睿,张纯良,孟庆峰.针对大载荷固定翼的机翼平面形状优化研究[J].海峡科技与产业, 2019.

[2]张石强1,陈进,Peter Eecen,程江涛,陆群峰.基于多目标遗传算法的风力机翼型形状优化[J].太阳能学报. 2011,32(08)

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值