MATLAB动态星星运转模型

MATLAB动态星星运转模型

示意图如下:
MATLAB行星运转示意图

clc
close
clear
k=600;
dk=10; %平面网格密度
a=400;%%长半轴
b=200;%%半焦距
c=sqrt(a^2-b^2);%%短半轴
AA1=[600   0   b
     400,-300,250];%%质量和平面位置
xx=1.1;            %%%画图范围
bb=2;              %%动态圈数
xxx=0.6;           %%%z坐标上移比例
yyy=0.5;           %%%z坐标下移比例
S=pi()*a*c;
for i=1:361        %%生成行星轨迹及引力图
    R(i)=(b^2)/(a-c*sin(i*2*pi()/360));%%存储半径
    [fai]=jd(i,a,b);                   %%θ为椭圆上点P与焦点的连线与y轴夹角
    FF(i)=fai;                         %%存储角度
    AA1(2,2)=R(i)*cos(fai);
    AA1(2,3)=R(i)*sin(fai)-c;
    X(i)=AA1(2,2);                     %%存储空间点位X坐标
    Y(i)=AA1(2,3);                     %%存储空间点位Y坐标
    [XX,YY,Z]=SHDT(AA1 ,k ,dk);
    Data{i} = Z;
end
i=1;
[x,y,z]=sphere;     %%画星球
C=AA1(:,1)/30;      %%星球直径
figure 
set(gcf,'Unit','normalized','Position',[0,0,1,0.95])
h1=mesh(C(1)*x+AA1(i,2),C(1)*y+AA1(i,3),C(1)*z,'EdgeColor','r');%%画恒星
hold on 
h0=mesh(XX,YY,Z) ;                                              %%画引力图
h2=mesh(C(2)*x+AA1(i+1,2),C(2)*y+AA1(i+1,3),C(2)*z,'EdgeColor','g');%%画行星
% h3=plot(X,Y);
hold on
axis([-1*xx*k,xx*k,-1*xx*k,xx*k,-1*(xx-xxx)*k,(xx-yyy)*k])       %%视图范围
grid on 
title('引力模型运转系统');
view(30,30)%%%%视角
k=0;
plot(X,Y);
while k<bb             %%转的圈数
    for i=1:361
    set(h0,'XData',XX,'YData',YY,'ZData',Data{i})
    set(h1,'XData',C(1)*x+AA1(1,2),'YData',C(1)*y+AA1(1,3),'ZData',C(1)*z);
    set(h2,'XData',C(2)*x+X(i),'YData',C(2)*y+Y(i),'ZData',C(2)*z);
%     set(h3,'XData',X(i),'YData',Y(i),'ZData',[0]);
    drawnow  %现在就画
     pause(0.01)%%画图延时时间
    end
k=k+1;
end
%  close
%  plot(FF,R,'*')%%%绘制角度半径图


% clc
% close
% clear

function [XX,YY,Z]=SHDT(A1,a,da)


x=-a:da:a;
[XX,YY]=meshgrid(x);
xx=1.1;%%%画图范围
xxx=0.7;%%%z坐标下移比例
% A1=[50 0 0
%      40,-30,25];%%质量和平面位置
Z=zeros();
C=A1(:,1)/30;%%星球直径
for i=1:length(A1(:,1))
    
    AA=A1(i,:);
    [Z1]=SZ(XX,YY,AA,C(i));
    Z=Z+Z1;
end
% [x,y,z]=sphere;%%画星球
% for j=1:length(A1(:,1))
%     c=A1(j,1)/15;%%星体直径
%     mesh(c*x+A1(j,2),c*y+A1(j,3),c*z,'EdgeColor','g')
% %     hold on
% end
% Z=Z/10;
% Z=Z-max(max(Z))*ones();
% meshc(XX,YY,Z);%%画万有引力面
% axis([-1*xx*a,xx*a,-1*xx*a,xx*a,(-1*xx-xxx)*a,(xx-xxx)*a])
% view(30,30)
end

``

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Matlab动态铣削模型是基于Matlab编程语言和工具箱开发的一种用于模拟和优化铣削过程的工具。铣削是一种常见的金属加工方法,它通过将刀具旋转和移动,将金属工件表面的材料去除,从而实现形状加工和精度加工。 Matlab动态铣削模型可以对铣削过程中各种参数进行建模和优化,从而获得最佳的刀具路径、切削速度、进给速度等参数。模型可以考虑材料的硬度、切削力、切削温度、刀具磨损等因素,从而提高铣削过程的效率和质量。 通过Matlab动态铣削模型,可以实现以下功能: 1. 刀具路径规划:根据工件的形状和几何参数,自动生成最佳的刀具路径,以最小的行程时间和切削力量来完成加工。 2. 切削参数优化:通过优化算法,根据工件材料、刀具类型和刀具磨损等因素,自动计算出最佳的切削速度、进给速度和切削深度等参数,以实现最佳的铣削效果。 3. 动态仿真:通过模拟切削过程中的各种力和温度变化,可以预测刀具的性能和铣削过程的效果,以及材料的剩余应力和变形情况。 4. 刀具寿命估算:根据切削参数和材料性能,可以估计刀具的使用寿命,并及时提醒更换刀具,以避免产生不良的切削效果。 总之,Matlab动态铣削模型是一种强大的工具,它能够模拟和优化铣削过程,提高加工效率和质量,减少材料浪费和刀具磨损。它在工业生产中具有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值