数学建模基于matlab GUI干线交通控制方法含Matlab源码 1259期
Posted 紫极神光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学建模基于matlab GUI干线交通控制方法含Matlab源码 1259期相关的知识,希望对你有一定的参考价值。
一、简介
基于matlab GUI干线交通控制方法
二、部分源代码
function varargout = CrossSim(varargin)
% CROSSSIM MATLAB code for CrossSim.fig
% CROSSSIM, by itself, creates a new CROSSSIM or raises the existing
% singleton*.
%
% H = CROSSSIM returns the handle to a new CROSSSIM or the handle to
% the existing singleton*.
%
% CROSSSIM('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in CROSSSIM.M with the given input arguments.
%
% CROSSSIM('Property','Value',...) creates a new CROSSSIM or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before CrossSim_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to CrossSim_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 CrossSim
% Last Modified by GUIDE v2.5 06-Dec-2020 16:56:12
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @CrossSim_OpeningFcn, ...
'gui_OutputFcn', @CrossSim_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 CrossSim is made visible.
function CrossSim_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 CrossSim (see VARARGIN)
% Choose default command line output for CrossSim
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
data = get(handles.main_fig,'UserData');
data.stop = false;
data.running = 0;
set(handles.main_fig,'UserData',data);
% UIWAIT makes CrossSim wait for user response (see UIRESUME)
% uiwait(handles.main_fig);
% --- Outputs from this function are returned to the command line.
function varargout = CrossSim_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 sim_button.
function sim_button_Callback(hObject, eventdata, handles)
% hObject handle to sim_button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
data = get(handles.main_fig,'UserData');
set(handles.sim_button, 'String', 'Pause simulation');
switch data.running
case 0
if (get(handles.type_1d,'Value') == 1)
type = 1;
city_gen;
city = 'city.mat';
else
type = 2;
city_gen_2d;
city = 'city_2d.mat';
end
load(city);
cyc = str2double(get(handles.cycles,'String'));
p = str2double(get(handles.speed,'String'));
newFig = figure;
set(newFig,'Name','CrossSim Simulator');
b = Builder(city);
s = Simulation(b);
d = Drawer(b);
if (get(handles.custom_mode,'Value') == 1)
mode = 1;
elseif (get(handles.opt_mode,'Value') == 1)
mode = 2;
else
mode = 3;
end
c = 1;
switch (type)
case 1
switch (mode)
case 1
load('custom.mat');
gts = gts_1d;
case 2
disp('Optimalization has started');
gts = gaoptim(b, cyc);
disp('Optimalization has finished');
case 3
gts = zeros(1,(cyc-1)*b.numbers(1)) + 20;
rts = 0;
off = 0;
end
case 2
switch (mode)
case 1
load('custom.mat');
gts = gts_2d;
rts = rts_2d;
off = off_2d;
case 2
disp('Optimalization has started');
[gts, rts, off] = time_calc(b);
disp('Optimalization has finished');
case 3
gts = zeros(1,b.numbers(1)) + 20;
rts = zeros(1,b.numbers(1)) + 10;
for i = 1:b.numbers(1)
off(i) = mod(i,3)*10;
end
end
end
s.init(gts,rts,off,rn(c:c+b.numbers(2)),type);
isPaused = 0;
data.stop = false;
data.running = 1;
set(handles.main_fig, 'UserData', data);
keep_running = 1;
while (keep_running == 1 && max(b.cycles) < cyc)
while (isPaused == 1)
data = get(handles.main_fig,'UserData');
if data.running == 1
isPaused=0;
end
data = get(handles.main_fig,'UserData');
if data.stop
keep_running=0;
isPaused=0;
end
pause(0.5);
end
figure(newFig);
switch (type)
case 1
s.simulate_1(gts,1,rn(c:c+b.numbers(2)));
case 2
s.simulate_2(gts,rts,off,1,rn(c:c+b.numbers(2)));
end
d.draw();
pause(p);
M(c) = getframe(gcf);
c = c + 1;
data = get(handles.main_fig,'UserData');
if data.stop
keep_running=0;
end
data = get(handles.main_fig,'UserData');
if data.running == 2
isPaused=1;
end
end
close(newFig);
if (get(handles.save_cb, 'Value') == 1)
movie2avi(M, get(handles.filename, 'String'), 'fps', 5);
end
set(handles.sim_button, 'String', 'Start simulation');
data.stop = true;
data.running = 0;
set(handles.main_fig, 'UserData', data);
case 1
data.running = 2;
set(handles.main_fig, 'UserData', data);
set(handles.sim_button, 'String', 'Continue simulation');
case 2
data.running = 1;
set(handles.main_fig, 'UserData', data);
set(handles.sim_button, 'String', 'Pause simulation');
end
function cycles_Callback(hObject, eventdata, handles)
% hObject handle to cycles (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of cycles as text
% str2double(get(hObject,'String')) returns contents of cycles as a double
% --- Executes during object creation, after setting all properties.
function cycles_CreateFcn(hObject, eventdata, handles)
% hObject handle to cycles (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function speed_Callback(hObject, eventdata, handles)
% hObject handle to speed (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of speed as text
% str2double(get(hObject,'String')) returns contents of speed as a double
% --- Executes during object creation, after setting all properties.
function speed_CreateFcn(hObject, eventdata, handles)
% hObject handle to speed (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in exit_button.
function exit_button_Callback(hObject, eventdata, handles)
% hObject handle to exit_button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close(handles.main_fig);
% --- Executes on button press in custom_mode.
function custom_mode_Callback(hObject, eventdata, handles)
% hObject handle to custom_mode (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of custom_mode
% --- Executes on button press in opt_mode.
function opt_mode_Callback(hObject, eventdata, handles)
% hObject handle to opt_mode (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of opt_mode
% --- Executes on button press in save_cb.
function save_cb_Callback(hObject, eventdata, handles)
% hObject handle to save_cb (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of save_cb
% --- Executes on button press in save_button.
function save_button_Callback(hObject, eventdata, handles)
% hObject handle to save_button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if (get(handles.type_1d,'Value') == 1)
type = 1;
city_gen;
city = 'city.mat';
else
type = 2;
city_gen_2d;
city = 'city_2d.mat';
end
delete(get(handles.filename, 'String'));
mymovie = avifile(get(handles.filename, 'String'), 'compression','None', 'fps', 5);
load(city);
cyc = str2double(get(handles.cycles,'String'));
p = str2double(get(handles.speed,'String'));
newFig = figure('Visible', 'off');
set(newFig,'Name','CrossSim Simulator');
%set(newFig, 'Visible', 'off');
b = Builder(city);
s = Simulation(b);
d = Drawer(b);
三、运行结果
四、备注
版本:2014a
以上是关于数学建模基于matlab GUI干线交通控制方法含Matlab源码 1259期的主要内容,如果未能解决你的问题,请参考以下文章
交通预测基于matlab GUI交通预测四阶段法交通分配含Matlab源码 1140期
交通标志识别基于matlab GUI BP神经网络交通标志识别系统(含语音报警)含Matlab源码 2240期
交通标志识别基于matlab GUI BP神经网络交通标志识别(带面板)含Matlab源码 1647期
交通标志识别基于matlab GUI BP神经网络交通标志识别含Matlab源码 718期