function varargout = bochefangzhen(varargin)
% BOCHEFANGZHEN M-file for bochefangzhen.fig
% BOCHEFANGZHEN, by itself, creates a new BOCHEFANGZHEN or raises the existing
% singleton*.
%
% H = BOCHEFANGZHEN returns the handle to a new BOCHEFANGZHEN or the handle to
% the existing singleton*.
%
% BOCHEFANGZHEN('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in BOCHEFANGZHEN.M with the given input arguments.
%
% BOCHEFANGZHEN('Property','Value',...) creates a new BOCHEFANGZHEN or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before bochefangzhen_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to bochefangzhen_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 bochefangzhen
% Last Modified by GUIDE v2.5 30-Aug-2010 12:37:35
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @bochefangzhen_OpeningFcn, ...
'gui_OutputFcn', @bochefangzhen_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 bochefangzhen is made visible.
function bochefangzhen_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 bochefangzhen (see VARARGIN)
% Choose default command line output for bochefangzhen
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes bochefangzhen wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = bochefangzhen_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.edit7,'string'));
y6=str2double(get(handles.edit8,'string'));
x7=str2double(get(handles.edit9,'string'));
y7=str2double(get(handles.edit10,'string'));
x9=str2double(get(handles.edit11,'string'));
y9=str2double(get(handles.edit12,'string'));
x8=str2double(get(handles.edit13,'string'));
y8=str2double(get(handles.edit14,'string'));
ds=str2double(get(handles.edit15,'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');
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- If Enable == 'on', executes on mouse press in 5 pixel border.
% --- Otherwise, executes on mouse press in 5 pixel border or over pushbutton1.
function pushbutton1_ButtonDownFcn(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
cla reset;
clear all;
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- 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;% 使这个变量变成全局变量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ys=inf;
yt=inf;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画轨迹,求t1,t2
[x0,y0] = ginput(1);%获取起点坐标
plot(x0,y0,'bo');
m1=-(xd-x0-r)^2-3*r^2-(yd-y0)^2;
m2=4*r*(xd-x0-r);
m3=4*r*(yd-y0);
t1=-asin(m1/(sqrt(m2^2+m3^2)))+asin(m2/(sqrt(m2^2+m3^2)));
m4=yd-y0+2*r*sin(t1);
m5=asin(m4/r);
t2=t1-m5;
x1=x0+r;
y1=y0;
x2=x1-2*r*cos(t1);
y2=y1-2*r*sin(t1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\
%约束空间生成
if((sqrt((x0-xd+r)^2+(y0-yd)^2)-3*r)>0)
fprintf('距离过远,最小半径泊车方法无法泊车\n');
return;
end
if((t1-t2)+(pi/8)<0 | (t1-t2)-(pi/8)>0)
fprintf('终点车身偏角过大,最小半径泊车方法无法泊车\n');
return;
end
%第一阶段轨迹
x1=x0+r;
y1=y0;
fai1=fai;
for i=pi:ds:(pi+t1)
x=x1+r*cos(i);
y=y1+r*sin(i);
theta=i-(pi/2);%theta0为起始点车身偏角
jiao1=atan((width/2)/(long-houxuan));
jiao2=jiao1;
jiao3=atan((width/2)/houxuan);
jiao4=jiao3;
Matlab领域
- 粉丝: 3w+
- 资源: 3764
最新资源
- 西门子全自动定长裁切机PLC程序:高精度切割,简洁注释,适合新手编程练习,威纶通触摸屏控制,13西门子200PLC全自动定长度裁切机设备程序(含威纶通触摸屏程序)该程序已经在设备上应用,切割长度精度高
- 基于双闭环控制策略的Buck变换器:Pi控制实现电压稳定与动态优化,输出功率达百瓦级,支持输入电压调整与输出电压自定义,Matlab仿真文件下载链接 ,Buck变器,双闭环控制策略,电压环和电流环均采
- 成熟稳定运行的智能立体仓库管理系统案例:西门子PLC控制下的堆垛机与输送机联动实践,立体仓库 堆垛机 输送机 智能物流 项目是本人以前做的工程项目案例,是成熟的并且稳定的运行在客户现场的程序,项目有
- Matlab Simulink单相光伏储能模型:高效太阳能发电与蓄电池储能系统仿真,MPPT电导增量法跟踪,并网等级与个人使用需求解决方案,Matlab simulink模型,单相光伏储能模型 可再生
- 掌握COMSOL激光烧蚀技术:精通脉冲激光打孔包与动网格固体传热模块的应用艺术 ,comsol激光烧蚀脉冲激光打孔包会 掌握一个等于学会一整套 COMSOL 主要涉及模块:动网格、固体传热 ,核心关
- 西门子1200 PLC程序与项目模板:从硬件选型到HMI界面设计的全面指南,西门子1200程序和项目模板,适用初学者 本资料从一个项目出发,包含了 1.如何进行硬件设备的选型; 2.电气原理图绘制标准
- 雪豹速清v2.1.8.apk
- 基于Simulink的汽车LAR-LQG半主动与主动悬架系统研究,汽车lar lqg 半主动 主动悬架 simulink ,核心关键词:汽车; LAR; LQG; 半主动悬架; 主动悬架; Simu
- 基于车辆运动学模型的Hybrid-Astar路径规划算法实现研究,25混合A星算法路径规划Hybrid-Astar 以车辆的运动学模型为节点,以当前点到终点的Astar距离和RS距离两者最大的距离作为
- 光储电压电流双环并网控制MATLAB仿真详解:涵盖光伏阵列、MPPT升压回路等模块及讲解文档,光储电压电流双环并网控制MATLAB仿真,包含光伏阵列模型、MPPT升压回路、储能电池模型、电压电流双环控
- 模块化多电平换流器MMC-HVDC直流输电系统仿真研究:载波移相调制与换流站控制策略详解(附参考文献与参数计算,适合初学者),模块化多电平流器,MMC-HVDC直流输电系统,单个桥臂4个子模块(5电平
- 基于LQR最优控制算法的车辆轨迹跟踪控制模型 基于质心侧偏角等动力学参数建立模型,优化误差实现实时轨迹跟踪,仿真效果优异 ,基于LQR最优控制算法实现的轨迹跟踪控制,建立了基于车辆的质心侧偏角、横摆角
- 基于模型预测控制(MPC)的车速控制算法研究:燃油汽车上下层控制器设计与实现,可应用于代码生成与实车试验,适用于多种车速需求场景,附复现资料 ,基于模型预测MPC实现的车速控制,控制目标为燃油汽车,采
- "PMSM永磁同步电机的自抗扰控制策略与matlab Simulink仿真实现",【PMSM自抗扰控制】 PMSM 永磁同步电机 ADRC 自抗扰控制 matlab simulink 仿真 (1)采
- PFC单轴压缩下声发射模拟演化规律及胶结破坏能实时监测分析,PFC单轴压缩声发射模拟演化规律及胶结破坏能监测 ,PFC; 压缩声发射; 模拟演化规律; 胶结破坏; 监测,PFC单轴压缩声发射:胶结破
- COMSOL针-板正流注放电模型:基于流体方程的光电离过程参考模型,[COMSOL针-板正流注放电模型]采用流体方程,包含光电离过程,有需要的可以拿去作为参考 ,核心关键词:COMSOL针-板正流
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