I wanted to make a CAD model of Archimedean spiral wind turbine. I am new to MATLAB so wanted your help. To generate the profile of 3d plot of blade could you please help?
15 次查看(过去 30 天)
显示 更早的评论
回答(1 个)
Gautam
2024-2-22
Hello Geetansh,
I understand from your question that you want to plot profiles of a 3D model of an Archimedean wind turbine.
Assuming that the “tip angle” mentioned in the question refers to the angle between the plane of rotation of the turbine and the bottom end of the blade, the MATLAB code below generates a 3D plot of the turbine.
a = 0.125; % initial radius (offset from center)
b = -0.255; % distance between arms (increase in radius per radian)
theta = linspace(0, 2*pi, 360); % 360 points per turn
theta2 = theta+120*pi/180; %turns for the second blade at at offset of 120 degrees from the first
theta3 = theta2+120*pi/180; %turns for the second blade at at offset of 120 degrees from the first and second blade
thickness = 5e-3; %Thickness of each blade assumed to be constant
height = 2*1.7; %height of the turbine
height_change = height/(2*pi); %change in height of the turbine per change in angle
% Creating a mesh for the radius of the two blade surfaces according to the
% equation
RadiusGrid_top = [];
RadiusGrid_bottom = [];
for i = linspace(0, 2*pi, 360)
rt = linspace(0,a*exp(b*i + thickness/2),360);
rb = linspace(0,a*exp(b*i - thickness/2),360);
RadiusGrid_top = [RadiusGrid_top;rt];
RadiusGrid_bottom = [RadiusGrid_bottom;rb];
end
RadiusGrid_top = RadiusGrid_top';
RadiusGrid_bottom = RadiusGrid_bottom';
%Creating a grig for the angular values
ThetaGrid = meshgrid(theta);
ThetaGrid2 = meshgrid(theta2);
ThetaGrid3 = meshgrid(theta3);
%Converting the value of grid points from polar to cartesian co-ordinates
%for all three blades of the turbine
XGrid_top = RadiusGrid_top.* cos(ThetaGrid);
YGrid_top= RadiusGrid_top.* sin(ThetaGrid);
XGrid_bottom = RadiusGrid_bottom.* cos(ThetaGrid);
YGrid_bottom= RadiusGrid_bottom.* sin(ThetaGrid);
XGrid_top2 = RadiusGrid_top.* cos(ThetaGrid2);
YGrid_top2= RadiusGrid_top.* sin(ThetaGrid2);
XGrid_bottom2 = RadiusGrid_bottom.* cos(ThetaGrid2);
YGrid_bottom2= RadiusGrid_bottom.* sin(ThetaGrid2);
XGrid_top3 = RadiusGrid_top.* cos(ThetaGrid3);
YGrid_top3= RadiusGrid_top.* sin(ThetaGrid3);
XGrid_bottom3 = RadiusGrid_bottom.* cos(ThetaGrid3);
YGrid_bottom3= RadiusGrid_bottom.* sin(ThetaGrid3);
hinit = 0.5+RadiusGrid_top(end,1)*sin(15*pi/180); %initial height of the blade
ZGrid_top = [];
for i = linspace(0, 2*pi, 360)
z = linspace(0,hinit+(height_change*i),360);
ZGrid_top = [ZGrid_top;z];
end
%Creating a grid for the height of the turbine
ZGrid_bottom = [];
for i = linspace(0, 2*pi, 360)
z = linspace(0,hinit+(height_change*i),360);
ZGrid_bottom = [ZGrid_bottom;z];
end
ZGrid_top = ZGrid_top';
ZGrid_bottom = ZGrid_bottom';
%Plotting the model
surf(XGrid_top, YGrid_top, ZGrid_top, 'FaceColor', 'g', 'EdgeColor', 'none');
hold on;
surf(XGrid_bottom, YGrid_bottom, ZGrid_bottom, 'FaceColor', [0.4 0.4 0.4], 'EdgeColor', 'none');
hold on;
surf(XGrid_top2, YGrid_top2, ZGrid_top, 'FaceColor', 'b', 'EdgeColor', 'none');
hold on;
surf(XGrid_bottom2, YGrid_bottom2, ZGrid_bottom, 'FaceColor', [0.4 0.4 0.4], 'EdgeColor', 'none');
hold on;
surf(XGrid_top3, YGrid_top3, ZGrid_top, 'FaceColor', 'm', 'EdgeColor', 'none');
hold on;
surf(XGrid_bottom3, YGrid_bottom3, ZGrid_bottom, 'FaceColor', [0.4 0.4 0.4], 'EdgeColor', 'none');
hold off;
xlabel('X');
ylabel('Y');
zlabel('Z');
The figure below shows the output generated
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1624228/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1624233/image.png)
You can use the “view” function to adjust the viewing angle to view specific profiles.
You can extract the X, Y and Z coordinate data and export the data to a file in a format that can be converted to a standard 3D model format to be imported to CAD or other 3D modelling software.
For more information on 3D plots, kindly refer to the following MathWorks documentation:
- meshgrid: https://www.mathworks.com/help/matlab/ref/meshgrid.html?searchHighlight=meshgrid&s_tid=srchtitle_support_results_1_meshgrid
- surf: https://www.mathworks.com/help/matlab/ref/surf.html?searchHighlight=surf&s_tid=srchtitle_support_results_1_surf
- view: https://www.mathworks.com/help/matlab/ref/view.html?searchHighlight=view&s_tid=srchtitle_support_results_1_view
Thank You
Gautam Murthy
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Model Import 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!