1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Step2247 [10]
3 years ago
10

Design a PI controller to improve the steady-state error. The system should operate with a damping ratio of 0.8. Compute the ove

rall value of gain for the PI system and state the transfer function for the controller in the form G_c(s) = K_PI(s + a)/s.
Engineering
1 answer:
blondinia [14]3 years ago
5 0

Answer:

The MATLAB Code for this PI Controller will be:

Kp = 350;

Ki = 300;

Kd = 50;

C = pid(Kp,Ki,Kd)

T = feedback(C*P,1);

t = 0:0.01:2;

step(T,t)

Explanation:

When you are designing a PID controller for a given system, follow the steps shown below to obtain a desired response.

Obtain an open-loop response and determine what needs to be improved

Add a proportional control to improve the rise time

Add a derivative control to reduce the overshoot

Add an integral control to reduce the steady-state error

Adjust each of the gains $K_p$, $K_i$, and $K_d$ until you obtain a desired overall response.

The further explanation is attached in the Word File.

Download docx
You might be interested in
1. The system must be able to manage multiple students (max of 15) and their grades for assignments from three different assignm
mr_godi [17]

Answer:

#include<iostream>

#include<string.h>

using namespace std;

class gradebook;

class student

{

friend class gradebook;

char name[20]; // std name

int homework_grades[6], quiz_grades[6], exam_grades[4]; //grades array

float homework_avg, quiz_avg, exam_avg, final_avg;

};

class gradebook

{

student list[16];

public:

char gb_name[20]; // gradebook name

int max, total;

// Constructor

gradebook()

{

strcpy(gb_name,"noname");

max = 5;

total = 0;

for(int i=1;i<=15;i++)

{

strcpy(list[i].name,"noname");

for(int j=1;j<=5;j++)

{

list[i].homework_grades[j] = -1;

list[i].quiz_grades[j] = -1;

}

list[i].exam_grades[1] = list[i].exam_grades[2] = list[i].exam_grades[3] = -1;

}

}

// Member functions

void display_std_name();

void display_grades(int, int);

int add_std(char *new_name);

int remove(int);

//int ch_grade(int, int);

};

// Define all functions

// Remove a student from list and adjust remaining

int gradebook::remove(int std_id)

{

if(total==0 || std_id>total || std_id<=0)

return 0;

if(std_id==total)

{

cout<<"\n“"<<list[std_id].name<<"” has been successfully removed! (New class size: 2)";

strcpy(list[total--].name,"noname");

return 1;

}

cout<<"\n“"<<list[std_id].name<<"” has been successfully removed! (New class size: 2)";

for(int i=std_id; i<total; i++)

{

list[i]=list[i+1];

}

total--;

return 1;

}

// Add student to gradebook

int gradebook::add_std(char *new_name)

{

if(total<15)

{

strcpy(list[++total].name, new_name);

return 1;

}

return 0;

}

// Display student name list

void gradebook::display_std_name()

{

for(int i=1;i<=total;i++)

{

cout<<"\n"<<i<<" "<<list[i].name;

}

}

/* Display grades of students

// (grade_id, student_number_in_list)

homework(1), quiz(2), exam(3)

*/

void gradebook::display_grades(int g_id, int std_id)

{

int i;

if(std_id<=total)

{

if(g_id==1)

{

for(i=1;i<6;i++)

{

cout<<"\n"<<i<<". ";

if(list[std_id].homework_grades[i]==-1) cout<<"<ungraded>";

}

}

else if(g_id==2)

{

for(i=1;i<6;i++)

{

cout<<"\n"<<i<<". ";

if(list[std_id].quiz_grades[i]==-1) cout<<"<ungraded>";

}

}

else if(g_id==3)

{

for(i=1;i<4;i++)

{

cout<<"\n"<<i<<". ";

if(list[std_id].exam_grades[i]==-1) cout<<"<ungraded>";

}

}

}

else

cout<<"\nNo such std exists";

}

/****************************** MAIN ****************************/

int main()

