حل معادله حالت — از صفر تا صد

۳۹۹۵ بازدید
آخرین به‌روزرسانی: ۱۷ مرداد ۱۴۰۳
زمان مطالعه: ۵۶ دقیقه
دانلود PDF مقاله
حل معادله حالت — از صفر تا صد

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

997696

حل معادله حالت برای سیستم‌های پیوسته در زمان

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

x˙=f(x,u,t).\dot{x} = f(x,u,t).

y=g(x,u,t)y = g(x,u,t)

در مورد سیستم‌های خطی نامتغیر با زمان، این معادله را می‌توان به صورت زیر بازنویسی کرد:

dx(t)dt=Ax(t)+Bu(t)\frac{d x(t) }{dt} = A x(t) + B u(t)

y(t)=Cx(t)+Du(t)y(t) = C x(t) + D u(t)

حال هدف این است که معادلات سیستم بالا را حل کنیم تا یک فرم بسته (Closed Form) به صورت تابعی از متغیرهای بردار حالت x(t)x(t) و بردار اندازه‌گیری y(t)y(t) به دست آوریم.

نمایش فضای حالت سیستم پیوسته در زمان
نمایش فضای حالت سیستم پیوسته در زمان

حالت u(t)=0\Large u(t) =0 برای تمام زمان‌های t\Large t

برای حل معادله حالت ابتدا حالت ساده‌ای که برای تمام زمان‌های tt، u(t)=0u(t) =0 است را در نظر می‌گیریم. در این مورد معادلات حالت به فرم زیر بازنویسی می‌شوند:

dx(t)dt=Ax(t)\frac{d x(t) }{dt} = A x(t)

y(t)=Cx(t)y(t) = C x(t)

از معادلات دیفرانسیل پایه می‌دانیم که برای یک α\alpha اسکالر، حل α˙=aα\dot{\alpha} = a \alpha برابر با α(t)=α0exp(at)\alpha(t) = \alpha_0 exp(at) است. اگر α\alpha بردار و AA ماتریس باشند، حلی مشابه به صورت زیر به دست می‌آید:

x(t)=eAtx0x(t) = e^{At} x_0

توجه کنید که چون AA یک ماتریس است، نیاز داریم که توان آن را به صورت زیر تعریف کنیم:

eAt=I+At+A2t22!+A3t33!+A4t44!+e^{At} = I + At + \frac{A^2t^2}{2!} + \frac{A^3t^3}{3!} + \frac{A^4t^4}{4!} + \dots

اگر حالت در لحظه τ\tau مشخص باشد، آنگاه حل x˙=Ax\dot{x} = Ax برابر است با:

x(t)=eA(tτ)x(τ)x(t) = e^{A(t-\tau)} x(\tau)

اگر ماتریس AA را بتوان به صورت A=VΛV1A = V \Lambda V^{-1} نوشت، آنگاه این ماتریس دارای بردارهای ویژه (Eigen Vector) خطی و مستقل است. در این حالت جواب را می‌توان به صورت زیر نوشت:

x(t)=eA(t)x0=(I+At+A2t22!+)x0x(t) = e^{A(t)} x_0 = \left ( I + At + \frac{A^2t^2}{2!} + \dots \right) x_0

با جایگذاری A=VΛV1A = V \Lambda V^{-1} در معادله بالا داریم:

x(t)=V(I+Λt+Λ2t22!+)V1x0x(t) = V \left ( I + \Lambda t + \frac{\Lambda^2t^2}{2!} + \dots \right) V^{-1} x_0

x(t)=VeΛtV1x0,x(t) = V e^{\Lambda t} V^{-1} x_0,

در معادله بالا eΛte^{\Lambda t} ماتریسی است که المان‌های خارج از قطر اصلی آن صفر هستند و المان ii روی قطر برابر با eλite^{\lambda_i t} است. اگر قسمت حقیقی مقادیر ویژه ماتریس AA منفی باشد، در این صورت eλite^{\lambda_i t} است، در غیر این صورت x(t)x(t) \rightarrow \infty. این مشخصه در طراحی سیستم‌های کنترل بسیار ضروری است. زیرا در یک سیستم کنترلی، قانون کنترلی (Control Law) به نحوی تعیین می‌شود که مقادیر ویژه اصلاح شده دینامیک سیستم دارای قسمت حقیقی منفی باشند.

حل عمومی

در این قسمت به دنبال یافتن پاسخ خاص برای معادله کلی dx(t)dt=Ax(t)+Bu(t)\frac{d x(t) }{dt} = A x(t) + B u(t) به فرم x(t)=eAtc(t)x(t) = e^{At} c(t) خواهیم بود. با جایگذاری x(t)=eAtc(t)x(t) = e^{At} c(t) و بسط آن داریم:

AeAtc(t)+eAtdcdt=AeAtc(t)+Bu(t)A e^{At} c(t) + e^{At} \frac{d c }{dt} = A e^{At} c(t) + B u(t)

پس از ساده‌سازی معادله به صورت زیر خواهد بود:

