mirror of
https://github.com/gabrielkheisa/control-system.git
synced 2024-11-24 04:13:21 +07:00
71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
# Improved Particle Swarm Optimization on PID Tuning
|
|
This dir is belong to Control System class contains with Tuning PID with ZN1 and PSO on motor system.
|
|
|
|
## Software
|
|
This program ran in Matlab
|
|
|
|
## Variables
|
|
`s = tf('s');` defines `s` as 'frequency domain' for transfer function and will be used further.
|
|
```
|
|
J = 0.01;
|
|
b = 0.1;
|
|
K = 0.01;
|
|
R = 1;
|
|
L = 0.5;
|
|
```
|
|
Those variable comes from BLDC control system.
|
|
```
|
|
c1=2; c2=2; w_max = 1; w_min = 0.1; particles=50; iterations=100;
|
|
var=3; e_max = 1; e_min=0.1;
|
|
|
|
% Search limit
|
|
lim_min = 0;
|
|
lim_max = 2500;
|
|
```
|
|
Variable above is the constant for PSO tuning.
|
|
|
|
|
|
## Testing
|
|
### ITAE Cost Function
|
|
![itae](https://user-images.githubusercontent.com/77116615/191710404-8b5a9d09-9362-4ace-9185-530930ad2abd.png)
|
|
|
|
### Step Response
|
|
![Screenshot 2022-09-22 162423](https://user-images.githubusercontent.com/77116615/191710444-cfb6b03f-4e3c-4651-b775-1ae2c7cd17d0.png)
|
|
|
|
## Results
|
|
### Before PSO-PID
|
|
```
|
|
RiseTime: 1.0161
|
|
SettlingTime: 1.8471
|
|
SettlingMin: 0.0819
|
|
SettlingMax: 0.0907
|
|
Overshoot: 0
|
|
Undershoot: 0
|
|
Peak: 0.0907
|
|
PeakTime: 3.0168
|
|
SSError: 0.9095
|
|
```
|
|
### After PSO-PID
|
|
Kp = 853.2738
|
|
|
|
Ki = 73.5218
|
|
|
|
Kd = 2500
|
|
```
|
|
RiseTime: 9.6110e-04
|
|
SettlingTime: 0.0012
|
|
SettlingMin: 0.9952
|
|
SettlingMax: 0.9977
|
|
Overshoot: 0
|
|
Undershoot: 0
|
|
Peak: 0.9977
|
|
PeakTime: 0.0036
|
|
SSError: 0.0024
|
|
```
|
|
|
|
### Notes
|
|
Contact nanda.r.d@mail.ugm.ac.id for more information
|
|
### Links
|
|
You can access the source code here
|
|
[github.com/nandard/control-system.git](https://github.com/nandard/control-system.git)
|