سایت شخصی صادق سلمانی

ولتست، یادگیری ماشین، پایتون، فرازآوری مصنوعی

سایت شخصی صادق سلمانی

ولتست، یادگیری ماشین، پایتون، فرازآوری مصنوعی

سایت شخصی صادق سلمانی

مطالبی که در این سایت نوشته می‌شود به منزله تخصص من در آن‌ها نمی‌باشد، بلکه صرفاً آغازی است در مسیری طولانی برای یادگیری بهتر و عمیق‌تر.

آخرین نظرات
  • ۱۶ خرداد ۹۸، ۰۰:۲۳ - محمد
    عالی
  • ۱۴ آذر ۹۷، ۱۸:۰۶ - خ
    عالی
  • ۸ آذر ۹۷، ۲۰:۰۷ - محمد علی
    احسنت

۸ مطلب در ارديبهشت ۱۳۹۶ ثبت شده است

جان اف کندی (رئیس جمهور اسبق آمریکا) در یکی از سخنرانی‌های خودش جمله خیلی زیبایی رو میگه: نگویید دولت و کشور برای من چه کرد، بگویید من برای کشورم چه کردم.

اگر در این مدت دقت کرده باشید برخی نامزدهای انتخاباتی می‌گویند من فلان میلیون شغل ایجاد می‌کنم یا مثلا فلان تعداد آدم بیکار رو یارانه می‌دهم و غیره. من کاری به سیاست و این حرفا ندارم. مشکلم با نوع نگاه خود ماست. خب مطمئناً اون کاندیدای محترم یک چیزی دیده که اینطوری تبلیغ میکنه. یقیناً او پی برده است که ما ایرانی‌ها دنبال کار کم، کار پشت میز نشینی، پول مفت ماهیانه و تلاش کم هستیم که  اینگونه تبلیغ می‌کند. همون روز به خودم آمدم و گفتم ببین کارمان به جایی رسیده که باید در یک سایتی ثبت نام کنیم و منتظر بمانیم تا یک شغل برای ما پیدا شود و آن هم شغلی که درآمدش فقط برای زنده ماندن خوب است! خب این وسط جایگاه خدا چی میشه؟ یعنی من دارم  علناً توحید رو زیر پا میذارم و به جای اینکه به خدا توکل کنم و تلاشم رو در حد نهایتش انجام بدهم، سریع در یک سایت ثبت نام می‌کنم و بعدش بیکار در خانه می‌نشینم تا دولت برایم کار پیدا کند! خدا شاهده هنوز در بین دوستانم چنین افرادی هستند که در خانه نشسته‌اند که دولت برای آن‌ها کار پیدا کند.

مشکل ما این هست که دوست نداریم از کم شروع کنیم و به تدریج بالا برویم. از همان اول حقوق ماهیانه میلیونی می‌خواهیم. از همان اول خودمون رو با مهندسی مقایسه می‌کنیم که با ۱۰ سال سابقه کار چنین حقوقی را دریافت میکنه. یکی از مهندسان مناطق نفت خیز جنوب که اتفاقا با مدرک لیسانس هم در آنجا کار می‌کنه (با سابقه احتمالا ۱۰ تا ۱۲ ساله) اینقدر به نرم‌افزارهای شبیه‌سازی تسلط داره که الآن در یک شرکت خصوصی مشغول به کار شده و خودشان نرم‌افزار تولید می‌کنند و درآمدش هم بالاست. دقت کردید: مدرک لیسانس، تخصص بسیار زیاد روی کدنویسی و نرم افزارها، درآمد چندین میلیونی و بیش از ۱۰ سال سابقه کار. همه این‌ها با هم لازم هستند.

این نگاه که چرا دولت مرا استخدام نمیکنه یک نگاه از جایگاه ضعف هست. به قول خیلی از افراد با تجربه صنعت، آدم متخصص بیکار نمیمونه. پس اگر بیکاریم، مهارت خاصی نداریم. اگر خود من الآن نمی‌توانم در حین سربازی کار کنم و پول در بیاورم، به دلیل آن است که هنوز آنقدر مهارت و تخصص ندارم و گرنه خیلی‌ها هستند که با شرایط مشابه من در حال کسب درآمد هستند. مشکل ما این هست که عادت به آب باریکه کرده‌ایم. باید عادت کنیم از کم شروع کنیم و فکر استخدام دولتی و پشت میز نشینی را از کله خود بیرون کنیم.