dcdt=eAtBu(t)\frac{d c }{dt} = e^{-At} B u(t)

از معادله بالا نسبت به زمان انتگرال می‌گیریم:

c(t)=0teAλBu(λ)dλ+constantc(t) = \int_{0}^{t} e^{-A \lambda } B u(\lambda) d\lambda + constant

بنابراین حل معادله dx(t)dt=Ax(t)+Bu(t)\frac{d x(t) }{dt} = A x(t) + B u(t) برابر است با:

x(t)=eAtc(t)=eAt0teAλBu(λ)dλ+eAtconstantx(t) = e^{At}c(t) = e^{At} \int_{0}^{t} e^{-A \lambda } B u(\lambda) d\lambda + e^{At} constant

توجه کنید که x(0)=x0x(0) = x_0 است.

x(t)=eAtc(t)=eAtx0+0teA(tλ)Bu(λ)dλx(t) = e^{At}c(t) = e^{At} x_0 + \int_{0}^{t} e^{A(t- \lambda) } B u(\lambda) d\lambda

در نتیجه پاسخ معادله دیفرانسیل در فضای حالت برابر است با:

x(t)=eAtx0+0teA(tλ)Bu(λ)dλx(t) = e^{At} x_0 + \int_{0}^{t} e^{A(t- \lambda) } B u(\lambda) d\lambda

در حالتی که مقدار xx در نقطه τ\tau مشخص باشد، داریم:

x(t)=eA(tτ)x(τ)+τteA(tλ)Bu(λ)dλx(t) = e^{A(t-\tau)} x(\tau) + \int_{\tau}^{t} e^{A(t- \lambda) } B u(\lambda) d\lambda

این پاسخ دارای مشخصه‌های زیر است:

  1. پاسخ x(t)x(t) فقط به سیگنال کنترلی در بازه 0 (یا τ\tau) و لحظه حال (tt) بستگی خواهد داشت.
  2. این قانون که اگر eAte^{At} (یا eA(tτ)e^{A(t-\tau)}) محدود باشد، x(t)x(t) محدود خواهد بود، دیگر صادق نیست، زیرا پاسخ x(t)x(t) به BB و نیز سیگنال کنترل u(t)u(t) بستگی دارد.

حل معادله حالت برای سیستم‌های گسسته در زمان

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

X[k+1]=f(x[k],u[k])X[k+1] = f(x[k],u[k])

y[k]=g(x[k],u[k])y[k] = g(x[k],u[k])

برای سیستم‌های خطی تغییرناپذیر با زمان، این معادلات را می‌توان به صورت زیر نوشت:

x[k+1]=Ax[k]+Bu[k]x[k+1] = A x[k] + B u[k]

y[k]=Cx[k]+Du[k]y[k] = C x[k] + D u[k]

نمایش فضای حالت سیستم گسسته در زمان
نمایش فضای حالت سیستم گسسته در زمان

زمانی که u[k]=0u[k] = 0 باشد، دینامیک سیستم به صورت زیر است:

x[k+1]=Ax[k]x[k+1] = A x[k]

به سادگی می‌توان نشان داد که پاسخ در این حالت برابر است با:

x[k+1]=Ak+1x[0]x[k+1] = A^{k+1} x[0]

با جایگذاری Ak+1=VΛk+1V1A^{k+1} = V \Lambda^{k+1} V^{-1} داریم:

x[k+1]=VΛk+1V1x[0]x[k+1] = V \Lambda^{k+1} V^{-1} x[0]

اگر اندازه تمام مقادیر ویژه ماتریس AA کمتر از یک باشد، آنگاه x[k+1]x[k+1] به سمت صفر همگرا خواهد شد، در غیر این صورت به \infty میل می‌کند.

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

حل بازگشتی

برای حل معادله حالت به صورت بازگشتی، معادله در لحظه اول را به دست می‌آوریم:

x[1]=Ax[0]+Bu[0]x[1] = A x[0] + B u[0]

حال معادله برای لحظه دوم برابر است با:

x[2]=Ax[1]+Bu[1]x[2] = A x[1] + B u[1]

با جایگذاری معادله به دست آمده برای لحظه اول در معادله لحظه دوم داریم:

x[2]=A(Ax[0]+Bu[0])+Bu[1]x[2] = A ( A x[0] + B u[0] ) + B u[1]

x[2]=A2x[0]+ABu[0]+Bu[1]x[2] = A^2 x[0] + A B u[0] + B u[1]

به طریق مشابه، برای X[3]X[3] داریم:

x[3]=A3x[0]+A2Bu[0]+ABu[1]+Bu[2]x[3] = A^3 x[0] + A^2 B u[0] + A B u[1] + B u[2]

بر اساس روند معادلات بالا برای x[k]x[k] جواب زیر استنتاج می‌شود:

x[k]=Akx[0]+i=0k1AkiBu[i]x[k] = A^{k} x[0] + \sum_{i=0}^{k-1}A^{k-i} B u[i]

