Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Моделирование измерительных задач в среде MATLAB + Simulink. Учебное пособие
.pdf
ПРИЛОЖЕНИЕ
%DATA1, by itself, creates a new DATA1 or raises the existing
% singleton*.
% H = DATA1 returns the handle to a new DATA1 or the handle to
% the existing singleton*.
% DATA1('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in DATA1.M with the given input
arguments.
%DATA1('Property','Value',...) creates a new DATA1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before data1_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to data1_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 data1
% Last Modied by GUIDE v2.5 19-Oct-2007 19:05:39
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mlename, ...
‘gui_Singleton’, gui_Singleton, ...
‘gui_OpeningFcn’, @data1_OpeningFcn, ...
‘gui_OutputFcn’, @data1_OutputFcn, ...
‘gui_LayoutFcn’, [] , ...
‘gui_Callback’, []);
if nargin & isstr(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
131

ПРИЛОЖЕНИЕ
% --- Executes just before data1 is made visible.
function data1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to gure
% eventdata reserved - to be dened in a future version of MATLAB
% handles structure with handles and user data1 (see GUIDATA)
% varargin command line arguments to data1 (see VARARGIN)
% Choose default command line output for data1
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes data1 wait for user response (see UIRESUME)
% uiwait(handles.gure1);
% --- Outputs from this function are returned to the command line.
function varargout = data1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to gure
% eventdata reserved - to be dened in a future version of MATLAB
% handles structure with handles and user data1 (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function R_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be dened 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
set(hObject,’BackgroundColor’,’white’);
else
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundC
olor’));
end
function R_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
132

ПРИЛОЖЕНИЕ
% eventdata reserved - to be dened in a future version of MATLAB
% handles structure with handles and user data1 (see GUIDATA)
% Hints: get(hObject,’String’) returns contents of edit1 as text
% str2double(get(hObject,’String’)) returns contents of edit1 as a
double
% --- Executes during object creation, after setting all properties.
function L_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be dened 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
set(hObject,’BackgroundColor’,’white’);
else
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundC
olor’));
end
function L_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be dened in a future version of MATLAB
% handles structure with handles and user data1 (see GUIDATA)
% Hints: get(hObject,’String’) returns contents of edit2 as text
% --- Executes during object creation, after setting all properties.
% str2double(get(hObject,’String’)) returns contents of edit2 as a
double
% --- Executes during object creation, after setting all properties.
function C_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be dened 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
133

