Mophong PIL

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 45

Processor-In-the-Loop with

STM32F407VGTx

Nhóm Ổn áp điện tử

Power Electronics Power Electronics


Laboratory Laboratory
- Hanoi University of Science and Technology
MỤC LỤC

1 Giới thiệu về PIL


2 Mô phỏng kiểm nghiệm
3 Kết luận

2/12/2020 PELAB - HUST 2


1 Giới thiệu về PIL

Các bước cần thực hiện khi tiến hành mô phỏng điện tử công suất

2/12/2020 PELAB - HUST 3


1 Giới thiệu về PIL
❖ Phần cứng
Phần cứng để thực hiện mô phỏng PIL gồm 2 phần
chính:
• Vi điều khiển: Kit STM32F4 Discovery
• Module chuyển đổi UART

Kit STM32 Discovery USB - UART

2/12/2020 PELAB - HUST 4


1 Giới thiệu về PIL
❖ Phần mềm
• STM32 ST-Link Utility và ST-Link/V2 USB driver dùng để nạp file .hex của
chương trình xuống kit.
• STM32 CubeMx được dùng để cấu hình ngoại vi cho vi điều khiển và thực
hiện sinh code tự động.
• Trình biên dịch MDK-ARM từ KeilC được dùng để kiểm tra code và nạp code
cho vi điều khiển STM32
• STM32-MAT/TARGET toolkit ( Thư viện hỗ trợ )

2/12/2020 PELAB - HUST 5


2 Mô phỏng kiểm nghiệm
❖ Ví dụ 1: Khi đối tượng mô tả dưới dạng hàm truyền

Giả sử đối tượng điều khiển là một khâu quán tính


bậc nhất có dạng hàm truyền như sau:
1
𝐴 𝑠 =
𝑠+1

2/12/2020 PELAB - HUST 6


2 Mô phỏng kiểm nghiệm

Sơ đồ mô phỏng đối tượng với khâu điều khiển là bộ PI


2/12/2020 PELAB - HUST 7
2 Mô phỏng kiểm nghiệm
Trước tiên ta đi mô phỏng kiểm chứng bộ điều khiển MIL ( Model In The Loop ) để
kiểm chứng tính đáp ứng của bộ điều khiển trên MATLAB và lấy thông số bộ điều
khiển

Đáp ứng của bộ điều khiển Thông số bộ điều khiển

2/12/2020 PELAB - HUST 8


2 Mô phỏng kiểm nghiệm
Sau khi đã xác định được bộ điều khiển ở miền liên tục, ta tiến hành bước
tiếp theo là gián đoạn hóa bộ điều khiển trước khi bắt đầu quá trình mô
phỏng PIL. Bởi vì vi điều khiển chỉ có thể chạy ở trong miền gián đoạn.
Để tiến hành gián đoạn bộ điều khiển, ta sử dụng Matlab:
Ở cửa sổ lệnh Command window ta gõ lệnh:
pids=tf([77 105],[1 0]) :đây là hàm truyền dưới miền s của bộ điều khiển.
Sau đó ta gõ lệnh:
pidz=c2d(pids,1e-4,'zoh')
Lệnh này có nhiệm vụ đưa BĐK miền s về miền gián đoạn z bằng phương
pháp ZOH với chu kì trích mẫu là 1e-4 giây

2/12/2020 PELAB - HUST 9


2 Mô phỏng kiểm nghiệm

Sau khi thực hiện xong 2 lệnh như trên thì ta được kết
quả như sau:
• Hàm truyền bộ điều khiển trên miền s:
77𝑠 + 105
𝐺𝑐 (𝑠) =
𝑠

• Hàm truyền bộ điều khiển trên miền z:


77𝑧 − 76.99
𝐺𝑐 (𝑧) =
𝑧−1

Sau khi đã có được hàm truyền gián đoạn của BĐK, ta


bắt đầu thực hiện mô phỏng PIL cho đối tượng.

2/12/2020 PELAB - HUST 10


2 Mô phỏng kiểm nghiệm
Đầu tiên, ta tạo một file Simulink mới:

Với hàm truyền z chính là hàm truyền của bộ điều khiển PIDz vừa tính toán ở cửa sổ lệnh
2/12/2020 PELAB - HUST 11
2 Mô phỏng kiểm nghiệm

Các thông số của bộ PIDz

2/12/2020 PELAB - HUST 12


2 Mô phỏng kiểm nghiệm
Tiến hành cấu hình trong mục Configuration Parameter như sau:
Mục Solver

Cấu hình mục Slover


2/12/2020 PELAB - HUST 13
2 Mô phỏng kiểm nghiệm
Mục Code Generation

Cấu hình mục Code Generation

2/12/2020 PELAB - HUST 14


2 Mô phỏng kiểm nghiệm
Ở mục STM32 Options

