
- •Содержание
- •1 Лабораторная работа № 1
- •Математическая модель
- •Этапы разработки программы
- •Вызов DeskTop matlab
- •Файлы-сценарии (Script-files) и файлы-функции (Function-files)
- •Ввод исходных данных методом присваивания. Комментарии
- •Организация ввода исходных данных в диалоговом режиме
- •Создание подпрограммы-функции (Function-file)
- •Графический вывод
- •2 Лабораторная работа № 2
- •Поиск синтаксических ошибок
- •Отладка с помощью редактора программ Editor/Debugger
- •Верификация результатов расчета
- •3 Лабораторная работа № 3
- •Задание на выполнение работы
- •Индивидуальные задания
- •4 Лабораторная работа № 4
- •Математическая модель
- •Блок-схема алгоритма расчета согласно математической модели
- •Задание на выполнение работы
- •5 Лабораторная работа №5
- •Задание на выполнение работы
- •Индивидуальные задания
- •6 Лабораторная работа № 6
- •Математическая модель
- •Определение начального приближения
- •Программа расчета в среде MatLab
- •Результаты расчета
- •Индивидуальные задания
- •Задание на выполнение работы
- •7 Лабораторная работа № 7
- •Математическая модель
- •Программа расчета в среде MatLab
- •Результаты вычислений
- •Индивидуальные задания
- •Задание на выполнение работы
- •8 Лабораторная работа №8
- •Математическая модель
- •Программа расчета в среде MatLab
- •Результаты расчета
- •Улучшение сходимости метода Ньютона
- •Задание на выполнение работы
- •9 Лабораторная работа №9
- •Математическая модель
- •Программа расчета в среде MatLab
- •Результаты расчета
- •Задание на выполнение работы
- •10 Лабораторная работа №10
- •Задание на выполнение работы
- •Индивидуальные задания
- •Литература
Организация ввода исходных данных в диалоговом режиме
Введем исходные данные с помощью оператора input:
R1=input('input value R1=');
R2=input('input value R2=');
R3=input('input value R3=');
L2=input('input value L2=');
C3=input('input value C3=');
ph1=input('input value ph1=');
ph2=input('input value ph2=');
Для этого:
вызовем М-файл Circuit 1 и проведем соответствующие изменения ввода данных;
переведем при выводе результатов расчета аргументы phI1,phI2,phI3 токов I1,I2,I3 из радиан в градусы:
disp(['I1M=',num2str(I1M),' phI1=',num2str(phI1/pi*180)]);
disp(['I2M=',num2str(I2M),' phI2=',num2str(phI2/pi*180)]);
disp(['I3M=',num2str(I3M),' phI3=',num2str(phI3/pi*180)]);
Заменим соответствующие операторы вывода;
сохраним программу как Circuit 2 и «пропишем» в MATLAB (см.п.1.8);
из Command Window вызовем Circuit 2 на выполнение (см.п.1.9);
введем численные значения исходных данных в диалоговом режиме. После каждого вводимого числа нажимайте ENTER.
Результаты расчета по программе Circuit 2 должны полностью совпадать с результатами расчета по программе Circuit 1, за исключением аргументов phI1,phI2,phI3 комплексных чисел I1,I2,I3, значения которых при выводе переводятся из измерения в радианах в измерения в градусах.
>> circuit 2
input value R1=1
input value R2=2
input value R3=3
input value L2=1e-3
input value C3=1e-4
input value ph1=30
input value ph2=60
I1=1.31391+30.2501i
I2=-0.904861+28.5767i
I3=2.2188+1.6734i
error calculation eps=1.2434e-014+2.1316e-014i
I1M=30.2786 phI1=87.5129
I2M=28.591 phI2=91.8136
I3M=2.7791 phI3=37.0242
>>
Создание подпрограммы-функции (Function-file)
Для дальнейшего вывода на график временных зависимостей токов в ветвях рассчитаем массивы этих функций с помощью подпрограммы-функции MATLAB.
Математически зависимость тока в ветви от времени выражается
где I – модуль комплекса тока (действующее значение тока в ветви),
- аргумент комплекса тока..
Реализуем подпрограмму-функцию вычисления i(t) как
current(IM,f,phI,t),
где значения формальных параметров
IM - модуль комплекса тока I;
f
- частота;
phI - аргумент комплекса тока ;
t - текущее время.
Откроем новый файл в редакторе текста и наберем следующую программу-функцию:
function im=current(IM,f,phI,t)
im=sqrt(2)*IM*sin(2*pi*f*t+phI);
Сохраним созданную подпрограмму в личной папке как current и «пропишем» в MATLAB.
Графический вывод
Вызовем М-файл Circuit 2;
Запишем в конце программы фрагмент, реализующий заполнение массивов мгновенных значений токов в ветвях и вывод их в графическом виде:
% GRAPH
h=0.04/200;
t(1)=0;
i1(1)=current(I1M,f,phI1,t(1));
i2(1)=current(I2M,f,phI2,t(1));
i3(1)=current(I3M,f,phI3,t(1));
for k=2:201
t(k)=t(k-1)+h;
i1(k)=current(I1M,f,phI1,t(k));
i2(k)=current(I2M,f,phI2,t(k));
i3(k)=current(I3M,f,phI3,t(k));
end
plot(t,i1,t,i2,t,i3);
сохраним программу как Circuit 3 и «пропишем» ее в MATLAB (см.п.1.8);
из Command Window вызовем Circuit 3 на выполнение (см.п.1.9).
Полученные графические зависимости токов в ветвях от текущего времени приведены на рис.1-2.
Рисунок 1.2 – Зависимости токов в ветвях от текущего времени.
Оформите графики, как показано на рис.1.2;
Запустите программу еще раз, изменив исходные данные:
е1(t)=200sin(t+/2) B; e2(t)=80sin((t+/3) B;
R1=0.5 Ом; R2=1 Ом; R3=4 Ом;
C3=2*10-4 Ф; L2=4*10-3 Гн.
Посмотрите, как это отразится на расчетных результатах.
В поле графика запишите значения исходных данных.