جدیداً کسانی که مدام از بیکاری و استخدام دولتی و اینجور چیزها حرف می‌زنند رو سریعاً از دایره دوستانم حذف می‌کنم. حس می‌کنم اینها امید و توکلشون به خدا رو از دست دادن.

پی نوشت یک: طبق قراری که گذاشته بودیم، ۴ نفر از دوستان همراه سایت را در نمایشگاه دیدم و یک سری فایل ویدئویی آموزش اکلیپس در اختیار آن‌ها گذاشتم که واقعا فایل‌های خوبی هستند و ان شاءالله که با دقت آن‌ها را ببینند و یاد بگیرند.

پی نوشت دو: چقدر چینی در نمایشگاه اومده بود.


۲ نظر ۱۹ ارديبهشت ۹۶ ، ۲۰:۵۵
صادق سلمانی

در این پست در مورد مشبک‌کاری ناقص صحبت کردم و پارامترهای آن را توضیح دادم. در این قسمت به بررسی جریان کروی در داده‌های چاه‌آزمایی خواهم پرداخت.

زمانی که چاه به صورت ناقص مشبک‌کاری شده باشد، چاه فقط با قسمتی از سازند ارتباط دارد. به جهت اینکه سطح تماس بین چاه و سازند کاهش می‌یابد، مقداری از سیال باید مسافت بیشتری را در سازند طی کند تا از طریق چاه تولید شود (شکل زیر). بنابراین یک افت فشار اضافی در ناحیه اطراف چاه ایجاد می‌شود که آن را با Spp نشان می‌دهند.



مشخصه اصلی جریان کروی، ایجاد شیب 0.5- در نمودار مشتق فشار می‌باشد (نمودار سمت چپ).

جریان کروی در زمان‌های اولیه (و زودتر از شروع رژیم جریانی شعاعی بی‌نهایت) آغاز می‌شود. 

منیوال نرم افزارهای سفیر و فکت رو بررسی کردم و مشاهده کردم که:

partially penetrating = partially completion = limited entry

یعنی در بسیاری اوقات این سه مفهوم را معادل با یکدیگر گرفته اند.



۰ نظر ۰۸ ارديبهشت ۹۶ ، ۱۰:۳۰
صادق سلمانی

عکس زیر، رژیم‌های جریانی را در یک شکاف با قابلیت هدایت پایین (finite conductivity fracture) نشان می‌دهد. برای کسب اطلاعات بیشتر فایل PDF را نیز دانلود کنید.



نکته: در زمان‌های اولیه، یک جریان خطی در داخل شکاف وجود دارد ولی مانند اثر ذخیره چاه است و مدت کوتاهی برقرار است. به همین دلیل در نمودار مشتق فشار اثر آن دیده نمی‌شود و اولین رژیم جریانی که در نمودار مشتق فشار دیده می‌شود، مربوط به جریان دوخطی با شیب 0.25 است.

تذکر: توضیحات بیان شده بر اساس نمودار موجود در متن است. اگر شرایط تغییر کند، مسلماً شکل نمودار و تحلیل‌ها نیز کمی تغییر خواهد کرد.

دریافت
حجم: 1015 کیلوبایت

۰ نظر ۰۸ ارديبهشت ۹۶ ، ۱۰:۲۱
صادق سلمانی

الآن در حال حل یکی از مثال‌های کتاب چاه‌آزمایی جان لی بودم که در میان مسیر باید مقدار Exponential Integral را محاسبه می‌کردم. روش معمول آن است که به جداول خود کتاب مراجعه کنیم و با کمی جستجو مقدار آن را بدست آوریم. ولی راه حل بهتر آن است که این کار را با استفاده از اکسل، پایتون، متلب و غیره انجام دهیم تا هم سریع‌تر باشد و هم مقدار دقیق‌تری بدست آید. 

ماژول Scipy یک تابع مناسبی برای محاسبه مقادیر Ei ارائه می‌دهد:

from scipy import*
x=expi(-0.5)
print(x)

نتیجه:
x = - 0.559773594776

