إن Georadar (جهاز تقني إذاعي للسبر تحت السطحي ، GPR ، رادار اختراق الأرض) ، والذي يستخدم حاليًا على نطاق واسع - بدءًا من
تعيين ثقوب الأرانب ودراسة السحالي إلى
البحث عن الألغام ، لا يزال متعة باهظة الثمن إلى حد ما.
شاشة GPR (إطار من برنامج التلفاز البريطاني "Command of the Time")
لكن من الممكن تقييم قدراتها ودراسة جوانب مختلفة من تفاعل المجال الكهرومغناطيسي لجيورادار مع البيئة دون الحصول على / استئجار جهاز "حديدي". سوف
تساعدنا حزمة
gprMax (
gpr - من اختصار GPR ،
Max - الأحرف الأولى من اسم James Clerk Maxwell ، الذي وضع أسس الديناميكا الكهربائية) ، الموزعة تحت رخصة GNU GPL v3.
مؤلفو هذا المشروع ، الذي بدأ في عام 1996 ، هم كريج وارن من جامعة نورثمبريا وأنتونيس جيانوبولوس من جامعة أدنبرة. تم تطوير الحزمة في الأصل في C ثم إعادة كتابتها بالكامل في مجموعات Python 3 / Cython.
يتطلب تثبيت الحزمة برامج مجمعة مثبتة تدعم OpenMP (أدوات إنشاء Microsoft Visual C ++ 2015 (يوصى بهذا الإصدار!) لنظام Windows / gcc لنظام التشغيل Linux) ، ومكتبة NumPy ، ومترجم Cython. بعد التنزيل من
المستودع على GitHub وفك الشفرة المصدرية للمشروع ، انتقل إلى المجلد الجذر وقم بتنفيذ الأوامر:
python setup.py build python setup.py install
"كبداية سريعة" ، نفكر في العمل مع الحزمة باستخدام مثال بسيط ثنائي الأبعاد - هوائي الإرسال T لرادار نابض (نبضة GPR) يصدر نبضة كهرمغنطيسية ، يصل جزء من طاقتها مباشرة إلى هوائي الاستقبال R في شكل موجة مباشرة (DW - موجة مباشرة) ، وبعضها يخترق عبر الرمل ، ينعكس من سطح أسطوانة التوصيل ويصل هوائي الاستقبال في شكل موجة عاكسة (الموجة المنعكسة (RW)):
تنسيق ملف الإدخالقم
بإنشاء مجلد
الطُرز في المجلد الجذر للمشروع ، والذي نضع فيه
hello.in الملف
النصي الذي يحتوي على الأوامر لتنفيذ المحاكاة (الأوامر التالية تتوافق مع الإصدار الحالي (الثالث) من المشروع).
كل فريق لديه النموذج:
يمكن كتابة أمر واحد فقط على سطر واحد ، ويجب أن يكون الحرف الأول من السطر الذي يحتوي على الأمر #.
يمكن أن تكون الأوامر مصحوبة بتعليقات:
ترتيب الأوامر مهم للأوامر الخاصة ببناء الكائنات - يتم تنفيذ هذه الأوامر بالترتيب الذي تظهر به في ملف الإدخال.
شكل نبضالنبض الكهرومغناطيسي المنبعث من georadar يستمر بضع كسور من النانو ثانية ، وعلاوة على ذلك ، غالبا ما تستخدم ثلاثة أشكال النبض:

