1. The document discusses Nyquist stability criteria and polar plots.
2. Nyquist stability criteria uses Cauchy's argument principle to relate the open-loop transfer function to the poles of the closed-loop characteristic equation.
3. For a system to be stable, the number of counter-clockwise encirclements of the Nyquist plot around the point -1 must equal the number of open-loop poles in the right half plane.
This document summarizes a research project on process identification using relay feedback tests. The project aims to identify low-order models like FOPDT and SOPDT from relay feedback data to enable performance assessment and controller tuning. A new identification method is proposed that uses neural networks to estimate the apparent deadtime from steady-state cycles. This deadtime and other parameters allow classification of the process model and parameter estimation for assessment and auto-tuning.
This document describes a model-based autotuning system that uses an artificial neural network (ANN) and relay feedback test. The system estimates process parameters like gain, ultimate gain, ultimate frequency, and apparent deadtime from relay feedback test data. It then classifies the process dynamics and tunes PI/PID controllers based on either a first-order plus deadtime or second-order plus deadtime process model. The tuning rules are derived from these models to provide superior control performance compared to Ziegler-Nichols tuning.
This document contains lecture notes on signals, systems and transforms for a course titled EE 3054: Signals, Systems and Transforms. It covers topics in discrete-time and continuous-time signals and systems, including properties of signals and systems, convolution, Z-transforms, Laplace transforms, difference/differential equations, complex poles, frequency responses, Fourier transforms, and sampling theory. The document provides examples and homework problems for students to work through related to each major topic.
The document compares different schemes for windup protection in control systems. It tests PI and PID controllers using five different processes in simulation. Four anti-windup methods are evaluated: the back-calculation method, Dow method, Foxboro method, and Blevins method. The document finds that no single method performs best for all cases. Controller and process dynamics determine the most suitable method. Additional parameters are required for some methods. The evaluation provides insights into the advantages and disadvantages of each method for different processes and disturbances.
This document discusses different methods for designing discrete equivalents of continuous transfer functions for use in digital filters and control systems. It presents three main approaches: 1) numerical integration using rectangular, backward, and trapezoid (Tustin's method) rules to map the continuous transfer function to a discrete one; 2) pole-zero mapping to understand how integration rules map the stable region of the s-plane to the z-plane; 3) prewarping the continuous transfer function before applying Tustin's method in order to minimize frequency distortion caused by the mapping. The performance of these methods is demonstrated through an example of designing discrete equivalents of a Butterworth filter.
This document provides a list of errata for the textbook "Digital Signal Processing: A Computer-Based Approach" by Sanjit K. Mitra. It contains 22 corrections for Chapter 2, ranging from fixing equation numbers and variables to correcting program code. Similar corrections are provided for Chapters 3 through 7, with over 100 total errata listed to improve the accuracy of the textbook.
The document discusses the design of a PSO-based optimal/tunable PID fuzzy logic controller using an FPGA. It aims to reduce the complexity and improve the processing speed of PID fuzzy logic controllers. The proposed controller design includes a tuning gains block that allows for PSO optimization of scaling gains. Two versions are designed - an 8-bit and 6-bit PIDFC. The PSO algorithm is used to tune controller parameters to minimize error and find optimal gains. Block and structure diagrams of the PIDFC integrated into a feedback control system are presented.
This document presents a method for automatically tuning PID controllers using particle swarm optimization (PSO) algorithm. It describes PID controllers and common tuning methods like Ziegler-Nichols. It then provides an overview of PSO algorithm and how it can be applied to optimize PID parameters to minimize a performance index for a DC motor model. Simulation results show the PSO-tuned PID controller provides improved rise time, settling time and overshoot compared to Ziegler-Nichols tuning.
This document proposes a two-level optimization method for tuning PID controllers to account for nonlinear system behavior. The first level uses classical tuning guidelines to determine bounds on PID parameters. The second level solves an optimization problem to determine PID parameters that minimize the difference between the closed-loop response of a designed nonlinear controller and the PID controller, subject to constraints based on the first level bounds. The method is demonstrated on a nonlinear chemical reactor example. In summary, the method tunes PID controllers to better emulate the performance of a designed nonlinear controller while respecting constraints from classical linear tuning methods.
This document lists various engineering courses taught by Kevin D. Donohue and provides links to course materials including syllabi, lecture notes, assignments, and supplemental files. Courses cover topics in circuits, signals and systems, electronics laboratory, and communications and signal processing. For each course, the instructor has made available resources to aid student learning such as notes, examples, projects and Matlab/Labview files.
1. The document discusses Nyquist stability criteria and polar plots.
2. Nyquist stability criteria uses Cauchy's argument principle to relate the open-loop transfer function to the poles of the closed-loop characteristic equation.
3. For a system to be stable, the number of counter-clockwise encirclements of the Nyquist plot around the point -1 must equal the number of open-loop poles in the right half plane.
This document summarizes a research project on process identification using relay feedback tests. The project aims to identify low-order models like FOPDT and SOPDT from relay feedback data to enable performance assessment and controller tuning. A new identification method is proposed that uses neural networks to estimate the apparent deadtime from steady-state cycles. This deadtime and other parameters allow classification of the process model and parameter estimation for assessment and auto-tuning.
This document describes a model-based autotuning system that uses an artificial neural network (ANN) and relay feedback test. The system estimates process parameters like gain, ultimate gain, ultimate frequency, and apparent deadtime from relay feedback test data. It then classifies the process dynamics and tunes PI/PID controllers based on either a first-order plus deadtime or second-order plus deadtime process model. The tuning rules are derived from these models to provide superior control performance compared to Ziegler-Nichols tuning.
This document contains lecture notes on signals, systems and transforms for a course titled EE 3054: Signals, Systems and Transforms. It covers topics in discrete-time and continuous-time signals and systems, including properties of signals and systems, convolution, Z-transforms, Laplace transforms, difference/differential equations, complex poles, frequency responses, Fourier transforms, and sampling theory. The document provides examples and homework problems for students to work through related to each major topic.
The document compares different schemes for windup protection in control systems. It tests PI and PID controllers using five different processes in simulation. Four anti-windup methods are evaluated: the back-calculation method, Dow method, Foxboro method, and Blevins method. The document finds that no single method performs best for all cases. Controller and process dynamics determine the most suitable method. Additional parameters are required for some methods. The evaluation provides insights into the advantages and disadvantages of each method for different processes and disturbances.
This document discusses different methods for designing discrete equivalents of continuous transfer functions for use in digital filters and control systems. It presents three main approaches: 1) numerical integration using rectangular, backward, and trapezoid (Tustin's method) rules to map the continuous transfer function to a discrete one; 2) pole-zero mapping to understand how integration rules map the stable region of the s-plane to the z-plane; 3) prewarping the continuous transfer function before applying Tustin's method in order to minimize frequency distortion caused by the mapping. The performance of these methods is demonstrated through an example of designing discrete equivalents of a Butterworth filter.
This document provides a list of errata for the textbook "Digital Signal Processing: A Computer-Based Approach" by Sanjit K. Mitra. It contains 22 corrections for Chapter 2, ranging from fixing equation numbers and variables to correcting program code. Similar corrections are provided for Chapters 3 through 7, with over 100 total errata listed to improve the accuracy of the textbook.
The document discusses the design of a PSO-based optimal/tunable PID fuzzy logic controller using an FPGA. It aims to reduce the complexity and improve the processing speed of PID fuzzy logic controllers. The proposed controller design includes a tuning gains block that allows for PSO optimization of scaling gains. Two versions are designed - an 8-bit and 6-bit PIDFC. The PSO algorithm is used to tune controller parameters to minimize error and find optimal gains. Block and structure diagrams of the PIDFC integrated into a feedback control system are presented.
This document presents a method for automatically tuning PID controllers using particle swarm optimization (PSO) algorithm. It describes PID controllers and common tuning methods like Ziegler-Nichols. It then provides an overview of PSO algorithm and how it can be applied to optimize PID parameters to minimize a performance index for a DC motor model. Simulation results show the PSO-tuned PID controller provides improved rise time, settling time and overshoot compared to Ziegler-Nichols tuning.
This document proposes a two-level optimization method for tuning PID controllers to account for nonlinear system behavior. The first level uses classical tuning guidelines to determine bounds on PID parameters. The second level solves an optimization problem to determine PID parameters that minimize the difference between the closed-loop response of a designed nonlinear controller and the PID controller, subject to constraints based on the first level bounds. The method is demonstrated on a nonlinear chemical reactor example. In summary, the method tunes PID controllers to better emulate the performance of a designed nonlinear controller while respecting constraints from classical linear tuning methods.
This document lists various engineering courses taught by Kevin D. Donohue and provides links to course materials including syllabi, lecture notes, assignments, and supplemental files. Courses cover topics in circuits, signals and systems, electronics laboratory, and communications and signal processing. For each course, the instructor has made available resources to aid student learning such as notes, examples, projects and Matlab/Labview files.
1. ALGORITMI I STRUKTURE PODATAKA - AUDITORNE VJE貼BE 2005./06. 1
1. Auditorne vje転be
Raspored nastave
Izvodit e se 3 tjedna po 1h kao auditorne za cijelu grupu, u tjednu iza toga grupa se dijeli na
2 podgrupe i jedna podgrupa ima po 2h laboratorijskih vje転bi u tom tjednu, a druga u
sljedeemu. Cijeli se ciklus ponavlja 3 puta.
x 3
Pokazivai
Zadatak:
to e se ispisati izvoenjem sljedeeg programskog odsjeka?
int a=4;
int *b;
b=&a;
*b=8;
printf("%d %d",a,*b);
Rje邸enje:
int a=4;
/* prilikom izvoenja programa, simbolika oznaka a dobiva
odreenu adresu npr. 2000 */
int *b;
/* pokaziva b pokazuje na adresu na kojoj se nalazi cijeli
broj
pretpostavimo da je b oznaka za adresu 2004. */
Adresa u 2000 2004
1. tjedan 2. tjedan 3. tjedan 4. tjedan 5. tjedan
A
1h
Auditorne
A
1h
Auditorne
A
1h
Auditorne
A C E G I K
1h
Priprema + Blitz
B D F H J L
2h
Priprema + Blitz
2. ALGORITMI I STRUKTURE PODATAKA - AUDITORNE VJE貼BE 2005./06. 2
memoriji: (a) (b)
Sadr転aj
memorije:
4 ?
b=&a; // inicijalizacija
Adresa u
memoriji:
2000 2004
Sadr転aj
memorije:
4 2000
*b=8;
Adresa u
memoriji:
2000 2004
Sadr転aj
memorije:
8 2000
Ispisati e se 8 8, jer se vrijednost na koju pokazuje varijabla b nalazi na istoj adresi
(b=&a), gdje i vrijednost varijable a.
Pitanje:
to bi se dogodilo da izostavimo liniju b=&a; ?
Odgovor:
Budui da pokaziva b prije pridru転ivanja vrijednosti pokazuje na nedefiniranu adresu, mo転e
doi do poku邸aja upisivanja vrijednosti 8 na adresu koja je rezervirana za pohranu drugih
varijabli ili koda, 邸to mo転e izazvati neoekivano pona邸anje ili pogre邸ku pri izvoenju
programa zbog neovla邸tenog pristupa dijelu memorije. Stoga je uvijek potrebno inicijalizirati
vrijednost pokazivaa prije upotrebe.
Zadatak:
Napisati funkciju koja e iz zadanog JMBG-a vratiti datum roenja u obliku DD.MM.GG.
Rje邸enje:
char * datum(char *jmbg) {
int d,m,g; // lokalne varijable vrijede samo unutar
funkcije
char *p; //pokaziva je deklariran, ali nije inicijaliziran!
char c;
3. ALGORITMI I STRUKTURE PODATAKA - AUDITORNE VJE貼BE 2005./06. 3
sscanf(jmbg,"%2d%2d%c%2d",&d,&m,&c,&g);
//JMBG ima oblik DDMMYYYXXXXXX
p=(char *) malloc(9 * sizeof(char));
/* pokaziva je inicijaliziran i naredbom malloc zauzeta je
memorija potrebna za pohranu datuma u formatu DD.MM.GG */
sprintf(p,"%02d.%02d.%02d",d,m,g);
// datum se sprema na adresu na koju pokazuje pokaziva p
return p;
}
Polja
Zadatak:
Napisati funkciju koja rauna zbroj pozitivnih elemenata dvodimenzionalnog polja, te
prikazati poziv funkcije iz glavnog programa.
float zbroj_poz(int brred, int brstup, int maxstup, float *p )
/* brred, brstup, int maxstup ulazni parametri funkcije;
njihova eventualna promjena u funkciji nee biti sauvana
nakon povratka u glavni program. Budui da se polje uvijek
prenosi u funkciju kao pokaziva, vrijednost lanova polja
mogue je u funkciji mijenjati */
{
int i,j;
float suma;
suma = 0.0;
for( i=0; i<brred; i++ )
for( j=0; j<brstup; j++ )
if (p[i*maxstup + j]>0) suma += p[i*maxstup + j];
/* mo転e i suma += *(p + i*maxstup + j)
nije dozvoljeno p(i,j), p[i][j] i slino vidi
obja邸njenje */
4. ALGORITMI I STRUKTURE PODATAKA - AUDITORNE VJE貼BE 2005./06. 4
return suma;
}
Obja邸njenje: Dvodimenzionalno polje se u funkciju prenosi kao jednodimenzionalno.
Pohranjeno je po retcima, pa se elementu p(i,j) pristupa kao p[i*maxstup+j].
Glavni program:
#define MAXRED 100
#define MAXSTUP 20
void main() {
int red, stup;
float zbroj, mat[MAXRED][MAXSTUP];
/* ovdje slijedi postavljanje stvarnog broja redova i stupaca
(red<=MAXRED, stup<=MAXSTUP, punjenje polja */
zbroj = zbroj_poz(red, stup, MAXSTUP,(float *) mat); // poziv
f-e
}
Zapisi i Datoteke
Zadatak:
Zadana je direktna datoteka studenti.dat i struktura zapisa (vidi rje邸enje). Napisati
funkciju koja dohvaa podatke o studentu sa zadanim matinim brojem, te ga potom bri邸e iz
datoteke. ifra studenta odgovara rednom broju zapisa. Prazan zapis sadr転i 邸ifru jednaku
nuli.
Rje邸enje:
struct zapis {
int mbr;
char ime_prezime[40];
char spol;
};
struct zapis dohvati_brisi(int mbr) { // funkcija vraa
dohvaeni zapis
5. ALGORITMI I STRUKTURE PODATAKA - AUDITORNE VJE貼BE 2005./06. 5
FILE *f;
struct zapis z; // z je varijabla tipa 'struct zapis'
struct zapis *z1; // z1 je pokaziva na strukturu
if ((f=fopen("studenti.dat","r+b"))==NULL) exit(1);
/* ukoliko nije zadano ime datoteke, pretpostaviti da je ona
ve otvorena u glavnom programu, te se funkciji predaje
pokaziva FILE *f */
fseek(f,(mbr-1)*sizeof(zapis),SEEK_SET)
/* direktan pristup zapisu jer je zadano da 邸ifra odgovara
rednom broju zapisa */
fread(&z,sizeof(z),1,f);
z1=&z; // inicijalizacija pokazivaa z1
z1->mbr=0; // isto 邸to i (*z1).mbr=0
/* zapisi se iz direktne datoteke ne bri邸u fiziki. U
zadatku je zadano da vrijednost 0 oznaava prazan zapis */
fseek(f,-sizeof(zapis),SEEK_CUR);
/* nakon itanja potrebno se vratiti na poetak zapisa, da
bi se zapis upisao na isto mjesto */
fwrite(z1,sizeof(*z1),1,f);
fclose(f);
return z;
}
6. ALGORITMI I STRUKTURE PODATAKA - AUDITORNE VJE貼BE 2005./06. 5
FILE *f;
struct zapis z; // z je varijabla tipa 'struct zapis'
struct zapis *z1; // z1 je pokaziva na strukturu
if ((f=fopen("studenti.dat","r+b"))==NULL) exit(1);
/* ukoliko nije zadano ime datoteke, pretpostaviti da je ona
ve otvorena u glavnom programu, te se funkciji predaje
pokaziva FILE *f */
fseek(f,(mbr-1)*sizeof(zapis),SEEK_SET)
/* direktan pristup zapisu jer je zadano da 邸ifra odgovara
rednom broju zapisa */
fread(&z,sizeof(z),1,f);
z1=&z; // inicijalizacija pokazivaa z1
z1->mbr=0; // isto 邸to i (*z1).mbr=0
/* zapisi se iz direktne datoteke ne bri邸u fiziki. U
zadatku je zadano da vrijednost 0 oznaava prazan zapis */
fseek(f,-sizeof(zapis),SEEK_CUR);
/* nakon itanja potrebno se vratiti na poetak zapisa, da
bi se zapis upisao na isto mjesto */
fwrite(z1,sizeof(*z1),1,f);
fclose(f);
return z;
}