مدارات 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 در پاسخ به ولتاژ یا جریان ورودی را با در نظر گرفتن مقادیر پارامترهای مدار توصیف می کنند.
سیستم های کنترل خطی - صفحه(1)
سیستم های کنترل خطی
1)Transfer Function(تابع تبدیل)
.
مثال اول:
%G=5(s^3+5s+6)/s^7+2s^5+5s^3+7s^2+2
clc;clear;close all
num=[5 0 25 30];
den=[1 0 2 0 5 7 0 2];
G=tf(num,den)
.
.
مثال دوم:
clc;clear;close all
%G=2(s^10+s^5+2s+7)/s^11+12s^3+6s^2+5s^4+10
num=[2 0 0 0 0 2 0 0 0 2 7];
den=[1 0 0 0 0 0 0 5 12 6 0 10];
G=tf(num,den)
.
.
سری کردن چند تابع تبدیل
.
clc;clear;close all
num1=[5];
den1=[1 0];
G1=tf(num1,den1)
num2=[6 12];
den2=conv([1 1],[1 5]);
G2=tf(num2,den2)
num3=[1 1];
den3=[1 0 2];
G3=tf(num3,den3)
G12=series(G1,G2);
GF=series(G12,G3)
.
موازی کردن چند تابع تبدیل
.
clc;clear;close all
num1=[5];
den1=[1 0];
G1=tf(num1,den1)
num2=[6 12];
den2=conv([1 1],[1 5]);
G2=tf(num2,den2)
num3=[1 1];
den3=[1 0 2];
G3=tf(num3,den3)
G12=parallel(G1,G2);
GF=parallel(G12,G3)
.
سری-موازی کردن چند تابع تبدیل
.
clc;clear;close all
num1=[5];
den1=[1 0];
G1=tf(num1,den1)
num2=[6 12];
den2=conv([1 1],[1 5]);
G2=tf(num2,den2)
num3=[1 1];
den3=[1 0 2];
G3=tf(num3,den3)
G12=parallel(G2,G3);
GF=series(G1,G12)
.
فیدبک
.
clc;clear;close all
num1=[5];
den1=[1 0];
G1=tf(num1,den1)
num2=[6 12];
den2=conv([1 1],[1 5]);
G2=tf(num2,den2)
num3=[1 1];
den3=[1 0 2];
G3=tf(num3,den3)
G12=feedback(G1,G2);
GF=parallel(G12,G3)
.
اثر ورودی در تابع تبدیل
.
(ورودی ضربه)
.
%Determination of shock response
clc;clear;close all
num=[10 5];
den=[1 20 50];
GF=tf(num,den);
t0=0 ; tfinal=2; n=100;
T=linspace(t0,tfinal,n);
[y,t]=impulse(GF,T);
plot(t,y,'r')
title('Impulse Resonse');
xlabel('Time (seconds)')
ylabel('Amplitude')
grid on
.
(ورودی پله)
.
%Determination of step response
clc;clear;close all
num=[10 5];
den=[1 20 50];
GF=tf(num,den);
t0=0 ; tfinal=2; n=100;
T=linspace(t0,tfinal,n);
[y,t]=step(GF,T);
plot(t,y,'b')
title('Step Resonse');
xlabel('Time (seconds)')
ylabel('Amplitude')
grid on
.
(ورودی شیب)
.
%Determination of Ramp response
clc;clear;close all
num=[10 5];
den=[1 20 50];
GF=tf(num,den);
t0=0 ; tfinal=2; n=100;
T=linspace(t0,tfinal,n);
u=T;
[y,t]=lsim(GF,u,T);
plot(t,y,'k')
title('Ramp Resonse');
xlabel('Time (seconds)')
ylabel('Amplitude')
grid on
.
(RC اثر ورودی های مختلف در مدار سری)
.
%Determination of Series RC Circuit shock-Step-Ramp-Parabolic response
clc;clear;close all
R=10e3;
C=20e-9;
num=[1];
den=[(R*C) 1];
GF=tf(num,den);
t0=0 ; tfinal=2e-3; n=100;
T=linspace(t0,tfinal,n);
u1=T;%Ramp
u2=T.^2;%Parabolic
[y1,t1]=impulse(GF,T);
[y2,t2]=step(GF,T);
[y3,t3]=lsim(GF,u1,T);
[y4,t4]=lsim(GF,u2,T);
subplot(2,2,1)
plot(t1,y1,'r')
title('Impulse Resonse');
xlabel('Time (seconds)')
ylabel('Amplitude')
grid on
subplot(2,2,2)
plot(t2,y2,'b')
title('Step Resonse');
xlabel('Time (seconds)')
ylabel('Amplitude')
grid on
subplot(2,2,3)
plot(t3,y3,'k')
title('Ramp Resonse');
xlabel('Time (seconds)')
ylabel('Amplitude')
grid on
subplot(2,2,4)
plot(t4,y4,'g')
title('Parabolic Resonse');
xlabel('Time (seconds)')
ylabel('Amplitude')
grid on
.
.
.


