Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мемс рус.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

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 ). Сохраните программу, запустите ее и посмотрите сообщение об ошибке. Можете попробовать внести другие ошибки. Не забывайте перед запуском сохранять программу, а затем исправлять внесенные ошибки.