Проектирование электрических схем в Simulink
Федеральное
государственное автономное образовательное учреждение
высшего
профессионального образования
«СИБИРСКИЙ
ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ИФРЭ
КУРСОВАЯ
РАБОТА
Проектирования
электрических схем в Simulink
Студент.
Э.И. Мельник
Руководитель
М.М. Валиханов
Красноярск
2012
Введение
Программа Simulink является приложением к
пакетам MATLAB. При моделировании с использованием Simulink реализуется принцип
визуального программирования, в соответствии с которым, пользователь на экране
из библиотеки стандартных блоков создает модель устройства и осуществляет
расчеты. При этом, в отличие от классических способов моделирования,
пользователю не нужно досконально изучать язык программирования и численные
методы математики, а достаточно общих знаний требующихся при работе на
компьютере и, естественно, знаний той предметной области в которой он работает.k
является достаточно самостоятельным инструментом MATLAB и при работе с
ним совсем не требуется знать сам MATLAB и остальные его приложения. С
другой стороны доступ к функциям MATLAB и другим его инструментам
остается открытым и их можно использовать в Simulink. Часть входящих в
состав пакетов имеет инструменты, встраиваемые в Simulink (например,
LTI-Viewer приложения Control System Toolbox - пакета для разработки
систем управления). Имеются также дополнительные библиотеки блоков для разных
областей применения (например, Power System Blockset - моделирование
электротехнических устройств, Digital Signal Processing Blockset - набор блоков
для разработки цифровых устройств и т.д).
При работе с Simulink пользователь имеет
возможность модернизировать библиотечные блоки, создавать свои собственные, а
также составлять новые библиотеки блоков.
В ходе моделирования имеется возможность следить
за процессами, происходящими в системе. Для этого используются специальные
устройства наблюдения, входящие в состав библиотеки Simulink. Результаты
моделирования могут быть представлены в виде графиков или таблиц.
. Линейные цепи постоянного тока
Задание.
Для электрической цепи рис.1,
соответствующей номеру варианта [2], выполнить следующее:
1) Определить токи во всех ветвях схемы методом
узловых потенциалов. 2)Начертить потенциальную диаграмму для любого замкнутого
контура, включающего обе ЭДС.
Рисунок 1 - Исходная электрическая схема
Линейная схема на постоянном токе. Схема состоит
из четырёх активных элементов и пяти пассивных.
Для удобного ввода и вывода можно использовать
интерфейс [1,5]. Пользователю предлагается вести в ячейки значение:
E1-значение
идеального источника напряжения E1
вольт,
E2- значение
идеального источника напряжения E4 вольт,
I1-значение
идеального источника тока J1
ампер,
I2-значение
идеального источника тока J5
ампер,
R1-значение
сопротивление на резисторе R1
ом,
R2- значение
сопротивление на резисторе R2 ом,
R3- значение
сопротивление на резисторе R3 ом,
R4- значение
сопротивление на резисторе R5 ом,
R5- значение
сопротивление на резисторе R6 ом.
После этого нажать на кнопку «Решить».
Интерфейс представлен на рис.2,
текст программы смотрите Приложение А.
Рисунок 2 -Окно интерфейса
Схема в окне редактора [5]
представлена на рис.43.
Рисунок 3- Схема в окне редактора
После запуска симуляции. Измерения производятся
с помощью специального блока Multimeter. Результат записывается в массив
переменой simout это происходит в блоке ToWorkspace. В отдельном окне выводится
таблица со значениями. В окне интерфейса строится график Потенциалов цепи.
Таблица 1 - Контрольные значения
|
|
|
|
|
|
|
|
|
16
|
35
|
1
|
1.5
|
16
|
25
|
60
|
45
|
1
|
Результат токов на рис.4, график Потенциалов
цепи на рис.5. Для проверки токов можно воспользоваться первым законом Кирхгофа
формула (1).
(1)
Рисунок 4- Результат токов в амперах.
Рисунок 5- Потенциальная диаграмма
Для проверки графика Потенциалов [4] цепи
достаточно, чтобы график начинался значением ноль вольт, строится заземленный
узел, и заканчивался значением ноль вольт, обозначает обход по контуру и
возвращается в заземленный узел.
Вывод. Используя Simulink
раздел SimPowersystem
можно рассчитывать электрические линейные схемы на постоянном токе. Можно
вычислить ток в каждой из ветви, измерить напряжения в узлах. Используя связь
графического интерфейса и Simulink, даёт возможность быстро изменять параметры
схемы, не меняя параметры в рабочем окне. В отдельном окне можно построить
графики, которые дают наглядное представление закона Кирхгофа.
. Линейные электрические цепи переменного тока
Задание
Для электрической цепи рис.6,
соответствующей номеру варианта [2], выполнить следующее:
1) Определить комплексы действующих значений токов
во всех ветвях, используя один из методов расчета линейных электрических цепей.
) Построить топографическую диаграмму,
совмещенную с векторной диаграммой токов.
Рисунок 6 - Исходная электрическая схема
Линейная схема на переменном токе. Схема состоит
из двух активных элементов и четырех пассивных.
Для удобного ввода и вывода можно использовать
интерфейс [5]. Пользователю предлагается вести в ячейки значение:-значение
идеального источника напряжения E1 вольт,- значение идеального
источника напряжения E2 вольт,
W-значение частоты
источников Е1 и Е2 герц,
P1-значение
начальной фазы источника Е1 градус,
P2-значение
начальной фазы источника Е2 градус,
L1-значение
индуктивности катушки L1
генри,
L2-значение индуктивности катушки L2 генри,
С1-значение емкости конденсатора С2 фарад,
R1- значение сопротивление на резисторе R3 ом.
После этого нажать кнопку «Решить».
Интерфейс представлен на рис.7,
текст программы смотрите Приложение Б.
Рисунок 7- Окно интерфейса
Схема в окне редактора [5] представлена на рис.8
Рисунок 8 - Схема в окне редактора
После запуска симуляции. В отдельном окне
выводится таблица со значениями. В окне интерфейса строится векторная диаграмма
токов и напряжений.
Таблица 2 - Контрольные значения
|
|
|
|
|
|
|
|
|
70.5
|
84.6
|
12.7e-3
|
47.8e-3
|
31.9e-6
|
25
|
100
|
20
|
-10
|
Результат токов на рис.9, векторная
диаграмма токов рис.10.
Для проверки токов можно
воспользоваться первым и вторым законом Кирхгофа формула (2) [3].
(2)
Подставим значения.
Рисунок 9 -Значение токов в амперах
Рисунок 10-Диаграмма токов и напряжений
Для проверки векторной диаграммы [5] токов
достаточно, чтобы график начинался в узле a
равный ноль вольт, строится заземленный узел, в узле b
обход по трем ветвям должен дать одинаковое значение потенциала b.
Вывод. Используя Simulink раздел SimPowersystem
можно рассчитывать электрические линейные схемы на переменном токе. Можно
вычислить ток в каждой из ветви, измерить напряжения в узлах. Используя связь
графического интерфейса и Simulink, даёт возможность быстро изменять параметры
схемы, не меняя параметры в рабочем окне. В отдельном окне можно построить
графики, которые дают наглядное представление закона Кирхгофа.
. Электрические фильтры
Задание
Произвести расчет режимов работы фильтра типа k
по исходным данным [2]. Фильтр нижних частот собран по П-образной схеме рис.11.
Ёмкость каждого конденсатора С, индуктивность катушки L. На входные зажимы
фильтра подано напряжение при частоте f. К выходным зажимам фильтра подключено
сопротивление, согласованное на заданной частоте с характеристическим
сопротивлением фильтра.
Рисунок 11 -Исходный П образный фильтр
Схема является четырехполюсником. Схема собрана
по П-образным фильтром нижних частот. Состоит из катушки индуктивности и двух
параллельных конденсаторов.
Для удобного ввода и вывода можно использовать
интерфейс [6]. Пользователю предлагается вести в ячейки значение:- значение
идеального источника напряжения E1 вольт,
L1-значение
индуктивность катушки L
генри,
C1-значение полной
емкости конденсаторов цепи фарад,
F-значение частоты
идеального источника напряжения E1 герц,
F0- значение
начальной фазы идеального источника напряжения E1 в градусах.
После этого нажать кнопку «Решить».
Интерфейс представлен на рис.12, текст программы
смотрите Приложение В.
Рисунок 12-Окно интерфейса
Схема в окне редактора [5] представлена на
рис.13
Рисунок 13 -Схема П-образного фильтра в окне
редактора
После запуска симуляции. В отдельном окне
выводится таблица со значениями рис.14. В другом окне строится векторная
диаграмма токов и напряжений рис.15.
Таблица 3 - Контрольные значения
Рисунок 14-Значение тока в амперах, напряжение в
вольтах, сопротивление в омах
Рисунок 15-Векторная диаграмма токов и
напряжений
Для проверки векторной диаграммы токов и
потенциалов [4], достаточно чтобы график ток совпадал с напряжением на
сопротивление и отставал на девяносто градусов от выходного напряжения.
Чтобы исследовать характеристики П-образного
фильтра [3], например передаточные, удобно воспользоваться разделом SimRF подпункте
Filtres. В этом подпункте находятся готовые модели фильтров с изменяемые
параметрами:
Индуктивность катушки в генри,
Ёмкость для двух конденсаторов в фарадах,
Диапазон частот начальную частоту, шаг частоты и
конечную частоту в герцах,
Входное сопротивление в омах,
Напряжение источника в вольтах.
Пользователю нужно открыть вкладку блока Output
Port выбрать нужные
характеристики, например параметры S11,
S12,
S21,
S22, предаточные
функции.
Выбирая между real
и phase, можно построить
АЧХ или ФЧХ [3]. Характеристики представлены на рис.17, рис.18, рис.19, рис.20.
Исследования характеристик П-образного фильтра
рис.16.
Рисунок 16 -Схема П-образного фильтра в
редакторе
Передаточная АЧХ RLC(R)
цепи рис.17. Линия S12.
На
частоте от 0 до 8000Гц.
Рисунок 17-Передаточное АЧХ
Передаточная АЧХ RLC(L)
цепи рис.18. Линия S22. На частоте от 0 до 8000Гц.
Рисунок 18-Передаточное АЧХ
Передаточная ФЧХ RLC(C)
цепи рис.19. Линия S11. На частоте от 0 до 8000Гц.
Рисунок 19-Передаточное ФЧХ
Передаточная ФЧХ RLC(R)
цепи рис.20. Линия S12. На частоте от 0 до 8000Гц.
Рисунок 20-Передаточное ФЧХ
Для доказательства фильтра нижних частот,
достаточно чтобы при высоких частотах значение по АЧХ или ФЧХ ниже полосы
пропускания [4].
Вывод. Используя Simulink раздел SimPowersystem,
SimRF можно рассчитывать
фильтры и их характеристики. Можно исследовать придаточные характеристики и
строить векторные диаграммы токов и напряжений. Используя связь графического
интерфейса и Simulink, даёт возможность быстро изменять параметры схемы, не
меняя параметры в рабочем окне. В отдельном окне можно построить графики,
которые дают наглядное представление характеристик П-фильтров и доказывают их
принадлежность к фильтрам низких частот.
линейный цепь электрический ток
Заключение
Использования пакет Simulink
можно рассчитывать линейные цепи двухполюсников и четырёхполюсников. Данные
полученные из Simulink
могут быть использованы для проверки, закрепление материала по предмету Основы
Теории цепей. Можно наглядно увидеть значение величин в данной работе это ток и
напряжение. Как они изменяются со временем на определённой частоте.
Измеряя цепь на постоянном токе в разделе Simpower
system, опираясь на
Теорию цепей можно проверить, токи по первому закону Кирхгофа, и по диаграмме
потенциалов. Для этого нужно снять показания с узлов, напряжения с элементов.
Оно делается автоматически в блоке Multimetr.
В цепи с переменным током появились дополнительные параметры. Катушка
индуктивности, конденсатор, частота источника, начальная фаза источника.
Результат выводится в комплексном виде. Комплексную форму применима в
построение векторной диаграммы токов и напряжений, которая показывает изменения
векторов тока за один период.
Исследуя П-фильтр, задача была в доказательстве,
что этот фильтр является фильтром низких частот. Раздел simRF
находятся модели фильтров с изменяющимися параметрами такими как:
индуктивность, ёмкость, пределы частот измерения, входное сопротивление. Для
реализации источника использовал источник дискретного сигнала. Построив графики
передаточных АЧХ и ФЧХ подтверждает, что фильтр низких частот.
Список литературы
1.Бадриев,
И.Б., Разработка графического интерфейса в среде Matlab.Учебное
пособие/ Бадриев, И.Б.-Казань: Казанский государственный университет, 2010. -
131 с.
.Вепринцев,
В.И., Основы теории цепей: Учеб. практикум/ В.И.Вепринцев. Красноярск: ИПЦ
КГТУ, 2005. - 140 с.
.Дьяконов,
В.П. Matlab 6.5 SP1/7.0
Simulink 5/6 Обработка
сигналов и проектирования фильтров. - СПБ.:Питер,2001. - 592 с.
.Зернов,
Н.В. Карпов, В.Г. Теория радиотехнических цепей: М.-Л., издательство «Энергия»,
1965, - 892 стр.
.Кетков
Ю.Л., Кетков А.Ю., Шульц М.М. Matlab
7:программирование, численные методы. - СПБ.: БХВ-Петербург, 2005. - 752 с:ил.
.Черных,
И.В. Simulink:среда
создания инженерных приложений / Под общ.
ред.
к.т.н. В.Г.Потёмкина. - М.:ДИАЛОГ-МИФИ,2003. - 496с.
Приложения
Приложение А
Текст программы лабораторной №1
Текст интерфейса реализованный методом uicontrol.
function interface
|
Название
функции.
|
global e e2 i i2 r r1 r2 r3 r4 a k
|
Список
глобальных переменных.
|
f=figure(1);
|
Метка
для окна.
|
set(f,'name','RGZ1','menubar','none');
|
Параметры
фигуры.
|
axis off
|
Отключение
оси.
|
t=text();
|
Присвоение текстовому полю меток.
|
t1=text();
|
|
t2=text();
|
|
t3=text();
|
|
t4=text();
|
|
t5=text();
|
|
t6=text();
|
|
t7=text();
|
|
t8=text();
|
|
t9=text();
|
|
t10=text();
|
|
t11=text();
|
|
t12=text();
|
|
t13=text();
|
|
set(t,'string','E1','BackgroundColor',
[1 0 0],'FontSize',16, 'position', [-0.12,0.3-0.05]);
|
Присвоение
текстовым объектам значение текст.
|
set(t1,'string','E2','BackgroundColor'
,[1 0 0],'FontSize',16, 'position', [0.2,0.3-0.05]);
|
|
set(t2,'string','I1','BackgroundColor',
[0 0 1],'FontSize',16, 'position', [0.52,0.3-0.05]);
|
|
set(t3,'string','I2','BackgroundColor',[0
0 1], 'FontSize',16, 'position', [0.85,0.3-0.05]);
|
|
set(t4,'string','R1','BackgroundColor',[0
1 0], 'FontSize',16, 'position', [-0.16,0.05]);
|
|
set(t5,'string','R2','BackgroundColor',[0
1 0] ,'FontSize',16, 'position', [0.12,0.05]);
|
|
set(t6,'string','R3','BackgroundColor'
,[0 1 0],'FontSize',16, 'position', [0.38,0.05]);
|
|
set(t7,'string','R4','BackgroundColor',
[0 1 0],'FontSize',16, 'position', [0.64,0.05]);
|
|
set(t8,'string','R5','BackgroundColor'
,[0 1 0],'FontSize',16, 'position', [0.89,0.05]);
|
|
set(t9,'string','Потенциальная
диаграмма электрической цепи постоянного тока','BackgroundColor',[1 1 1],
'FontSize',8,
'position', [0.05,1.07]);
|
|
set(t10,'string','Потенциал
на узлах (В)',' BackgroundColor',[1 1 1],'FontSize',8, 'position',
[-0.05,0.6],'Rotation',90);
|
|
set(t11,'string','Сопротивление
нагрузки (Ом)','BackgroundColor', [1 1
1],'FontSize',8, 'position', [0.3,0.35]);
|
|
e=uicontrol('style','edit','units',
'normalized','position', [0.05*2.2,0.30.05,0.1,0.1], 'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor', [1 1 1],'string' ,'0');
|
Текстовые
поля ввода.
|
e2=uicontrol('style','edit','units'
,'normalized','position', [0.16*2.2,0.30.05,0.1,0.1],
'HorizontalAlignment','left', 'fontsize',12,'BackgroundColor', [1 1 1],'string'
,'0');
|
|
i=uicontrol('style','edit','units','normalized','position',
[0.27*2.2,0.30.05,0.1,0.1], 'HorizontalAlignment','left',
'fontsize',12,'BackgroundColor', [1 1 1],'string' ,'0');
|
|
i2=uicontrol('style','edit','units',
'normalized','position', [0.38*2.2,0.3-0.05,0.1,0.1], 'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor' ,[1 1 1],'string' ,'0');
|
|
r=uicontrol('style','edit','units',
'normalized','position', [0.05*1.2,0.1,0.1,0.1] ,'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor' ,[1 1 1],'string' ,'0');
|
|
r1=uicontrol('style','edit','units'
,'normalized','position', [0.16*1.8,0.1,0.1,0.1], 'HorizontalAlignment',
'left','fontsize', 12,'BackgroundColor',[1 1 1],'string' ,'0');
|
|
r2=uicontrol('style','edit','units',
'normalized','position', [0.27*1.8,0.1,0.1,0.1], 'HorizontalAlignment',
'left','fontsize',12, 'BackgroundColor',[1 1 1],'string' ,'0');
|
|
r3=uicontrol('style','edit','units',
'normalized','position', [0.38*1.8,0.1,0.1,0.1], 'HorizontalAlignment',
'left','fontsize',12, 'BackgroundColor',[1 1 1],'string' ,'0');
|
|
r4=uicontrol('style','edit','units','normalized','position',
[0.49*1.8,0.1,0.1,0.1],'HorizontalAlignment' ,'left','fontsize',12,
'BackgroundColor',[1 1 1],'string' ,'0');
|
|
k=uicontrol('style','pushbutton',
'units','normalized','callback','rg', 'position',[0.35,0.01,0.3,0.08],'string','
Решить','BackgroundColor',
[1 1 0],'FontSize',16);
|
Присвоение
кнопки «Решить» действие и запуск функции.
|
a=axes();
|
Присвоение
метки оси
|
set(a,'outerposition',[0.05 0.4
0.8 0.6],'Layer','top','XLIM', [0,90],'YLIM',[-100 100],
'XGrid','on','YGrid','on');
|
Настройка
параметров оси.
|
set(t12,'string','\rightarrow',
'FontSize',8, 'position', [0.83,0.444]);
|
Вставка стрелок на оси.
|
set(t13,'string','\uparrow',
'FontSize',8, 'position', [0.021,1.05]);
|
|
grid
on
|
Включение
сетки.
|
Текст программы, запускающийся после нажатия
кнопки «Решить».
function rg
|
Название
функции.
|
global e e2 i i2 r r1 r2 r3 r4 fu
k a
|
Глобальные
переменные.
|
v=get(k,'value');
|
Проверка
события нажатие кнопки.
|
t=1:1:9;
|
|
t=[];
|
|
if v==1
|
|
f1=get(e,'string');
|
Считывание
с текстовых полей.
|
f2=get(e2,'string');
|
|
f3=get(i,'string');
|
|
f4=get(i2,'string');
|
|
f5=get(r,'string');
|
|
f6=get(r1,'string');
|
|
f7=get(r2,'string');
|
|
f8=get(r3,'string');
|
|
f9=get(r4,'string');
|
|
f9=get(r4,'string');
|
|
t(1)=str2num(f1);
|
|
t(2)=str2num(f2);
|
|
t(3)=str2num(f3);
|
|
t(4)=str2num(f4);
|
|
t(5)=str2num(f5);
|
|
t(6)=str2num(f6);
|
|
t(7)=str2num(f7);
|
|
t(8)=str2num(f8);
|
|
t(9)=str2num(f9);
|
|
end
|
|
c=figure();
|
Метка
Окна.
|
axis off
|
Отключение
осей
|
o=text();
|
|
set(c,'name','RGZ1(Резултат)','menubar','none');
|
Настройка
окна.
|
set(o,'string','Результат','BackgroundColor',
[1 0 0],'FontSize',32, 'position', [0.4,0.8]);
|
|
open_system('RGZZ');
|
Открытие
файла модели.
|
set_param('RGZZ/EA','Amplitude',num2str(t(1)));
|
Присвоение
параметров блоков модели соответствии с названиями.
|
set_param('RGZZ/EB','Amplitude',num2str(t(2)));
|
|
set_param('RGZZ/IA','amplitude',num2str(t(3)));
|
|
set_param('RGZZ/IB','amplitude',num2str(t(4)));
|
|
set_param('RGZZ/RA','Resistance',num2str(t(5)));
|
|
set_param('RGZZ/RB','Resistance',num2str(t(6)));
|
|
set_param('RGZZ/RC','Resistance',num2str(t(7)));
|
|
set_param('RGZZ/RD','Resistance',num2str(t(8)));
|
|
set_param('RGZZ/RE','Resistance',num2str(t(9)));
|
|
sim('RGZZ');
|
Симуляция
модели.
|
tab=uitable();
|
Включение
таблицы.
|
rnames = {'Сила
тока(А)'};
|
Настройка
таблицы.
|
cnames =
{'I1','I2','I3','I4','I5','I6'};
|
|
fer=num2str(izza.signals.values(1));
|
Перевод
числа в строку.
|
fer1=num2str(simout1.signals.values(1));
|
|
fer2=num2str(simout2.signals.values(1));
|
|
fer3=num2str(simout3.signals.values(1));
|
|
fer4=num2str(simout4.signals.values(1));
|
|
fer5=num2str(simout5.signals.values(1));
|
|
set(tab,'data',[str2num(fer(1:5)),
str2num(fer1(1:5)),str2num(fer2(1:5)), str2num(fer3(1:5)),str2num(fer4(1:5))
str2num(fer5(1:5))], 'FontSize',16,'Position',[0 200 800
100],'RowName',rnames,'ColumnName',cnames);
|
Запись
значений в таблицу.
|
figure(1)
|
|
plot([025 41 41 42
87],[0,simout6.signals.values(1), simout7.signals.values(1),
simout8.signals.values(1), uuz.signals.values(1), uuz1.signals.values(1)]);
|
Построение
диаграммы по данным симуляции.
|
set(a,'Layer','top','XLIM',
[0,90],'YLIM',[-100 100], 'XGrid','on','YGrid','on');
|
Настройка
оси.
|
Приложение Б
Текст программы лабораторной №2
Текст интерфейса, реализованный методом
uicontrol.
function rgz2
|
Название
функции.
|
global e e2 i i2 r r1 a k f w p1
p2
|
Глобальные
переменные.
|
ff=fopen('boff','r');
|
Метка
для бинарного файла.
|
[c,n]=fread(ff,inf,'uchar');
|
Считывание
с файла.
|
fclose(ff);
|
Закрытие
файла.
|
fll=1;
|
Перевод
текста из бинарного файла и присваивание его переменным.
|
for i=1:1:n/2
|
|
ff=fopen('boff','r');
|
|
[c1,p]=fread(ff,i*2,'uchar');
|
|
ss(fll:fll+1)=char(c1(end-1:end));
|
|
fll=fll+2;
|
|
c1=[];
|
|
end
|
|
f=figure(1);
|
Метка
Окна.
|
set(f,'name','RGZ2','menubar','none');
|
Настройка
окна.
|
axis off
|
Отключение
оси
|
t=text();
|
Присвоение
меток текстовым объектам.
|
t1=text();
|
|
t2=text();
|
|
t3=text();
|
|
t4=text();
|
|
t5=text();
|
|
t6=text();
|
|
t7=text();
|
|
t8=text();
|
|
t9=text();
|
|
t10=text();
|
|
t11=text();
|
|
t12=text();
|
|
t13=text();
|
|
t14=text();
|
|
set(t,'string',ss(3:4),'BackgroundColor',[1
0 0], 'FontSize',16, 'position', [-0.12,0.3-0.05]);
|
Присваивание
текстовым объектам значение текст.
|
set(t1,'string',ss(5:6),'BackgroundColor',
[1 0 0],'FontSize',16, 'position',
[0.2,0.3-0.05]);
|
|
set(t2,'string',ss(7:8),'BackgroundColor',
[0 0 1],'FontSize',16, 'position', [0.52,0.3-0.05]);
|
|
set(t3,'string',ss(1:2),'BackgroundColor',
[0 0 1],'FontSize',16, 'position',
[0.85,0.3-0.05]);
|
|
set(t4,'string',ss(9:10),'BackgroundColor',
[0 1 0],'FontSize',16, 'position',
[-0.16,0.05]);
|
|
set(t5,'string',ss(11:12),'BackgroundColor',
[0 1 0],'FontSize',16, 'position',
[0.04,0.05]);
|
|
set(t6,'string',ss(15:16),'BackgroundColor',
[0 1 0],'FontSize',16, 'position',
[0.25,0.05]);
|
|
set(t8,'string',ss(19:20),'BackgroundColor',
[0 1 0],'FontSize',16, 'position',
[0.59,0.05]);
|
|
set(t14,'string',ss(21:22),'BackgroundColor',
[0 1 0],'FontSize',16, 'position', [0.78,0.05]);
|
|
set(t9,'string','Векторная
диаграмма токов','BackgroundColor', [1 1
1],'FontSize',8, 'position', [0.05,1.07]);
|
|
set(t10,'string','Мнимая
часть (В А*0,1)', 'BackgroundColor',[1 1 1],'FontSize',8,
'position',
[-0.05,0.6],'Rotation',90);
|
|
set(t11,'string','Действительная
часть(В А*0,1)','BackgroundColor', [1 1
1],'FontSize',8, 'position', [0.3,0.35]);
|
|
e=uicontrol('style','edit','units','normalized',
'position', [0.05*2.2,0.3-0.05,0.1,0.1], 'HorizontalAlignment','left',
'fontsize',12,'BackgroundColor' ,[1 1 1],'string' ,'12.7e-3');
|
Создание
текстовых полей ввода.
|
e2=uicontrol('style','edit','units',
'normalized','position', [0.16*2.2,0.3-0.05,0.1,0.1], 'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor', [1 1 1],'string' ,'47.8e-3');
|
|
i=uicontrol('style','edit','units','normalized',
'position', [0.27*2.2,0.3-0.05,0.1,0.1], 'HorizontalAlignment','left',
'fontsize',12,'BackgroundColor', [1 1 1],'string' ,'31.9e-6');
|
|
i2=uicontrol('style','edit','units',
'normalized','position',
[0.38*2.2,0.3-0.05,0.1,0.1],'HorizontalAlignment','left','fontsize',
12,'BackgroundColor',[1 1 1],'string' ,'25');
|
|
r=uicontrol('style','edit','units','normalized','position',
[0.05*1.2,0.1,0.1,0.1],'HorizontalAlignment', 'left','fontsize',12,
'BackgroundColor',[1 1 1],'string' ,'75');
|
|
r1=uicontrol('style','edit','units','normalized','position',
[0.12*1.8,0.1,0.09,0.1],'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor',[1 1 1], 'string' ,'84.6');
|
|
w=uicontrol('style','edit','units',
'normalized','position', [0.2*1.8,0.1,0.09,0.1], 'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor', [1 1 1],'string' ,'100');
|
|
p1=uicontrol('style','edit','units','normalized','position',
[0.36*1.8,0.1,0.09,0.1],'HorizontalAlignment', 'left','fontsize',12,
'BackgroundColor',[1 1 1],'string' ,'20');
|
|
p2=uicontrol('style','edit','units',
'normalized','position', [0.44*1.8,0.1,0.09,0.1], 'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor', [1 1 1],'string' ,'-10');
|
|
k=uicontrol('style','pushbutton','units',
'normalized','callback','rg','position',
[0.35,0.01,0.3,0.08],'string',ss(13:14), 'BackgroundColor',[1 1
0],'FontSize',16);
|
Создание
кнопки «Решить» запуск функции.
|
a=axes();
|
Метка
оси.
|
set(a,'outerposition',[0.05 0.4
0.8 0.6], 'Layer','top','XLIM',[-20,20],'YLIM', [-20
,20],'XGrid','on','YGrid','on');
|
Настройка
оси.
|
set(t12,'string','\rightarrow','FontSize',8,
'position', [0.83,0.444]);
|
Добавление
стрелок к осям.
|
set(t13,'string','\uparrow',
'FontSize',8, 'position', [0.025,1.05]);
|
|
grid
on
|
Включение
сетки.
|
Текст программы, запускающийся после нажатия
кнопки «Решить».
function rg
|
Название
функции.
|
global e e2 i i2 r r1 r2 r3 r4 fu
k a w p1 p2
|
Глобальные
переменные
|
v=get(k,'value');
|
Проверка
события нажатия кнопки
|
t=1:1:9;
|
|
t=[];
|
|
if v==1
|
|
f1=get(e,'string');
|
Считывания
данных с текстового поля.
|
f2=get(e2,'string');
|
|
f3=get(i,'string');
|
|
f4=get(i2,'string');
|
|
f5=get(r,'string');
|
|
f6=get(r1,'string');
|
|
f8=get(w,'string');
|
|
f10=get(p1,'string');
|
|
f11=get(p2,'string');
|
|
t(1)=str2num(f1);
|
|
t(2)=str2num(f2);
|
|
t(3)=str2num(f3);
|
|
t(4)=str2num(f4);
|
|
end
|
|
c=figure();
|
Метка
Окна.
|
axis off
|
Отключение
оси.
|
f10(end+1:end+3)='+90';
|
Приписка
90 градусов для Косинусоидального источника
|
f11(end+1:end+3)='+90';
|
|
open_system('rgz3');
|
Открытие
модели.
|
set_param('rgz3/l1','Inductance',num2str(t(1)*0.001));
|
Присвоение
значения блокам согласно их названий.
|
set_param('rgz3/l2','Inductance',num2str(t(2)*0.001));
|
|
set_param('rgz3/l3','Capacitance',num2str(t(3)*0.001));
|
|
set_param('rgz3/R1','Resistance',num2str(t(4)));
|
|
set_param('rgz3/E1','Amplitude',f5);
|
|
set_param('rgz3/E1','Frequency',f8);
|
|
set_param('rgz3/E1','Phase',f10);
|
|
set_param('rgz3/E2','amplitude',f6);
|
|
set_param('rgz3/E1','Phase',f11);
|
|
sim('rgz3');
|
Симуляция
модели.
|
tab=uitable();
|
Метка
таблицы.
|
rnames = {'Сила
тока(А)'};
|
Настройка
таблицы.
|
cnames = {'I1','I2','I3'};
|
|
set(tab,'data',[simout6(1);simout7(1);simout8(1)]',
'FontSize',16,'Position',[0 200 800 100],'RowName',
rnames,'ColumnName',cnames);
|
Запись
значения в таблицу.
|
figure(1)
|
Открытия
окна.
|
hold on
|
Наложение
графиков.
|
plot([0,real(simout1(1))*0.2,-real(simout(1))*0.2],
[0,imag(simout1(1))*0.2,-imag(simout(1))*0.2],
'--gs',[0,real(simout3(1))*0.2,real(simout2(1))*0.2],
[0,imag(simout3(1))*0.2,imag(simout2(1))*0.2],
'--bs',[0,real(simout5(1))*0.2,real(simout4(1))*0.2], [0,imag(simout5(1))*0.2,imag(simout4(1))*0.2],'--rs');
|
Постройка
векторной диаграммы, отделяя действительную и мнимую часть.
|
plot([0,real(simout6(1)*5)],[0,imag(simout6(1)*5)],
'--g',[0,real(simout7(1)*5)],[0,imag(simout7(1)*5)], '--y',[0,real(simout8(1)*5)],
[0,imag(simout8(1)*5)],'-b');
|
|
plot([-20,20],[0,0],'--ys');
|
Линии
осей
|
plot([0,0],[-20,20],'--ys');
|
|
axis([-20,20,-20,20]);
|
|
text(real(simout6(1)*5),imag(simout6(1)*5)+2.5,'I1');
|
Подпись
векторов.
|
text(real(simout7(1)*5),imag(simout7(1)*5)+2.5,'I2');
|
|
text(real(simout8(1)*5),imag(simout8(1)*5)+2.5,'I3');
|
|
grid
on;
|
Включение
сетки.
|
set(a,'Layer','top','XLIM',[-20,20],'YLIM',
[-20 20],'XGrid','on','YGrid','on');
|
Настройка оси.
|
Приложение В
Текст программы лабораторной №3
Текст интерфейса, реализованный методом
uicontrol.
function interface
|
Название
функции.
|
global e e2 i i2 r r1 r2 r3 r4 a k
|
Глобальные
переменые.
|
f=figure(1);
|
Метка
Окна.
|
set(f,'outerposition',[500 400 600
100], 'menubar','none','Resize','off','name','RGZ3');
|
Настройки
Окна.
|
axis off
|
Отключение
осей.
|
t=text();
|
Метки
текстовых объектов.
|
t1=text();
|
|
t2=text();
|
|
t3=text();
|
|
t4=text();
|
|
t5=text();
|
|
t6=text();
|
|
t7=text();
|
|
t8=text();
|
|
t9=text();
|
|
t10=text();
|
|
t11=text();
|
|
t12=text();
|
|
t13=text();
|
|
set(t4,'string','L1','BackgroundColor',
[0 1 0],'FontSize',16, 'position', [-0.16,0.8]);
|
Присваивание
текстовым объектам параметра текст.
|
set(t5,'string','C1','BackgroundColor',
[0 1 0],'FontSize',16, 'position', [0.12,0.8]);
|
|
set(t6,'string','F','BackgroundColor',[0
1 0], 'FontSize',16, 'position', [0.38,0.8]);
|
|
set(t7,'string','F0','BackgroundColor',[0
1 0], 'FontSize',16, 'position', [0.64,0.8]);
|
|
set(t8,'string','E2','BackgroundColor',[0
1 0], 'FontSize',16, 'position', [0.89,0.8]);
|
|
r=uicontrol('style','edit','units','normalized','position',
[0.05*1.2,0.4,0.1,0.4],'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor',[1 1 1],'string' ,'0');
|
Создание
текстовых полей ввода.
|
r1=uicontrol('style','edit','units','normalized','position',
[0.16*1.8,0.4,0.1,0.4],'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor',[1 1 1],'string' ,'0');
|
|
r2=uicontrol('style','edit','units','normalized','position',
[0.27*1.8,0.4,0.1,0.4],'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor',[1 1 1],'string' ,'0');
|
|
r3=uicontrol('style','edit','units','normalized','position',
[0.38*1.8,0.4,0.1,0.4],'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor',[1 1 1],'string' ,'0');
|
|
r4=uicontrol('style','edit','units','normalized','position',
[0.49*1.8,0.4,0.1,0.4],'HorizontalAlignment',
'left','fontsize',12,'BackgroundColor',[1 1 1],'string' ,'0');
|
|
k=uicontrol('style','pushbutton','units','normalized',
'callback','rg','position',[0.35,0.01,0.35,0.3],'string', 'Решить','BackgroundColor',[1
1 0],'FontSize',16);
|
Создание
кнопки «Решить» запуск функции.
|
|
|
|
Текст программы, запускающийся после нажатия
кнопки «Решить».
function rg
|
Название
функции.
|
global e e2 i2 r r1 r2 r3 r4 k a
|
Глобальные
переменные.
|
v=get(k,'value');
|
Проверка
события нажатии кнопки.
|
t=1:1:9;
|
|
t=[];
|
|
if v==1
|
|
f5=get(r,'string');
|
Считывание
данных с текстовых полей.
|
f6=get(r1,'string');
|
|
f7=get(r2,'string');
|
|
f8=get(r3,'string');
|
|
f9=get(r4,'string');
|
|
f9=get(r4,'string');
|
|
t(5)=str2num(f5);
|
|
t(6)=str2num(f6);
|
|
t(7)=str2num(f7);
|
|
t(8)=str2num(f8);
|
|
t(9)=str2num(f9);
|
|
end
|
|
c=figure();
|
Метка
Окна.
|
axis off
|
Отключение
оси.
|
o=text();
|
Метка
текстового объекта.
|
set(c,'name','RGZ3(Резултат)','menubar','none');
|
Настройка
окна.
|
set(o,'string','Результат','BackgroundColor',
[1 0 0],'FontSize',32, 'position', [0.4,0.8]);
|
Присвоение
текстовому объекту значение текст.
|
open_system('RGZ4');
|
Открытие
модели.
|
open_system('rrr');
|
Открытие
модели.
|
set_param('RGZ4/powergui','frequency'
,num2str(t(7)));
|
Присвоение
значения блокам согласно их имён.
|
set_param('RGZ4/E','amplitude',
num2str(t(9)));
|
|
set_param('rrr/sorce','amplitude',num2str(t(9)));
|
|
set_param('RGZ4/l1','Inductance',
num2str(t(5)));
|
|
set_param('RGZ4/c1','Capacitance',
num2str(t(6)/2));
|
|
set_param('RGZ4/c2','Capacitance',
num2str(t(6)/2));
|
|
set_param('RGZ4/E','Frequency',
num2str(t(7)));
|
|
set_param('rrr/sorce','Frequency',
num2str(t(7)));
|
|
set_param('RGZ4/E','Phase',
num2str(t(8)+90));
|
|
set_param('rrr/sorce','Phase',
num2str((t(8)+90)/(360/(2*pi))));
|
|
sim('RGZ4');
|
Симуляция
модели.
|
sim('rrr');
|
Симуляция
модели.
|
tab=uitable();
|
Метка
таблицы.
|
rnames
= {'Сила тока(А)'};
|
Настройка
таблицы.
|
cnames = {'I1','I2','U','R'};
|
|
set(tab,'data',[simout2(1),simout4(1),
simout(1),simout(1)/simout2(1)+1], 'FontSize',16,'Position',[0 200 1000 100],
'RowName',rnames, 'ColumnName',cnames);
|
Заполнение
таблицы.
|
c2=figure();
|
Метка
Окна.
|
set(c2,'name','RGZ3 Графики');
|
Настройка
окна.
|
clear i
|
|
aam=t(9)*exp(i*t(8));
|
|
plot([0,real(aam)],[0,imag(aam)],
[0,real(simout(1)/simout2(1)+1)], [0,imag(simout(1)/simout2(1)+1)*0.01],
[0,real(simout2(1)*50)],[0,imag(simout2(1)*50)],
[0,real(simout(1))],[0,imag(simout(1))]);
|
Построение
векторной диаграммы, отделяя мнимую и действительную часть.
|
grid
on
|
Включение
сетки.
|
title('Векторная
диаграмма токов и потенциалов');
|
Настройка
оси.
|
xlabel('RE(U В
I А*100)');
|
|
ylabel('Im(U В
I А*100)');
|
|
legend('Uвх','Zвых','I','Uых',1);
|
|