Проект в сфере программирования MATLAB. Проект. СанктПетербургский государственный университет телекоммуникаций им проф. М. А. БончБруевича
Скачать 491.08 Kb.
|
Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича» __________________________________________________________________ Кафедра радиотехнических систем и обработки сигналов Дисциплина «Прикладные пакеты моделирования» Отчёт по индивидуальному проекту MATLABСправочный материал по ОТЦВыполнил студент группы: РМ-02 Максимов А. М. Проверил: Гуреев А. Е. _____________________ Санкт-Петербург 2022 ВЫПОЛНЕНИЕ РАБОТЫ Окно приложения: Данное приложение выполняет функцию справочника по предмету «Общая теория цепей». При нажатии определённых кнопок выводиться информация по конкретному закону. Также кнопкой «Очистка» и «Выход» можно произвести соответственно очистку полей программы и выход из неё. Кнопка «Закон Ома»: function OMPushed(app, event) app.TextArea.Value = "Сила тока в замкнутой цепи прямо пропорционально ЭДС источника и обратно пропорционально полному сопротивлению цепи."; app.TextArea_2.Value = "E - электродвижущая сила(ЭДС), В; R - внешнее сопротивление, Ом; r - внутреннее сопротивление, Ом; I - сила тока, А"; formula = imread ("form1.jpg"); imshow(formula, jet, 'Parent', app.images); sheet = imread ("sheet1.jpg"); imshow(sheet, jet, 'Parent', app.images_2); end При нажатии на кнопку, в интерфейсе программы выводится следующая информация: Кнопка «Первый закон Кирхгофа»: function IzButtonPushed(app, event) app.TextArea.Value = "Алгебраическая сумма токов в любом узле электрической цепи равна нулю. Или сумма токов, втекающих в узел, равна сумме токов вытекающих."; app.TextArea_2.Value = "m - число токов, сходящихся в узле; I - сила тока, А"; formula2 = imread ("form2.jpg"); imshow(formula2, jet, 'Parent', app.images); sheet2 = imread ("sheet2.jpg"); imshow(sheet2, jet, 'Parent', app.images_2); end При нажатии на кнопку, в интерфейсе программы выводится следующая информация: Кнопка «Второй закон Кирхгофа»: function IIzButtonPushed(app, event) formula3 = imread ("form3.jpg"); imshow(formula3, jet, 'Parent', app.images); app.TextArea_2.Value = "m - число источников ЭДС; n - число элементов с сопротивлением в контуре; Uk - напряжение или падение напряжения, В; Ek - электродвижущая сила(ЭДС), В"; sheet3 = imread ("sheet3.jpg"); imshow(sheet3, jet, 'Parent', app.images_2); app.TextArea.Value = "Алгебраическая суммая падений напряжений в замкнутом контуре электрической цепи равна алгебраической сумме ЭДС, входящих в этот контур."; end При нажатии на кнопку, в интерфейсе программы выводится следующая информация: Кнопка «Очистка»: function clearPushed(app, event) app.TextArea.Value = ''; app.TextArea_2.Value = ''; zero = imread ("zero.jpg"); imshow(zero, jet, 'Parent', app.images); imshow(zero, jet, 'Parent', app.images_2); end При нажатии на кнопку, интерфейс очищается от полученной до этого информации и приходит в изначальный вид: Кнопка «Выход»: function exitButtonPushed(app, event) app.exit.Value = close(app.UIFigure); end При нажатии на кнопку, приложение закрывается. Полный код приложения: classdef App < matlab.apps.AppBase % Properties that correspond to app components properties (Access = public) UIFigure matlab.ui.Figure TextArea matlab.ui.control.TextArea Label matlab.ui.control.Label OM matlab.ui.control.Button Iz matlab.ui.control.Button IIz matlab.ui.control.Button clear matlab.ui.control.Button images matlab.ui.control.UIAxes TextArea_2 matlab.ui.control.TextArea images_2 matlab.ui.control.UIAxes exit matlab.ui.control.Button end % Callbacks that handle component events methods (Access = private) % Button pushed function: OM function OMPushed(app, event) app.TextArea.Value = "Сила тока в замкнутой цепи прямо пропорционально ЭДС источника и обратно пропорционально полному сопротивлению цепи."; app.TextArea_2.Value = "E - электродвижущая сила(ЭДС), В; R - внешнее сопротивление, Ом; r - внутреннее сопротивление, Ом; I - сила тока, А"; formula = imread ("form1.jpg"); imshow(formula, jet, 'Parent', app.images); sheet = imread ("sheet1.jpg"); imshow(sheet, jet, 'Parent', app.images_2); end % Button pushed function: clear function clearPushed(app, event) app.TextArea.Value = ''; app.TextArea_2.Value = ''; zero = imread ("zero.jpg"); imshow(zero, jet, 'Parent', app.images); imshow(zero, jet, 'Parent', app.images_2); end % Button pushed function: Iz function IzButtonPushed(app, event) app.TextArea.Value = "Алгебраическая сумма токов в любом узле электрической цепи равна нулю. Или сумма токов, втекающих в узел, равна сумме токов вытекающих."; app.TextArea_2.Value = "m - число токов, сходящихся в узле; I - сила тока, А"; formula2 = imread ("form2.jpg"); imshow(formula2, jet, 'Parent', app.images); sheet2 = imread ("sheet2.jpg"); imshow(sheet2, jet, 'Parent', app.images_2); end % Button pushed function: IIz function IIzButtonPushed(app, event) formula3 = imread ("form3.jpg"); imshow(formula3, jet, 'Parent', app.images); app.TextArea_2.Value = "m - число источников ЭДС; n - число элементов с сопротивлением в контуре; Uk - напряжение или падение напряжения, В; Ek - электродвижущая сила(ЭДС), В"; sheet3 = imread ("sheet3.jpg"); imshow(sheet3, jet, 'Parent', app.images_2); app.TextArea.Value = "Алгебраическая суммая падений напряжений в замкнутом контуре электрической цепи равна алгебраической сумме ЭДС, входящих в этот контур."; end % Button pushed function: exit function exitButtonPushed(app, event) app.exit.Value = close(app.UIFigure); end end % Component initialization methods (Access = private) % Create UIFigure and components function createComponents(app) % Create UIFigure and hide until all components are created app.UIFigure = uifigure('Visible', 'off'); app.UIFigure.Color = [0.502 0.502 0.502]; app.UIFigure.Position = [100 100 640 480]; app.UIFigure.Name = 'UI Figure'; % Create TextArea app.TextArea = uitextarea(app.UIFigure); app.TextArea.FontName = 'Times New Roman'; app.TextArea.FontSize = 18; app.TextArea.BackgroundColor = [0.8 0.8 0.8]; app.TextArea.Position = [336 286 286 125]; % Create Label app.Label = uilabel(app.UIFigure); app.Label.BackgroundColor = [0.8 0.8 0.8]; app.Label.HorizontalAlignment = 'center'; app.Label.FontName = 'Times New Roman'; app.Label.FontSize = 25; app.Label.FontWeight = 'bold'; app.Label.Position = [131 431 379 41]; app.Label.Text = 'Справочный материал по ОТЦ'; % Create OM app.OM = uibutton(app.UIFigure, 'push'); app.OM.ButtonPushedFcn = createCallbackFcn(app, @OMPushed, true); app.OM.BackgroundColor = [0.8 0.8 0.8]; app.OM.FontName = 'Times New Roman'; app.OM.FontSize = 18; app.OM.Position = [22 361 121 50]; app.OM.Text = 'Закон Ома'; % Create Iz app.Iz = uibutton(app.UIFigure, 'push'); app.Iz.ButtonPushedFcn = createCallbackFcn(app, @IzButtonPushed, true); app.Iz.BackgroundColor = [0.8 0.8 0.8]; app.Iz.FontName = 'Times New Roman'; app.Iz.FontSize = 18; app.Iz.Position = [22 255 121 50]; app.Iz.Text = {'Первый закон'; 'Кирхгофа'}; % Create IIz app.IIz = uibutton(app.UIFigure, 'push'); app.IIz.ButtonPushedFcn = createCallbackFcn(app, @IIzButtonPushed, true); app.IIz.BackgroundColor = [0.8 0.8 0.8]; app.IIz.FontName = 'Times New Roman'; app.IIz.FontSize = 18; app.IIz.Position = [22 153 121 50]; app.IIz.Text = {'Второй закон'; 'Кирхгофа'}; % Create clear app.clear = uibutton(app.UIFigure, 'push'); app.clear.ButtonPushedFcn = createCallbackFcn(app, @clearPushed, true); app.clear.BackgroundColor = [0.8 0.8 0.8]; app.clear.FontName = 'Times New Roman'; app.clear.FontSize = 18; app.clear.Position = [501 10 121 29]; app.clear.Text = 'Очистка'; % Create images app.images = uiaxes(app.UIFigure); title(app.images, '') xlabel(app.images, '') ylabel(app.images, '') app.images.AmbientLightColor = [0.502 0.502 0.502]; app.images.GridColor = [1 1 1]; app.images.MinorGridColor = [1 1 1]; app.images.XColor = [0.502 0.502 0.502]; app.images.XTick = []; app.images.YColor = [0.502 0.502 0.502]; app.images.YTick = []; app.images.ZTick = []; app.images.Color = [0.502 0.502 0.502]; app.images.BackgroundColor = [0.502 0.502 0.502]; app.images.Position = [153 153 176 258]; % Create TextArea_2 app.TextArea_2 = uitextarea(app.UIFigure); app.TextArea_2.FontName = 'Times New Roman'; app.TextArea_2.FontSize = 18; app.TextArea_2.BackgroundColor = [0.8 0.8 0.8]; app.TextArea_2.Position = [336 153 286 124]; % Create images_2 app.images_2 = uiaxes(app.UIFigure); title(app.images_2, '') xlabel(app.images_2, '') ylabel(app.images_2, '') app.images_2.AmbientLightColor = [0.502 0.502 0.502]; app.images_2.GridColor = [1 1 1]; app.images_2.MinorGridColor = [1 1 1]; app.images_2.XColor = [0.502 0.502 0.502]; app.images_2.XTick = []; app.images_2.YColor = [0.502 0.502 0.502]; app.images_2.YTick = []; app.images_2.ZTick = []; app.images_2.Color = [0.502 0.502 0.502]; app.images_2.BackgroundColor = [0.502 0.502 0.502]; app.images_2.Position = [142 10 315 133]; % Create exit app.exit = uibutton(app.UIFigure, 'push'); app.exit.ButtonPushedFcn = createCallbackFcn(app, @exitButtonPushed, true); app.exit.BackgroundColor = [0.8 0.8 0.8]; app.exit.FontName = 'Times New Roman'; app.exit.FontSize = 18; app.exit.Position = [22 10 121 29]; app.exit.Text = 'Выход'; % Show the figure after all components are created app.UIFigure.Visible = 'on'; end end % App creation and deletion methods (Access = public) % Construct app function app = App % Create UIFigure and components createComponents(app) % Register the app with App Designer registerApp(app, app.UIFigure) if nargout == 0 clear app end end % Code that executes before app deletion function delete(app) % Delete UIFigure when app is deleted delete(app.UIFigure) end end end ВЫВОДЫ Благодаря курсу «Прикладные пакеты моделирования» были получены навыки работы с языком программирования MATLAB в области написания различных типов выражения, а также их графического представления. А данный проект позволил применить навыки, полученные на данном курсе. Таким образом язык программирования MATLAB подходит для решения широкого спектра различных научных задач. |