Учебная работа. Проектирование электрических схем в Simulink
Федеральное государственное автономное образовательное учреждение
высшего проф образования
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ИФРЭ
КУРСОВАЯ РАБОТА
Проектирования электронных схем в Simulink
Студент. Э.И. Мельник
Управляющий М.М. Валиханов
Красноярск 2012
Введение
программка Simulink является приложением к пакетам MATLAB. При моделировании с внедрением Simulink реализуется принцип зрительного программирования, в согласовании с которым, юзер на дисплее из библиотеки обычных блоков делает модель устройства и производит расчеты. При всем этом, в отличие от традиционных методов моделирования, юзеру не необходимо конкретно учить язык программирования и численные способы арифметики, а довольно общих познаний требующихся при работе на компе и, естественно, познаний той предметной области в какой он работает.
Simulink является довольно самостоятельным инвентарем MATLAB и при работе с ним совершенно не требуется знать сам MATLAB и другие его приложения. С иной стороны доступ к функциям MATLAB и остальным его инструментам остается открытым и их можно применять в Simulink. часть входящих в состав пакетов имеет инструменты, встраиваемые в Simulink (к примеру, LTI-Viewer приложения Control System Toolbox — пакета для разработки систем управления). Имеются также доп библиотеки блоков для различных областей внедрения (к примеру, Power System Blockset — моделирование электротехнических устройств, Digital Signal Processing Blockset — набор блоков для разработки цифровых устройств и т.д).
При работе с Simulink юзер имеет возможность модернизировать библиотечные блоки, создавать свои собственные, также составлять новейшие библиотеки блоков.
В процессе моделирования имеется возможность смотреть за действиями, происходящими в системе. Для этого употребляются особые устройства наблюдения, входящие в состав библиотеки Simulink. Результаты моделирования могут быть представлены в виде графиков либо таблиц.
1. Линейные цепи неизменного тока
Задание.
Для электронной цепи рис.1, соответственной номеру варианта [2], выполнить последующее:
1) Найти токи во всех ветвях схемы способом узловых потенциалов. 2)Начертить потенциальную диаграмму для хоть какого замкнутого контура, включающего обе ЭДС.
Набросок 1 — Начальная электронная схема
Линейная схема на неизменном токе. Схема состоит из четырёх активных частей и 5 пассивных.
Для комфортного ввода и вывода можно применять интерфейс [1,5]. Юзеру предлагается вести в ячейки
E1-значение безупречного источника напряжения E1 вольт,
E2-
I1-тока J1 ампер,
I2-значение безупречного источника тока J5 ампер,
R1-
R2- значение сопротивление на резисторе R2 ом,
R3-
R4-
R5-
Опосля этого надавить на клавишу «Решить».
интерфейс представлен на рис.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) Найти комплексы работающих значений токов во всех ветвях, используя один из способов расчета линейных электронных цепей.
2) Выстроить топографическую диаграмму, совмещенную с векторной диаграммой токов.
Набросок 6 — Начальная электронная схема
Линейная схема на переменном токе. Схема состоит из 2-ух активных частей и 4 пассивных.
Для комфортного ввода и вывода можно применять интерфейс [5]. Юзеру предлагается вести в ячейки
E1-значение безупречного источника напряжения E1 вольт,
E2-
W-
P1-
P2-значение исходной фазы источника Е2 градус,
L1-
L2-
С1-
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 -Начальный П образный фильтр
Схема является четырехполюсником. Схема собрана по П-образным фильтром нижних частот. Состоит из катушки индуктивности и 2-ух параллельных конденсаторов.
Для комфортного ввода и вывода можно применять интерфейс [6]. Юзеру предлагается вести в ячейки
E2- значение безупречного источника напряжения E1 вольт,
L1-
C1-
F-
F0-
Опосля этого надавить клавишу «Решить».
интерфейс представлен на рис.12, текст программки смотрите приложение В.
Набросок 12-Окно интерфейса
Схема в окне редактора [5] представлена на рис.13
Набросок 13 -Схема П-образного фильтра в окне редактора
Опосля пуска симуляции. В отдельном окне выводится таблица со значениями рис.14. В другом окне строится векторная диаграмма токов и напряжений рис.15.
Таблица 3 — Контрольные значения
25
0.001
2e-7
8000
20
Набросок 14-Значение тока в амперах, напряжение в вольтах, сопротивление в омах
Набросок 15-Векторная диаграмма токов и напряжений
Для проверки векторной диаграммы токов и потенциалов [4], довольно чтоб график ток совпадал с напряжением на сопротивление и отставал на девяносто градусов от выходного напряжения.
Чтоб изучить свойства П-образного фильтра [3], к примеру передаточные, комфортно пользоваться разделом SimRF подпункте Filtres. В этом подпункте находятся готовые модели фильтров с изменяемые параметрами:
Индуктивность катушки в генри,
Ёмкость для 2-ух конденсаторов в фарадах,
Спектр частот исходную частоту, шаг частоты и конечную частоту в герцах,
Входное сопротивление в омах,
Напряжение источника в вольтах.
Юзеру необходимо открыть вкладку блока 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-Передаточное ФЧХ
Для подтверждения фильтра нижних частот, довольно чтоб при больших частотах
Вывод. Используя Simulink раздел SimPowersystem, SimRF можно рассчитывать фильтры и их свойства. Можно изучить придаточные свойства и строить векторные диаграммы токов и напряжений. Используя связь графического интерфейса и Simulink, даёт возможность стремительно изменять характеристики схемы, не меняя характеристики в рабочем окне. В отдельном окне можно выстроить графики, которые дают приятное электронный ток
Заключение
Использования пакет Simulink можно рассчитывать линейные цепи двухполюсников и четырёхполюсников. Данные приобретенные из Simulink могут быть применены для проверки, закрепление материала по предмету Базы Теории цепей. Можно наглядно узреть временем на определённой частоте.
Измеряя цепь на неизменном токе в разделе Simpower system, делая упор на Теорию цепей можно проверить, токи по первому закону Кирхгофа, и по диаграмме потенциалов. Для этого необходимо снять показания с узлов, напряжения с частей. Оно делается автоматом в блоке Multimetr. В цепи с переменным током возникли доп характеристики. Катушка индуктивности, конденсатор, частота источника, исходная фаза источника. Итог выводится в всеохватывающем виде. Всеохватывающую форму применима в построение векторной диаграммы токов и напряжений, которая указывает конфигурации векторов тока за один период.
Исследуя П-фильтр, задачка была в подтверждении, что этот фильтр является фильтром низких частот. Раздел simRF находятся модели фильтров с изменяющимися параметрами таковыми как: индуктивность, ёмкость, пределы частот измерения, входное сопротивление. Для реализации источника употреблял источник дискретного сигнала. Построив графики передаточных АЧХ и ФЧХ подтверждает, что фильтр низких частот.
Перечень литературы
1.Бадриев, И.Б., Разработка графического интерфейса в среде Matlab.Учебное пособие/ Бадриев, И.Б.-Казань: Казанский муниципальный институт, 2010. — 131 с.
2.Вепринцев, В.И., Базы теории цепей: Учеб. практикум/ В.И.Вепринцев. Красноярск: ИПЦ КГТУ, 2005. — 140 с.
3.Дьяконов, В.П. Matlab 6.5 SP1/7.0 Simulink 5/6 Обработка сигналов и проектирования фильтров. — СПБ.:Питер,2001. — 592 с.
4.Зернов, Н.В. Карпов, В.Г. Теория радиотехнических цепей: М.-Л., издательство «Энергия», 1965, — 892 стр.
5.Кетков Ю.Л., Кетков А.Ю., Шульц М.М. Matlab 7:программирование, численные способы. — СПБ.: БХВ-Петербург, 2005. — 752 с:ил.
6.Темных, И.В. 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
fclose(ff);
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);
]]>