0% found this document useful (0 votes)
21 views

Controlmatlabsec

This document discusses creating a state space model for a control system. It provides an example of a machine with given parameters like resistance, inductance, torque constant, and more. Using these parameters, it forms the state matrices A, B, C, and D to create a state space model. It then shows how to change the variable names for the inputs, states, and outputs by defining new name lists and applying them to the state space model. The goal is to represent a physical system with mathematical equations that can be used for control.

Uploaded by

noor771002500
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Controlmatlabsec

This document discusses creating a state space model for a control system. It provides an example of a machine with given parameters like resistance, inductance, torque constant, and more. Using these parameters, it forms the state matrices A, B, C, and D to create a state space model. It then shows how to change the variable names for the inputs, states, and outputs by defining new name lists and applying them to the state space model. The goal is to represent a physical system with mathematical equations that can be used for control.

Uploaded by

noor771002500
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬

‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬


‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫‬

‫א ‬ ‫א מא  ‬


‫‪Control System‬‬

‫ﰲ ﻫﺬﺍ ﺍﻟﻔﺼﻞ ﺳﻨﺘﻌﻠﻢ‪:‬‬


‫‪ .١‬ﻛﻴﻔﻴﺔ ﺇﻧﺸﺎﺀ ﻓﺮﺍﻍ ﺍﳊﺎﻟﺔ‪.‬‬
‫ﺇﻧﺸﺎﺀ ﺗﺎﺑﻊ ﺍﻟﻨﻘﻞ‪.‬‬ ‫‪.٢‬‬

‫ﺭﺑﻂ ﺍﻷﻧﻈﻤﺔ ﺑﻌﻀﻬﺎ ﺑﺒﻌﺾ‪.‬‬ ‫‪.٣‬‬

‫ﺍﻟﺘﺤﻮﻳﻞ ﺑﲔ ﺍﻟﻨﻈﺎﻡ ﺍﳌﺴﺘﻤﺮ ﻭﺍﳌﺘﻘﻄﻊ‪.‬‬ ‫‪.٤‬‬

‫ﺭﺳﻢ ﺍﻷﺻﻔﺎﺭ ﻭﺍﻷﻗﻄﺎﺏ ﻭﳐﻄﻂ ﺑﻮﺩ ﻭﻧﻴﻜﻮﻳﺴﺖ‪.‬‬ ‫‪.٥‬‬

‫ﻣﻘﺪﻣﺔ‪:‬‬
‫ﺇﻥ ﻫﺬﺍ ﺍﻟﻔﺼﻞ ﻳﺒﲔ ﻋﺪﻡ ﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﻔﺼﻞ ﺑﲔ ﺍﻟﺮﻳﺎﺿﻴﺎﺕ ﻭﺍﳍﻨﺪﺳﺔ ﺣﻴﺚ ﻳﺘﻢ ﲤﺜﻴﻞ ﺍﻟﻨﻈﺎﻡ ﺍﻟﻌﻤﻠﻲ‬
‫ﲟﻌﺎﺩﻻﺕ ﺭﻳﺎﺿﻴﺔ ﻟﻠﺘﺤﻜﻢ ﺑﻪ‪.‬ﻭﺍﳌﺎﺗﻼﺏ ﰲ ﻫﺬﺍ ﺍﻟﻔﺼﻞ ﺳﻴﻘﺪﻡ ﻟﻨﺎ ﻛﻌﺎﺩﺗﻪ ﺗﻌﻠﻴﻤﺎﺕ ﻭﺃﻭﺍﻣﺮ ﺟﺎﻫﺰﺓ‬
‫ﺗﻌﻴﻨﻨﺎ ﻛﻄﻼﺏ ﻭﻣﻬﻨﺪﺳﲔ ﻋﻠﻰ ﲤﺜﻴﻞ ﻫﺬﻩ ﺍﻟﻨﻈﻢ ﺑﻮﻗﺖ ﻗﺼﲑ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺠﻬﺪ ﺍﻟﻴﺪﻭﻱ ﻭﺧﺎﻟﻴﺎ ﻣﻦ‬
‫ﺍﻷﺧﻄﺎﺀ ﻭﺍﻟﺘﻌﻘﻴﺪ ﺍﻟﱵ ﺗﻌﺘﺮﻳﻨﺎ ﳓﻦ ﺍﻟﺒﺸﺮ ﻓﻬﻮ ﳚﻌﻞ ﺍﻷﻣﻮﺭ ﺍﳌﻬﻤﺔ ﻟﻚ ﻛﺘﻤﺜﻴﻞ ﻧﻈﺎﻡ ﻭﺍﻟﺘﺤﻜﻢ ﺑﻪ ﺃﻣﺎ‬
‫ﺣﺴﺎﺑﺎﺕ ﺍﻟﻨﺘﺎﺋﺞ ﻓﲑﳛﻚ ﻣﻨﻬﺎ‪.‬‬
‫ﻟﺼﻨﻊ ﻓﻀﺎﺀ ﺍﳊﺎﻟﺔ ﻧﺄﺧﺬ ﺍﳌﺜﺎﻝ ﺍﻟﺘﺎﱄ‪:‬‬
‫ﻟﻨﻔﺮﺽ ﺃﻧﻪ ﻟﺪﻱ ﺁﻟﺔ ﳍﺎ ﺍﳌﻌﻄﻴﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪R= 2.0 % Ohms‬‬
‫‪L= 0.5 % Henrys‬‬
‫‪Km = .015 % torque constant‬‬
‫‪Kb = .015 % emf constant‬‬
‫‪Kf = 0.2 % Nms‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫‪J= 0.02 % kg.m^2‬‬

