- •Содержание
- •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
- •Задание на выполнение работы
- •Индивидуальные задания
- •Литература
Верификация результатов расчета
Как сказано выше, система может зафиксировать логические ошибки только косвенным образом, но и это случается далеко не всегда. Самый неудобный случай для программиста, когда результаты расчета похожи на правду. Поэтому задача доказательства правильности решения должна быть поставлена и реализована на этапе разработки программы.
Сделаем это на примере программы расчета токов в цепи, реализованной М-файлом Circuit 3_debug.
На этапе написания программы мы осуществили проверку по 2-му закону Кирхгофа по контуру, не включенному в систему уравнений для нахождения токов в ветвях. Для электрических цепей такого рода проверка необходима Теперь проверим, достаточна ли она. Для этого выполним следующие действия:
Внесем логическую ошибку в программу. При заполнении матрицы М заменим М(1,2)=-1 на М(1,2)=1. Теперь матрица должна выглядеть следующим образом:
M=[1 1 -1;
Z1 0 Z3;
0 Z2 -Z3];
Сохраним программу и запустим ее на расчет.
Результаты расчета:
I1=-17.5739-76.7793i
I2=16.5153+79.355i
I3=-1.0586+2.5757i
error calculation eps=0
I1M=78.7649 phI1=-102.8923
I2M=81.0554 phI2=78.2435
I3M=2.7848 phI3=112.3428
>>
Таким образом мы видим, что кривые токов на графике похожи на реальные, а ошибка расчета eps=0. Следовательно, проведенной проверки недостаточно для выявления данной логической ошибки.
Для электрической схемы рекомендуется проводить проверку также по 1-му закону Кирхгофа для узла, не охваченного системой уравнений для определения неизвестных. Организуем расчет проверки по 1-му закону Кирхгофа и по 2-му закону Кирхгофа следующим образом:
%ПРОВЕРКА ПО 1 ЗАКОНУ КИРХГОФА
eps1=I(1,1)-I(2,1)-I(3,1);
%ПРОВЕРКА ПО 2 ЗАКОНУ КИРХГОФА
eps2=E1-E2-Z1*I(1,1)-Z2*I(2,1);
disp([' error calculation eps1=',num2str(eps1)]);
disp([' error calculation eps2=',num2str(eps2)]);
и проведем соответствующие замены в программе.
Сохраним программу и запустим ее на счет. Получим следующие результаты:
I1=-17.5739-76.7793i
I2=16.5153+79.355i
I3=-1.0586+2.5757i
error calculation eps1=-33.0306-158.71i
error calculation eps2=0
I1M=78.7649 phI1=-102.8923
I2M=81.0554 phI2=78.2435
I3M=2.7848 phI3=112.3428
Таким образом, проверка по 1-му закону Кирхгофа дает погрешность
eps1=-33.0306-158.71i. Очевидно, что, поскольку 1-й закон Кирхгофа не выполняется, то расчет выполнен неправильно.
Исправим внесенную ошибку и снова запустим программу. Получим следующие значения погрешностей
error calculation eps1=0
error calculation eps2=3.5527e-015+7.1054e-015i
Величина погрешности свидетельствует о правильности расчета.
3 Лабораторная работа № 3
ТЕМА: Моделирование установившихся электрических процессов в среде MATLAB. Часть 3.
ЦЕЛЬ РАБОТЫ: Разработать и отладить программу расчета токов и напряжений в заданной электрической цепи и доказать правильность расчета.
Задание на выполнение работы
Для заданного варианта электрической схемы
Разработать математическую модель расчета токов в ветвях и напряжений на реактивных элементах;
Составить программу, реализующую разработанную модель;
Включить в программу операторы, позволяющие провести верификацию результатов расчета;
Организовать графический вывод указанных функций токов и напряжений;
Отладить программу;
Результаты работы ( программу, листинг расчета, графики) сохранить в личной папке.
