function varargout = GUI_F16(varargin)
% GUI_F16 M-file for GUI_F16.fig
% GUI_F16, by itself, creates a new GUI_F16 or raises the existing
% singleton*.
%
% H = GUI_F16 returns the handle to a new GUI_F16 or the handle to
% the existing singleton*.
%
% GUI_F16('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in GUI_F16.M with the given input arguments.
%
% GUI_F16('Property','Value',...) creates a new GUI_F16 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before GUI_F16_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to GUI_F16_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 GUI_F16
% Last Modified by GUIDE v2.5 26-Dec-2015 21:17:58
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUI_F16_OpeningFcn, ...
'gui_OutputFcn', @GUI_F16_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 GUI_F16 is made visible.
function GUI_F16_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 GUI_F16 (see VARARGIN)
str0 = '利用高保真模型,选择配平状态:';
str1 = ' 高度:15000ft';
str2 = ' 速度:600ft/s';
str = [str0 10 str1 10 str2];
set(handles.Uipanel_Text,'Title','初始状态说明');
set(handles.Text_Remmond,'String',str);
axes(handles.Axes_Apendix);
axis off;
% Choose default command line output for GUI_F16
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes GUI_F16 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = GUI_F16_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 BtnOriginalSystem.
function BtnOriginalSystem_Callback(hObject, eventdata, handles)
% hObject handle to BtnOriginalSystem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
run sys_data;
set(handles.Uipanel_Pole,'Title','原系统零极点图');
axes(handles.Axes_Pole);
pzmap(sys); % 画原系统的零极点分布图
grid on;
set(handles.Uipanel_Response,'Title','原系统脉冲响应曲线');
axes(handles.Axes_Response);
impulse(sys,1000); % 画出阶跃响应
grid on;
p_zpk = zpk(sys);
p = p_zpk.p{:}; % 原系统的极点
set(handles.Uipanel_Text,'Title','原系统极点、稳定性及能控能观性判断');
p1 = p(1);
p2 = p(2);
p3 = p(3);
p4 = p(4);
p5 = p(5);
%判断稳定性
str_stable = '由于原系统所有极点在左半平面,所以原系统稳定';
for i = 1:1:5
if real(p(i))>0
str_stable = '由于原系统有不在左半平面的极点,所以原系统李雅普诺夫意义下渐进不稳定';
break;
end
end
str1 = ['p1 = ' num2str(p1)];
str2 = ['p2 = ' num2str(p2)];
str3 = ['p3 = ' num2str(p3)];
str4 = ['p4 = ' num2str(p4)];
str5 = ['p5 = ' num2str(p5)];
%用李雅普诺夫法判定系统稳定性
qlya = diag([1 1 1 1 1]);
plya = lyap(A_long_5states,qlya);
d(1) = det(plya(1,1));
d(2) = det(plya(1:2,1:2));
d(3) = det(plya(1:3,1:3));
d(4) = det(plya(1:4,1:4));
d(5) = det(plya(1:5,1:5));
str_lya = '用李雅普诺夫法判断,由于P是正定阵,所以原系统稳定';
for i = 1:1:5
if d(i)<0
str_lya = '用李雅普诺夫法判断,由于P不是正定阵,所以原系统不稳定';
break;
end
end
% 能控能观性判断
M_A = rank(A_long_5states);
M_A_K = rank(ctrb(A_long_5states,B_long_5states));
if M_A == M_A_K
str_nengkong = ('由于rank(ctrb(A,B)) = n = 5,原系统能控');
else
str_nengkong = ('由于rank(ctrb(A,B))! = n = 5,原系统不能控');
end
M_A_G = rank(obsv(A_long_5states,C_long_5states));
if M_A == M_A_G
str_nengguan = ('由于rank(obsv(A,C)) = n = 5,原系统能观');
else
str_nengguan = ('由于rank(obsv(A,C))! = n = 5,原系统不能观');
end
str = [ 10 str1 10 str2 10 str3 10 str4 10 str5 10 str_stable 10 str_lya 10 str_nengkong 10 str_nengguan];%显示信息
set(handles.Text_Remmond,'String',str);
%set(handles.Uipanel_Apendix,'Title','原系统状态空间方程');
%I = imread('Linear_State.jpg'); %自动选择打开图片
axes(handles.Axes_Apendix);
%image(I);
axis off;
%% --- Executes on button press in BtnPlacePole.
function BtnPlacePole_Callback(hObject, eventdata, handles)
% hObject handle to BtnPlacePole (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
run sys_data;
p1 = -2 + 0.9i; % 期望极点
p2 = -2 - 0.9i;
p3 = -1 + 0.4i;
p4 = -1 - 0.4i;
p5 = -5;
p = [p1;p2;p3;p4;p5];
str0 = ('选择的极点如下:');
str1 = ['p1 = ' num2str(p1)];
str2 = ['p2 = ' num2str(p2)];
str3 = ['p3 = ' num2str(p3)];
str4 = ['p4 = ' num2str(p4)];
str5 = ['p5 = ' num2str(p5)];
str_stable = '由于配置极点后所有极点在左半平面,所以系统稳定';
for i = 1:1:5
if real(p(i))>0
str_stable = '由于配置极点后系统有在右半平面的极点,所以系统不稳定';
break;
end
end
P = [p1;p2;p3;p4;p5]; % 进行极点配置
K_Place = place(A_long_5states,B_long_5states,P);
A_long_5states_place = A_long_5states - B_long_5states * K_Place;
sys_place = ss(A_long_5states_place,B_long_5states,C_long_5states,D_long_5states,'statename',states,'inputname',inputs,'outputname',outputs);
set(handles.Uipanel_Pole,'Title','配置极点后系统零极点图');
axes(handles.Axes_Pole);
pzmap(sys_place); % 极点配置后系统零极点图
grid on;
set(handles.Uipanel_Response,'Title','配置极点后系统脉冲响应曲线');
axes(handles.Axes_Response);
impulse(sys_place,50); % 极点配置后系统响应
grid on;
set(handles.Uipanel_Text,'Title','配置极点后极点、稳定性判断');
str = [ str0 10 str1 10 str2 10 str3 10 str4 10 str5 10 10 str_stable ];%显示信息
set(handles.Text_Remmond,'String',str);
%set(handles.Uipanel_Apendix,'Title','极点配置模型');
%I = imread('pole_place.jpg'); %自动选择打开图片
axes(handles.Axes_Apendix);
%image(I);
axis off;
%% --- Executes on button press in BtnPoleSelect.
function BtnPoleSelect_Callback(hObject, eventdata, handles)
% hObject handle to BtnPoleSelect (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
run sys_data;
prompt={'第一对共轭极点之一(如:-1-i)','第二对共轭极点之一(如:-0.1+0.1i)','输入实极点(如:-0.12)'};
defans={'-1-i','-0.1+0.i','-0.12'};
options.Resize='on';
options.WindowStyle='modal';
options.Interpreter='tex';
n=inputdlg(prompt,'输入极点',1,defans,options
没有合适的资源?快使用搜索试试~ 我知道了~
无人机管理与控制系统附matlab代码.zip
共40个文件
m:20个
mdl:9个
mat:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 149 浏览量
2022-11-13
09:13:33
上传
评论
收藏 139KB ZIP 举报
温馨提示
1.版本:matlab2019a,内含运行结果,不会运行可私信 2.领域:基础教程 3.内容:无人机管理与控制系统附matlab代码.zip 4.适合人群:本科,硕士等教研学习使用
资源推荐
资源详情
资源评论
收起资源包目录
无人机管理与控制系统附matlab代码.zip (40个子文件)
GUI
system_place_control_height.mdl 41KB
LowDimension_Model.mdl 42KB
sys_data.m 3KB
GUI_F16.m 21KB
GUI_F16.fig 11KB
alldimension_model.mdl 41KB
photo.png 16KB
system_place_control_height.slxc 5KB
slprj
sim
varcache
system_place_control_height
varInfo.mat 2KB
tmwinternal
simulink_cache.xml 312B
checksumOfCache.mat 392B
alldimension_model
varInfo.mat 2KB
tmwinternal
simulink_cache.xml 312B
checksumOfCache.mat 392B
alldimension_model.slxc 5KB
第六章 降维观测器
LowDimension_Model.mdl 42KB
sys_data.m 3KB
LowDimension.m 1KB
plot_rao_dong.m 629B
第三章 系统特性判断
rao_dong_model.mdl 33KB
sys_data.m 3KB
response.m 1KB
plot_rao_dong.m 629B
judge_c_o.m 338B
第七章 高度速度控制
HeightControl.m 1KB
lin_h.mdl 40KB
sys_lin_data.m 2KB
第四章 极点配置
plot_shu_chu.m 629B
极点配置的第二种思路
plot_shu_chu.m 629B
place2.m 560B
Alt_15000Vel_600_data.mat 4KB
place2_model.mdl 36KB
place_rao_dong.mdl 34KB
sys_data.m 3KB
Place.m 666B
plot_rao_dong_qu_xian.m 41B
第五章 全维观测器
plot_shu_chu.m 629B
sys_data.m 3KB
alldimension.m 862B
alldimension_model.mdl 41KB
共 40 条
- 1
资源评论
天天Matlab科研工作室
- 粉丝: 3w+
- 资源: 7258
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现 powell算法 用matlab实现,使用方法内附详细说明.rar
- 基于matlab的手写字体识别程序,并对结果进行保存.rar
- 基于c语言指纹识别demo代码 包括了指纹图像方向图计算、频率计算、gabor滤波器增强,细化,特征点提取,特征点匹配.rar
- 基于c++NSGA-2思想的多目标优化程序,采用进化算法处理多目标实值优化问题.rar
- Linux系统中常用权限管理命令
- Coello Coello等人提出了MOPSO 该程序基于matlab实现针对测试函数matlab程序
- Linux系统中常用权限管理命令
- AIR-AP1815-K9-ME-8-5-182-0.tar For Cisco AP1815
- 实验七.zip
- ESP8266刷固件软件flash-download-tools-v3.6.5,AT固件,机智云固件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功