۰ نظر ۰۷ ارديبهشت ۹۶ ، ۱۱:۰۵
صادق سلمانی

امروز یکی از دوستان سوالی در مورد smoothing پرسیده بودند. از آنجایی که من به همراه یکی از اساتیدم و همچنین یکی از مهندسان واحد بهره‌برداری شرکت مناطق نفت خیز جنوب در حال نوشتن یک کتاب در زمینه چاه‌آزمایی هستیم، به شخصه از سوالات دوستان استقبال می‌کنم. این باعث میشه که خودم هم به دنبال جواب بروم و در ویرایش کتاب هم کمک زیادی خواهد کرد.


✅ و اما منظور از smoothing چیست؟

یک مشکل عمده در تعیین و محاسبه مشتق فشار به روش بوردت، اختلالات و پراکندگی زیاد در مقادیر مشتق است. این مشکل زمانی بارزتر می‌شود که فاصله میان اندازه‌گیری‌های فشار خیلی کوتاه باشد. برای حل این مشکل به جای استفاده از همه نقاط برای محاسبه مشتق فقط از نقاطی با فاصله مشخص استفاده می‌شود. معمولاً مقدار x∆ کوچک است (0.01 تا 0.2) و در نرم‌افزارهای چاه‌آزمایی بیانگر smoothing می‌باشد. هرچه مقدار x∆ بزرگ‌تر باشد، مشتق فشار نیز smooth تر خواهد بود.


تذکر: دقت کنید که مثلا مقدار smoothing را برابر 1 نگذارید که این کار باعث میشه خطای زیادی بوجود بیاد. مقدار بهینه همان مقادیر 0.2 تا 0.3 است.


اگر هم علاقمند به مطالعه بیشتر در مورد روش محاسبه مشتق فشار هستید، لینک زیر را که مدتی پیش در سایتم نوشته‌ام مطالعه کنید:

نحوه محاسبه مشتق فشار برای رسم نمودارهای مشتق فشار در چاه آزمایی


کانال سایت در تلگرام

۰ نظر ۰۶ ارديبهشت ۹۶ ، ۰۰:۱۱
صادق سلمانی

چند نکته: 

👈 در حالت transient یا unsteady-state، هنوز اثر افت فشار به هیچ‌یک از مرزهای مخزن نرسیده است.

👈 در حالت transition یا late transient، اثر افت فشار صرفاً به بعضی از مرزهای مخزن رسیده است.

👈 در حالت شبه‌پایدار یا pseudo-steady state ، اثر افت فشار به تمام مرزهای مخزن رسیده است و در این حالت است که از مفهوم ضریب شکل (shape factor) استفاده می‌کنیم.


🚫 دو مفهوم transient و transition را با یکدیگر اشتباه نگیرید.

تذکر: گاهی اوقات PSS را semi-steady state نیز می‌نامند.


کانال سایت در تلگرام

۰ نظر ۰۳ ارديبهشت ۹۶ ، ۱۵:۳۷
صادق سلمانی

در مسائل مقدار اولیه، مقدار تابع در نقطه شروع داده می‌شود و با استفاده از روش‌های موجود مقدار آن را در سایر نقاط بدست می‌آوریم. در این صورت منحنی تغییرات متغیر تابع بر حسب متغیر مستقل قابل رسم خواهد بود.

از جمله روش‌های حل مسائل مقدار اولیه می‌توان به روش‌های تیلور، اویلر و رانگ کاتا مرتبه دوم، سوم و چهارم اشاره نمود. در کلیه این روش‌ها مختصات هر نقطه با استفاده از مختصات نقطه ماقبلش بدست می‌آید. اساس کلیه این روش‌ها، استفاده از سری تیلور است.

تذکر: برای مطالعه توضیحات بیشتر به کتاب «کاربرد ریاضیات در مهندسی شیمی - روش‌های عددی» نوشته دکتر خراط مراجعه کنید.

خلاصه روش رانگ کاتا مرتبه سوم:


در اینجا قصد دارم به بررسی یک مثال به روش رانگ کاتا - 3 بپردازم. قبلاً این مثال را به روش‌های اویلر، رانگ کاتا-2 و رانگ کاتا-4 نیز حل کرده‌ام (+ و + و +)


