2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Моделирование биполярного импульса в Matlab
Сообщение14.07.2014, 22:24 


14/07/14
36
Москва
Доброго времени суток всем!
Дорогие друзья, возможно, моя просьба покажется очень странной, но все же решусь задать, потому что бьюсь над ней уже не одну неделю :)
Нужно смоделировать биполярный акустический импульс, который возникает в воде от каскада заряженных частиц. Сделать это в Матлабе, и смоделировать его распространение. Есть статьи, где описаны формулы и параметризация, но результат у меня получается какой-то явно неправильный.
Пожалуйста, помогите!

Вот примерно так выглядит формула:
Изображение


Изображение

Задача цилиндрически симметрична, поэтому у меня 2 переменные: z и x (радиальная).
Изображение

Собственно, код
Код:
x1= 0:0.1:10;
E = 10^10;      % total deposited energy
a = 0.125;     
b = 0.002;

A = (2*E*(a*b)^0.5/3.14)^(0.5);
al = 1.2*0.001;
Cp = 3.8*1000;
cs = 150000;
t = 0:(1/fs1):T; % array of time moments - for each moment i calcutate the z coordinate
for k = 1:3;
    e1 = zeros(size(x1));
    e2 = zeros(size(x1));
for i=1:length(x1)
   
    z1(i)=z-(cs^2*t(k)^2 - (x-x1(i))^2)^(0.5);
    z2(i)=z+(cs^2*t(k)^2 - (x-x1(i))^2)^(0.5);
    e1(i) = A*exp(-a*(x1(i))^2)*exp(-b*(z1(i))^2);
    e2(i) = A*exp(-a*(x1(i))^2)*exp(-b*(z2(i))^2);
end
figure(k);
plot(x1,z1);
P(k) = sum(e1)*0.02- sum(e2)*0.02;
end



То есть сначала я нахожу такие координаты z, для которых
Изображение

Распределение энергии у меня получается, оно гауссово с заданной амплитудой (интегральным значением)

Изображение

А вот что касается самого давления от времени.. Получается построить его зависимость от каждой из координат (вполне правдоподобно), когда просто выкидываю дельта-функцию.
Как и можно ли работать с этой самой дельта-функцией в матлабе, не знаю..
Один из неработающих вариантов кода:
Код:
for k=1:1:101
for i=1:1:101
    R = ((x-x1).^2+(z-z1(i)).^2).^(0.5);
   
        d = dirac(t(k)-R./c);
    Ev(i) = sum(exp(-b*z1(i)^2).*exp(-a*x1.^2)*0.1.*d./R);

    I(i) = sum(exp(-b*z1(i)^2).*exp(-a*x1.^2)*0.1./R);
end   
%     t(i) = R./c;
     
P(k) = al*A^2*sum(I*4)/Cp/4/3.14;
Ev(k) = al*A^2*sum(Ev*4)/Cp/4/3.14;
% t = 0:0.01:t;
end

end

Посоветуете что-нибудь? Хотя бы идею... :cry:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group