Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
174
Добавлен:
22.03.2015
Размер:
3.83 Mб
Скачать

1.9. Упражнения в comsol Script

Задача 1.

Дано: Контур с электрическим током I в пространстве представляет собой периметр треугольника, декартовы координаты вершин которого заданы: x1, x2, x3, y1, y2, y3, z1, z2, z3. Здесь нижние индексы – номера вершин. Вершины пронумерованы в направлении протекания электрического тока.

Требуется составить функцию COMSOL Script, вычисляющую вектор дипольного магнитного момента контура. При составлении m-файла можно предполагать, что пространственные координаты измеряются в метрах, а ток – в амперах. Допускается произвольная организация входных и выходных параметров.

Решение.

Вектор площади треугольника в трёхмерном пространстве вычисляется по формуле

,

где 1x, 1y, 1z – орты декартовой системы координат.

Ниже приведён текст m-функции.

% m_dip_moment - вычисление магнитного дипольного момента треугольного контура с током в пространстве

% pm = m_dip_moment(tok,nodes)

% ВХОДНЫЕ ПАРАМЕТРЫ

% tok - ток в контуре;

% nodes - квадратная матрица вида [x1, x2, x3; y1, y2, y3; z1, z2, z3].' , в каждой строке которой записаны координаты соответствующей вершины.

% ВЫХОДНОЙ ПАРАМЕТР

% pm - матрица-строка декартовых компонентов вектора магнитного дипольного момента.

function pm = m_dip_moment(tok,nodes);

pm=tok*[det([ones(3,1) nodes(:,[2,3])]) det([ones(3,1) nodes(:,[3,1])]) det([ones(3,1) nodes(:,[1,2])])]/2;

% В последнем операторе вектор площади треугольника умножается на ток

Пример запуска разработанной m-функции:

C>> nodes=10*rand(3)

nodes =

9.5013 4.8598 4.5647

2.3114 8.913 0.18504

6.0684 7.621 8.2141

C>> pm=m_dip_moment(1,nodes)

pm =

13.442 20.637 -2.9692

В данном случае получилось PM = (13.4421x + 20.6371y - 2.96921z) Ам2, если ток в контуре равен 1 А.

Задача 2.

Дано: Контур с электрическим током I в пространстве представляет собойзамкнутую ломаную, декартовы координаты вершин которой записаны в матрицу размера n-by-3. Строка этой матрицы соответствует вершине, а столбец – пространственной координате (1 – x, 2 – y, 3 – z).Вершины пронумерованы в направлении протекания электрического тока.

Требуется составить последовательность операторовCOMSOL Script, которая вычисляет дипольный магнитный момент контура. При составленииm-файла можно предполагать, что пространственные координаты измеряются в метрах, а ток – в амперах. Допускается вызовm-функции, составленной в ходе решения предыдущей задачи.

Решение.

Магнитный момент многоугольного контура равен сумме магнитных моментов треугольных котуров с общей последней вершиной.

Ниже представлена последовательность команд, записанная в отдельный m-файл.

nodes=10*rand(8,3) % Случайный восьмиугольный контур

n=size(nodes,1); % Количество вершин контура

pm=[0 0 0];

for k=1:n-2,

pm=pm+m_dip_moment(1,nodes([k,k+1,n],:));

end

disp(['pm=' mat2str(pm,7)])

В результате выполнения получим следующий результат:

nodes =

3.1809 7.2101 2.1455

4.8293 0.1016 5.1546

5.9856 8.2901 5.8596

1.3420 5.8407 7.3951

4.2423 4.0685 3.9846

6.2839 7.7394 8.3424

7.8709 2.4111 5.4378

2.8876 2.3502 9.9686

pm=[-7.712363853827268, -14.980674597525798, -2.0853340323718648]

В данном случае получилось PM = (=[-7.71241x - 14.9811y - 2.08531z) Ам2, если ток в контуре равен 1 А.

Соседние файлы в папке ТОЭ, ТЭМП, Шмелёв, Сбитнев, 2003 г.