ПРИЛОЖЕНИЕ
set(hObject,’BackgroundColor’,’white’);
else
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundC
olor’));
end
function C_Callback(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% --- Executes during object creation, after setting all properties.
% eventdata reserved - to be dened in a future version of MATLAB
% handles structure with handles and user data1 (see GUIDATA)
% Hints: get(hObject,’String’) returns contents of edit3 as text
% str2double(get(hObject,’String’)) returns contents of edit3 as a
double
% --- Executes during object creation, after setting all properties.
function C0_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be dened 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
set(hObject,’BackgroundColor’,’white’);
else
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundC
olor’));
end
function C0_Callback(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be dened in a future version of MATLAB
% handles structure with handles and user data1 (see GUIDATA)
% Hints: get(hObject,’String’) returns contents of edit4 as text
% str2double(get(hObject,’String’)) returns contents of edit4 as a
double
% --- Executes during object creation, after setting all properties.
% --- Executes during object creation, after setting all properties.
134

ПРИЛОЖЕНИЕ
% --- Executes during object creation, after setting all properties.
% --- Executes during object creation, after setting all properties.
function wr1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit11 (see GCBO)
% eventdata reserved - to be dened in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% --- Executes during object creation, after setting all properties.
function wa1_CreateFcn(hObject, eventdata, handles)
% hObject handle to text19 (see GCBO)
% eventdata reserved - to be dened in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be dened in a future version of MATLAB
% handles structure with handles and user data1 (see GUIDATA)
global R L C C0
Определение R L C C0 как глобальные переменные
R=str2double(get(handles.R,’String’));
считывание значения из поля с именем R и присвоение пере
менной R числового значения
L=str2double(get(handles.L,’String’));
L=L*1e-3;
считывание значения из поля с именем L и присвоение перемен
ной L числового значения
C=str2double(get(handles.C,’String’));
C=C*1e-9;
считывание значения из поля с именем C и присвоение пере
менной C числового значения
C0=str2double(get(handles.C0,’String’));
C0=C0*1e-9;
считывание значения из поля C0 с именем C0 и присвоение пе
ременной C0 числового значения
wr= sqrt (1/(L*C));
-
-
-
-
135

ПРИЛОЖЕНИЕ
Расчет теоретических значений частот резонанса
wa= sqrt( (1/L*(1/C+1/C0));
Расчет теоретических значений частот антирезонанса
N=500;
число точек построения графика зависимости модуля проводи
-
мости от частоты
www = 0.9*wr:(1.2*wa-0.8*wr)/N:1.1*wa;
Задание интервала частот построения графика
YY=Yw(www);
расчет значений модуля проводимости в заданном интервале с
помощью внешней функции Yw
Поиск частот резонанса и антирезонанса как максимума и ми
-
нимума на
графике зависимости модуля проводимости от частоты
wr1=fminsearch(@mYw,0.9*wr);
wa1=fminsearch(@Yw,1.1*wa);
plot(www,YY)
Построение графика
axis tight
set(handles.wr1,’String’, wr1);
Вывод рассчитанных значений частот резонанса
set(handles.wa1,’String’, wa1);
Вывод рассчитанных значений частот антирезонанса.
Для получения числовых переменных величины, считывае
мые из полей ввода, необходимо преобразовать из переменных
типа string в переменные типа double, учтя при этом размерность
величин, вводимых в программу. Далее рассчитываем теоретиче
ские значения частот резонанса и антирезонанса по формулам и
задаем интервал частот, в которых будем осуществлять расчет и
построение графика функции зависимости модуля проводимости
от частоты. Для расчета модуля проводимости используем допол
нительную функцию, оформленную в виде отдельного m-файла:
function res = Yw(w)
global R L C C0
Определение R L C C0 как глобальные переменные
G = R./(R^2+(w.*L-1./(w.*C)).^2);
136

ПРИЛОЖЕНИЕ
Определение локальной переменной G
B = w.*C0-(w.*L-1./(w.*C))./(R^2+(w.*L-1./(w.*C)).^2);
Определение локальной переменной B
res=(G.^2+B.^2).^0.5;
Поиск частот резонанса и антирезонанса по графику моду
ля проводимости осуществляется как поиск минимума модуля
проводимости для антирезонанса и минимума взятого с отрица
тельным знаком модуля проводимости для резонанса (функция
mYw повторяет функцию Yw, но значение переменной res взято
с противоположным знаком):
function res = Yw(w)
global R L C C0
Определение R L C C0 как глобальные переменные
G = R./(R^2+(w.*L-1./(w.*C)).^2);
Определение локальной переменной G
B = w.*C0-(w.*L-1./(w.*C))./(R^2+(w.*L-1./(w.*C)).^2);
Определение локальной переменной B
res=-1*((G.^2+B.^2).^0.5);
Рассчитанные значения частот резонанса и антирезонанса
помещаются в соответствующие поля с помощью команды set.
В ходе разработки m-файла были использованы следующие
команды:
– global – функция предназначена для определения глобаль
ных переменных;
– plot – функция предназначена для построения графиков;
– sqrt – функция используется для вычисления квадратного
корня;
– fminsearch – функция позволяет найти минимум функции
нескольких переменных без ограничений, т. е. решение зада
чи безусловной оптимизации с использованием симплексного
метода.
Интерфейс
Реализуем интерфейс задачи «оценка влияния величины до
бротности на точность определения частот резонанса и антире-
137
-

ПРИЛОЖЕНИЕ
зонанса по значениям модуля полной проводимости» в MATLAB
с применением графического интерфейса.
Запускаем редактор GUIDE и создаем интерфейс для реа
лизации программы оценки влияния величины добротности
на точность определения частот резонанса и антирезонанса по
значениям модуля полной проводимости. На рис. П2 выделены
названия соответствующих элементов графического интерфейса
GUIDE. Интерфейс включает в себя поля ввода (Edit Text) па
раметров исследуемой электрической схемы (R, L, C, C0), поля
вывода (Edit Text) рассчитываемых значений частот резонанса
и антирезонанса, область построения графика (Axes) зависимо
сти модуля проводимости от частоты и кнопку (Push Button),
запускающую программу на выполнение.
Рис. П2. Шаблон интерфейса для реализации программы
Для настройки параметров интерфейса рассмотрим свойства некоторых объектов. Для этого нажимаем правую кнопку мыши, наведенной на элемент, и выбираем пункт Property
Inpector (рис. П3).
138

Рис. П3. Пункт Property Inpector
ПРИЛОЖЕНИЕ
Для ввода текста необходимо использовать пункт String (вы-
делен прямоугольником).
Для полей, в которые предполагается внесение числовых
данных, необходимо изменить имя переменой, так как изна
чально имя объекта устанавливается произвольно. Для этого
выбираем пункт меню Tag, очищаем его и определяем новое
имя переменой (рис. П4).
Также мы можем настроить размер шрифта, выбрав пункт
меню FontSize (рис. П5), изменить цвет шрифта при помощи
пункта меню ForegroundColor (рис. П6).
139

ПРИЛОЖЕНИЕ
Рис. П4. Пункт меню Tag
140
Рис. П5. Пункт меню FontSize
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
