۲ مطلب با کلمه‌ی کلیدی «#State space» ثبت شده است

سیستم های خطی و غیرخطی

%Solving a System of Nonlinear ODEs

% Define initial time and final time
t0 = 0;
tfinal = 20;
time = [t0 tfinal];

% Define initial conditions for the state variables
x0 = [0; 1; 1];

% Solve the system of ODEs using ode45
[t, x] = ode45(@(t, x) [x(2)*x(3); -x(1)*x(3); -1/2*x(1)*x(2)], time, x0); %xdot(1)=(x(2)*x(3)); xdot(2)=(-x(1)*x(3)); xdot(3)=(-1/2*x(1)*x(2));

% Extract the solution for each state variable
x1 = x(:, 1);
x2 = x(:, 2);
x3 = x(:, 3);

% Plot the solution for each state variable
plot(t, x1, t, x2, t, x3)
title('Solution of System of ODEs')
xlabel('Time')
ylabel('State Variables')
grid on

.

.

%%
%Solving a System of Linear ODEs

% Define initial time and final time
t0 = 0;
tfinal = 10;
time = [t0 tfinal];

% Define initial conditions for the state variables
x0 = [1; 0];

% Define parameters for the system of ODEs
a = 1;
b = 1;

% Solve the system of ODEs using ode45
[t, x] = ode45(@(t, x) [-a*x(1) + b*x(2); a*x(1) - b*x(2)], time, x0);

% Extract the solution for each state variable
x1 = x(:, 1);
x2 = x(:, 2);

% Plot the solution for each state variable
plot(t, x1, t, x2)
title('Solution of System of ODEs')
xlabel('Time')
ylabel('State Variables')
grid on

.

.

این کد دو سیستم مختلف معادلات دیفرانسیل معمولی (ODE) را با استفاده از تابع ode45 MATLAB که یک روش رایج برای حل عددی ODE ها است، حل می کند. در اینجا توضیح مختصری در مورد هر بخش آورده شده است:

.

تعریف بازه زمانی: متغیرهای t0 و tfinal زمان شروع و پایان شبیه سازی را تعریف می کنند و زمان برداری است که حاوی این دو مقدار است.

تنظیم شرایط اولیه: متغیر x0 بردار است که شامل شرایط اولیه برای متغیرهای حالت سیستم است.

حل ODE ها: تابع ode45 با سه آرگومان فراخوانی می شود: تابعی که سیستم ODE ها، بازه زمانی و شرایط اولیه را تعریف می کند. تابعی که ODE ها را تعریف می کند یک تابع ناشناس است که در زمان t و حالت x می گیرد و بردار مشتقات را برمی گرداند.

استخراج راه‌حل‌ها: راه‌حل‌های هر متغیر حالت از خروجی دوم ode45 استخراج می‌شوند، که ماتریسی است که در آن هر ستون با یک متغیر حالت مطابقت دارد.

راه‌حل‌های نموداری(پلات): سپس با استفاده از تابع نمودار متلب، جواب‌ها بر حسب زمان ترسیم می‌شوند.

.

بلوک اول کد یک سیستم از سه ODE غیرخطی را حل می کند، در حالی که بلوک دوم یک سیستم از دو ODE خطی با پارامترهای a و b را حل می کند. هر دو سیستم به شکل فضای حالت نشان داده می شوند، که یک روش رایج برای نمایش سیستم های پویا در تئوری کنترل و پردازش سیگنال است.

۰ ۰ ۰ دیدگاه

مدارات RLC

فضای حالت

.

% This script simulates the behavior of a second-order series RLC circuit
clc ; clear ; close all

% Define circuit parameters
R = 10e3; % Resistance in ohms
L=100e-3; % Inductance in Henrys
C = 100e-6; % Capacitance in farads
U = 1; % Voltage source in volts

% Set initial conditions
x0=[0 0];
t0=0;
tfinal=10;
time=[t0 tfinal]; % Time range for simulation

% Define anonymous function for RLC circuit differential equation
RLCcircuit = @(t, x) [x(2); (-1/(L*C))*x(1)-(R/L)*x(2)+(1/(L*C))*U];

% Solve differential equation using ode23
[t,x]=ode23(RLCcircuit , time , x0);

% Extract results
x1=x(:,1); % x1 is the capacitor voltage Vc
x2=x(:,2); % x2 is the derivative of Vc (dVc/dt)
iC=C*x2; % Current through capacitor
iL=iC; % Current through inductor (same as current through capacitor)
Vc=x1; % Capacitor voltage

% Plot results
figure(1)
plot(t,Vc) % Plot capacitor voltage over time
title('Capacitor Voltage vs Time')
xlabel('Time (s)')
ylabel('Capacitor Voltage (V)')

