function varargout = budengbanjinbochefangzhen(varargin)
% BUDENGBANJINBOCHEFANGZHEN M-file for budengbanjinbochefangzhen.fig
% BUDENGBANJINBOCHEFANGZHEN, by itself, creates a new BUDENGBANJINBOCHEFANGZHEN or raises the existing
% singleton*.
%
% H = BUDENGBANJINBOCHEFANGZHEN returns the handle to a new BUDENGBANJINBOCHEFANGZHEN or the handle to
% the existing singleton*.
%
% BUDENGBANJINBOCHEFANGZHEN('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in BUDENGBANJINBOCHEFANGZHEN.M with the given input arguments.
%
% BUDENGBANJINBOCHEFANGZHEN('Property','Value',...) creates a new BUDENGBANJINBOCHEFANGZHEN or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before budengbanjinbochefangzhen_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to budengbanjinbochefangzhen_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help budengbanjinbochefangzhen
% Last Modified by GUIDE v2.5 14-Sep-2010 11:41:20
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @budengbanjinbochefangzhen_OpeningFcn, ...
'gui_OutputFcn', @budengbanjinbochefangzhen_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before budengbanjinbochefangzhen is made visible.
function budengbanjinbochefangzhen_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to budengbanjinbochefangzhen (see VARARGIN)
% Choose default command line output for budengbanjinbochefangzhen
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes budengbanjinbochefangzhen wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = budengbanjinbochefangzhen_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
global long;% 使这个变量变成全局变量
global width;% 使这个变量变成全局变量
global qianxuan;% 使这个变量变成全局变量
global houxuan;% 使这个变量变成全局变量
global lunjin;% 使这个变量变成全局变量
global fai;% 使这个变量变成全局变量
global x6;% 使这个变量变成全局变量
global y6;% 使这个变量变成全局变量
global x7;% 使这个变量变成全局变量
global y7;% 使这个变量变成全局变量
global x8;% 使这个变量变成全局变量
global y8;% 使这个变量变成全局变量
global x9;% 使这个变量变成全局变量
global y9;% 使这个变量变成全局变量
global ds;% 使这个变量变成全局变量
global r;% 使这个变量变成全局变量
global xd;% 使这个变量变成全局变量
global yd;% 使这个变量变成全局变量
axis([-10,20,-10,20]);
axis manual;
hold on;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%参数集,这里存放的为车辆与车位已经仿真所需的主要参数
%手动输入参数集
long=str2double(get(handles.edit1,'string'));
width=str2double(get(handles.edit2,'string'));
qianxuan=str2double(get(handles.edit3,'string'));
houxuan=str2double(get(handles.edit4,'string'));
lunjin=str2double(get(handles.edit5,'string'));
fai=-str2double(get(handles.edit6,'string'));
x6=str2double(get(handles.edit8,'string'));
y6=str2double(get(handles.edit9,'string'));
x7=str2double(get(handles.edit10,'string'));
y7=str2double(get(handles.edit11,'string'));
x9=str2double(get(handles.edit12,'string'));
y9=str2double(get(handles.edit13,'string'));
x8=str2double(get(handles.edit14,'string'));
y8=str2double(get(handles.edit15,'string'));
ds=str2double(get(handles.edit7,'string'));
% long=6;%long 为车车长
% width=3;%width 为车宽
% qianxuan=1;%qianxuan 为车前悬长度
% houxuan=1;% houxuan 为车后悬长度
% lunjin=0.3;%lunjin为车轮半径
% fai=-(pi)/5;%fai 为前一段轨迹的车前轮偏角
%
%
% x6=11;
% y6=15;
% x7=18;
% y7=15;
% x8=18;
% y8=0;
% x9=11;
% y9=0;
%
% ds=0.3; %仿真步长
%自动生成参数集
r=(long-qianxuan-houxuan)/abs(tan(fai));% 车辆的后轴中心点转弯半径
%theta0=(pi)/2;%theta0为起始点车身偏角
xd=(x8+x9)/2;%终点坐标
yd=(y8+y9)/2+1.5;
h0=plot(xd,yd,'bo');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画车位
%(x6,y6)、(x7,y7)、(x8,y8)、(x9,y9)分别为车位的四个端点坐标
%根据车位的四个端点画出车位的轮廓
l0=plot([x6,x7],[y6,y7],'-k');
l1=plot([x7,x8],[y7,y8],'-k');
l2=plot([x8,x9],[y8,y9],'-k');
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
global long;% 使这个变量变成全局变量
global width;% 使这个变量变成全局变量
global qianxuan;% 使这个变量变成全局变量
global houxuan;% 使这个变量变成全局变量
global lunjin;% 使这个变量变成全局变量
global fai;% 使这个变量变成全局变量
global x6;% 使这个变量变成全局变量
global y6;% 使这个变量变成全局变量
global x7;% 使这个变量变成全局变量
global y7;% 使这个变量变成全局变量
global x8;% 使这个变量变成全局变量
global y8;% 使这个变量变成全局变量
global x9;% 使这个变量变成全局变量
global y9;% 使这个变量变成全局变量
global ds;% 使这个变量变成全局变量
global r;% 使这个变量变成全局变量
global xd;% 使这个变量变成全局变量
global yd;% 使这个变量变成全局变量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画轨迹,求t1,t2
[x0,y0] = ginput(1);%获取起点坐标
plot(x0,y0,'bo');
%原方法的两个参数
rr1=(((xd-x0)^2+(yd-y0)^2)/(2*(xd-x0)))-r;
if(x0+rr1-xd+r>=0)
t3=asin((y0-yd)/(rr1+r));
else
t3=asin((yd-y0)/(rr1+r))+(pi);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%原方法的轨迹
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if(rr1<r)
fprintf('轨迹无解,不等半径泊车方法无法泊车\n');
return;
end
x1=x0+rr1;
y1=y0;
fai1=-atan((long-qianxuan-houxuan)/rr1);
%第一阶段轨迹
for i=(pi):(ds*r/rr1):(pi+t3);
x=x1+rr1*cos(i);
y=y1+rr1*sin(i);
theta=i-(pi/2);
jiao1=atan((width/2)/(long-houxuan));
jiao2=jiao1;
jiao3=atan((width/2)/houxuan);
jiao4=jiao3;
jiao1=theta-jiao1;
jiao2=theta+jiao2;
jiao3=theta+pi-jiao3;
jiao4=theta+pi+jiao4;
r1=sqrt((width/2)^2+(long-houxuan)^2);%以下描述车身的四个端点
r2=sqrt((width/2)^2+houxuan^2);
youqianx=x+r1*cos(jiao1);
youqiany=y+r1*sin(jiao1);
zuoqianx=x+r1*cos(jiao2);
zuoqiany=y+r1*sin(jiao2);
zuohoux=x+r2*cos(jiao3);
zuohouy=y+r2*sin(jiao3);
youhoux=x+r2*cos(jiao4);
youhouy=y+r2*sin(jiao4);
h17=plot([youqianx,zuoqianx],[youqiany,zuoqiany],'-b');
h18=plot([zuoqianx,zuohoux],[zuoqiany,zuohouy],'-b');
h19=plot([zuohoux,youhoux],[zuohouy,youhouy],'-b');
h20=plot([youhoux,youqianx],[youhouy,youqiany],'-b');
jiao5=atan(
没有合适的资源?快使用搜索试试~ 我知道了~
【运动学】 GUI不等半径泊车方法仿真【含Matlab源码 691期】.zip
共3个文件
m:1个
jpg:1个
fig:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 4 浏览量
2024-06-21
12:18:50
上传
评论
收藏 85KB ZIP 举报
温馨提示
Matlab领域上传的全部代码均可运行,亲测可用,尽我所能,为你服务; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、物理应用 仿真:导航、地震、电磁、电路、电能、机械、工业控制、水位控制、直流电机、平面电磁波、管道瞬变流、刚度计算 光学:光栅、杨氏双缝、单缝、多缝、圆孔、矩孔衍射、夫琅禾费、干涉、拉盖尔高斯、光束、光波、涡旋 定位问题:chan、taylor、RSSI、music、卡尔曼滤波UWB 气动学:弹道、气体扩散、龙格库弹道 运动学:倒立摆、泊车 天体学:卫星轨道、姿态 船舶:控制、运动 电磁学:电场分布、电偶极子、永磁同步、变压器
资源推荐
资源详情
资源评论
收起资源包目录
【运动学】 GUI不等半径泊车方法仿真【含Matlab源码 691期】.zip (3个子文件)
【运动学】基于matlab GUI不等半径泊车方法仿真【含Matlab源码 691期】
budengbanjinbochefangzhen.m 36KB
budengbanjinbochefangzhen.fig 12KB
运行结果.JPG 114KB
共 3 条
- 1
资源评论
Matlab领域
- 粉丝: 3w+
- 资源: 3283
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】电影院购票系统源码(springboot+vue+mysql+说明文档+LW).zip
- dabai小程序源码(优秀毕业设计源码 + 运行截图).zip
- django-vue-lyadmin前端采用vue3+elementplus,后端采用Python Django DRF的一套前后端分离的低代码快速后台开发平台(专业版带有代码生成和表单构建器)
- 【java毕业设计】宠物商城网站设计与实现源码(springboot+vue+mysql+说明文档+LW).zip
- 基于数据安全的某电商平台店铺销售数据的分析与实现Vue+Java.zip
- SpringBoot项目连接多源MySQL数据库 - 数据开发猿
- java职称评审系统源码数据库 MySQL源码类型 WebForm
- S2024052基于springboot+vue的新能源汽车信息咨询服务平台-snu6t.zip
- 【java毕业设计】车辆管理系统源码(springboot+vue+mysql+说明文档+LW).zip
- springboot框架下基于Java Web的新能源汽车信息咨询系统设计与实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功