‫ﻧﺴﺘﻄﻴﻊ ﻣﻦ ﺧﻼﳍﺎ ﺗﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺎﺕ ﺍﳊﺎﻟﺔ‪:‬‬


‫;]‪A = [-R/L -Kb/L; Km/J -Kf/J‬‬
‫;]‪B = [1/L; 0‬‬
‫;]‪C = [0 1‬‬
‫;]‪D = [0‬‬

‫ﺍﻵﻥ ﻹﻧﺸﺎﺀ ﻓﻀﺎﺀ ﺍﳊﺎﻟﺔ‪:‬‬


‫)‪sys = ss(A,B,C,D‬‬

‫ﻓﻴﻜﻮﻥ ﺍﻟﻨﺎﺗﺞ‪:‬‬
‫=‪a‬‬
‫‪x1‬‬ ‫‪x2‬‬
‫‪x1‬‬ ‫‪-4 -0.03‬‬
‫‪x2 0.75‬‬ ‫‪-10‬‬
‫=‪b‬‬
‫‪u1‬‬
‫‪x1 2‬‬
‫‪x2 0‬‬
‫=‪c‬‬
‫‪x1 x2‬‬
‫‪y1 0 1‬‬
‫=‪d‬‬
‫‪u1‬‬
‫‪y1 0‬‬
‫‪Continuous-time model.‬‬

‫ﻻﺣﻆ ﺃﻥ ﺍﻟﺮﻣﻮﺯ ﺍﻟﱵ ﻇﻬﺮﺕ ‪ u1‬ﻭ ‪ x1‬ﻭ ‪ ... y1‬ﺍﻟﱵ ﺗﻌﱪ ﻋﻦ ﺍﻟﺪﺧﻞ ﻭﺍﳋﺮﺝ ﳝﻜﻨﻚ ﺗﻐﻴﲑﻫﺎ‬
‫ﺇﺫﺍ ﺍﺗﺒﻌﻨﺎ ﺍﳋﻄﻮﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫;}'‪states = {'beta' 'yaw' 'roll' 'phi‬‬
‫;}'‪inputs = {'rudder' 'aileron‬‬
‫;}'‪outputs = {'yaw rate' 'bank angle‬‬

‫ﻫﻨﺎ ﰎ ﺗﺴﻤﻴﺘﻬﺎ ﺑﺄﲰﺎﺀ ﺟﺪﻳﺪﺓ‪.‬ﺍﻵﻥ ﻧﻘﻮﻡ ﺑﺈﺩﺧﺎﻝ ﻫﺬﻩ ﺍﻷﲰﺎﺀ ﻋﻠﻰ ﺍﻟﻨﻈﺎﻡ‪:‬‬
‫‪A = [-0.0558 -0.9968‬‬ ‫‪0.0802‬‬ ‫‪0.0415‬‬
‫‪0.5980 -0.1150 -0.0318‬‬ ‫‪0‬‬
‫‪-3.0500‬‬ ‫‪0.3880 -0.4650‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0.0805‬‬ ‫‪1.0000‬‬ ‫;]‪0‬‬
‫‪B = [ 0.0073‬‬ ‫‪0‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫‪-0.4750‬‬ ‫‪0.0077‬‬
‫‪0.1530‬‬ ‫‪0.1430‬‬
‫‪0‬‬ ‫;]‪0‬‬
‫‪C = [0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫;]‪1‬‬
‫‪D = [0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫;]‪0‬‬
‫…‪sys_mimo = ss(A,B,C,D,'statename',states,'inputname',inputs,‬‬
‫;)‪'outputname',outputs‬‬

‫ﻧﻔﺬ ﻭﻻﺣﻆ ﺍﻟﻔﺮﻕ‪.‬‬