حال با توجه به x[k]x[k]، مقدار x[k+1]x[k+1] برابر است با:

x[k+1]=Ax[k]+Bu[k]x[k+1] = A x[k] + B u[k]

مقدار x[k]x[k] به دست آمده را در معادله بالا جایگذاری می‌کنیم:

x[k+1]=A(Akx[0]+i=0k1Aki1Bu[i])+Bu[k]x[k+1] = A \left( A^{k} x[0] + \sum_{i=0}^{k-1}A^{k-i-1} B u[i] \right) + B u[k]

x[k+1]=Ak+1x[0]+i=0k1AkiBu[i]+Bu[k]x[k+1] = A^{k+1} x[0] + \sum_{i=0}^{k-1}A^{k-i} B u[i] + B u[k]

x[k+1]=Ak+1x[0]+i=0kAkiBu[i]x[k+1] = A^{k+1} x[0] + \sum_{i=0}^{k}A^{k-i} B u[i]

چون معادله x[k+1]x[k+1] پس از جایگذاری kk با k+1k+1 فرمی مشابه با x[k]x[k] دارد، در نتیجه پاسخ به صورت زیر خواهد بود:

x[k]=Akx[0]+i=0k1AkiBu[i]x[k] = A^{k} x[0] + \sum_{i=0}^{k-1}A^{k-i} B u[i]

این پاسخ دارای مشخصه‌های زیر است:

  1. پاسخ برای x[k]x[k] فقط به سیگنال کنترلی در بازه 0 تا لحظه حال (k) بستگی دارد.
  2. این قانون که اگر AkA^{k} محدود باشد، x(t)x(t) محدود است، دیگر صادق نخواهد بود، زیرا پاسخ x(t)x(t) به BB و نیز سیگنال کنترل u(t)u(t) بستگی دارد.

ارتباط بین نمایش پیوسته و گسسته در زمان

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

معادله سیستم پیوسته در زمان زیر را در نظر بگیرید:

dx(t)dt=Ax(t)+Bu(t)\frac{d x(t) }{dt} = A x(t) + B u(t)

y(t)=Cx(t)+Du(t)y(t) = C x(t) + D u(t)

مشتق x[t]x[t] تقریبا به صورت زیر است:

dx(t)dt=x[t+Δt]x[t]Δt\frac{d x(t) }{dt} = \frac{x[t+\Delta t] - x[t]}{\Delta t}

که در آن Δt\Delta t یک مقدار کوچک برای گسسته‌سازی سیستم است. انتخاب مناسب Δt\Delta t برای طراحی یک قانون کنترلی مناسب و مطالعه سیستم‌های دینامیکی توسط شبیه‌سازی بسیار ضروری است. هرچه Δt\Delta t کوچک‌تر باشد، جواب دارای دقت بیشتری خواهد بود، اما زمان شبیه‌سازی نیز افزایش خواهد یافت. در مقابل، مقدار بزرگ‌تر Δt\Delta t منجر به افزایش سرعت شبیه‌سازی می‌شود، ولی نتایج با دقت کمتری به دست خواهد آمد. انتخاب مقدار صحیح برای Δt\Delta t جواب با دقت مناسب در زمان شبیه‌سازی منطقی را تضمین می‌کند. شبیه‌سازی یک سیستم دینامیکی در بخش‌های مختلف مورد نیاز است. معمولا مقدار Δt\Delta t را برابر با 0٫001 ثانیه انتخاب می کنند. اما اگر سیستم به شدت غیرخطی باشد و یا میلیون‌ها پارامتر داشته باشد (مثلا در شبکه‌های عصبی)، یک Δt\Delta t بسیار کوچک‌تر از مرتبه 10610^{-6} مورد نیاز است.

معادله دینامیکی سیستم به صورت زیر است:

x[t+Δt]x[t]Δt=Ax(t)+Bu(t)\frac{x[t+\Delta t] - x[t]}{\Delta t} = A x(t) + B u(t)

x[t+Δt]=x[t]+AΔtx(t)+BΔtu(t)x[t+\Delta t] = x[t]+ A \Delta t x(t) + B\Delta t u(t)

x[t+Δt]=(I+AΔt)x(t)+BΔtu(t)x[t+\Delta t] = (I+ A \Delta t) x(t) + B\Delta t u(t)

توجه کنید که اگر تمام مقادیر ویژه AA دارای قسمت حقیقی منفی باشند، آنگاه قسمت حقیقی تمام مقادیر ویژه (I+AΔt)(I+ A \Delta t) برای یک مقدار کوچک Δt\Delta t، کمتر از 1 هستند و eAte^{At} یا (I+AΔt)k(I+ A \Delta t)^k زمانی که t,kt,k \rightarrow \infty به صفر همگرا می‌شوند.

جمع‌بندی

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

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

^^

بر اساس رای ۱۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Vivek Yadav
۱ دیدگاه برای «حل معادله حالت — از صفر تا صد»

خیلی عالی ممنون

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *