Giao diện phần mềm có thể thay đổi tùy thuộc vào các phiên bản MATLAB hoặc ý định của người dùng. Với giao diện như hình trên, MATLAB có 4 phân vùng làm việc cơ bản sau: - Vùng thứ nhất là ô cửa sổ Current Folder (bên trái cùng) đây là vùng làm việc hiện tại của phần mềm trên ổ đĩa. Thông thường sau khi khởi động phần mềm xong đây là vùng cài đặt của MATLAB trên ổ C, tuy nhiên sau khi chạy một chương trình MATLAB được lưu ở folder khác trong ổ đĩa thì vùng làm việc đó sẽ thay đổi theo. - Vùng thứ hai là ô cửa sổ Command Window (chính giữa) đây là vùng làm việc chính của MATLAB, ở ô cửa sổ này sẽ tiến hành nhập các câu lệnh cho MATLAB thực hiện đồng thời xuất kết quả sau khi thực hiện câu lệnh đó. Dấu nháy kép “>>” báo rằng MATLAB đã sẵn sàng làm việc. Sau khi thực hiện tính toán các dữ liệu nhập hoặc xuất còn được lưu lại trên ô cửa sổ này, nếu muốn tiến hành xóa toàn bộ các hiển thị hiện tại đây, thực hiện thao tác với lệnh clc. - Vùng thứ ba là ô cửa sổ Workspace (phía trên bên phải), đây là vùng lưu trữ các dữ liệu mà phần mềm MATLAB đang thực hiện tính toán, các dữ liệu đang lưu trữ tại đây có thể gọi trở lại. Muốn xóa những dữ liệu lưu trữ trong vùng này, thực hiện thao tác với lệnh clear all. - Vùng thứ tư là ô cửa sổ Command history (phía dưới bên phải), đây là ô cửa sổ lưu giữ lại lịch sử làm việc của MATLAB, có thể gọi lại những câu lệnh cũ trong lịch sử làm việc bằng phím mũi tên lên trên bàn phím máy tính hoặc nháy kép chuột vào câu lệnh đó. Dữ liệu lịch sử các câu lệnh này chỉ mất đi khi tiến hành cài đặt lại MATLAB trên máy tính. 1.2.2. Cách khởi tạo m-file lập trình trên MATLAB Các câu lệnh đơn giản có thể được thao tác trực tiếp trên cửa sổ Command Window. Các câu lệnh thao tác trong ô cửa sổ này sẽ mất đi khi thao tác các câu lệnh tiếp theo, mặt khác trên đây chỉ thực hiện được ít câu lệnh (ít phép tính toán cùng lúc), quan trọng hơn không thể lưu trữ để sử dụng sau này. Do vậy, để tiến hành lập trình trên MATLAB phải thực hiện viết chương trình tính toán mô phỏng dưới dạng M-file. Khởi tạo m-file lập trình: Từ giao diện làm việc chính của phần mềm, vào trình đơn File > New > Blank M-File (hình 1.2). Lúc này ô cửa sổ mới của M- File sẽ mở ra và sẽ thực hiện thao tác các câu lệnh trên đó.
Trang 21.2 Hướng dẫn sử dụng một số công cụ cơ bản phầnmềmMatlab 6
TRONG ĐIỀU KHIỂN TỰ ĐỘNG
2.1 Mô phỏng và chuyển đổi các dạngmôtả toán học hệthốngđiều 12khiển tự động
2.2 Môphỏngđánhgiátínhổnđịnhvàvẽquỹđạonghiệmsốcho 29
hệ thống điều khiển tự động
2.3 Đánh giá chất lượng cho hệ thống điều khiểntựđộng 392.4 Hiệu chỉnh hệ thống điều khiểntựđộng 482.5 Môtả,phântíchvàthiếtkếchohệthốngđiềukhiểnxungsố 57tuyến tính
2.6 Mô hình hóa, phân tích và hiệu chỉnh chất lượng hệthống thực 63
Trang 4LỜI NÓI ĐẦU
TrongcuộcCáchmạngCôngnghiệp4.0mônhọcĐiềukhiểntựđộngngày càngkhẳng định vị thế và vai trò nền tảng kiến thức vô cùng quan trọng cho kỹ sư khối ngành
kỹ thuật Đây là môn học cơ sở quan trọng trong chương trình đào tạo ở trình độ caođẳng và đại học của nhiều ngành thuộc khối khoa học kỹ thuật và công nghệ Nội dungchương trình và phương pháp giảng dạy môn điều khiển tự động đang từng bước đượcđổi mới theo hướng ứng dụng các phần mềm mô phỏng tăng tính trực quan, nâng caokhả năng tiếp thu của người học nhằm đáp ứng yêu cầu trong xu thế phát triển nền khoahọc kỹthuật
Tài liệu được biên soạn nhằm đáp ứng yêu cầu thực tế của các đối tượngđàotạotạiNhàtrường.Tạođiềukiệnthuậnlợichoviệcgiảngdạycủagiảngviên;
tăngtínhtrựcquansinhđộngchongườihọctrongquátrìnhtiếpthukiếnthức.Cơ sở của việcbiên soạn tài liệu dựa trên chương trình khung của Bộ Giáo dục và Đào tạo, những địnhhướng về đổi mới nâng cao chất lượng dạy và học, chương trình chi tiết môn học Điềukhiển tự động đang giảng dạy cho các đối tượng tại Nhàtrường
Nội dung của tài liệu gồm hai chương:
Chương 1 giới thiệu tổng quan và những thao tác cơ bản để sử dụngphầnmềm Matlab, làm cơ sở cho việc ứng dụng vào các bài thí nghiệm ở chương
sau.Chương2lànhữngbàithínghiệmđượcxâydựngsátvớichươngtrìnhmôn học Điềukhiển tự động và những bài tập giúp học viên, sinh viên nâng cao kiến thức Các bàithí nghiệm được xây dựng trên nền tảng ứng dụng phần mềm MATLAB cho môn họcĐiều khiển tựđộng
Tác giả biên soạn tài liệu trên cơ sở tham khảo ý kiến của các đồngnghiệpđãvàđangthamgiagiảngdạymônhọcĐiềukhiểntựđộngtạicáccơsởđàotạo
Hiệnnay,trongtổngthểcácbiệnphápđểnângcaohơnnữachấtlượngquá trình dạy vàhọc thì việc ứng dụng các phần mềm đểmôphỏng là rất thiết thực đối với học viên,sinh viên Tài liệu này nhằm đáp ứng yêu cầu là tài liệu tham khảo chính cho cácđối tượng đào tạo đại học tại Nhà trường, đồng thời cũng là tài liệu tham khảophục vụ cho cán bộ kỹ thuật, giảng viên khi nghiên cứu giải quyết các bài toánliên quan đến các vấn đề vềmôhình hóa hệ thống tựđộng
Mặcdùtácgiảđãrấtcốgắngnhưngdokinhnghiệm,khảnăngvàthờigian có hạn nêntải liệu không thể tránh khỏi những thiếu sót, kính mong nhận đượcnhữngýkiếnđónggópcủacácnhànghiêncứu,cácđồngnghiệpvàđộcgiảđểtài liệu có chấtlượng tốt hơnnữa
Tác giả chân thành cảm ơn sự động viên và đóng góp nhiệt tình của cácđồng nghiệp trong bộ môn Nhiệt – điện; sự hợp tác, giúp đỡ của Ban Khoa họcquân sự; sự quan tâm tạo mọi điều kiện của đơn vị chủ quản Khoa Kỹ thuật Cơ
sở - Trường Sĩ quan Kỹ thuật Quân sự để tài liệu này được sớm ra mắt bạn đọc
Xin chân thành cảm ơn
TÁC GIẢ
Trang 5Chương 1 TỔNG QUAN VÀ HƯỚNG DẪN SỬ DỤNG PHẦN MỀM MATLAB
1.1 TỔNG QUAN VỀ PHẦN MỀMMATLAB
1.1.1 Sơ lược vềMATLAB
MATLAB (thuật ngữ viết tắt của từ MATrix LABoratory) là phần mềmđược Cleve Moler – Chủ nhiệm khoa Máy tính thuộc Đại học New Mexico phátminh ra vào cuối thập niên 70 thế kỷ XX Sau này, phần mềm được thiết kế vàphát triển bởi công ty MathWorks, chuyên về cung cấp môi trường tính toán số
và lập trình
MATLAB cho phép tính toán số vớimatrận, vẽ đồ thị hàm số hay biểu đồthôngtin,thựchiệnthuậttoán,tạocácgiaodiệnngườidùngvàliênkếtvớinhững chương trìnhmáy tính viết trên nhiều ngôn ngữ lập trìnhkhác
Sử dụng thư viện Toolbox, MATLAB cho phépmôphỏng tính toán, thựcnghiệmnhiềumôhìnhtrongthựctếvàkỹthuật.ĐặcbiệtvớiKỹthuậtđiệnvàKỹ
1.1.2 Tổng quan về ứng dụng phần mềm MATLAB trong lĩnh vực Kỹ thuật điềukhiển
MATLAB được ứng dụng nhiều để mô phỏng tính toán trong các bài toán
kỹ thuật điều khiển Sử dụng phần mềm MATLAB để mô phỏng sẽ giúp ngườidùng đánh giá hệ thống thông qua một số bài toán như:
- Khảnănglàmviệccủahệthốngthôngquabàitoánphântíchtínhổnđịnh;
- Khảnăngđápứngcácyêucầuđặtravớihệthốngthôngquabàitoánphân tích chấtlượng hệthống;
- Khả năng “thiết kế mềm” hệ thống thông qua bài toán thiết kế hệthống.Trong đó quan trọng nhất là bài toán thiết kế mềm, MATLAB đóng vai tròlàcôngcụvôcùnghữuíchtrongtiếtkiệmthờigianvàkinhtếtrướckhivàothiết kế hệthốngthực
Trang 61.2. HƯỚNG DẪN SỬ DỤNG MỘT SỐ CÔNG CỤ CƠ BẢN PHẦN MỀMMATLAB
1.2.1 Khởi tạo phần mềmMATLAB
Sau khi căi đặt xong MATLAB có biểu tượng (icon) trín măn hình(desktop), để tiến hănh khởi động phần mềm tiến hănh kích đúp chuột trâi văobiểutượngvăphầnmềmsẽmởravớigiaodiệnchínhnhưhình1.1(Matlab2010)
Hình 1.1 Giao diện của phần mềm MATLAB
GiaodiệnphầnmềmcóthểthayđổitùythuộcvăocâcphiínbảnMATLAB hoặc ý địnhcủa người dùng Với giao diện như hình trín, MATLAB có 4 phđn vùng lăm việc cơbảnsau:
- VùngthứnhấtlẵcửasổCurrentFolder(bíntrâicùng)đđylăvùnglăm
việchiệntạicủaphầnmềmtrínổđĩa.Thôngthườngsaukhikhởiđộngphầnmềm xong đđy lăvùng căi đặt của MATLAB trín ổ C, tuy nhiín sau khi chạy một chương trình MATLAB
được lưu ởfolderkhâc trong ổ đĩa thì vùng lăm việc đó sẽ thay đổitheo.
- Vùng thứ hai lă ô cửa sổCommand Window(chính giữa) đđy lă vùng
lăm việc chính của MATLAB, ở ô cửa sổ năy sẽ tiến hănh nhập câc cđu lệnh choMATLAB thực hiện đồng thời xuất kết quả sau khi thực hiện cđu lệnh đó Dấunhây kĩp “>>” bâo rằng MATLAB đê sẵn săng lăm việc Sau khi thực hiện tínhtoâncâcdữliệunhậphoặcxuấtcònđượclưulạitrínôcửasổnăy,nếumuốntiến hănh xóa
toăn bộ câc hiển thị hiện tại đđy, thực hiện thao tâc với lệnhclc.
Trang 7- Vùng thứ ba lă ô cửa sổWorkspace(phía trín bín phải), đđy lă vùnglưu trữ
câc dữ liệumăphần mềm MATLAB đang thực hiện tính toân, câc dữ liệuđanglưutrữtạiđđycóthểgọitrởlại.Muốnxóanhữngdữliệulưutrữtrongvùng năy, thực
hiện thao tâc với lệnhclearall.
- VùngthứtưlẵcửasổCommandhistory(phíadướibínphải),đđylẵ cửa sổ
lưu giữ lại lịch sử lăm việc của MATLAB, có thể gọi lại những cđu lệnhcũtronglịchsửlămviệcbằngphímmũitínlíntrínbănphímmâytínhhoặcnhây kĩp chuột văocđu lệnh đó Dữ liệu lịch sử câc cđu lệnh năy chỉ mất đi khi tiến hănh căi đặt lạiMATLAB trín mâytính
1.2.2 Câch khởi tạo m-file lập trình trínMATLAB
CâccđulệnhđơngiảncóthểđượcthaotâctrựctiếptríncửasổCommand
Window.Câc cđu lệnh thao tâc trong ô cửa sổ năy sẽ mất đi khi thao tâc câc cđu
lệnh tiếp theo, mặt khâc trín đđy chỉ thực hiện được ít cđu lệnh (ít phĩp tính toâncùng lúc), quan trọng hơn không thể lưu trữ để sử dụng sau năy Do vậy, để tiến
hănhlậptrìnhtrínMATLABphảithựchiệnviếtchươngtrìnhtínhtoânmôphỏng dưới file.
dạngM-Khởi tạo m-file lập trình: Từ giao diện lăm việc chính của phần mềm, văo
trình đơnFile>New>Blank M-File(hình 1.2) Lúc năy ô cửa sổ mới Filesẽ mở ra vă sẽ thực hiện thao tâc câc cđu lệnh trín đó.
củaM-Hình 1.2 Ô cửa sổ tạo giao diện lập trình M-File CũngcóthểdùngphímtắtCtrl+NđểkhởitạomộtM-Filemới.Lưuý,sau khi tạo đượcM-Filemới nín tiến hănh lưu ở vùng lăm việc tiện sử dụng trín ổ đĩavăđổitínM-Filemặcđịnhmớitạo.TíncủaM-Fileđượcviếtliềnbằngtiếng Anh hoặc
tiếng Việt khôngdấu
1.2.3 Câch khởi tạo một file mô phỏngSimulink
PhầnmềmMATLABcóhaithếmạnhđólătínhtoântrínmatrậnsốvămôphỏng hệthống bằng công cụ Simulink Trong kỹ thuật điều khiển thì Simulinklăcôngcụrấthữủchchomôphỏng,đânhgiâchấtlượng,thiếtkế,hiệuchỉnh
Trang 8chấtlượnglàmviệc ĐểkhởitạomộtfileSimulinktiếnhànhtheomộttrongcác cáchsau.
Cách 1:Từ thanh công cụHometrên giao diện chính của phần mềm kích
chuột trái vào biểu tượng của thư viện Simulink (hình 1.3), thư viện Simulink sẽ
mở ra
Hình 1.3 Nút mở thư viện Simulink
Từ cửa sổ thư viện, vàoFile>New>Model(hình 1.4) Lúc này ô cửa sổ mới
Simulink để mô phỏng sẽ mở ra và tiến hành xây dựng hệ thống trên ô cửa sổmới đó
Hình 1.4 Giao diện tạo file mô phỏng Simulink
Trang 9Cách 2:Từ ô cửa sổCommand windowtrên giao diện chính phần mềm
gõtrựctiếpcâulệnhSimulinkvàấnnútEnter,saukhithưviệnmởra,tiếnhành khởi tạo ô
cửa sổ làm việc mới như phần trên Cũng như M-file lập trình, thì file Simulink cũng
có thể lưu trữ để sử dụng về sau và tên file cũng được viết liền bằng tiếng Anh hoặctiếng Việt khôngdấu
Một số thư viện con quan trọng cho công cụ mô phỏng:
- Thư viện con Sources gồm các khốinguồn;
- Thư viện con Sinks gồm các khối xuất tínhiệu;
- Thư viện con Math gồm các khối ghép nối toánhọc;
- Thư viện con Signal và Subsystem gồm các khối tín hiệu và hệcon;
- Thư viện con Continuous gồm các khối liêntục;
- Thư viện con Nonlinear gồm các khối phituyến;
- Thư viện con Discrete gồm các khối giánđoạn
Trongcácthưviệnnày,cácthưviệnmàthườngđượcsửdụngđểxâydựng sơ đồSimulinkmôtả hệ thống đó là: Continuous; Signal & Subsystem; Math; Sources
và Sinks
1.2.4 Một số công cụ cơ bản trong phần mềmMATLAB
a Công cụ tínhtoán
Cũngnhưmộtsốphầnmềmtínhtoánkhác,phầnmềmMATLABcũngtiếnhànhtínhtoáncácphéptoánthôngthườngvàmộtsốhàmtínhtoánphứctạpkhác (xem bảng1.1 và1.2)
Trang 10atan(x) % hàm arctag ±90 0
Bảng 1.2 Một số công cụ khai báo và tính toán với ma trận và vec tơ
Kí hiệu khai báo hoặc hàm tính toán Ý nghĩa phép tính
[x1 x2 ; x3 x4 ] % nhập véc tơ hoặc ma trận
.*; /; ^ % các phép tính nhân, chia, lũy thừa
với từng phần tử của ma trận transpose(A) hoặc A’ % chuyển vị ma trận A
Trong đó, row là số hàng, column là số cột và counter là vị trí thể hiện đồ thị
Một số câu lệnh đồ họa 2D thường dùng khác được liệt kê trên bảng 1.3
Bảng 1.3 Một số câu lệnh dành cho đồ họa 2D
axis(x_min,x_max,y_min,y_max) % chia trục từ vùng min tới max
legend(string_1,string_2, ) % điền lời ghi chú
plot(x_value,y_value
[plotstyle])
% lệnh vẽ đồ thị
Trang 11Saochépđồthị:đểsaochépđồthịvàobộnhớclipboardtạmthời,tiếnhành vào cửa sổ
chính của figure nhấp chuột vàoEdit>Copy Figurevà sau đó dán vào nơi cần (như
Trang 12Chương 2 CÁC BÀI THÍ NGHIỆM ỨNG DỤNG PHẦN MỀM MATLAB TRONG
trong đó: R(s) và C(s) là tín hiệu vào và ra hệ thống dưới dạng toán tử Laplace
Hình 2.1 Mô tả khối hàm truyền chức năng
- Dạng khác của hàm truyền đạt, hàm truyền đạt dạng hữu tỉ có thể phântích về dạng tổng các phân thức bậc nhất (hình 2.2) như sau:
Trang 13- Mô hình mô tả hệ thống dưới dạng PTTT thể hiện bằng hệ phương trình
vi phân cấp 1 tổng quát như sau:
Trang 14giáchấtlượnghoạtđộngcủahệthốngcũngnhưbiểuthịcáckếtquảđầuvào,đầu ra của hệthống trong thời gianthực.
Hình 2.5 Mô tả hệ thống bằng sơ đồ khối
Trang 15num = [1 2 5];
den = [1 3 4 1 1];
G1= tf(num, den)
2.1.2 Nội dung các bài thí nghiệm
a Mô tả hệ thống bằng phương trình viphân
Đâylàtrườnghợpcơbảnđầutiênkhixâydựngmôhìnhhệthốngxuấtphát
từnguyênlýlàmviệcvàcácmốiquanhệtácđộngqualạigiữacácphầntửtrong hệ thống.Nhưng trong bài toán điều khiển tự động thực tế, do sự phức tạp của việc giảiphương trình vi phân nên dạng mô tả toán học này không được sử dụng để tiến hànhphân tích, thiết kế hệ thống Chính vì vậy dạng mô tả này ít đượcdùngđểmôtảhệthốngdướidạngphầnmềm,
ởtàiliệunàycũngsẽtiếnhànhmôtảhệthốngdướicácdạngthườngsửdụnghơnnhư:hàmtruyềnđạt,phươngtrình trạngthái
b Mô tả hệ thống bằng hàm truyềnđạt
- Cấu trúc lệnh khai báo HTĐ cho MATLAB:
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
G = tf(num,den) % khai báo HTĐ
Ví dụ 1:Thực hành viết chương trình mô tả hệ thống có HTĐ
s2 2s5
G1ss4
3s 3 4s 2 s1
Cấu trúc lệnh thực hành trên Malab:
Kết quả hiển thị trên MATLAB
G1 =
s^2 + 2 s + 5
s^4 + 3 s^3 + 4 s^2 + s + 1 Continuous-time transfer function
Đơn giản hóa cấu trúc lệnh
G = tf([b0 b1 bm], [a0 a1 an]) % khai báo một lần
Ví dụ 2: Thực hành viết chương trình mô tả hệ thống có HTĐ
G2s s22s5
s43s34s2
s1
Trang 16G2= tf([1 2 5], [1 3 4 1 1])
G2 =
s^2 + 2 s + 5
s^4 + 3 s^3 + 4 s^2 + s + 1 Continuous-time transfer function.
G =
4 (s+1) (s+3)
s (s+2) (s+4) (s+6) Continuous-time zero/pole/gain model.
Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB
- Mộtsốmôhìnhvớihàmtruyềndạngđặcbiệt:Môhìnhđiểmkhông,điểm cực và hệ
số khuếch đại(z/p/k)
- Cấu trúc lệnh hàm truyền dạng đặcbiệt:
z = [z1; z2; zm] % khai báo điểm không HTĐ
p = [p1; p2; pn] % khai báo điểm cực HTĐ
k = [k1] % khai báo hệ số khuếch đại HTĐ
G=zpk(z,p,k) % khai báo HTĐ dạng zero/pole/gain
Ví dụ 3: Thực hành viết chương trình mô tả hệ thống có HTĐ có 2 điểm
zero là: -1 và -3; 4 điểm pole là: 0, -2, -4 và -6; hệ số khuếch đại là: 4
Cấu trúc lệnh thực hành trên MATLAB
z=[-1; -3];
p=[0; -2; -4; -6];
k=4;
G=zpk(z,p,k)Kết quả hiển thị trên MATLAB
Trang 17num=[2 5 3 6];
den=[1 6 11 6];
[r,p,k]=residue(num,den)
c Mô tả hệ thống bằng phương trình trạngthái
- Cấu trúc lệnh khai báo cácmatrận:
A= [a11a12 a1n;
a21a22 a2n; an1
an2 ann]
% khai báo ma trận chuyển trạng thái
B = [b11; b12; b1n] % khai báo ma trận vào hệ thống
C = [c11c12 c1n] % khai báo ma trận đầu ra
D = [d11] % khai báo ma trận đo (nếu có)
X =ss(A, B, C, D) % khai báo mô hình không gian trạng thái
- CấutrúclệnhchuyểnđổitừHTĐdạnghữutỉvềdạngtổngcácthànhphần bậc nhất và
đa thức tựdo:
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
[r, p, k] =
residue(num, den)
% lệnh chuyển đổi tìm các giá trị r, p, k
- Cấu trúc lệnh tìm lạiHTĐ:
[num, den] = residue(r,
p, k);
% khai báo r, p, kprintsys(num, den, ‘s’) % tìm lại HTĐ
Ví dụ 4:Thực hành viết chương trình phân tích HTĐ sau thành tổng các
thành phần bậc nhất và chuyển đổi ngược lại về HTĐ
Trang 18p = -3.0000 -2.0000 -1.0000
- Cấu trúc lệnh tìm điểm không (z), điểm cực (p) và hệ số khuếch đại(K):
num = [b0b1 bm] % khai báo các hệ số của tử số HTĐden = [a0a1 an] % khai báo các hệ số của mẫu số HTĐ
[z, p, K] = tf2zp(num,
den);
% lệnh tìm điểm không, điểm cực và
hệ số khuếch đại của HTĐ có tử số lànum, mẫu số là den
Ví dụ 5:Thực hành viết chương trình biến đổi tìm hàm truyền sau về dạng
tích các hàm truyền bậc nhất và biến đổi ngược lại
4s2 16s12
Gs
12s44s48sCấu trúc lệnh thực hành
Trang 19z=[-1; -3];
p=[0; -2; -4; -6];
K=4;
[num,den]=zp2tf(z,p,K);G=tf (num,den)
z=[-1; -3];
p=[0; -2; -4; -6];
K=4;
[num,den]=zp2tf(z,p,K);p rintsys(num,den,'s')
Kết quả hiển thị trên MATLAB
z = -3 -1
p =
0 -6.0000 -4.0000 -2.0000
K =
4Vậy HTĐ trên viết lại như sau:
function.
Hoặc sử dụng cấu trúc lệnhsau:
Kết quả hiển thị trênMATLAB
Trang 20num/den =
4 s^2 + 16 s + 12 s^4 + 12 s^3 + 44 s^2 + 48 s
d Cấu trúc lệnh chuyển đổi qua lại giữa các dạng mô tả toánhọc
- Cấu trúc lệnh chuyển HTĐ sangPTTT:
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ G
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ G
[A, B, C,
D]=tf2ss(num,den)
% chuyển đồi từ HTĐ sang PTTT
- Cấu trúc lệnh chuyển PTTT sangHTĐ:
A =[a11a12 a1n;
an1an2 ann];
% khai báo ma trận chuyển trạng thái
B =[b11;b12; b1n]; % khai báo ma trận vào
C =[c11c12 c1n]; % khai báo ma trận ra
[num,den]=ss2tf(A,B,C,D) % chuyển đồi từ PTTT sang HTĐ
- Cấu trúc câu lệnh tìm lại HTĐ từ PTTT (công thức toán
% khai báo ma trận chuyển trạng thái
B =[b11; b12; b1n]; % khai báo ma trận vào
C =[c11c12 c1n]; % khai báo ma trận ra
Trang 21num1=[1 1];
den1=[1 2 4 1];
G1=tf(num1,den1);n um2=[2];
den2=[1 2];G2=tf(num2,den2 );G=series(G1,G2)
I = eye(n) % khai báo ma trận đơn vị cấp n
e Một số cấu trúc lệnh đơn giản sơ đồ cấu trúc hệthống
- Hệ mắc nối tiếp (ví dụ 2 khâu mắc nốitiếp):
num1 = [b0b1 bm] % khai báo hệ số của tử số HTĐ G1den1 = [a0a1 an] % khai báo hệ số của mẫu số HTĐ G1G1 = tf(num,den) % khai báo HTĐ G1
num2 = [c0c1 cm] % khai báo hệ số của tử số HTĐ G2den2 = [d0d1 dn] % khai báo hệ số của mẫu số HTĐ G2G2 = tf(num,den) % khai báo HTĐ G2
G=series(G1,G2) % tính HTĐ hệ mắc nối tiếp
Ví dụ 6:Thực hành viết chương trình tính HTĐ hai khâu sau mắc nối tiếp
Hình 2.6 Mô tả hệ thống nối tiếp bằng sơ đồ khối
Cấu trúc lệnh thực hành trên MATLAB
Trang 22G =
2 s + 2
s^4 + 4 s^3 + 8 s^2 + 9 s + 2 Continuous-time transfer
function.
num1=[1 1];
den1=[1 2 4 1];
Kết quả hiển thị trên MATLAB
- Hệ mắc song song (ví dụ 2 khâu mắc songsong):
num1 = [b0b1 bm] % khai báo hệ số của tử số HTĐ G1den1 = [a0a1 an] % khai báo hệ số của mẫu số HTĐ G1G1 = tf(num,den) % khai báo HTĐ G1
num2 = [c0c1 cm] % khai báo hệ số của tử số HTĐ G2den2 = [d0d1 dn] % khai báo hệ số của mẫu số HTĐ G2G2 = tf(num,den) % khai báo HTĐ G2
Gss =parallel(G1,G2) % tìm HTĐ hệ mắc song song
Ví dụ 7:Thực hành viết chương trình tính HTĐ hai khâu sau mắc song
song:Gs s 1
;G
s2
1 s32s24s1 2 s2
Hình 2.7 Cấu trúc hai khối chức năng mắc song song
Cấu trúc lệnh thực hành trên MATLAB
Trang 23Gss =
2 s^3 + 5 s^2 + 11 s + 4
s^4 + 4 s^3 + 8 s^2 + 9 s + 2 Continuous-time transfer
function.
Ght(s)
G1=tf(num1,den1);num 2=[2];
den2=[1 2];
G2=tf(num2,den2);Gs s=parallel(G1,G2)Kết quả hiển thị trên MATLAB
- Hệ mắc hồitiếp:
num1 = [b0b1 bm] % khai báo hệ số của tử số HTĐ G
den1 = [a0a1 an] % khai báo hệ số của mẫu số HTĐ G
G = tf(num1,den1) % khai báo HTĐ G1
num2 = [c0c1 cm] % khai báo hệ số của tử số HTĐ H
den2 = [d0d1 dn] % khai báo hệ số của mẫu số HTĐ H
H = tf(num2,den2) % khai báo HTĐ H
Ght=feedback(G, H) % tìm HTĐ hệ mắc hồi tiếp âm
Ví dụ 8:Thực hành viết chương trình tính HTĐ hai khâu có HTĐ như sau
Trang 24num1=[1 1];
den1=[1 2 41];
G=tf(num1,den1)n um2=[2];
den2=[1 2];H=tf(num2,den 2)
num=[2];
den=[1 2];G=tf(num,den );step(G)
Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB
Ght =
s^2 + 3 s + 2
s^4 + 4 s^3 + 8 s^2 + 11 s + 4 Continuous-time transfer
function.
f Cấu trúc lệnh vẽ các đặc tính động học của hệthống
- Đặc tính thời gian: hàm quá độ và quá độxung
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
G = tf(num,den) % khai báo HTĐ
step(G) % vẽ đặc tính quá độ của hệ có HTĐ Gimpulse(G) % vẽ đặc tính quá độ xung của hệ HTĐ G
Ví dụ 9:Thực hành viết chương trình vẽ đặc tính quá độ (h(t)) và quá độ
xungg((t))củahệthốngcóHTĐsau:Gs 2
s2
Cấu trúc lệnh thực hành trên MATLAB
Trang 25den=[1 2];G=tf(num,den );impulse(G)
Kết quả hiển thị trên MATLAB cho hàm quá độ h(t)
Step Response 1
0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
Time (seconds)
Hình 2.9 Đồ thị hàm quá độ h(t)
Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB cho hàm quá độ xung g(t)
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
Impulse Response
Time (seconds)
Hình 2.10 Đồ thị hàm quá độ xung g(t)
- Đặc tính tần số: đặc tính Nyquist, Bode và Nichols
num = [b0b1 bm] % khai báo hệ số của tử số HTĐden = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
Trang 26num=[2];
den=[2 4 34];
nyquist(num,den)gri d
num=[2];
den=[2 4 34];
margin(num,den)grid
G = tf(num,den) % khai báo HTĐ
nyquist(G) % vẽ đặc tính Nyquist của hệ có HTĐ Gbode(G) % vẽ đặc tính tần số bode của hệ có HTĐ Gmargin(G) % vẽ đặc tính tần số bode và tính độ dữ trữ
biên, độ dữ trữ phanichols(G) % vẽ đặc tính Nichols của hệ có HTĐ G
Ví dụ 10:Thực hành viết chương trình vẽ đặc tính Nyquist G(jω), Bode vàω), Bode và), Bode và
Nichols cho hàm truyền sau:G h s
2
2s3 4s 2 3s4Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB cho hàm Nyquist
Nyquist Diagram 2.5
2 1.5
1 0.5
0 -0.5
-1 -1.5
-2 -2.5
Trang 27num=[2];
den=[2 4 34];
nichols(num,den)grid
1 dB
3 dB
6 dB
-1 dB -3 dB -6 dB -12 dB -20 dB
Cấu trúc lệnh thực hành trên MATLAB cho hàm Nichols
Kết quả hiển thị trên MATLAB cho hàm Nichols
Nichols Chart 20
Hãy tiến hành thực hành trên MATLAB và viết báo cáo các mục sau đây:
1 Khai báo HTĐ trên MATLAB với các hệ thốngsau:
Trang 28Viết chương trình biến đổi hệ thống dạng PTTT trên về dạng HTĐ.
3 Thực hành biến đổi Lapplace ngược các HTĐsau
Câu 2.Cho hệ thống có HTĐ dưới đây Hãy tiến hành vẽ các đặc tính thời
gian và đặc tính tần số khi hệ số ζ thay đổi trong khoảng từ 0 đến 1 (độ phân giải0,1):
2
Gs 0 , với5rad/s
s2 2 s2 0
Trang 29Re
Biên giới ổn định
Miền ổn định
Miền không
ổn định
2.2 MÔPHỎNGĐÁNHGIÁTÍNHỔNĐỊNHVÀVẼQUỸĐẠONGHIỆM SỐ CHO HỆ THỐNG ĐIỀU KHIỂN TỰĐỘNG
2.2.1 Tóm tắt cơ sở lýthuyết
Miền phân bố nghiệm của phương trình đặc trưng quyết định đến tính ổn định của hệ thống:
Hình 2.14 Miền phân bố nghiệm của PTĐT
Tiêu chuẩn ổn định đại số:
- Tiêu chuẩn Routh: cho hệ thống có phương trình đặc trưng là:
Asasnasn1 a sa0
HệthốngsẽổnđịnhnếutấtcảcáchệsốtrongcộtthứnhấtcủabảngRouthdương Số lần đổi dấutrong cột thứ nhất của bảng Routh bằng số nghiệm của phương trình đặc trưng có phầnthựcdương
Trang 30
- Tiêu chuẩn Hurwitz: Cho hệ thống có phương trình đặc trưngdạng:
Ass na1s n1 an1 sa n0Điều kiện cần và đủ để hệ thống ổn định là tất cả các định thức con của ma trận Hurwitz phải dương
- TiêuchuẩnBode:Điềukiệncầnvàđủđểhệthốngđiềukhiểntựđộngkín (với hồitiếp âm đơn vị) ổn định là hệ thống hở độ dữ trữ biên và độ dữ trữ pha dương
3.2.1 Nội dung các bài thínghiệm
a Các cấu trúc lệnh dùng để đánh giá tính ổn định của hệthống:
- Cấu trúc câu lệnh tìm giá trị điểm cực(pole):
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
G = tf(num,den) % khai báo HTĐ
[vec_pol]=pole(G) % tìm điểm cực của HTĐ G
a1 a3 a5 a7 0
a0 a2 a4 a6 0
0 a1 a3 a5 0
0 a a a 0
a n
Trang 31- Cấu trúc câu lệnh tìm giá trị điểm cực (roots) từ phương trình đặctính:
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
- Cấu trúc lệnh tìm điểm không(zero):
num = [b0b1 bm]; % khai báo hệ số của tử số HTĐ
den = [a0a1 an]; % khai báo hệ số của mẫu số HTĐ
[vec_zero]=zero(G) % tìm điểm zero của HTĐ G
Ví dụ 1:Thực hành viết chương trình tìm điểm cực, điểm không để đánh
giá sự ổn định cho hệ thống có HTĐ sau:
Gs s32ss 2 4s11 Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB
vec_pole = -0.8576 +1.6661i -0.8576 -1.6661i -0.2848 +0.0000i vec_tzero =
-1.0000Sau khi MATLAB cho kết quả hệ bậc ba có ba điểm cực và một điểm không
Ba điểm cực trên đều có phần thực âm nên có thể kết luận hệ thống ổn định
Ví dụ 2:Thực hành viết chương tìm điểm cực, điểm không để đánh giá sự
ổn định cho hệ thống có HTĐ sau:
Gs s 3
Trang 32roots(A) tzero(G)Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB
ans = 0.0000 +0.0000i -2.0000 +3.4641i -2.0000 -3.4641i -1.0000 +0.0000i ans =
-3Sau khi MATLAB cho kết quả hệ bậc bốn có bốn điểm cực và một điểmkhông.Bacựcđềucóphầnthựcâmvàđiểmcựccònlạicóphầnthựcbằngkhông nên kết luận
hệ ở biên giới ổnđịnh
b Các cấu trúc lệnh dùng để vẽ quỹ đạo nghiệm số của hệthống:
- Cấutrúccâulệnhbiểudiễnđiểmcựcvàđiểmkhônglênmặtphẳngphức:
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
G = tf(num,den) % khai báo HTĐ
pzmap(G) % biểu thị điểm cực và điểm không của HTĐ
G trên mặt phẳng phức
- Cấu trúc câu lệnh vẽ QĐNS của hệ thống khi có tham số thayđổi:
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ
Trang 33den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
G = tf(num,den) % khai báo HTĐ
% khai báo ma trận chuyển trạng thái
B = [b1; bn] % khai báo ma trận vào
C = [c1 cn] % khai báo ma trận ra
D = [d1 dn] % khai báo ma trận đo
rlocus(A,B,C,D) % vẽ QĐNS của hệ thống có PTTT trên
- CấutrúccâulệnhvẽQĐNScủahệthốngvàchọnđiểmtrênQĐNSđểtính toán giá trị
K và các nghiệm của phương trình đặc tính tươngứng:
num = [b0b1 bm] % khai báo hệ số của tử số HTĐ
den = [a0a1 an] % khai báo hệ số của mẫu số HTĐ
rlocus(num, den) % vẽ QĐNS của hệ thống
rlocfind(num,den) % tìm điểm cực và giá trị K tương ứng với
Kết quả hiển thị trên MATLAB
Trang 341 )
-1
s d
num=[1 0 1];
den=[1 2 0];G=tf(num,den );rlocus(G)
Hình 2.15 Đồ thị biểu diễn điểm cực và điểm zero
Ví dụ 4:Thực hành viết chương trình vẽ QĐNS cho hệ thống có HTĐ hệ
hở như sau, khi K thay đổi từ 0÷∞
s2 1
G sK.
s2 2s
Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB
Hình 2.16 Biểu diễn quỹ đạo nghiệm số VD4
QĐNS gồm 2 nhánh xuất phát từ 2 điểm cực (0+jω), Bode và và 0-jω), Bode và) và kết thúc tại hai điểm không (0+jω), Bode và0 và -2+jω), Bode và0)
Trang 35axis(v) grid
Ví dụ 5:Thực hành viết chương trình vẽ QĐNS cho hệ thống có PTTT hệ
hở như sau, khi K thay đổi từ 0÷400
Cấu trúc lệnh viết trên MATLAB
Kết quả hiển thị trên MATLAB
Real Axis (seconds-1)
Hình 2.17 Biểu diễn quỹ đạo nghiệm số VD5
Ví dụ 6:Thực hành viết chương trình vẽ QĐNS cho hệ thống có HTĐ sau,
và hãy lựa chọn 1 điểm trên QĐNS để tính giá trị K và các cực tương ứng
Gs K
s3 4s 2 5sCấu trúc lệnh viết trên MATLAB
Trang 36num=[2];
den=[2 4 34];
nyquist(num,den)g rid
Select a point in the graphics window selected_point
-4.4639 + 0.0000i 0.2319 + 2.6489i 0.2319 - 2.6489i
Hình 2.18 Biểu diễn quỹ đạo nghiệm số VD6
Ví dụ 7:Dùng phần mềm MATLAB để tìm sự ổn định của hệ thống kín
(với hồi tiếp âm đơn vị) theo tiêu chuẩn Nyquist nếu HTĐ hệ thống hở là
Ghs 2
2s3 4s 2 3s4Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB
Trang 37num=[1 1];
den=[1 3 1 0];
margin(num,den)gri d
0
2.5 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5
Real Axis
Hình 2.19 Đồ thị tiêu chuẩn Nyquist cho VD7
Kết luận: Hệ thống kín ở biên giới ổn định vì đặc tính Nyquist hệ thống hở
đi qua điểm M có tọa độ là (-1;jω), Bode và0)
Ví dụ 8:Dùng phần mềm MATLAB để tìm sự ổn định của hệ kín (với hồi
tiếp âm đơn vị) theo tiêu chuẩn Bode nếu HTĐ hệ hở là
Ghs s1
s3 3s 2 s
Cấu trúc lệnh thực hành trên MATLAB
Kết quả hiển thị trên MATLAB như hình dưới đây Tay thấy độ dữ trữ pha
= 50,4 >0, tuy nhiên độ dữ trữ pha không xác định nên hệ thống kín không ổn định