As an affiliate, we may earn a commission from qualifying purchases. We get commissions for purchases made through links on this website from Amazon.
The project aims to achieve FACTS (Flexible AC transmission system) using TSR (Thyristor Switch Reactance). This is done when the receiving end voltage is low while charging the transmission line. In the presence of a small load, a small current flows through the transmission line there so shunt capacitance becomes more effective. Due to the Ferranti Effect, the voltage at receiving end increases two times more than the voltage at sending end.
Every electrical apparatus can handle a certain voltage beyond that particular voltage level it will burn out. The increase in receiving end voltage due to the Ferranti effect can damage the electrical equipment. So, to control it we used a shunt reactor at the receiving end.
Working and Explanation(
FACTS using TSR requires an operational amplifier that will generate lead time between zero voltage pulse and zero current pulse. This lead time is given to two interrupt pins of Arduino Uno. The Arduino program then initiates the shunt reactors for compensating for the voltage. The SCRs are arranged in series with Arduino Uno through optical isolation and are used for switching reactors.
The following components are used in Arduino based Ferranti effect overcome using a thyristor
- Thyristor Switched Reactor
- Potential Transformer
- Current Transformer
- ZMCT103C AC Sensor
- Voltage regulator
- Arduino Uno
- Zero-Crossing Detector
- PCB and Breadboards
- Cables and Connectors
Circuit and Results (Flexible Ac Transmitter System Using TSR)
The image below is a simulation of Facts using TSR
Coding (Flexible Ac Transmitter System Using TSR)
// include the library code:
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int lead = 3;
int triac = A4;
int button = A1;
// set up the LCD’s number of columns and rows:
// Print a message to the LCD.
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
int duration = pulseIn(lead,HIGH);
if(duration < 2000)
//lcd.print(” 1 “);
// print the number of seconds since reset:
int read_button = digitalRead(button);
if(read_button == HIGH)
lcd.print(” Normal Mode”);
we have tried to cover every aspect of “Flexible Ac Transmitter System Using TSR”. If you have any questions or need help in the project please do ask us in the comment section below.