- فترة موجة جيبية واحدة (جيب)
- زخم غاوسي (غاوسي)
- تتناسب القبعة المكسيكية (ricker) مع المشتق الثاني للدالة الغوسية ، يشبه شكل الموجة الدافعة هذه سمبريرو (استخدم هذا النموذج النبضي بواسطة عالم الجيوفيزيائي الأمريكي نورمان ريكير في عام 1953 لدراسة الإشارات السيزمية)
على سبيل المثال ، نختار نبضة غوسية (نوع النبض - غاوسي) بتردد مركزي
يحددها الأمر:
(1 - سعة النبض الشرطي ، تسمية النبض النبضي)
في هذه الحالة ، يتم وصف الزخم المستخدم في المحاكاة بواسطة التعبير:
W (t) = e ^ {- 2 \ cdot {\ pi} ^ 2 \ cdot {f_c} ^ 2 {(t- {1 \ over {f_c}}) ^ 2}
نموذج البيئة ونظام الإحداثياتفي النمذجة ثنائية الأبعاد ، تنقسم المساحة المدروسة إلى خلايا ذات حجم معين ، ويظهر نظام إحداثيات النموذج على هذا النحو - محاور X و Y تشكل المستوى المحسوب (مع عرض
و طويل القامة
) ، طول النموذج على طول المحور Z له قيمة مساوية لخطوة أخذ العينات
.
عند اختيار خطوة أخذ العينات ، يمكنك اتباع قاعدة الإبهام - يجب ألا يتجاوز حجم الخطوة عُشر أصغر طول موجي تمت دراسته في النموذج ("10 خلايا لكل طول موجي"):
لتحديد طول الموجة ، يحتاج المرء إلى معرفة الحد الأقصى للتردد الذي يؤخذ في الاعتبار في طيف الإشارة المنبعثة وسرعة الموجة في الوسط قيد النظر.
سرعة الانتشار للموجة الكهرومغناطيسية في وسط مع ثابت عازل نسبي
، معبراً عنه بالسنتيمتر لكل نانو ثانية - تحدد وحدة السرعة المعتمدة في الرادار بالتعبير:
يتم تحديد الطول الموجي بالسنتيمتر من خلال التعبير:
(
- التردد في غيغاهرتز).
لعرض شكل النبض الغوسي وطيفه ، يمكنك استخدام الأمر:
python -m tools.plot_source_wave gaussian 1 1e9 5e-9 1e-12 -fft
(gaussian - نوع النبضة ، 1 - سعة النبضة ، 1e9 - التردد المركزي (1 GHz) ، 5e-9 - مدة عرض النبضة (5 ns) ، 1e-12 - الخطوة الزمنية (1 ps))
وفقا لطيف نبض غاوسي مع
تحديد أن في -40 ديسيبل التردد
.
في هذا المثال ، الوسيط الذي يقع فيه الكائن المجس ، نختار الرمال الجافة ذات السماحية النسبية
.
العثور على سرعة انتشار الموجة الكهرومغناطيسية في الرمال:
حدد الطول الموجي في الرمال:
بناءً على ذلك ، نختار الخطوة التي هي نفسها لجميع المحاور (
) ويساوي 2 مم = 0.002 م لأسباب الراحة (عدد صحيح من الخطوات يناسب 1 سم):
قصر المساحة المحاكاة على مستطيل العرض
يساوي 80 سم = 0.8 متر وارتفاع
يساوي 60 سم = 0.6 م:
(بالنسبة للنموذج ثنائي الأبعاد ، يجب الإشارة إلى سمك يساوي خطوة واحدة (0.002))
يحدد حجم منطقة المحاكاة وحجم الخطوة المكانية عدد خلايا النموذج ، وبالتالي ، متطلبات ذاكرة الكمبيوتر.
وصفنا الرمال مع التوصيل محددة
وثابت عازل ثابت
الأوامر:
(1 يتوافق مع النفاذية المغناطيسية النسبية
مساوية للوحدة (بدون خواص مغناطيسية) ، 0 - لا خسارة مغناطيسية ، وتسمية
الرمل لهذه المادة).
املأ الرمل بمعظم المساحة المحاكاة (من y = 0 إلى y = 38 cm = 0.38 m):
(0 0 0 - إحداثيات الزاوية اليسرى السفلى ، 0.80 0.38 0.002 - إحداثيات الزاوية اليمنى العليا (0.002 - خطوة أخذ العينات))
الباقي هو مساحة حرة (تسمية free_space) ، مكافئة تقريبًا في خصائص الهواء (
.
.
).
يتم عرض حدود منطقة المحاكاة على أنها شرط حدود الامتصاص (ABC).
كهدف ، نختار اسطوانة من موصل مثالي (يعكس الإشعاع الكهرومغناطيسي بالكامل) بنصف قطر 6 سم = 0.06 م مع مركز يقع عند نقطة مع إحداثيات س = 25 سم = 0.25 م و ص = 10 سم = 0.1 م:
(بيك هو مادة موصلة تماما)
هوائياتتم تجهيز GPR المحاكاة بهوائيين - الإرسال والاستقبال.
في دراسة الحالة الخاصة بنا ، تخيل هوائي الإرسال مع ثنائي القطب Hertz طوله يساوي خطوة أخذ العينات (في حالة ثلاثية الأبعاد ، يمكنك تحديد هوائي من مكتبة واسعة) ملقاة في الرمال (العمل في اتصال مع المتوسط سبر) على مسافة 5 سم إلى يسار وسط المنطقة (س = 35 سم = 0.35 م ، ص = 38 سم = 0.38 م):
(z هو محور الاستقطاب ثنائي القطب (للحالة ثنائية الأبعاد (وضع TMD 2D) z فقط صالح) ، والنبض هو تسمية شكل النبضة التي يشعها الهوائي)
يقع هوائي الاستقبال عادةً على مسافة ثابتة صغيرة من جهاز الاستقبال ، والذي يُسمى قاعدة وحدة الهوائي (يُسمى هذا الخيار الخاص بالموضع النسبي للهوائيات "الإزاحة المشتركة"). كقاعدة ، حدد مسافة 10 سم ، وبالتالي فإن الإحداثي الأفقي 35 + 10 = 45 سم = 0.45 م (5 سم إلى يمين منتصف المنطقة):
فاصل المحاكاةيتم تحديد اختيار إطار زمني للنمذجة بحيث يكون للإشارة المنعكسة من الهدف وقت للوصول إلى هوائي الاستقبال.
نحدد الوقت التقريبي المطلوب للإشارة في الحالة قيد النظر ، مع أخذ المسافة من الهوائيات إلى الهدف
:
نظرًا لأن الجزء العلوي من نبضة غاوس الرادار بتردد مركزي قدره 1 جيجاهرتز قد تم تغييره بالنسبة لبداية المحور الزمني بمقدار 1 نانوثانية ، فإننا نختار نافذة زمنية تبلغ 5 نانوثانية:
تصميموبالتالي ، فإن محتويات ملف الإدخال هي كما يلي:
نبدأ عملية النمذجة:
python -m gprMax models\hello.in
لإجراء المحاكاة ، يتم استخدام طريقة المجال الزمني للفرق المحدود (FDTD ، المجال الزمني للفرق المحدود) (تم اقتراح الخوارزمية الأساسية للطريقة بواسطة Kane Yee) ، وبعدها يتم تسمية الخلايا التي قسمت النموذج إليها بخلايا Yee . يتم الحصول على حل رقمي في المجال الزمني عن طريق حل معادلات ماكسويل لكل خلية.
في الحالة ثنائية الأبعاد (وضع TMZ 2D) ، يتم حساب المكون فقط
المجال الكهربائي ومكوناته
و
المجال المغناطيسي.
في حالة تجاوز مقدار الذاكرة المتوفرة ، يتم إصدار رسالة حول نقص الذاكرة لإجراء المحاكاة:
إذا كان أي من الكائنات خارج نطاق المحاكاة ، يتم عرض رسالة خطأ:
لإجراء المحاكاة باستخدام النموذج الموصوف ، استغرق الأمر حوالي 56 ميغابايت فقط من ذاكرة الوصول العشوائي (إذا قمت بتقليل الخطوة بمقدار النصف - حتى 1 مم - تزداد متطلبات الذاكرة إلى 99 ميجابايت).
بعد اكتمال المحاكاة ، يظهر ملف
hello.out في مجلد
الطرز ، والذي يحتوي على نتائج المحاكاة
بتنسيق HDF5 ، المصمم خصيصًا لتخزين البيانات الرقمية.
بناء المسارلتصور النتائج ، نقوم بتصميم الآثار:
python -m tools.plot_Ascan models\hello.out
يعرض كل مسار (A-scan) يتم تقديمه في النافذة التي يتم فتحها رسمًا بيانيًا لأحد مكونات الحقل الكهرومغناطيسي في موقع هوائي الاستقبال:
إن الموجة المباشرة التي تأتي مباشرة من هوائي الإرسال (DW) والموجة المنعكسة من الهدف (RW) تكون مرئية على المسارات.
يرتبط المحور الأفقي للوقت بعمق الهدف الذي يعكس الإشارة من خلال سرعة الموجة الكهرومغناطيسية في المادة.
ولكن ماذا يحدث إذا وضعت أمر الأسطوانة أمام أمر الصندوق في ملف الإدخال؟
اختفت الإشارة المنعكسة من الأسطوانة - امتص الرمل الأسطوانة (هذا مثال على أهمية الترتيب الذي تم به بناء الكائنات).
بناء الشخصيةلكن الأكثر إفادة هو الراداروغرام (radargram) - المظهر الجانبي (B-scan) ، وهو مزيج من العديد من المسارات التي بنيت عند تحريك georadar على طول اتجاه معين - وهذا هو الإجراء ذاته لتحريك عربة مع رادار على طول المنطقة المدروسة.
تغيير وصف الهوائيات عن طريق تحريكها إلى بداية المحور الأفقي:
وضعنا الخطوة لتحريك الهوائيات تساوي 1 سم = 0.01 م:
وبالتالي ، فإن محتويات ملف الإدخال هي كما يلي:
قم بتشغيل المحاكاة في وضع الدُفعات:
python -m gprMax models\hello.in -n 50
(50 هو عدد الخطوات التي يتحرك بها الرادار).
بعد البدء ، يتم إجراء المحاكاة بالتسلسل لمواقع GPR 50:
بعد نهاية المحاكاة ، يوجد 50 ملفًا hello1.out ... hello50.out في مجلد الطراز.
ادمج هذه الملفات في ملف hello_merged.out مع الأمر:
python -m tools.outputfiles_merge models/hello
بناء ملف تعريف:
python -m tools.plot_Bscan models\hello_merged.out Ez
(Ez هو مكون المجال الكهرومغناطيسي الذي نبني به الملف الشخصي - المكون المحول مباشرة إلى الجهد)
كما ترون ، يتم عرض الشريط الأفقي الناجم عن الموجة المباشرة في الملف الشخصي أعلاه ، والإشارة التشعبية المميزة الناتجة عن الموجة المنعكسة وتظهر التغيير في المسافة من الهدف إلى GPR عند نقلها أدناه.
توضح وسيلة الإيضاح الموجودة على اليمين الألوان المطابقة وشدة المجال.
(كما هو موضح على المسار):
أحمر -
أبيض -
الأزرق -
من خلال تحليل هذه الملفات الشخصية ، يمكننا استخلاص استنتاجات حول عمق وحجم وحتى شكل الأهداف ، كما تستخدم
الشبكات العصبية لهذا الغرض.
طرق وملف تعريف على شاشة GPR (إطار من برنامج التلفاز البريطاني "Command of the Time")
لكن الانعكاس يحدث ليس فقط من الأجسام الموصلة ، ولكن أيضًا عند حدود طبقتين مع ثوابت عازلة مختلفة.
قم بإنشاء طبقة رملية ثانية مع عازل ثابت في الجزء السفلي من النموذج
:
كما يمكن أن يرى ، أسفل "التتبع" للموجة المباشرة (DW) ، ظهر قطاع خطي من الموجة (RW) ينعكس من واجهة الطبقتين الرمليتين.
خارج نطاق هذا المثال ، تتميز
ميزات gprMax مثل النمذجة ثلاثية الأبعاد والأشكال السطحية المعقدة ونماذج الهوائي المفصلة والمحاسبة عن تشتت الموجات الكهرومغناطيسية ... علاوة على ذلك ، يمكن استخدام الحزمة ليس فقط لمحاكاة تشغيل GPR ، ولكن أيضًا لدراسة انتشار الموجات الكهرومغناطيسية في بيئات مختلفة ، و تسريع العمليات الحسابية باستخدام تقنية
NVIDIA CUDA ، والتي توفر زيادة عشرة أضعاف في السرعة مقارنة بالحوسبة المتوازية على وحدة المعالجة المركزية باستخدام OpenMP. لزيادة مرونة النمذجة ، يمكنك وضع كتل الكود في Python في ملف الإدخال.
بعض الأمثلة على استخدام حزمة gprMax:
روابط مفيدة:
الموقع الرسمي gprMaxدليل مستخدم GprMaxgprMax على يوتيوب