figure(2)
plot(t,iL) % Plot inductor current over time
title('Inductor Current vs Time')
xlabel('Time (s)')
ylabel('Inductor Current (A)')

.

.

% This script simulates the behavior of a second-order parallel RLC circuit
clc ; clear ; close all

% Define circuit parameters
R = 10e3; % Resistance in ohms
L=100e-3; % Inductance in Henrys
C = 100e-6; % Capacitance in farads
U = 1; % Voltage source in volts

% Set initial conditions
x0=[0 0];
t0=0;
tfinal=10;
time=[t0 tfinal]; % Time range for simulation

% Define anonymous function for parallel RLC circuit differential equation
RLCcircuit = @(t, x) [x(2); (-1/(L*C))*x(1)-(1/(R*C))*x(2)+(1/(L*C))*U];

% Solve differential equation using ode23
[t,x]=ode23(RLCcircuit , time , x0);

% Extract results
x1=x(:,1); % x1 is the inductor current IL
x2=x(:,2); % x2 is the derivative of IL (dIL/dt)
iL=x1; % Inductor current
iR=iL; % Resistor current (same as inductor current)
vR=iR*R; % Resistor voltage

% Plot results
figure(1)
plot(t,vR) % Plot resistor voltage over time
title('Resistor Voltage vs Time')
xlabel('Time (s)')
ylabel('Resistor Voltage (V)')

figure(2)
plot(t,iL) % Plot inductor current over time
title('Inductor Current vs Time')
xlabel('Time (s)')
ylabel('Inductor Current (A)')

.

.

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

در هر دو اسکریپت، پارامترهای مدار به صورت زیر تعریف می شوند:

- مقاومت R= 10e3 است

- سلف L= 100e-3  است

- خازن  C=100e-6  است

- منبع ولتاژ U=1 ولت است

شرایط اولیه روی "x0=[0 0]" تنظیم شده است و محدوده زمانی برای شبیه سازی از "t0=0" تا "tfinal=10" است.

برای مدار سری RLC، یک تابع ناشناس برای معادله دیفرانسیل مدار تعریف شده است. این تابع در زمان "t" و بردار حالت "x" طول می کشد، که در آن "x(1)" نشان دهنده ولتاژ خازن "Vc" و "x(2)" نشان دهنده مشتق "Vc" (dVc/dt) است. تابع مشتق بردار حالت را برمی گرداند که با استفاده از معادله دیفرانسیل مدار RLC سری محاسبه می شود.

سپس معادله دیفرانسیل با استفاده از تابع 'ode23' حل می شود که از روش Runge-Kutta برای ادغام عددی معادله دیفرانسیل استفاده می کند. نتایج استخراج و رسم می‌شوند و ولتاژ خازن و جریان سلف را در طول زمان نشان می‌دهند.

برای مدار RLC موازی، فرآیند مشابهی دنبال می شود. یک تابع ناشناس برای معادله دیفرانسیل مدار RLC موازی تعریف شده است، که در آن «x(1)» نشان دهنده جریان سلف «IL» و «x(2)» مشتق «IL» (dIL/dt) است. معادله دیفرانسیل با استفاده از «ode23» حل می‌شود و نتایج استخراج و رسم می‌شوند و ولتاژ مقاومت و جریان سلف را در طول زمان نشان می‌دهند.

به طور خلاصه، این اسکریپت ها رفتار مدارهای RLC مرتبه دوم و موازی را با تعریف پارامترهای مدار، تنظیم شرایط اولیه، تعریف توابع ناشناس برای معادلات دیفرانسیل مدارها، حل معادلات دیفرانسیل با استفاده از انتگرال گیری عددی، استخراج و رسم نتایج شبیه سازی می کنند. .

شکل موج خروجی اسکریپت ها رفتار مدارهای RLC سری مرتبه دوم و موازی را در پاسخ به ولتاژ ورودی پله ای نشان می دهد. در اسکریپت اول، که یک مدار RLC سری را شبیه‌سازی می‌کند، ولتاژ خازن «Vc» و جریان سلف «iL» در طول زمان رسم می‌شود.در اسکریپت دوم، که یک مدار RLC موازی را شبیه‌سازی می‌کند، ولتاژ مقاومت «vR» و جریان سلف «iL» در طول زمان رسم می‌شود.

برای مدار سری RLC، ولتاژ خازن "Vc" از 0 شروع می شود و با شارژ شدن خازن به مقدار نهایی خود می رسد. شکل موج به مقادیر مقاومت «R»، اندوکتانس «L» و ظرفیت «C» بستگی دارد. جریان سلف 'iL' نیز از 0 شروع می شود و با افزایش میدان مغناطیسی در سلف به مقدار نهایی خود می رسد. شکل این شکل موج به مقادیر «R»، «L» و «C» نیز بستگی دارد.

