control-system/Assignment 6 - Tuning PID/README.md
2022-09-22 19:55:41 +07:00

82 lines
2.0 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/191751929-89ff2f77-7e1a-45a4-b535-f8f3a768ecc6.png)
### Step Response
![step](https://user-images.githubusercontent.com/77116615/191751960-eee905b9-e450-41de-8824-f2157e431238.png)
### Ramp Response
![ramp](https://user-images.githubusercontent.com/77116615/191752006-63e2fe9b-69ad-48eb-881d-7adb2b630819.png)
### Impulse Response
![impulse](https://user-images.githubusercontent.com/77116615/191752036-5e05bfd7-9448-437e-ada6-16d9744b1b89.png)
### Acceleration Response
![acceleration](https://user-images.githubusercontent.com/77116615/191752086-4f392de0-202b-429c-adc9-0935d10275b5.png)
## Results
Elapsed time is 18.701024 seconds.
### 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.3161
Ki = 74.1078
Kd = 2.4810e+03
```
RiseTime: 9.5287e-04
SettlingTime: 0.0012
SettlingMin: 0.9949
SettlingMax: 0.9976
Overshoot: 0
Undershoot: 0
Peak: 0.9976
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)