- •Содержание
- •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
- •Задание на выполнение работы
- •Индивидуальные задания
- •Литература
2 Лабораторная работа № 2
ТЕМА: Моделирование установившихся электрических процессов в среде MATLAB. Часть 2.
ЦЕЛЬ РАБОТЫ: Изучить основные принципы отладки MATLAB-программ; верификация результатов расчета.
Как правило, все программы содержат ошибки и требуют отладки, причем практика показывает, что отладка и верификация результатов занимает, примерно, 80% времени работы над программой. Ошибки бывают двух типов: синтаксические и логические.
Поскольку язык MATLAB предполагает четкую формализацию написания операторов и других компонентов программы и четкое выполнение математических операций, то нарушение этих правил во многих случаях контролируется самой системой MATLAB. В результате система выдает диагностическое сообщение о предполагаемой ошибке.
Логические ошибки связаны со следующими факторами:
несоответствие вербальной формулировки поставленной задачи реальному объекту
несоответствие математической и вербальной формулировок;
ошибки в алгоритме математической постановки задачи;
ошибки в программе, реализующей данный алгоритм,
ошибки ввода теста программы,
ошибки ввода исходных данных.
В ряде случаев логические ошибки приводят к нарушению синтаксиса программы и выявляются на этапе трансляции. Однако, в большинстве случаев, сама система логические ошибки определить не может. Выявление логических ошибок является обязанностью самого программиста. Поэтому программист должен хорошо представлять всю логику решаемой задачи в целом и критерии проверки адекватности вычисления промежуточных данных и окончательных результатов. Вообще, поиск логических ошибок не имеет единых правил и представляет собой творческую задачу.
Однако существуют общие рекомендации по отладке. Например, на этапе программирования или алгоритмизации необходимо продумывать методику будущей отладки. В программу вводят некоторое количество операторов, необходимых только на этапе отладки, к примеру, вывод некоторых особо значимых величин; проверка некоторых соотношений, которые должны выполняться всегда или в конкретном режиме. Программист должен стремиться к локализации области ошибок. Для этой цели разработан специальный подход и модульного и структурного программирования. Об этом можно прочитать в специальной литературе [ ].
Поиск синтаксических ошибок
Для того, чтобы ознакомиться с методикой поиска синтаксических ошибок, будем искусственно вносить их в текст программы и наблюдать реакцию транслятора MATLAB на их появление.
Вызовем текст программы Circuit 1. Сохраним его в той же директории как Circuit 1_debug. Теперь внесем синтаксическую ошибку в текст программы: в строке 15 вычисления Е1 уберем последнюю скобку:
E1=100/sqrt(2)*exp(ph1*pi/180*i;
Сохраним полученный файл. Запустим программу.
Получим следующее сообщение в Command Window:
>> Circuit 1_debug
??? Error: File: E:\ ..\Circuit 1_debug.m Line: 15 Column: 31
")" expected, ";" found.
Данное сообщение точно локализует внесенную ошибку. Исправим ее.
Теперь внесем другую ошибку: в строке 21изменим размерность матрицы F следующим образом:
F=[0; E1; -E2; 0];
Сохраним полученный файл и запустим программу.
Получим следующее сообщение в Command Window:
>>Circuit 1 _debug
??? Error using ==> \
Matrix dimensions must agree.
Error in ==> E:\..\Circuit 1_debug.m
On line 22 ==> I=M\F;
Данное сообщение предупреждает о несоответствии размера матриц при выполнении оператора I=M\F в строке 22. Теперь исправим эту ошибку и сохраним файл.
Далее, внесите ошибки в написание стандартных функций (например, sqrt ). Сохраните программу, запустите ее и посмотрите сообщение об ошибке. Можете попробовать внести другие ошибки. Не забывайте перед запуском сохранять программу, а затем исправлять внесенные ошибки.