‫ﺇﻧﺸﺎﺀ ﺗﺎﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ ﻟﻔﻀﺎﺀ ﺣﺎﻟﺔ ﻣﺎ‪:‬‬
‫)‪>> sys_tf=tf(sys‬‬
‫‪Transfer function:‬‬
‫‪1.5‬‬
‫‪------------------‬‬
‫‪s^2 + 14 s + 40.02‬‬

‫ﻭﺗﺴﺘﻄﻴﻊ ﺇﻧﺸﺎﺀ ﺗﺎﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ ﺇﻥ ﻛﻨﺖ ﺗﻌﺮﻓﻪ ﻣﺒﺎﺷﺮﺓ ﺑﺈﺩﺧﺎﻝ ﺃﻣﺜﺎ ﻛﺜﲑ ﺍﳊﺪﻭﺩ ﺑﺎﻟﺒﺴﻂ ﻭﺃﻣﺜﺎﻟﻪ‬
‫ﺑﺎﳌﻘﺎﻡ‪:‬‬
‫)]‪>> sys_tf = tf([2 3.6],[5 1 4‬‬
‫‪Transfer function:‬‬
‫‪2 s + 3.6‬‬
‫‪-------------‬‬
‫‪5 s^2 + s + 4‬‬

‫ﻭﺗﺴﺘﻄﻴﻊ ﰲ ﺍﻟﻨﻈﺎﻡ ﺍﳌﺴﺘﻤﺮ ﺇﺿﺎﻓﺔ ﺗﺄﺧﲑ ﺯﻣﲏ ﻋﻠﻰ ﺍﻟﺸﻜﻞ ﺍﻟﺘﺎﱄ‪:‬‬


‫)‪>> sys_tfdelay = tf(1.5, [1 14 40.02],'inputdelay',0.05‬‬
‫‪Transfer function:‬‬
‫‪1.5‬‬
‫‪exp(-0.05*s) * ------------------‬‬
‫‪s^2 + 14 s + 40.02‬‬

‫ﻭﻫﻨﺎ ﻃﺮﻳﻘﺔ ﺃﺧﺮﻯ ﻭﺫﻟﻚ ﺑﺘﻌﺮﻳﻒ ﻣﺘﻐﲑ ﻣﺎ ﰒ ﺇﺩﺧﺎﻝ ﺗﺎﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ‪:‬‬


‫;)'‪>> s = tf('s‬‬
‫)‪sys_tf = 5*s^2/(s^3+4*s+2‬‬
‫‪Transfer function:‬‬
‫‪5 s^2‬‬
‫‪-------------‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
031 2461729 ‫ﻣﻮﻓﻖ ﴰﺎ‬.‫ﻡ‬
00963 966 344 685 ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

s^3 + 4 s + 2

:‫ﺭﲟﺎ ﻳﻜﻮﻥ ﻟﺪﻳﻚ ﻧﻈﺎﻡ ﻣﺘﻘﻄﻊ ﻓﻴﻪ ﻓﻮﺍﺻﻞ ﺯﻣﻨﻴﺔ ﻓﻤﺎﻋﻠﻴﻚ ﺇﻻ ﺃﻥ ﺗﻨﻈﺮ ﻟﻸﺳﻔﻞ ﻣﻦ ﻫﺬﺍ ﺍﻟﺴﻄﺮ‬
>> sys_disc = tf(2, [5 8], .01)
Transfer function:
2
-------
5z+8
Sampling time: 0.01

:‫ﻭﺇﺿﺎﻓﺔ ﺗﺄﺧﲑ ﺯﻣﲏ ﻟﻴﺴﺖ ﲟﺴﺘﺤﻴﻠﺔ ﺗﺎﺑﻊ ﺍﻟﺴﻄﺮ ﺍﻟﺘﺎﱄ‬


>> sys_delay = tf(3, [4 1], 0.02,'outputdelay',5)
Transfer function:
3
z^(-5) * -------
4z+1
Sampling time: 0.02

:‫ﺇﻥ ﺍﳌﺜﺎﻝ ﺍﻷﺧﲑ ﰲ ﺇﻧﺸﺎﺀ ﻓﺮﺍﻍ ﺣﺎﻟﺔ ﺳﻴﺘﻢ ﺇﻧﺸﺎﺀ ﺗﺎﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ ﻟﻪ‬

tf(sys_mimo)
Transfer function from input "rudder" to output...
-0.475 s^3 - 0.2479 s^2 - 0.1187 s - 0.05633
yaw rate: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
0.1148 s^2 - 0.2004 s - 1.373
bank angle: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
Transfer function from input "aileron" to output...
0.0077 s^3 - 0.0005372 s^2 + 0.008688 s + 0.004523
yaw rate: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
0.1436 s^2 + 0.02737 s + 0.1104
bank angle: ---------------------------------------------------
s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674

:‫ﰲ ﺣﺎﻝ ﻭﺟﻮﺩ ﻧﻈﺎﻡ ﺑﺪﺧﻞ ﻭﺣﻴﺪ ﻭﺧﺮﺟﲔ ﻓﺈﻥ ﺗﺎﺑﻊ ﺍﻧﺘﻘﺎﻝ ﻟﻜﻞ ﺧﺮﺝ ﺳﻴﻨﺸﺊ‬
>> h11 = tf([1 -1],[1 1]);
h21 = tf([1 2],[1 4 5]);
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫]‪>> H = [h11; h21‬‬


‫‪Transfer function from input to output...‬‬
‫‪s-1‬‬
‫‪#1: -----‬‬
‫‪s+1‬‬
‫‪s+2‬‬
‫‪#2: -------------‬‬
‫‪s^2 + 4 s + 5‬‬

‫ﻭﳝﻜﻦ ﺑﻄﺮﻳﻘﺔ ﺃﺧﺮﻯ ﺇﻧﺸﺎﺀ ﻣﺎﲢﻘﻖ ﻗﺒﻞ ﻗﻠﻴﻞ‪.‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺼﻔﻮﻓﺎﺕ ﺍﻟـ‪:cell‬‬


‫;}]‪>> N = {[1 -1];[1 2‬‬
‫;}]‪D = {[1 1];[1 4 5‬‬
‫)‪H = tf(N,D‬‬
‫‪Transfer function from input to output...‬‬
‫‪s-1‬‬
‫‪#1: -----‬‬
‫‪s+1‬‬
‫‪s+2‬‬
‫‪#2: -------------‬‬
‫‪s^2 + 4 s + 5‬‬

‫ﺗﺴﺘﻄﻴﻊ ﺍﳊﺼﻮﻝ ﻋﻠﻰ ﺗﺎﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ ﺑﺸﻜﻞ ﻳﻈﻬﺮ ﺍﻷﺻﻔﺎﺭ‪:‬‬


‫)‪>> sys_zpk = zpk(sys‬‬
‫‪Zero/pole/gain:‬‬
‫‪1.5‬‬
‫‪-------------------‬‬
‫)‪(s+4.004) (s+9.996‬‬

‫ﰲ ﺣﺎﻝ ﻣﻌﺮﻓﺘﻚ ﻟﻸﺻﻔﺎﺭ ﺗﻜﺘﺐ ﺑﺎﻟﺸﻜﻞ ﺍﻟﻘﺎﺩﻡ‪:‬‬


‫)‪>> sys_zpk = zpk([],[-9.996 -4.004], 1.5‬‬
‫‪Zero/pole/gain:‬‬
‫‪1.5‬‬
‫‪-------------------‬‬
‫)‪(s+9.996) (s+4.004‬‬

‫ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﻨﻈﺎﻡ ﻟﻠﻘﻔﺰﺓ ﺍﻟﻮﺍﺣﺪﻳﺔ‪:‬‬


‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫ﻧﺴﺘﻄﻴﻊ ﺗﻌﺮﻳﻒ ﻋﺪﺓ ﺃﻧﻈﻤﺔ ﺧﻄﻴﺔ ﰲ ﻣﺪﺧﻞ ﻭﺍﺣﺪ ﺃﻭ ﻣﺘﻐﲑ ﻭﺍﺣﺪ ﻭﻳﺘﻢ ﺫﻟﻚ ﰲ ﺣﺎﻝ ﻣﺮﺍﻗﺒﺘﻚ‬
‫ﻟﻠﻤﺜﺎﻝ ﺍﻟﺘﺎﱄ‪:‬‬
‫; ‪R= 2.0‬‬
‫; ‪L= 0.5‬‬
‫; ‪Km = .015‬‬
‫; ‪Kb = .015‬‬
‫; ‪Kf = 0.2‬‬
‫; ‪J= 0.02‬‬
‫;]‪B = [1/L; 0‬‬
‫;]‪C = [0 1‬‬
‫;]‪D = [0‬‬
‫;]‪K = [0.1 0.15 0.2‬‬
‫;]‪A1 = [-R/L -K(1)/L; K(1)/J -Kf/J‬‬
‫;]‪A2 = [-R/L -K(2)/L; K(2)/J -Kf/J‬‬
‫;]‪A3 = [-R/L -K(3)/L; K(3)/J -Kf/J‬‬

‫ﻻﺣﻆ ﺃﻧﻪ ﰎ ﺗﻌﺮﻳﻒ ﺛﻼﺛﺔ ﻣﺼﻔﻮﻓﺎﺕ ‪ A‬ﺍﻵﻥ ﺳﻴﺘﻢ ﺇﻧﺸﺎﺀ ﻓﺮﺍﻍ ﺍﳊﺎﻟﺔ ﻟﻸﻧﻈﻤﺔ ﺍﻟﺜﻼﺛﺔ ﻣﻌﹶﺎ‪:‬‬
‫;)‪sys_lti(:,:,1)= ss(A1,B,C,D‬‬
‫;)‪sys_lti(:,:,2)= ss(A2,B,C,D‬‬
‫;)‪sys_lti(:,:,3)= ss(A3,B,C,D‬‬

‫ﻟﻴﻜﻮﻥ ﺍﻟﻨﺎﺗﺞ ﻫﻜﺬﺍ‪:‬‬


‫‪sys_lti‬‬
‫)‪Model sys_lti(:,:,1,1‬‬
‫======================‬
‫=‪a‬‬
‫‪x1‬‬ ‫‪x2‬‬
‫‪x1‬‬ ‫‪-4 -0.2‬‬
‫‪x2‬‬ ‫‪5 -10‬‬
‫=‪b‬‬
‫‪u1‬‬
‫‪x1 2‬‬
‫‪x2 0‬‬
‫=‪c‬‬
‫‪x1 x2‬‬
‫‪y1 0 1‬‬
‫=‪d‬‬
‫‪u1‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
031 2461729 ‫ﻣﻮﻓﻖ ﴰﺎ‬.‫ﻡ‬
00963 966 344 685 ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

y1 0
Model sys_lti(:,:,2,1)
======================
a=
x1 x2
x1 -4 -0.3
x2 7.5 -10
b=
u1
x1 2
x2 0
c=
x1 x2
y1 0 1
d=
u1
y1 0
Model sys_lti(:,:,3,1)
======================
a=
x1 x2
x1 -4 -0.4
x2 10 -10
b=
u1
x1 2
x2 0
c=
x1 x2
y1 0 1
d=
u1
y1 0
3x1 array of continuous-time state-space models.

:‫ﺍﻵﻥ ﺗﺴﺘﻄﻴﻊ ﻣﻌﺮﻓﺔ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻷﻧﻈﻤﺔ ﺍﻟﺜﻼﺛﺔ ﻟﻠﻘﻔﺰﺓ ﺍﻟﻮﺍﺣﺪﻳﺔ‬


>> step(sys_lti)
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫ﺭﺑﻂ ﺍﻷﻧﻈﻤﺔ ﺑﻌﻀﻬﺎ ﺑﺒﻌﺾ‪:‬‬


‫ﺗﺴﺘﻄﻴﻊ ﺗﻨﻔﻴﺬ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﳊﺴﺎﺑﻴﺔ ﻋﻠﻰ ﺗﻮﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ ﻛﻤﺎﻳﻠﻲ‪:‬‬
‫)]‪>> tf(3,[5 2])+tf([1 2],[4 7‬‬
‫‪Transfer function:‬‬
‫‪5 s^2 + 24 s + 25‬‬
‫‪------------------‬‬
‫‪20 s^2 + 43 s + 14‬‬
‫)]‪>> tf1=5*tf(3,[5 2])*tf([1 2],[4 7‬‬
‫‪Transfer function:‬‬
‫‪15 s + 30‬‬
‫‪------------------‬‬
‫‪20 s^2 + 43 s + 14‬‬

‫ﻣﻦ ﺍﳌﻌﻠﻮﻡ ﻟﺪﻳﻚ ﺭﲟﺎ ﺃﻧﻪ ﻋﻨﺪ ﻭﺟﻮﺩ ﻧﻈﺎﻣﲔ ﻋﻠﻰ ﺍﻟﺘﻔﺮﻉ ﻓﻴﺘﻢ ﲨﻊ ﺗﺎﺑﻌﻲ ﺍﻻﻧﺘﻘﺎﻝ ﻭﻋﻠﻰ‬
‫ﺍﻟﺘﺴﻠﺴﻞ ﻳﺘﻢ ﺍﻟﻀﺮﺏ‪.‬‬
‫ﺗﺴﺘﻄﻴﻊ ﺑﻮﺍﺳﻄﺔ ﺃﻣﺮ ‪ series‬ﺃﻥ ﲢﺼﻞ ﻋﻠﻰ ﻧﺎﺗﺞ ﺭﺑﻂ ﻧﻈﺎﻣﲔ ﺗﺴﻠﺴﻠﻴﹶﺎ‪:‬‬
‫))]‪>> series(tf(1,[5 9 3.2]),tf([1 6],[4 5 3‬‬
‫‪Transfer function:‬‬
‫‪s+6‬‬
‫‪---------------------------------------‬‬
‫‪20 s^4 + 61 s^3 + 72.8 s^2 + 43 s + 9.6‬‬

‫ﻭﰲ ﺣﺎﻝ ﻛﺎﻥ ﺍﻟﺮﺑﻂ ﺗﻔﺮﻋﻴﺎ ﻓﺈﻥ ﻛﻠﻤﺔ ‪ parallel‬ﻫﻲ ﺍﳊﻞ‪:‬‬


‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫))]‪>> parallel(tf(1,[5 9 3.2]),tf([1 6],[4 5 3‬‬


‫‪Transfer function:‬‬
‫‪5 s^3 + 43 s^2 + 62.2 s + 22.2‬‬
‫‪---------------------------------------‬‬
‫‪20 s^4 + 61 s^3 + 72.8 s^2 + 43 s + 9.6‬‬

‫ﺇﺫﺍ ﻛﺎﻥ ﻟﺪﻱ ﺗﻐﺬﻳﺔ ﻋﻜﺴﻴﺔ ﻭﻫﻲ ﲣﺘﻠﻒ ﺑﻄﺒﻴﻌﺔ ﺍﳊﺎﻝ ﻋﻦ ﺍﻟﻮﺻﻞ ﺍﻟﺘﻔﺮﻋﻲ ﻓﻠﺪﻳﻨﺎ ﺃﻭﻣﺮ ﻣﺴﺘﻌﺪ‬
‫ﻟﻠﻘﻴﺎﻡ ﺑﺎﳌﻬﻤﺔ‪:‬‬
‫))]‪>> sys_f = feedback(tf(1,[1 0]), tf([1 1],[1 2‬‬
‫‪Transfer function:‬‬
‫‪s+2‬‬
‫‪-------------‬‬
‫‪s^2 + 3 s + 1‬‬

‫ﺍﻟﺘﺤﻮﻳﻞ ﺑﲔ ﺍﻟﻨﻈﺎﻡ ﺍﳌﺴﺘﻤﺮ ﻭﺍﳌﺘﻘﻄﻊ‪:‬‬


‫ﻟﻴﻜﻦ ﻟﺪﻱ ﻧﻈﺎﻡ ﻣﺴﺘﻤﺮ ﻋﻠﻰ ﺍﻟﺸﻜﻞ ﺍﻟﺘﺎﱄ‪:‬‬
‫)]‪>> H = tf([1 -1],[1 4 5‬‬
‫‪Transfer function:‬‬
‫‪s-1‬‬
‫‪-------------‬‬
‫‪s^2 + 4 s + 5‬‬

‫ﻟﺘﺤﻮﻳﻠﻪ ﻟﻨﻈﺎﻡ ﻣﺘﻘﻄﻊ ﺃﻛﺘﺐ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬


‫)‪>>p=c2d(H,0.01‬‬
‫‪Transfer function:‬‬
‫‪0.009752 z - 0.009851‬‬
‫‪---------------------‬‬
‫‪z^2 - 1.96 z + 0.9608‬‬
‫‪Sampling time: 0.01‬‬

‫ﻭﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺻﺤﺔ ﺍﻟﺘﺤﻮﻳﻞ ﻧﺮﺳﻢ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻟﻜﻠﻴﻬﻤﺎ‪:‬‬


‫)‪>> step(p,H‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫ﻭﻟﻠﻘﻴﺎﻡ ﺑﺎﻟﻌﻤﻠﻴﺔ ﺍﻟﻌﻜﺴﻴﺔ ﺗﻜﺘﺐ ﺍﻷﻣﺮ ‪ c2d‬ﺩﻭﻥ ﻭﺟﻮﺩ ﺯﻣﻦ ﺗﻘﻄﻴﻊ‪.‬‬


‫ﺭﺳﻢ ﺍﻷﺻﻔﺎﺭ ﻭﺍﻷﻗﻄﺎﺏ ﻭﳐﻄﻂ ﺑﻮﺩ ﻭﻧﻴﻜﻮﻳﺴﺖ‪:‬‬
‫)‪>> pzmap(H‬‬

‫ﻭﻟﺮﺳﻢ ﳐﻄﻂ ﺑﻮﺩ ﻓﺈﻥ ﺍﻷﻣﺮ ﺑﺴﻴﻂ ﺟﺪﹶﺍ‪:‬‬


‫)‪bode(H‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫ﻭﻟﺮﺳﻢ ﳐﻄﻂ ﺑﻮﺩ ﺍﳌﻄﺎﱄ ﻓﻘﻂ‪:‬‬


‫)‪bodemag(H‬‬

‫ﻭﳐﻄﻂ ﻧﻴﻜﻮﻳﺴﺖ‪:‬‬
‫)‪>> nyquist(H‬‬

‫ﺍﻻﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﺮﺩﺩﻳﺔ ﻟﻌﺪﺓ ﺗﺮﺩﺩﺍﺕ‪:‬‬


‫)]‪>> H1 = freqresp(H,[1 10 100‬‬
‫= )‪H1(:,:,1‬‬
‫‪0 + 0.2500i‬‬
‫= )‪H1(:,:,2‬‬
‫‪0.0466 - 0.0856i‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫= )‪H1(:,:,3‬‬
‫‪0.0005 - 0.0100i‬‬

‫ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﻛﻴﻔﻴﺔ ﺍﺳﺘﺨﺮﺍﺝ ﺗﺎﺑﻊ ﺍﻟﻨﻘﻞ ﻟﻨﻈﺎﻡ ﻣﻌﲔ‪:‬‬


‫ﻣﺜﺎﻝ ﺩﺍﺭﺓ ﻛﻬﺮﺑﺎﺋﻴﺔ ﲢﻮﻱ ﻣﻘﺎﻭﻣﺔ ﻭﻣﻜﺜﻒ‪:‬‬

‫ﺑـ)‪ e(t‬واج ـ‬ ‫ﺳﻴﺘﻢ ﺑﺈﺫﻥ ﺍﷲ ﺗﻌﺎﱃ ﲤﺜﻴﻞ ﻫﺬﻩ ﺍﻟﺪﺍﺭﺓ ﺑﺘﺎﺑﻊ ﺍﻧﺘﻘﺎﻝ ﺣﻴﺚ ﺃﻥ ﺍﻟﺪﺧﻞ ﻳﺘﻤﺜﻞ‬
‫)‪. v(t‬‬

‫ﺣﺴﺐ ﻛﲑﺷﻮﻑ ﺳﻴﺘﻜﻮﻥ ﻟﺪﻳﻨﺎ ﺍﻟﻌﻼﻗﺔ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬


‫)‪vr(t) + v(t) = e(t‬‬

‫ﻧﻌﻮﺽ ﻋﻦ ﺍﳉﻬﺪ ﻋﻠﻰ ﺍﳌﻘﺎﻭﻣﺔ ﺑﺎﻟﺘﻴﺎﺭ ﰲ ﺍﳌﻘﺎﻭﻣﺔ‬


‫)‪vr(t) = Ri(t‬‬

‫ﰲ ﺍﻟﺴﻄﺮ ﺍﻟﻘﺎﺩﻡ ﺳﺘﻘﺮﺃ ﺍﻟﻌﻼﻗﺔ ﺑﲔ ﺍﻟﺘﻴﺎﺭ ﻭﺟﻬﺪ ﺍﳌﻜﺜﻒ‪:‬‬


‫)‪i(t) = Cv' (t‬‬

‫ﻧﻌﻮﺽ ﰲ ﺍﻟﻌﻼﻗﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‪:‬‬


‫)‪RCv' (t) + v(t) = e(t‬‬

‫ﻧﺄﺧﺬ ﻻﺑﻼﺱ ﺍﻟﻄﺮﻓﲔ‪:‬‬


‫))‪L(RCv' (t) + v(t)) = L(e(t‬‬
‫)‪RCsV(s) +V (s) = E(s‬‬

‫ﻧﻨﺴﺐ ﺍﳋﺮﺝ ﺇﱃ ﺍﻟﺪﺧﻞ ﻟﻴﻨﺘﺞ ﻟﺪﻳﻨﺎ ﺗﺎﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ‪:‬‬


‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫)‪V (s‬‬ ‫‪1‬‬


‫= )‪G ( s‬‬ ‫=‬
‫‪E ( s ) RCs + 1‬‬
‫‪R=100 KΩ , C=10µF: C‬‬ ‫ﺳﺄﻓﺮﺽ ﻗﻴﻢ ﻟـ‪ R‬ﻭ‬
‫ﺍﻵﻥ ﻟﺘﻤﺜﻴﻠﻪ ﻋﻠﻰ ﺍﳌﺎﺗﻼﺏ‪:‬‬
‫;‪>> R=100e3‬‬
‫;‪>> C=10e-6‬‬
‫)]‪>> sys1=tf(1,[R*C 1‬‬
‫‪Transfer function:‬‬
‫‪1‬‬
‫‪-----‬‬
‫‪s+1‬‬

‫ﺃﻭﺟﺪﻧﺎ ﺗﺎﺑﻊ ﺍﻻﻧﺘﻘﺎﻝ‪.‬ﺍﻵﻥ ﺃﺭﻳﺪ ﺃﻥ ﺃﺣﺼﻞ ﻋﻠﻰ ﺧﺮﺝ ﻫﺬﻩ ﺍﻟﺪﺍﺭﺓ ﻋﻨﺪ ﺇﺷﺎﺭﺍﺕ ﳐﺘﻠﻔﺔ‪:‬‬
‫ﺇﺷﺎﺭﺓ ﺟﻴﺒﻴﺔ‪:‬ﻣﻄﺎﳍﺎ ‪ ١‬ﻭﺗﺮﺩﺩﻫﺎ ‪٠.٥‬ﻫﺮﺗﺰ‬
‫;‪>> t=0:0.01:10‬‬
‫‪>> f=0.5;%Hz‬‬
‫‪>> w=2*pi*f;%rad/sec‬‬
‫;)‪>> y=sin(w*t‬‬
‫)‪>> lsim(sys1,y,t‬‬

‫ﰲ ﺣﺎﻝ ﻛﺎﻥ ﺍﻟﺪﺧﻞ ﺇﺷﺎﺭﺓ ﻣﺮﺑﻌﺔ‪:‬ﳍﺎ ﻧﻔﺲ ﺍﻟﺘﺮﺩﺩ ﻭﺍﳌﻄﺎﻝ ﻟﻠﺠﻴﺒﻴﺔ ﺍﻟﺴﺎﺑﻘﺔ‪:‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫;‪>> t=0:0.01:10‬‬
‫‪>> f=0.5;%Hz‬‬
‫‪>> w=2*pi*f;%rad/sec‬‬
‫;)‪>> y=square(w*t‬‬
‫)‪>> lsim(sys1,y,t‬‬

‫ﺇﺷﺎﺭﺓ ﺳﻦ ﻣﻨﺸﺎﺭ ﺃﻳﻀﺎ ﳍﺎ ﻧﻔﺲ ﻣﻮﺍﺻﻔﺎﺕ ﺍﻹﺷﺎﺭﺗﲔ ﺍﻟﺴﺎﺑﻘﺘﲔ‪:‬‬


‫;‪>> t=0:0.01:10‬‬
‫‪>> f=0.5;%Hz‬‬
‫‪>> w=2*pi*f;%rad/sec‬‬
‫;)‪>> y=sawtooth(w*t‬‬
‫)‪>> lsim(sys1,y,t‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫ﺇﺷﺎﺭﺓ ﻣﺜﻠﺜﻴﺔ ﺗﺮﺩﺩﻫﺎ ‪ ١‬ﻫﺮﺗﺰ ﻭﻣﻄﺎﳍﺎ ‪:١‬‬


‫;‪>> t=0:0.01:10‬‬
‫;‪>> d=0.5:10‬‬
‫;)'‪>> y=pulstran(t,d,'tripuls‬‬
‫)‪>> lsim(sys1,y,t‬‬

‫ﺇﻥ ﺗﻌﻠﻴﻤﺔ ‪ pulstran‬ﺑﺎﺭﻣﺘﺮﺍ‪‬ﺎ ﳐﺘﻠﻔﺔ ﻋﻤﺎ ﺳﺒﻖ ﻹ‪‬ﺎ ﺗﻘﻮﻡ ﺑﺘﻜﺮﺍﺭ ﺇﺷﺎﺭﺓ ﻣﺎ ﺑﻌﺪﺩ ﻳﺴﺎﻭﻱ ﻋﺪﺩ‬
‫ﻋﻨﺎﺻﺮ ‪ d‬ﺿﻤﻦ ﳎﺎﻝ ‪ t‬ﻭﺑﻌﺪ ﺫﻟﻚ ﲣﺘﺎﺭ ﺍﺳﻢ ﺍﻹﺷﺎﺭﺓ ﺍﻟﱵ ﺗﺮﻳﺪ ﺗﻜﺮﺍﺭﻫﺎ ﻭﻟﺪﻳﻚ ﺛﻼﺙ ﺧﻴﺎﺭﺍﺕ‬
‫ﻓﻘﻂ ﻭﻫﻲ‪. gauspuls, rectpuls, tripuls:‬‬
‫ﺍﳌﺮﻛﺰ ﺍﳍﻨﺪﺳﻲ ﺍﻟﺘﺨﺼﺼﻲ‬
‫‪031 2461729‬‬ ‫ﻡ‪.‬ﻣﻮﻓﻖ ﴰﺎ‬
‫‪00963 966 344 685‬‬ ‫ﺩﻭﺭﺍﺕ ﻛﻤﺒﻴﻮﺗﺮ ﲣﺼﺼﻴﺔ‬

‫)‪[u,t] = gensig(type,tau,Tf,Ts‬‬

You might also like