{

int main_choice, grade_choice, std_id, new_grade;

char g_name[20], s_name[20];

float a,b,c;

gradebook g;

do

{

cout<<"\n\n-=| MAIN MENU |=-";

cout<<"\n1. Add a student\n2. Remove a student\n3. Change a student’s grade\n4. Change group weights\n5. Change the gradebook name\n6. Display class averages\n7. Display full report\n0. QUIT\n";

cout<<"\nEnter an action: ";

cin>>main_choice;

switch(main_choice)

{

case 0:

break;

case 1:

cout<<"\n-=| ADDING STUDENT |=-";

cout<<"\nPlease enter the student’s name: ";

cin>>s_name;

if(g.add_std(s_name))

cout<<"\n"<<s_name<<" was successfully added to the gradebook!";

else

cout<<"\nStudents cannot be added because the gradebook is full!";

break;

case 2:

cout<<"\n-=| REMOVING STUDENT |=-";

if(g.total!=0)

{

g.display_std_name();

cout<<"\n Enter student to remove: ";

cin>>std_id;

if(!g.remove(std_id))

cout<<"\nCannot remove students";

}

else

cout<<"\nStudents cannot be added because the gradebook is full!";

break;

case 3:

cout<<"\n-=| CHANGING GRADE |=-\n1. Change a homework grade\n2. Change a quiz grade\n3. Change an exam grade";

cout<<"\nWhat type of grade would you like to change: ";

cin>>grade_choice;

g.display_std_name();

cout<<"\nWhich student’s grade would you like to change? ";

cin>>std_id;

//ch_grade(grade_choice, std_id);

g.display_grades(grade_choice, std_id);

break;

/*

case 4:

cout<<"\n-=| CHANGING WEIGHTS |=-";

while(1)

{

cout<<"\nEnter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0):";

cin>>a>>b>>c;

if(a+b+c==1.00)

break;

else

cout<<"\n Weights do not add up to 1.0, try again...";

}

break;

case 5:

cout<<"\n-=| CHANGING NAME |=-\nPlease enter the new name for the gradebook: ";

cin>>g_name;

cout<<"\n Gradebook name changed from “ ” to "<<g_name;

break;

case 6:

cout<<"\n-=| CLASS AVERAGES |=-";

cout<<"\nHomework average of class: ";

cout<<"\nQuiz average of class: ";

cout<<"\nExam average of class: ";

cout<<"\nFinal average of class: ";

break;

case 7:

break;

*/

default:

cout<<"\n\nInvalid input\n\n";

}

}while(main_choice!=0);

return 0;

}

Explanation:

6 0
3 years ago
The first thing you should do is develop a ____________________ to determine what vehicle you can afford.
swat32

The first thing you should do is develop a <u>budget</u> to determine what vehicle you can afford.

<h3>What is an automobile?</h3>

An automobile is also referred to as a vehicle, car or motorcar and it can be defined as a four-wheeled vehicle that is designed and developed to be propelled by an internal-combustion (gasoline) engine, especially for the purpose of transportation from one location to another.

<h3>What is a budget?</h3>

A budget can be defined as a financial plan that is typically used for the estimation of revenue and expenditures of an individual, business organization or government for a specified period of time, often one year.

In this context, we can reasonably infer and logically deduce that the first thing anyone should do is to develop a <u>budget</u> in order to determine what vehicle they can afford.

Read more on budget here: brainly.com/question/13964173

#SPJ1

7 0
1 year ago
A fair die is thrown, What is the probability gained if you are told that 4 will
Semmy [17]

Answer:

1/6

Explanation:

A dice has 6 sides, the probability of 4 appearing is 1/6.

7 0
3 years ago
11. Technician A says that gasoline storage containers should be painted red. Technician B says that any metal container may be
QveST [7]

Explanation:

1. Both a and b only

2. A only

3. B only

4.Neither a or b

6 0
3 years ago
Need the answer now- English<br>kailangan ang sagot ngayon-tagalog<br><br>mag practice tayo!<br>​
pychu [463]

Answer:

heirjfurifbhdnrgskeviebreo

7 0
3 years ago
Other questions:
  • The council members of a small town have decided that an earth levee should be rebuilt and strengthen to protect against future
    10·1 answer
  • The boundary layer forms the thin region near a surface where the flow is affected by frictional forces. How does this layer cha
    14·1 answer
  • What 2 disciplines comprise systems engineering?
    15·1 answer
  • Describe how you could achieve a high quality finish on your work​
    9·2 answers
  • Tech A says that over time a grease seal can wear a groove in the sealing surface of the axle or shaft. Tech B says that grease
    6·2 answers
  • Assume that a chocolate bar consists of n squares ar- ranged in a rectangular pattern. The entire bar, or any smaller rectangula
    8·1 answer
  • Discuss with your neighbor your brain as a computer.
    14·1 answer
  • Describe a me <br><br> best answer gets brainliest
    9·2 answers
  • What is noise definition in physics<br><br>​
    15·1 answer
  • The force of impact is
    8·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!