%% Section 0
clear all;
clc;
close all;
xa=[92.58 132.58 40 -40 -132.58 -92.58];
ya=[99.64 30.36 -130 -130 30.36 99.64];
za=23.1*ones(1,6);
xb=[30 78.22 48.22 -48.22 -78.22 -30];
yb=[73 -10.52 -62.48 -62.48 -10.52 73];
zb=-37.1*ones(1,6);
roumin=454.5*ones(1,6);
roumax=504.5*ones(1,6);
u=xa-xb;%圆心位置x
v=ya-yb;%圆心位置y
w=za-zb;%球心位置z
zmin=min(w);%工作空间最小高度
zmax=max(w)+max(roumax);%工作空间最大高度
jd=1e-9;%设置判断重合的精度
ratio=10;%离散圆弧的点数
ratio_z=16;%离散过z轴的截面
frame=1;
%% Section 1
%等z值绘图
%———————————————————————————————————————————————————————————————————————
ARCset_local=[];%初始化弧表
s_local=0;%初始化弧表数量
AREA=[];
figure(1);
for z=zmin:2:zmax
%display(['z = ',num2str(z),', initializing...']);
CIRset=[];%初始化圆集合
flgset=[];%初始化内外边界标识集合1为外-1为内
Flagset=[];%初始化标识,用于弧表
%display('Generating circle sets...');
cirsets;%生成圆表,得到同一z坐标下的圆表CIRset
ARCset=[];%初始化弧集合
%display('Generating arc sets...');
arcsets;%生成交集边界弧,得到同一z坐标下的弧表ARCset
%将同一z坐标下交集边界弧集ARCset放入总弧表ARCset_local中
if(~isempty(ARCset))
s_ztemp=size(ARCset,2);
ARCset_local(:,s_local+1:s_local+s_ztemp)=[ARCset;z*ones(1,s_ztemp)];
AREA=[AREA;calarea(ARCset,Flagset),z];
s_local=s_local+s_ztemp;
%-----------------------
%display('Generating point sets...');
%PTset=[];
for i=1:s_ztemp
t_temp=linspace(ARCset(4,i),ARCset(5,i),ratio);
r_temp=ARCset(3,i);
x_temp=ARCset(1,i)+r_temp*cos(t_temp);
y_temp=ARCset(2,i)+r_temp*sin(t_temp);
%PTset(:,ratio*(i-1)+1:ratio*i)=[x_temp;y_temp;z*ones(1,ratio)];
plot3(x_temp,y_temp,z*ones(1,ratio));hold on;axis equal;grid on;%axis vis3d;
end
%text(0,0,num2str(AREA(1)));
pause(0.1);
display(['Local generation done. Area for z=',num2str(z),' is ',num2str(calarea(ARCset,Flagset))]);
%-----------------------
else
display(['z=',num2str(z),' not in the workspace']);
end
%同一z坐标下交集边界弧集ARCset被放入总弧表ARCset_local中,弧表数量记录增加
end
clear s_ztemp CIRset ARCset z Rmax Rmin Flagset Flagset_temp PTset flgset s_local t_temp;
%% Section 2
%过z轴平面绘图
%———————————————————————————————————————————————————————————————————————
ARCset_local=[];%初始化弧表
s_local=0;%初始化弧表数量
AREA_r=[];
for theta_z=-pi/2+pi/ratio_z/2:pi/ratio_z:pi/2-pi/ratio_z/2;
%for theta_z=-pi/2+pi/ratio_z/2
k=tan(theta_z);
CIRset=[];%初始化圆集合
flgset=[];%初始化内外边界标识集合1为外-1为内
Flagset=[];%初始化标识,用于弧表
cirsets_r;%生成旋转截面的圆表,得到同一截面的圆表CIRset
ARCset=[];%初始化弧集合
%display('Generating arc sets...');
arcsets_r;%生成交集边界弧,得到同一截面的弧表ARCset
%将同一截面交集边界弧集ARCset放入总弧表ARCset_local中
k=tan(theta_z);
if(~isempty(ARCset))
s_ztemp=size(ARCset,2);
ARCset_r_local(:,s_local+1:s_local+s_ztemp)=[ARCset(1,:)/sqrt(1+k^2);...
k*ARCset(1,:)/sqrt(1+k^2);ARCset(2:5,:);theta_z*ones(1,s_ztemp)];
s_local=s_local+s_ztemp;
%-----------------------
%display('Generating point sets...');
%PTset=[];
for i=1:s_ztemp
t_temp=linspace(ARCset(4,i),ARCset(5,i),ratio);
r_temp=ARCset(3,i);
xbar_temp=ARCset(1,i)+r_temp*cos(t_temp);
x_temp=xbar_temp/sqrt(1+k^2);
y_temp=xbar_temp*k/sqrt(1+k^2);
z_temp=ARCset(2,i)+r_temp*sin(t_temp);
%PTset(:,ratio*(i-1)+1:ratio*i)=[x_temp;y_temp;z*ones(1,ratio)];
plot3(x_temp,y_temp,z_temp);hold on;axis equal;grid on;%axis vis3d;
end
%text(0,0,num2str(AREA(1)));
pause(0.1);
display('Local generation done.');
%-----------------------
else
display(['theta=',num2str(theta_z),' not in the workspace']);
end
%同一z坐标下交集边界弧集ARCset被放入总弧表ARCset_local中,弧表数量记录增加
end
clear s_ztemp CIRset ARCset z Rmax Rmin Flagset Flagset_temp PTset flgset jd s_local t_temp;
gatrx176
- 粉丝: 22
- 资源: 5
最新资源
- plc触摸屏工程组态,源码,图纸齐全 设备:plc,昆仑通态触摸屏,变频器,电机,比例泵,电磁阀,远程网关 1,小项目,控制电机泵变频器及比例泵 2,主设备,200smart和昆仑通泰触摸屏 3,mo
- 基于C++和easyX引擎的坦克大战游戏设计源码
- 基于Vue框架的多用户社区平台前端设计源码
- 全部低价打包带走,综合能源系统优化,matlab,cplex,pso粒子群等智能优化算法,光伏,风力,储能,燃气轮机等,微网调度 拿之前问清楚 单卖50一个,全部打包150,其中11没有 可以运行
- 基于php开发的一套知识付费系统源码,支持二开
- FPGA 万兆toe协议栈,支持服务器 客户端模式,纯hdl代码编写,需要的加好友 44小时连续工作无丢包
- 基于多语言支持的轻量级RPC实现设计源码
- 文章复现,考虑综合需求响应和主从博弈的微网优化运行 关键词:主从博弈 需求响应 能量管理 主题:含热电联供的智能楼宇群协同能量管理
- 基于lua-nginx-module的WAF设计源码,融合Lua, JavaScript, CSS, HTML, Shell多语言技术
- Video电动汽车驱动用电机-永磁同步电机设计 从V字型磁钢内置式永磁电机入手,高效通透电机的设计方法,基于有限元环境下对车用电机的工况进行分析,含有功角关系曲线绘制与最佳扭矩角确定,负载运行分析,F
- 基于plain-design-composition的React UI组件库设计源码
- WMM2025COF.ZIP
- 基于HTML、CSS和JavaScript的2201班级网站设计源码仓库
- 基于蒙特卡洛法的电动汽车负荷预测 通过建立电动汽车的出行时间 行驶里程 充电时间的概率模型 采用蒙特卡洛进行抽样 再对电动汽车充电负荷进行累加 通过蒙特卡洛仿真之后 得到电动汽车的负荷预测结果
- 智能微电网优化运行 该微电网含有风光燃气轮机储能同时也与电网连接 程序建立其运行成本最低的优化模型采用粒子群算法进行优化求解得到了其最优运行计划
- 基于多目标粒子群算法的综合能源优化问题 建立了含冷热电的综合能源系统 以新能源供应商收益 综合能源供应商收益 和用户购电成本最小为多目标建立优化模型 采用多目标粒子群算法求解 得到冷热电三个不同网
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页