Начиная с древнейших времен, становление человеческой цивилизации неразрывно связано с моделированием, т. е. с построением, изучением и использованием моделей различных объектов, процессов и явлений.
Моделью можно считать физическую установку, имитирующую какую-либо другую установку или процесс, юридический кодекс (уголовный, гражданский и т. д.), моделирующий правовые отношения в обществе, сборник должностных инструкций фирмы и т. п. Даже картину художника или театральный спектакль в определенном смысле можно считать моделью, обобщающей ту или иную сторону духовного мира человека.
В информатике рассматривают частные (но наиболее распространенные) случаи моделирования, и определение модели можно уточнить следующим образом [2].
Иногда точность модели можно выразить в каких-то единицах (например, в процентах), иногда приходится ограничиваться “качественными” оценками или просто здравым смыслом [2].
2 Алгоритмический анализ задачи
2.1 Постановка задачи
1. Найти параметр R2, обеспечивающий заданную индуктивность L при указанных в таблице 2.1 параметрах числа витков N и размера R1.Доказать графически, что значение R2 найдено верно.
2. Найти значение параметра R2, используя численный метод, указанный в таблице 2.1, при решении уравнения. Выполнить графическую интерпретацию результатов расчетов. Сравнить полученное значение с рассчитанным значением в пункте 1.
3. Рассчитать значение параметра R2 для 6 -7 значений из диапазона значений варьируемого параметра, указанного в таблице 2.1. Построить сводный график зависимости полученных значений параметра R2 от варьируемого параметра.
4. Подобрать сплайновую интерполирующую зависимость по результатам расчетов. Построить график исходной и интерполирующей функций на одном поле.
5. Выполнить расчет по индивидуальному заданию. Дать графическую интерпретацию результатов расчетов. Вычислить R1, при котором R2 пересекает пороговое значение (пороговое значение задать с клавиатуры).
3 РЕАЛИЗАЦИЯ МОДЕЛИ в пакете SCILAB
3.1 Описание модели в пакете Scilab
Для реализации задачи необходимо ввести исходные данные. Затем решаем уравнение F(R2)=0, где F(R2) определяется формулой (2.1) при заданных данных (таблица 2.1).
Решение уравнения производится двумя способами: при помощи встроенной в Scilab функции fsolve и численным методом хорд, реализация которого представлена на рисунке 3.1.
Рисунок 3.1 – Реализация численного метода в системе Scilab
В результате расчетов, при помощи встроенной функции и при помощи численного метода, определяем значение размера R2= 9.827 мм. График зависимости представлен на рисунке 3.2.
Рисунок 3.2 – Графическая интерпретация
На графике показываем найденное значение R2, при котором индуктивность равна заданному значению.
Как видно из рисунка, математическая модель разработана верно.
ЗАКЛЮЧЕНИЕ
В курсовой работе изучены и приведены теоретические вопросы, связанные с математическим моделированием, численным решением алгебраических уравнений и интерполяции экспериментальных данных.
Описаны средства пакета символьных вычислений Scilab, предоставляемые для реализации математических моделей.
Во второй главе выполнена постановка задачи, приведена математическая модель, описывающая параметры катушки индуктивности.
На основании математической модели разработан алгоритм ее реализации в пакете Scilab и алгоритм исследования модели при различных значениях варьируемого параметра.
В третьей главе описана реализация модели и ее исследования в системе Scilab. Приведены полученные численные результаты и графические зависимости.
На основании проведенных исследований сделаны общие выводы и приведены полученные численные значения.
На сегодняшний день такое сочетание вычислительных технологий и теоретических навыков студентов является основополагающим курсом для всех электротехнических, энергетических, электронных и многих других специальностей ВУЗов, которые в будущем столкнутся с ещё более совершенными информационными системами.
В процессе выполнения и оформления работы были использованы такие пакеты как Scilab, Microsoft Word.
Поставленные задачи в курсовой работе решены в полном объеме.
ПРИЛОЖЕНИЕ А – ФАЙЛ SCILAB
funcprot(0);
//Исходные данные
N=3; // Число витков
R1=2; // Размер внутреннего витка катушки, мм
L_def=160; // Индуктивность, нГн
// Диапазон исследования
t=2.1:0.1:20;
// определим функцию, характеризующую индуктивность катушки
deff('[y]=F(R2)','y=2.41*((R1+R2)/2)*N^(5/3)*log((4*(R1+R2))/(R2-R1))-L_def');
// Вычислим значение времени, при котором F(R2) ровна L_def
R2=fsolve(5,F);
// Вывод результата
disp('Корень, найденный при помощи fsolve = ' + string(R2));
// Докажем графически, что корень найден верно
figure(1);
square(2,-40,20,40); plot(t,F,R2,F(R2),'o');
xtitle('График функции F(t)', 't', 'F');xgrid;
// метод хорд
function [rez]=Hord(a, b, eps, func)
while (abs(b - a) > eps)
a = b - (b - a) * func(b) / (func(b) - func(a));
b = a - (a - b) * func(a) / (func(a) - func(b));
end
rez=b;
endfunction
// Находим корень численным методом//
Rr2=Hord(9,10,0.0001,F);
// Вывод результата
disp('Корень, найденный при помощи метода хорд = ' + string(Rr2));
// Докажем графически, что корень найден верно
figure(2);
square(2,-40,20,40); plot(t,F,Rr2,F(Rr2),'o');
xtitle('График функции F(t)', 't', 'F');xgrid;
// Корни найденными с помощью встроенной функции и методом хорд совпали
R1n=0.8; // начальное значение
R1k=0.95; // конечное значение
dR1=(R1k-R1n)/5; // шаг
RR1=R1n:dR1:R1k
// Составляем и решаем исходное уравнение для варьируемого параметра
// Реализация опытов для варьируемого параметра
i=1;
ПРИЛОЖЕНИЕ Б – ВЫПОЛНЕНИЕ ФАЙЛА SCILAB
-->funcprot(0);
-->//Исходные данные
-->N=3; // Число витков
-->R1=2; // Размер внутреннего витка катушки, мм
-->L_def=160; // Индуктивность, нГн
-->// Диапазон исследования
-->t=2.1:0.1:20;
-->// определим функцию, характеризующую индуктивность катушки
-->deff('[y]=F(R2)','y=2.41*((R1+R2)/2)*N^(5/3)*log((4*(R1+R2))/(R2-R1))-L_def');
-->// Вычислим значение времени, при котором F(R2) ровна L_def
-->R2=fsolve(5,F);
-->// Вывод результата
-->disp('Корень, найденный при помощи функции fsolve = ' + string(R2));
Корень, найденный при помощи fsolve = 9.8270348
-->// Докажем графически, что корень найден верно
-->figure(1);
-->square(2,-40,20,40);plot(t,F,R2,F(R2),'o');
-->xtitle('График функции F(t)', 't', 'F');xgrid;
Рисунок Б1 – График функции индуктивности
-->// метод хорд
-->function [rez]=Hord(a,b,eps,func)
--> while (abs(b - a) > eps)
--> a = b - (b - a) * func(b) / (func(b) - func(a));
--> b = a - (a - b) * func(a) / (func(a) - func(b));
--> end
--> rez=b;
-->endfunction
-->// Находим корень численным методом
-->Rr2=Hord(9,10,0.0001,F);