مثال:

معادله دیفرانسیل زیر را با استفاده از روش رانگ کاتا مرتبه سوم و برای حالت h = 0.5 حل کنید و مقدار تابع را تا x = 3.5 محاسبه کنید.


حل با استفاده از زبان برنامه نویسی پایتون (کدنویسی در محیط Spyder):
import numpy as np
from matplotlib import pyplot as plt
x0=1
y0=1
xf=3.5
n=6
h=(xf-x0)/(n-1)
x=np.linspace(x0,xf,n)
y=np.zeros([n])
y[0]=y0
for in range(1,n):
    k1=h*x[i-1]*y[i-1]**(1/3)
    k2=h*(x[i-1]+0.5*h)*(y[i-1]+0.5*k1)**(1/3)
    k3=h*(x[i-1]+h)*(y[i-1]+2*k2-k1)**(1/3)
    y[i]=y[i-1]+(1/6)*(k1+4*k2+k3)
for in range(n):
    print(x[i],y[i])
plt.plot(x,y,'o')
plt.xlabel('value of x')
plt.ylabel('value of y')
plt.title('Approximate Solution with RK-3 Method')
plt.show()
نتایج:

1.0                          1.0
1.5           1.6855277908
2.0            2.826623146
2.5           4.5570242827
3.0           7.0160178606
3.5           10.345325211


۰ نظر ۰۳ ارديبهشت ۹۶ ، ۱۵:۲۶
صادق سلمانی

در مسائل مقدار اولیه، مقدار تابع در نقطه شروع داده می‌شود و با استفاده از روش‌های موجود مقدار آن را در سایر نقاط بدست می‌آوریم. در این صورت منحنی تغییرات متغیر تابع بر حسب متغیر مستقل قابل رسم خواهد بود.

از جمله روش‌های حل مسائل مقدار اولیه می‌توان به روش‌های تیلور، اویلر و رانگ کاتا مرتبه دوم، سوم و چهارم اشاره نمود. در کلیه این روش‌ها مختصات هر نقطه با استفاده از مختصات نقطه ماقبلش بدست می‌آید. اساس کلیه این روش‌ها، استفاده از سری تیلور است.

تذکر: برای مطالعه توضیحات بیشتر به کتاب «کاربرد ریاضیات در مهندسی شیمی - روش‌های عددی» نوشته دکتر خراط مراجعه کنید.

خلاصه روش رانگ کاتا مرتبه چهارم:


در اینجا قصد دارم به بررسی یک مثال به روش رانگ کاتا - 4 بپردازم. قبلاً این مثال را به روش‌های اویلر و رانگ کاتا-2 نیز حل کرده‌ام (+ و +)

مثال:

معادله دیفرانسیل زیر را با استفاده از روش رانگ کاتا مرتبه چهارم و برای حالت h = 0.5 حل کنید و مقدار تابع را تا x = 3.5 محاسبه کنید.


حل با استفاده از زبان برنامه نویسی پایتون (کدنویسی در محیط Spyder):
import numpy as np
from matplotlib import pyplot as plt
x0=1
y0=1
xf=3.5
n=6
h=(xf-x0)/(n-1)
x=np.linspace(x0,xf,n)
y=np.zeros([n])
y[0]=y0
for i in range(1,n):
    k1=h*x[i-1]*y[i-1]**(1/3)
    k2=h*(x[i-1]+0.5*h)*(y[i-1]+0.5*k1)**(1/3)
    k3=h*(x[i-1]+0.5*h)*(y[i-1]+0.5*k2)**(1/3)
    k4=h*(x[i-1]+h)*(y[i-1]+k3)**(1/3)
    y[i]=y[i-1]+(1/6)*(k1+2*k2+2*k3+k4)
for i in range(n):
    print(x[i],y[i])
plt.plot(x,y,'o')
plt.xlabel('value of x')
plt.ylabel('value of y')
plt.title('Approximate Solution with RK-4 Method')
plt.show()
نتایج:

1.0      1.0
1.5       1.6860902679
2.0     2.82824535285
2.5     4.56006327111
3.0     7.02071665246
3.5     10.3518481736


۰ نظر ۰۱ ارديبهشت ۹۶ ، ۰۱:۲۲
صادق سلمانی