Cấu hình mục STM32 Options

2/12/2020 PELAB - HUST 15


2 Mô phỏng kiểm nghiệm
Ở mục STM32 Project Files

Cấu hình mục STM32 Project Files


2/12/2020 PELAB - HUST 16
2 Mô phỏng kiểm nghiệm
Sau đó nhấn Apply và OK

2/12/2020 PELAB - HUST 17


2 Mô phỏng kiểm nghiệm
Tiếp theo nhớ chọn chế độ chạy PIL cho bộ điều khiển.

2/12/2020 PELAB - HUST 18


2 Mô phỏng kiểm nghiệm
Sau đó tiến hành lưu lại với tên Controller tại vị trí cùng thư
mục với thư mục chứa mô phỏng đối tượng

2/12/2020 PELAB - HUST 19


2 Mô phỏng kiểm nghiệm
Tiếp theo, tại nơi chứa đối tượng, ta gọi block Model

2/12/2020 PELAB - HUST 20


2 Mô phỏng kiểm nghiệm

Đặt tên cho Block Model là PIL

2/12/2020 PELAB - HUST 21


2 Mô phỏng kiểm nghiệm

Sau đó kích đúp chuột vào block và làm như sau:

2/12/2020 PELAB - HUST 22


2 Mô phỏng kiểm nghiệm

Vậy là ta đã có mô hình PIL của bộ điều khiển

2/12/2020 PELAB - HUST 23


2 Mô phỏng kiểm nghiệm
Tại đây, ta cấu hình cho file Ok.slx giống như các bước ở trên và làm như
sau:

Đến đây thì ta đã có đầy đủ mọi thứ về phần mềm để tiến hành chạy mô
phỏng trong chế độ PIL
2/12/2020 PELAB - HUST 24
2 Mô phỏng kiểm nghiệm
Về phần cứng, ta nối các chân của STM với module Usb-uart như sau

STM32F407 DISCOVERY

D8 - Rx

D9 - Tx

GND
FT232RL FTDI USB TTL

2/12/2020 PELAB - HUST 25


2 Mô phỏng kiểm nghiệm
Sau khi đã kết nối hoàn tất, ta kiểm tra xem cổng COM của STM là cổng
mấy và cổng COM của Module USB-UART là cổng mấy và ghi nhớ lại

STM32F407 DISCOVERY

D8 - Rx

D9 - Tx

GND
FT232RL FTDI USB TTL

2/12/2020 PELAB - HUST 26


2 Mô phỏng kiểm nghiệm

Ở file Ok.slx, bấm Run

Khi đó, hộp thoại PC COM Port selection xuất hiện. Ở đây ta chọn cổng COM là
cổng COM của Module USB

2/12/2020 PELAB - HUST 27


2 Mô phỏng kiểm nghiệm

Ở file Ok.slx, bấm Run

Khi đó, hộp thoại PC COM Port selection xuất hiện. Ở đây ta chọn cổng COM là
cổng COM của Module USB. Sau đó nhấn Continue

2/12/2020 PELAB - HUST 28


2 Mô phỏng kiểm nghiệm

Tiếp đến là chọn VĐK và tốc độ tối đa của nó

Sau đó nhấn Continue

2/12/2020 PELAB - HUST 29


2 Mô phỏng kiểm nghiệm

Chọn UART của VĐK

Sau đó nhấn Continue

2/12/2020 PELAB - HUST 30


2 Mô phỏng kiểm nghiệm

Chọn phần mềm lập trình, heap size 3000

Sau đó nhấn Continue

2/12/2020 PELAB - HUST 31


2 Mô phỏng kiểm nghiệm
Sau khi thực hiện các bước trên, Matlab sẽ tự động cấu hình các ngoại vi cần sử dụng
cho vi điều khiển thông qua phần mềm STM32 CubeMX.
Khi cấu hình xong, cửa sổ CubeMX sẽ xuất hiện:

Ở đây, ta nhấn GENERATE CODE

2/12/2020 PELAB - HUST 32


2 Mô phỏng kiểm nghiệm
Khi đó chương trình của Bộ điều khiển sẽ được tự động sinh ra. Sau khi đã tạo xong
Code, ta mở chương trình biên dịch Code KeilC V5 để biên dịch và nạp Code cho vi điều
khiển STM32F407VGTx.

Ở đây, ta tiến hành Build và Nạp code.

2/12/2020 PELAB - HUST 33


2 Mô phỏng kiểm nghiệm
Sau khi việc nạp Code cho vi điều khiển được hoàn tất, ta quay lại Matlab và
nhấn Continue ở cửa sổ PIL start

Sau khi nhấn Continue xong, PIL bắt đầu chạy.

2/12/2020 PELAB - HUST 34


2 Mô phỏng kiểm nghiệm
Đợi PIL chạy xong, ta so sánh kết quả của BĐK do Matlab thực hiện và BĐK do
STM thực hiện thì thấy giống hệt nhau.