برای مدار RLC موازی، ولتاژ مقاومت "vR" از مقدار نهایی خود شروع می شود و با شارژ شدن خازن به 0 کاهش می یابد. شکل این شکل موج به مقادیر «R»، «L» و «C» بستگی دارد. جریان سلف "iL" نیز از مقدار نهایی خود شروع می شود و با فروپاشی میدان مغناطیسی در سلف به 0 کاهش می یابد. شکل این شکل موج به مقادیر «R»، «L» و «C» نیز بستگی دارد.

به طور خلاصه، شکل‌های موج خروجی نشان می‌دهند که چگونه مقادیر الکتریکی مانند ولتاژ خازن، جریان سلف و ولتاژ مقاومت در طول زمان در پاسخ به ولتاژ ورودی پله‌ای در مدارهای سری دوم و مدارهای موازی RLC تغییر می‌کنند. شکل این شکل موج ها به مقادیر پارامترهای مدار بستگی دارد.

.

.

.

__________________________________________________________

تابع انتقال

.

series RLC

% This code constructs the transfer function G1 of a series RLC circuit with resistance R, inductance L, and capacitance C.
clc;clear

R=5; % Define the value of resistance R
L=1/2; % Define the value of inductance L
C=1/2; % Define the value of capacitance C

num1=[1/(L*C)]; % Construct the numerator of the transfer function
den1=[1 R/L 1/(L*C)]; % Construct the denominator of the transfer function
G1=tf(num1,den1); % Construct the transfer function G1 using the tf function

% Simplify and display the value of G1 in a readable format
disp('The transfer function G1 is:')
G1 = minreal(G1)

.

.

parallel RLC

% This code constructs the transfer function G1 of a parallel RLC circuit with resistance R, inductance L, and capacitance C.

clc;clear

R=5; % Define the value of resistance R
L=1/2; % Define the value of inductance L
C=1/2; % Define the value of capacitance C

num1=[R]; % Construct the numerator of the transfer function
den1=[L*R*C R 1]; % Construct the denominator of the transfer function
G1=tf(num1,den1); % Construct the transfer function G1 using the tf function

% Simplify and display the value of G1 in a readable format
disp('The transfer function G1 is:')
G1 = minreal(G1)

.

.

این دو اسکریپت توابع انتقال مدارهای RLC مرتبه دوم مدارهای سری و موازی را می سازند. اسکریپت اول تابع انتقال "G1" یک مدار RLC سری با مقاومت "R"، اندوکتانس "L" و ظرفیت "C" را می سازد. اسکریپت دوم تابع انتقال "G1" یک مدار RLC موازی با پارامترهای مدار مشابه را می سازد.

در هر دو اسکریپت، مقادیر پارامترهای مدار به صورت زیر تعریف می شوند:

- مقاومت R=5 اهم است

- اندوکتانس L= 1/2  است

- ظرفیت "C= 1/2  است

- منبع ولتاژ U=1 ولت است

برای مدار سری RLC، صورت و مخرج تابع انتقال با استفاده از مقادیر «L»، «R» و «C» ساخته می‌شوند. سپس تابع انتقال 'G1' با استفاده از تابع 'tf' ساخته می شود که صورت و مخرج را به عنوان ورودی می گیرد. مقدار "G1" با استفاده از تابع "minreal" ساده شده و در قالبی قابل خواندن نمایش داده می شود.

برای مدار RLC موازی، فرآیند مشابهی دنبال می شود. صورت و مخرج تابع انتقال با استفاده از مقادیر «L»، «R» و «C» ساخته می‌شوند. سپس تابع انتقال 'G1' با استفاده از تابع 'tf' ساخته می شود و مقدار آن ساده شده و در قالبی قابل خواندن نمایش داده می شود.

به طور خلاصه، این اسکریپت ها توابع انتقال مدارهای RLC مرتبه دوم سری و موازی را با تعریف پارامترهای مدار، ساختن صورت و مخرج توابع انتقال با استفاده از این پارامترها، ساخت توابع انتقال با استفاده از تابع "tf" و ساده سازی و نمایش مقادیر آنها در قالبی قابل خواندن توابع انتقال چگونگی تغییر ولتاژ یا جریان خروجی مدار RLC در پاسخ به ولتاژ یا جریان ورودی را با در نظر گرفتن مقادیر پارامترهای مدار توصیف می کنند.

۰ ۰ ۰ دیدگاه


تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار
bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان
Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران