Using Matlab, design a PI control system for motor.
Target Performance Specification: 1. Overshoot ≤ 10%, 2. Rise Time ≤ 3s, 3.Settling Time ≤ 15s, 4. Steady State Error ≤ 1%
![Free Body Diagram](https://private-user-images.githubusercontent.com/129606995/347843544-e15611d3-dc2c-4623-ab7d-79909740c14e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQwMjEsIm5iZiI6MTczOTIwMzcyMSwicGF0aCI6Ii8xMjk2MDY5OTUvMzQ3ODQzNTQ0LWUxNTYxMWQzLWRjMmMtNDYyMy1hYjdkLTc5OTA5NzQwYzE0ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxNjA4NDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kMDJjODVkNDZjNzY5ZDQxYzRjYjBjMDExZTU0MDZhODhjMmUxNzI2MTY1NjIyYWM3ZDQ4YTk4ZGVkZjI0MWMzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.RX8TQGP1UdEVmCsG1Yq7Fimf7bZhnIOF-mv9H6lrEAM)
This is the circuit and motor free body diagram. Using this, we will calculate the transfer function of the plant.
After Calculation, the transfer function of the plant is equal to the equation above.
![Matlab Step Response](https://private-user-images.githubusercontent.com/129606995/347871354-e057234a-53cb-4ecb-b08f-1346bc689ab8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQwMjEsIm5iZiI6MTczOTIwMzcyMSwicGF0aCI6Ii8xMjk2MDY5OTUvMzQ3ODcxMzU0LWUwNTcyMzRhLTUzY2ItNGVjYi1iMDhmLTEzNDZiYzY4OWFiOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxNjA4NDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yOTRmNjM1ODEwOTUzZjI2ZDBjMTEwNTVjMWNlZjIxMzkyZjliYmQ2ODE3ZjZlMDkyYTc3ZmQyZjRkODZhODgwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Ql3e8AxqBUCeqmHE94LV0opubIdqOUk_6B7bmEvFDPo)
![Simulink Step Response](https://private-user-images.githubusercontent.com/129606995/347871583-bb9578fd-cb64-40b2-8915-f3c754cbd17a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQwMjEsIm5iZiI6MTczOTIwMzcyMSwicGF0aCI6Ii8xMjk2MDY5OTUvMzQ3ODcxNTgzLWJiOTU3OGZkLWNiNjQtNDBiMi04OTE1LWYzYzc1NGNiZDE3YS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxNjA4NDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNjViMWZjNzY5MjJlYmMwNzM4ZjA3ZGY1ZTVhNmRjNmIxZDJkYmNlMzRmMzc0ZjcwODQyYmQ0NmY0NzMxNTk2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ejTGB6jtAvdKBNyDWn-T-YYXTDDSXPYgP8uWK8KtIM0)
Steady State Error exists. Also, ziegler nichols method cannot be applied to this plant.
Using Matlab, we get the following Root Locus;
![Root Locus](https://private-user-images.githubusercontent.com/129606995/347866842-a56e248b-fa4a-42a5-b525-c8e73fd8b28e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQwMjEsIm5iZiI6MTczOTIwMzcyMSwicGF0aCI6Ii8xMjk2MDY5OTUvMzQ3ODY2ODQyLWE1NmUyNDhiLWZhNGEtNDJhNS1iNTI1LWM4ZTczZmQ4YjI4ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxNjA4NDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mM2VlNTQ0Y2YxNTlkZjY4OWJiZjZiODQ3M2VhYTQyMjAxZjI5ODA4MzY2MjdlMjRhMTBlODVkMTEzMDVlMDhkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.dvgGsGTyzGdzSRmgOrMgtxCQr50pX3Ina77XtfbLqPs)
When Kp=Ki
![Root Locus](https://private-user-images.githubusercontent.com/129606995/347867017-e15f22bd-4d42-4a0c-8c6e-1d5ca27a5414.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQwMjEsIm5iZiI6MTczOTIwMzcyMSwicGF0aCI6Ii8xMjk2MDY5OTUvMzQ3ODY3MDE3LWUxNWYyMmJkLTRkNDItNGEwYy04YzZlLTFkNWNhMjdhNTQxNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxNjA4NDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lYTU3YTk4YjY3NDdmN2YyNTgxYzYzOTY3Yjc3MWNiMTg0MDgxYzM5YmE5OTg0YjQ4MTc3NTM5N2ZiOTNmMTljJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.eLcZrUJm-BJRlkzs_F7bmC_zyDzzH3KuOaQMB3P4nro)
When Kp=10Ki The dominant poles are located near the origin.
Using Matlab StepInfo(), we can calculate the overshoot, rise time, etc w.r.t Step Reference.
![StepInfo](https://private-user-images.githubusercontent.com/129606995/347868820-1cbfd252-3617-4511-b5ab-6e8be98e1566.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQwMjEsIm5iZiI6MTczOTIwMzcyMSwicGF0aCI6Ii8xMjk2MDY5OTUvMzQ3ODY4ODIwLTFjYmZkMjUyLTM2MTctNDUxMS1iNWFiLTZlOGJlOThlMTU2Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxNjA4NDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yNGQzM2VkNWFiOTk0ZDNkYjBhNjg4OWFmMmNkNWRhNmY5Y2QxOTlhMGIwYjMxMTE2MmM4NDNkZWFiNmFkMTk2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.pCUdKVKGpPer0L_CMBdf2GnheIiEHSDiyqCoE8_L1jw)
When Kp=1000, Ki=100, the feed back control showed the best performance.
Correspondingly, Kp=1000, Ki=100 showed the best performance at tracking Step reference.
System Model with Disturbance:
Sine Disturbance:
The following is the signal defined which will be a reference.
The following is the system model.
Result(Left) and Error(Right):
The error is very minimal.