2/12/2020 PELAB - HUST 35


2 Mô phỏng kiểm nghiệm
❖ Ví dụ 2: Khi đối tượng có sự tham gia của van bán dẫn
Đối tượng là bộ ổn áp điện tử sử dụng van IGBT
b
u
SSR Ucs
d

iout
Lf iL

Ucp Uout LOAD


S1 iC
Uin S2
~
Cf

S4

S3

Sơ đồ mạch lực của bộ ổn áp điện tử

Sau khi tiến hành mô phỏng MIL để kiểm chứng bộ điều khiển trên mô phỏng, ta
tiếp tục đi mô phỏng PIL theo các bước như ở ví dụ 1
2/12/2020 PELAB - HUST 36
2 Mô phỏng kiểm nghiệm

Trình tự thực hiện mô phỏng PIL với bộ ổn áp điện tử

2/12/2020 PELAB - HUST 37


2 Mô phỏng kiểm nghiệm

Thiết kế bộ điều khiển chạy ở chế độ PIL

• Hàm truyền của bộ điều khiển trên miền s

1, 252.10−7. 𝑠 2 + 0,0007224. 𝑠 + 0,2146


𝐺𝑐 (𝑠) =
6, 144.10−5. 𝑠 2 + 𝑠

• Hàm truyền bộ điều khiển trên miền z

0,002883. 𝑧 2 − 0,005749. 𝑧 + 0,002866


𝐺𝑐 (𝑧) =
𝑧 2 − 1,984. 𝑧 + 0,9838

2/12/2020 PELAB - HUST 38


2 Mô phỏng kiểm nghiệm

Tiến hành tách mô hình mô phỏng MIL thành các khối riêng biệt
như dưới đây

2/12/2020 PELAB - HUST 39


2 Mô phỏng kiểm nghiệm
Sau đó tiến hành các bước như ở ví dụ 1 ta sẽ được mô phỏng PIL
như sau:

Mô phỏng so sánh BĐK Matlab và BĐK được nhúng trên STM32

2/12/2020 PELAB - HUST 40


2 Mô phỏng kiểm nghiệm
Sau đó tiến hành các bước như ở ví dụ 1 ta sẽ được mô phỏng PIL
như sau:

STM32F407 DISCOVERY

D8 - Rx

D9 - Tx

GND
FT232RL FTDI USB TTL

Sơ đồ ghép nối giữa Matlab với vi điều khiển và module chuyển đổi UART
2/12/2020 PELAB - HUST 41
2 Mô phỏng kiểm nghiệm
Ta được kết quả mô phỏng điện áp Utai như dưới đây:
U(V)
Uoutchuan
Utai PIL
Utai MIL

tqđ
t(s)

Uoutchuan
Δu Utai PIL

Utai MIL

2/12/2020 PELAB - HUST 42


3 Kết luận
• Việc sử dụng PIL trong việc mô phỏng ĐTCS có
đóng góp rất lớn trong việc kiểm tra tính phù hợp
của BĐK khi chạy trên môi trường VĐK.
• Với việc cho ra kết quả giống với BĐk chạy trên
Matlab-Simulink thì ta có thể tự tin khẳng định
rằng, khi áp dụng BĐK này vào thực tế thì kết quả
cũng sẽ cho ra giống như ta mong đợi.

2/12/2020 PELAB - HUST 43


3 Tài liệu tham khảo
1, STM32-MAT/TARGET Hands On
2, J.Mina, Z.Flores, E.Lospez, A. Perez, J-H.Calleja, “Processor-in-the-
Loop and Hardware-in-the-Loop Simulation of Electric Systems based in
FPGA”
3, Dr.Chris Edrington, “Processor-in-the-loop tutorial”
4, Youssef Cheddade, Fatima Errahimi, Es-sbai Najia, “Design and
verification of photovoltaic MPPT algorithm as an automotive-based
embedded software”
5, Bouazza Fekkak, Mohamed Menaa, Bouziane Boussahoua, Djamila
Rekioua, “Processor in the loop test for algorithms designed to control
power electronics converters used in grid‐connected photovoltaic system”
6, MATLAB PIL on STM32, ian alferez,
https://www.youtube.com/watch?v=wTN0xBYHyXs.
7, Nguyễn Văn Đông Hải, “Hướng dẫn cài đặt và lập trình để nhúng
Matlab cho STM32F4 -tập 1”,
Link: https://www.youtube.com/watch?v=de74Z51IOMA&t=338s.
8, STM32F4 Target Demos, http://waijung.aimagin.com.

2/12/2020 PELAB - HUST 44


Trân trọng cảm ơn!

Power Electronics Power Electronics


Laboratory Laboratory
- Hanoi University of Science and Technology

You might also like