Однофазний двопівперіодний випрямляч з середньою точкою

Аналіз перехідних і усталених режимів роботи чисельними методами нелінійних електромаґнетних пристроїв систем автоматичного керування. Метод Рунге-Кутта. Схема заміщення маґнетного кола. Системи живлення пристроїв автоматики та обчислювальної технiки.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 14.04.2014
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Міністерство освіти і науки України

Національний університет "Львівська політехніка"

Інститут комп'ютерних технологій, автоматики та метрології

Кафедра КСА

КУРСОВА РОБОТА

з навчальної дисципліни: “Моделювання процесів та елементів систем керування”

Тема 7. Однофазний двопівперіодний випрямляч з середньою точкою

Виконав:

Гнидин Н.М.

Львів - 2012

Зміст

1. Технічне завдання

2. Розрахунок пристрою

2.1 Принцип роботи пристрою

2.2 Схеми пристрою

2.2.1 Принципова електрична схема

2.2.2 Схема заміщення контуру 1

2.2.3 Схема заміщення контурів 2 та 3

2.2.3.1 Д1 - відкритий, Д2 - закритий

2.2.3.2 Д1 - закритий, Д2 - відкритий

2.2.4 Схема заміщення маґнетного кола

2.3 Рівняння стану системи

2.3.1 Д1 - відкритий, Д2 - закритий

2.3.2 Д1 - закритий, Д2 - відкритий

2.3.3 Узагальнена кінцева система рівнянь

3. Аналіз пристрою

3.1 Методи

3.1.1 Метод Рунге-Кутта

3.1.2 Екстраполяційний е-алґоритм

3.2 Алґоритми

3.2.1 Розрахунок перехідного процесу

3.2.2 Розрахунок усталеного режиму

4. Програма

4.1 Текст програми

4.1.1 Header

4.1.2 СPP

4.2 Результати роботи

4.2.1 Графічний інтерфейс

4.2.1.1 Перехідний процес

4.2.1.2 Усталений режим

4.2.2 Графіки

4.2.2.1 Перехідний процес

4.2.2.2 Усталений режим

Висновки

1. Технічне завдання

1. Навести принципову схему пристрою і описати його роботу.

2. Записати рівняння стану електричного і маґнетного кіл пристрою.

3. Звести отримані рівняння до нормальної форми Коші, записавши їх відносно робочих потокозчеплень, струмів і напруг на конденсаторах.

4. Описати метод Рунге-Кутта четвертого порядку точності з постійним кроком інтегрування.

5. Описати ітераційний метод аналізу усталених режимів:

а) екстраполяційний е-алґоритм

б) метод середніх значень

в) метод Ньютона.

6. Скласти алгоритм розрахунку перехідних і усталених режимів роботи пристрою.

7. Скласти програму розрахунку перехідних і усталених режимів роботи пристрою алгоритмічною мовою С++.

8. Виконати розрахунок 5 періодів перехідного процесу, навести графічні результати.

9. Виконати розрахунок усталеного режиму, навести графічні результати.

10. За отриманими результатами зробити висновки.

Параметри системи:

Варіант

б1, Гн-1

б21, Гн-1

б22, Гн-1

r1, Ом

r21, Ом

r22, Ом

1

100

50

50

3

2,0

2,0

Варіант

і1, А

i2, A

ш1, Вб

ш2, Вб

m2, Гн-1

Um, В

1

0,15

17

0,15

0,7

52

300

Параметри навантаження:

Варіант

схема б)

RН, Ом

СН, мкФ

1

40

200

Позначення: б1, б21, б22 - обернені індуктивності розсіювання первинної (1) та вторинної (21,22) обмоток трансформатора; r1, r21, r22 - активні опори цих обмоток.

2. Розрахунок пристрою

2.1 Принцип роботи пристрою

Рисунок 1

На інтервалі часу від 0 до T/2 під дією напруги Uвх1 діод VD1(Д1) зміщений в прямому напрямі (діод VD2(Д2) при цьому зміщений у зворотному напрямі) і тому струм в резисторі навантаження визначається тільки напругою Uвх1. На інтервалі від T/2 до T діод VD1(Д1) зміщений у зворотному напрямі, а струм навантаження протікає через діод VD2(Д2) зміщений в прямому напрямі і визначається напругою Uвх2.

Однофазнi випрямлячi - найбiльш поширенi елементи систем живлення пристроїв автоматики, обчислювальної технiки та радiоелектронiки. Вони, як правило, складаються з трансформатора, напiвпровiдникових вентилiв, C-фiльтру i навантаження. Розглянемо рівняння динаміки однофазного двопiвперiодного випрямляча, що містить два керовані вентилі () і C-фiльтр. При одній полярності вихідної напруги відкривається вентиль , а при протилежній - вентиль . Якщо це керовані вентилі, то необхідною умовою ще додатково повинна бути наявність сигналу, який дає дозвіл на відкривання вентиля. Такий сигнал формується окремою схемою керування і дає можливість регулювати вихідну напругу випрямляча.

При виведенні рівнянь динаміки параметри первинної сторони трансформатора будемо вважати приведеними за числом виткiв до вторинної, а роботу напiвпровiдникових вентилiв подамо за схемою iдеального ключа.

Ідеологія побудови математичних моделей таких пристроїв зводиться до такого алгоритму. Спочатку необхідно з'ясувати можливу кількість комбінацій відкритих і закритих вентилів. Для кожної з них записати свою систему алгебро-диференціальних рівнянь. Виділити в них спільні риси і з допомогою додаткових логічних змінних записати одну узагальнену систему рівнянь.

Таким чином, в даній схемі можливі три комбінації відкритих і закритих вентилів: 1) - відкритий, - закритий; 2) - закритий, - відкритий; 3) - закриті.

2.2 Схеми пристрою

2.2.1 Принципова електрична схема

Рисунок 2

2.2.2 Схема заміщення контуру 1

Рисунок 3

2.2.3 Схема заміщення контурів 2 та 3

2.2.3.1 Д1 - Відкритий, Д2 - закритий

Рисунок 4

2.2.3.2 Д1 - закритий, Д2 - відкритий

Рисунок 5

2.2.4 Схема заміщення маґнетного кола

Рисунок 6

2.3 Рівняння стану системи

2.3.1 Д1 - Відкритий, д2 - закритий

Рівняння електричного кола

Закон Кірхгофа для струмів:

Закон Кірхгофа для напруг:

Рівняння елементів:

Рівняння конденсаторів:

Шукані величини:

Струм знаходимо аналітично:

Перепишемо струм конденсатора , врахувавши (1) та (4):

Рівняння конденсатора СН із врахуванням (6) та (9):

Рівняння маґнетного кола

Рівняння потокозчеплень обмоток:

Рівняння маґнетних напруг обмоток:

Рівняння маґнетних напруг розсіяння:

Рівняння маґнетних напруг обмоток із врахуванням (11), (12), (13), (14), (15), (16):

Рівняння маґнетного кола (5) із врахуванням (17), (18):

Знайдемо похідну виразу (19):

Похідна складної функції:

Запишемо вираз (20) із урахуванням (21) і проведемо групування:

Введемо позначення для виразу (22):

Запишемо вираз (22) із урахуванням (23), (24):

Запишемо вираз (25) у матричному вигляді:

Введемо позначення для виразу (26):

Запишемо матрицю струмів:

Введемо позначення для виразу (29) із врахуванням (17), (18):

Визначимо похідну виразу (29) із врахуванням (26):

Введемо позначення для виразу (33):

Запишемо вираз (33) із урахуванням (34):

Оскільки струм згідно (8) визначається аналітично, необхідно провести корекцію матриці A (34) (вилучити 1 рядок):

Введемо позначення для виразу (36):

Проведемо корекцію сатриці струмів I (30) (вилучимо 1 рядок):

Запишемо вектор змінних стану Х:

Запишемо матрицю коефіцієнтів B, врахувавши (27), (36), (39):

Запишемо матрицю Z, врахувавши (2), (3), (9):

Остаточний вираз для розрахунку перехідного процесу:

Знайдену систему диференціальних рівнянь доповнимо рівнянням (8), де - крива намаґнечування осердя трансформатора.

Вхідна дія (U1) - синусоїда.

2.3.2 Д1 - Закритий, д2 - відкритий

Рівняння електричного кола

Закон Кірхгофа для струмів:

Закон Кірхгофа для напруг:

Рівняння елементів:

Рівняння конденсаторів:

Шукані величини:

Струм знаходимо аналітично:

Перепишемо струм конденсатора , врахувавши (1) та (4):

Рівняння конденсатора СН із врахуванням (6) та (9):

Рівняння маґнетного кола

Рівняння потокозчеплень обмоток:

Рівняння маґнетних напруг обмоток:

Рівняння маґнетних напруг розсіяння:

Рівняння маґнетних напруг обмоток із врахуванням (11), (12), (13), (14), (15), (16):

Рівняння маґнетного кола (5) із врахуванням (17), (18):

Знайдемо похідну виразу (19):

Похідна складної функції:

Запишемо вираз (20) із урахуванням (21) і проведемо групування:

Введемо позначення для виразу (22):

Запишемо вираз (22) із урахуванням (23), (24):

Запишемо вираз (25) у матричному вигляді:

Введемо позначення для виразу (26):

Запишемо матрицю струмів:

Введемо позначення для виразу (29) із врахуванням (17), (18):

Визначимо похідну виразу (29) із врахуванням (26):

Введемо позначення для виразу (33):

Запишемо вираз (33) із урахуванням (34):

Оскільки струм згідно (8) визначається аналітично, необхідно провести корекцію матриці A (34) (вилучити 1 рядок):

Введемо позначення для виразу (36):

Проведемо корекцію сатриці струмів I (30) (вилучимо 1 рядок):

Запишемо вектор змінних стану Х:

Запишемо матрицю коефіцієнтів B, врахувавши (27), (36), (39):

Запишемо матрицю Z, врахувавши (2), (3), (9):

Остаточний вираз для розрахунку перехідного процесу:

Знайдену систему диференціальних рівнянь доповнимо рівнянням (8), де - крива намаґнечування осердя трансформатора.

Вхідна дія (U1) - синусоїда.

2.3.3 Узагальнена кінцева система рівнянь

Попередні два варіанти було розглянуто для випадку коли працює лише один з діодів (Д). Оскільки схема містить два діоди(Д), необхідно ввести додаткові логічні змінні, які б керували їх роботою при умові зміни полярності на робочих вихідних обмотках.

Така математична модель діоду, як ідеального ключа, дозволить максимально точно відобразити реальні фізичні процеси, які протікають в системі.

Для цього розглянемо попередні два варіанти та проведемо узагальнення матриць, доповнивши їх відповідними логічними змінними - ключами.

Логічні змінні:

K1 - управління роботою діоду Д1.

K2 - управління роботою діоду Д2.

Окрім введення змінних для керування діодами, слід визначити умови їх відкривання та закривання. Для цього будемо вважати, що вентилі відкриваються за напругою, а закриваються за струмом.

Умови відкриття вентилів:

Умови закриття вентилів:

Узагальнення виразів G:

Варіант 1:

Варіант 2:

Узагальнені вирази:

Узагальнена матриця D:

Узагальнення матриці А2:

Варіант 1:

Варіант 2:

Виходячи з описаного вище і взявши до уваги той факт, що одночасно в системі не можуть бути відкриті два вентилі, запишемо узагальнену матрицю А2:

Узагальнена матриця B:

Узагальнення матриці Z:

Варіант 1:

Варіант 2:

Узагальнена матриця Z:

Узагальнення матриці X:

Варіант 1:

Варіант 2:

Узагальнена матриця X:

Дану матричну систему рівнянь слід доповнити узагальненим рівнянням для аналітичного визначення струму

У матричному записі узагальнена система рівнянь набуде вигляду:

3. Аналіз пристрою

3.1 Методи

3.1.1 Метод Рунге-кутта

Метод Рунге-Кутта об'єднує ціле сімейство методів розв'язування диференціальних рівнянь першого порядку. Найбільш часто використовується метод четвертого порядку, який просто називають “ методом Рунге-Кутта”.

В методі Рунге-Кутта значення функції , як і в методі Ейлера, визначається за формулою:

Якщо розкласти функцію в ряд Тейлора і обмежитись членами до включно, то приріст можна записати у вигляді:

Замість того, щоб обчислювати члени ряду за формулою (2) в методі Рунге-Кутта використовують наступні формули.

Це метод четвертого порядку точності.

Похибка на кожному кроці має порядок .Таким чином метод Рунге-Кутта забезпечує значно вищу точність ніж метод Ейлера, однак вимагає більшого об'єму обчислень ніж метод Ейлера. Це досить часто дозволяє збільшити крок . Деколи зустрічається інша форма представлення методу Рунге-Кутта 4-го порядку точності.

3.1.2 Екстраполяційний е-алґоритм

Екстраполяційні методи цільову функцію використовують у вигляді Інтеґруючи на періодах, породжуємо послідовність значень змінних стану:

(2.27)

де - період вхідної дії. Для послідовності (2.27), починаючи з , застосовуємо екстраполяційну формулу:

, (2.28)

де - початкові умови входження в усталений режим.

В якості функції EXTR доцільно використати - алґоритм, який виконує обчислення границі послідовності з експоненційними складовими. Формула для обчислення наступного значення має вигляд:

(2.29)

де

Результат екстраполяції, що відповідає EXTR в (2.28) рівний В (2.29) використовується процедура обертання Самельсона

де - k-й елемент n-мірної колонки .

Для систем розмірності значення . Початкові умови усталеного режиму для швидкозатухаючих перехідних реакцій компонент визначаємо інтеґруванням рівнянь стану системи на періодах. Як правило . На жаль, не існує строгого критерію вибору i , тому тут можливий лише еврістичний підхід. Та й визначити які саме компоненти будуть швидкозатухаючими без чисельного експерименту неможливо. Таким чином, основний недолік екстраполяційних методів полягає в необхідності інтеґрування рівнянь динаміки на значному інтервалі часу.

3.2 Алґоритми

3.2.1 Розрахунок перехідного процесу

3.2.2 Розрахунок усталеного режиму

1. Інтеґруємо рівняння , від заданих початкових умов на періодах і визначаємо початкові умови періодичного режиму швидкозатухаючих компонент змінних стану .

2. Маючи на -й ітерації формули початкові умови , інтеґруємо рівняння стану на періодах і породжуємо послідовність:

. (2.30)

3. Згідно

визначаємо уточнене значення початкових умов

(2.31)

4. Перевіряємо умову збіжності ітераційного процесу. Якщо вона не виконується, то процес повторюємо з п.2, в іншому випадку зупиняємо ітераційний процес.

4. Програма

4.1 Текст програми

4.1.1 Header

#ifndef Unit1H

#define Unit1H

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Chart.hpp>

#include <DbChart.hpp>

#include <ExtCtrls.hpp>

#include <TeEngine.hpp>

#include <TeeProcs.hpp>

#include <Series.hpp>

#include <ComCtrls.hpp>

class TForm1: public TForm

{

__published:// IDE-managed Components

TButton *Button1;

TDBChart *DBChart1;

TDBChart *DBChart2;

TDBChart *DBChart3;

TDBChart *DBChart4;

TDBChart *DBChart5;

TLineSeries *Series1;

TLineSeries *Series2;

TLineSeries *Series3;

TLineSeries *Series4;

TLineSeries *Series5;

TButton *Button2;

void __fastcall Button1Click(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);

private:// User declarations

public:// User declarations

__fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

4.1.2 СPP

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include <fstream.h>

#include <iostream.h>

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

using namespace std;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//Початок. Параметри системи-------------------------------------------------

const double Freq=50,T=1/Freq, Um=300;

const double a1=100,a21=50, a22=50,r1=3,r21=2,r22=2,Cn=200e-6,Rn=40;

const double f1=0.15,f2=0.7,i1=0.15,i2=17,m2=52; //параметри кривоЇ намагн

int K_1,K_2; //перемикачі вентилів

//Кінець. Параметри системи--------------------------------------------------

double I_f (double f);

double I_f (double f)

{

double b1,b2,b3,b4,m1,h;

int i;

h=f2-f1; m1=i1/f1;

if (f<0) i=-1;

else i=1;

f=fabs(f);

if (f<=f1)

return i*(m1*f);

if (f>=f2)

return i*(m2*f+i2-m2*f2);

b1=(2*(f-f1)+h)*(f2-f)*(f2-f);

b2=(2*(f2-f)+h)*(f-f1)*(f-f1);

b3=(f-f1)*(f2-f)*(f2-f);

b4=(f-f2)*(f-f1)*(f-f1);

return i*( (b1*i1+b2*i2)/h/h/h+(b3*m1+b4*m2)/h/h );

}

double a_ii (double f);

double a_ii (double f)

{

double db1,db2,db3,db4,m1,h;

h=f2-f1; m1=i1/f1;

f=fabs(f);

if (f<=f1)

return m1;

if (f>=f2)

return m2;

db1=2*(f-f2)*(3*f-2*f1-f2+h);

db2=-2*(f-f1)*(3*f-f1-2*f2-h);

db3=(f-f2)*(3*f-2*f1-f2);

db4=(f-f1)*(3*f-f1-2*f2);

return (db1*i1+db2*i2)/h/h/h+(db3*m1+db4*m2)/h/h;

}

void D_Control(double *X, double *k4);

void D_Control(double *X, double *k4)

{

//Оголошення зовнішніх змінних

extern int K_1,K_2;

//Аналіз умови відкриття вентилів

//Вентиль 1

if((-k4[0] - X[3]) > 0)

{

K_1 = 1;

}

//Вентиль 2

if((k4[0] - X[3]) > 0)

{

K_2 = 1;

}

//Аналіз умови закриття вентилів

//Вентиль 1

if(X[1] < 0)

{

K_1 = 0;

X[1] = 0;

}

//Вентиль 2

if(X[2] < 0)

{

K_2 = 0;

X[2] = 0;

}

double dFdt (double *K, double *X, double t);

double dFdt (double *K, double *X, double t)

{

double f=X[0], i21=X[1], i22=X[2], Ucn=X[3], i1=I_f(f)-i21+i22;

double al_zn=a1+K_1*a21+K_2*a22+a_ii(f);

double g1=a1/al_zn, g2=K_1*a21/al_zn, g3=-K_2*a22/al_zn;

double A2[2][3]={{-K_1*a21*g1, K_1*a21*(1-g2), 0},

{K_2*a22*g1, 0, K_2*a22*(1+g3)}};

double U1=Um*sin(2*M_PI*Freq*t);

double dYdt[4]={U1-r1*i1,-Ucn-i21*r21, -Ucn-i22*r22, i21+i22-Ucn/Rn};

double B[4][4]={{g1, g2, g3, 0},

{A2[0][0], A2[0][1], A2[0][2], 0},

{A2[1][0], A2[1][1], A2[1][2], 0},

{0, 0, 0, 1/Cn}};

for (int i=0; i<4; i++)

{

K[i]=0;

for (int k=0; k<4; k++)

K[i]+=B[i][k]*dYdt[k];//K=B*dYdt

}

return i1;

}

void RungeKutta (double*X);

void RungeKutta (double*X)

{

double k1[4], k2[4], k3[4], k4[4], z[4], h=0.00001;

for (double t=0; t<=4*T; t+=h)

{

dFdt(k1,X,t);

for ( int i=0; i<4; i++)

z[i]=X[i]+k1[i]*h/2;

dFdt(k2,z,t+h/2);

for ( int i=0; i<4; i++)

z[i]=X[i]+k2[i]*h/2;

dFdt(k3,z,t+h/2);

for ( int i=0; i<4; i++)

z[i]=X[i]+k3[i]*h;

dFdt(k4,z,t+h);

for ( int i=0; i<4; i++)

X[i]=X[i]+ h/6*(k1[i]+2*k2[i]+2*k3[i]+k4[i]);

D_Control(X,k4);

}

void RungeKutta_Pereh(int S, double *X, TLineSeries *Series1,TLineSeries *Series2,TLineSeries *Series3,

TLineSeries *Series4,TLineSeries *Series5);

void RungeKutta_Pereh(int S, double *X, TLineSeries *Series1,TLineSeries *Series2,TLineSeries *Series3,

TLineSeries *Series4,TLineSeries *Series5)

{

//Початок. Створюємо та відкриваємо файл для запису даних---------

FILE *pFile;

if(S == 1)

{

pFile = fopen("KURS_WORK_T_psi_i1_i21_i22_Ucn_t.dat","w+");

}

else

{

pFile = fopen("KURS_WORK_S_psi_i1_i21_i22_Ucn_t.dat","w+");

}

//Початок. Записуємо заголовки даних psi,i1,i2,i3,Ucn в файл--------------

fprintf(pFile,"%-15.10s %-15.10s %-15.10s %-12.10s %-10.10s %-10.10s\n","psi","i1","i21","i22","Ucn","t");

//Кінець. Записуємо заголовки даних psi,i1,i2,i3,Ucn в файл---------------

//Кінець. Створюємо та відкриваємо файл для запису даних---------------

double i1_1;

double k1[4], k2[4], k3[4], k4[4], z[4], h=0.00001;

for (double t=0; t<=5*T; t+=h)

{

i1_1 = dFdt(k1,X,t);

for ( int i=0; i<4; i++)

z[i]=X[i]+k1[i]*h/2;

i1_1 = dFdt(k2,z,t+h/2);

for ( int i=0; i<4; i++)

z[i]=X[i]+k2[i]*h/2;

i1_1 = dFdt(k3,z,t+h/2);

for ( int i=0; i<4; i++)

z[i]=X[i]+k3[i]*h;

i1_1 = dFdt(k4,z,t+h);

for ( int i=0; i<4; i++)

X[i]=X[i]+ h/6*(k1[i]+2*k2[i]+2*k3[i]+k4[i]);

D_Control(X,k4);

//Початок. Будуємо графіки psi,i1,i21,i22,Ucn-----------------------

Series1->AddXY(t,X[0],"",clRed);

Series2->AddXY(t,i1_1,"",clRed);

Series3->AddXY(t,X[1],"",clRed);

Series4->AddXY(t,X[2],"",clRed);

Series5->AddXY(t,X[3],"",clRed);

//Початок. Записуємо дані про psi,i1,i2,i3,Ucn в файл---------------

fprintf(pFile,"%-10.10f %-10.10f %-10.10f %-10.10f %-10.10f %-10.10f\n",X[0],i1_1,X[1],X[2],X[3],t);

//Кінець. Записуємо дані про psi,i1,i2,i3,Ucn в файл----------------

}

//Початок.Закриваємо файл-------------------------------------------

fclose(pFile);

//Кінець.Закриваємо файл--------------------------------------------

}

double* E_algorithm();

double* E_algorithm()

{

//Параметри системи

//m - розмірність системи рівнянь

//n = 2*q + 1 - розмір Sn послідовності

//p - кількість почакових ітерацій

const int m=4, q=4, n=2*q+1, p=2;

double X[m]={0,0,0,0}, e[n+1][n+1][m], eps=0.00001;

double V[m], sum;

bool cond;

int count=0;

//Встановлення нулів для випадку k = -1

for (int j=0; j<=n; j++)

for (int i=0; i<m; i++)

e[j][0][i]=0;

do

{

cond=false;

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

RungeKutta (X);

for (int i=0; i<m; i++)

e[0][1][i]=X[i];

for (int j=0; j<=2*q-1; j++)

{

RungeKutta(X);

for (int i=0; i<m; i++)

e[j+1][1][i]=X[i];

if (j==0)

{

for (int i=0; i<=m-1; i++)

{

if(e[1][1][i] == 0) {continue;}

cond=cond || (fabs ((e[1][1][i])-e[0][1][i])/e[1][1][i])*100 > eps;

}

if (cond==false) break;

}

}

if (cond)

{

for (int k=1; k<=n-1; k++)

for (int j=0; j<=n-k-1; j++)

{

for (int i=0;i<=m-1;i++)

V[i]=e[j+1][k][i]-e[j][k][i];

sum=0;

for (int i=0;i<=m-1;i++)

sum=sum+V[i]*V[i];

for (int i=0;i<=m-1;i++)

{

if(sum == 0){continue;}

V[i]=V[i]/sum;

}

for (int i=0; i<=m-1;i++)

e[j][k+1][i]=e[j+1][k-1][i]+V[i];

}

for (int i=0; i<=m-1;i++)

X[i]=e[0][n][i];

count++;

}

}

while (cond);

//Створення динамічного масиву для передачі значень

double *Matrix=(double *)malloc(4*sizeof(double));

//Копіювання значень у динамічний масив

for (int i=0;i<4;i++)

{

Matrix[i] = X[i];

}

return Matrix;

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

//Вимикаємо кнопку

Button1->Enabled = false;

extern int K_1,K_2;

//Початкові умови. Вентилі закриті

K_1 = 0;

K_2 = 0;

//Очищаємо область графіків

Series1->Clear();

Series2->Clear();

Series3->Clear();

Series4->Clear();

Series5->Clear();

//Перемикач в режим роботи з файлом усталеного режиму

int Switch = 0;

//Матриця початкових умов, що задовольняють усталеному процесу

double *X;

//Розрахунок усталеного режиму

X = E_algorithm();

//Моделювання усталеного режиму

RungeKutta_Pereh(Switch,X,Series1,Series2,Series3,Series4,Series5);

//Вивільнення пам'яті

free(X);

//Вмикаємо кнопку

Button1->Enabled = true;

}

void __fastcall TForm1::Button2Click(TObject *Sender)

{

//Вимикаємо кнопку

Button2->Enabled = false;

extern int K_1,K_2;

//Початкові умови. Вентилі закриті

K_1 = 0;

K_2 = 0;

//Очищаємо область графіків

Series1->Clear();

Series2->Clear();

Series3->Clear();

Series4->Clear();

Series5->Clear();

//Перемикач в режим роботи з файлом перехідного процесу

int Switch = 1;

double X[4] = {0,0,0,0};

//Моделювання перехідного процесу

RungeKutta_Pereh(Switch,X,Series1,Series2,Series3,Series4,Series5);

//Вмикаємо кнопку

Button2->Enabled = true;

}

//---------------------------------------------------------------------------

4.2 Результати роботи

4.2.1 Графічний інтерфейс

4.2.1.1 Перехідний процес

4.2.1.2 Усталений режим

4.2.2 Графіки

4.2.2.1 Перехідний процес

4.2.2.2 Усталений режим

Висновки

автоматика магнетний нелінійний

Виконуючи курсову роботу, я закріпив знання і навики аналізу перехідних і усталених режимів роботи чисельними методами нелінійних електромаґнетних пристроїв систем автоматичного керування.

Для моделювання роботи пристрою були використані метод Рунге-Кутта 4 порядку з постійним кроком, а також екстраполяційний е - алгоритм. Вибір останнього обумовлений тим, що в дану систему входять напівпровідникові вентилі(діоди). Це призводить до зміни системи рівнянь, які описують пристрій і обчислення матриці монодромії згідно моделі чутливостей до початкових умов стає ускладненим. Цього недоліку позбавлений е - алгоритм.

Реалізацію алгоритму виконав мовою с++ у середовищі С++ BUILDER 6.0. Екстраполяційний е - алгоритм та метод Рунге-Кутта виконав у вигляді функцій E_algorithm() та RungeKutta_Pereh().

Результати роботи програми записав у файли:

1. Перехідний процес: KURS_WORK_T_psi_i1_i21_i22_Ucn_t.dat.

2. Усталений режим: KURS_WORK_S_psi_i1_i21_i22_Ucn_t.dat.

Графіки перехідних процесів та усталених режимів psi, i1, i21, i22, Ucn побудував за допомогою програми GRAPHER.

Размещено на Allbest.ru

...

Подобные документы

  • Дослідження цифрових систем автоматичного керування. Типові вхідні сигнали. Моделювання цифрової та неперервної САК із використання MatLab. Результати обчислень в програмі MatLab. Збільшення періоду дискретизації цифрової системи автоматичного керування.

    лабораторная работа [173,7 K], добавлен 14.03.2009

  • Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.

    курсовая работа [385,0 K], добавлен 17.09.2009

  • Мова VHDL. Створення проекту для моделювання цифрових і аналогових схем. Синтез і моделювання комбінаційних пристроїв, заданих в табличній формі, за допомогою системи Active-HDL 6.1. Створення ієрархічних структур при проектуванні складних пристроїв.

    реферат [287,3 K], добавлен 14.02.2009

  • Розв’язання системи рівняння методом Гауса за схемою з частковим вибором головного елементу. Рішення задачі Коші методом Рунге-Кутта. Знаходження моментів кубічних сплайнів методом прогонки. Розв’язування системи нелінійних рівнянь методом Ньютона.

    контрольная работа [252,3 K], добавлен 04.06.2010

  • Загальні відомості про робототехніку в світі та в Україні. Класифікація захватних пристроїв. Філософія RISC архітектури. Системи керування ПР та інформаційні системи. Програма обміну даними між користувачем і маніпулятором. Користувацький веб-інтерфейс.

    дипломная работа [1,1 M], добавлен 24.07.2013

  • Призначення менеджеру пристроїв. Обґрунтування вибору мови програмування. Розробка структурної схеми і опис діалогового інтерфейсу програми. Блок-схема програмного додатку, основні функції і алгоритм його роботи. Методики і інструкція його тестування.

    курсовая работа [3,4 M], добавлен 17.11.2014

  • Характеристика лінійної системи автоматичного керування. Розрахунок показників регульованого параметра, датчика, підсилювача, силового елемента та об’єкта регулювання. Визначення виразів передаточних функцій елементів, складання структурної схеми.

    курсовая работа [1,4 M], добавлен 28.01.2015

  • Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++.

    курсовая работа [163,4 K], добавлен 16.05.2016

  • Коректність роботи системи при заданих початкових умовах. Мета - оцінка втрат повідомлень, відносної пропускної спроможності системи та визначення коефіцієнта завантаженості системи. Текст програми та результати її роботи.

    курсовая работа [34,3 K], добавлен 16.06.2007

  • Синтез логічних пристроїв з великою кількістю виходами. Особливості побудови реальних логічних пристроїв. Використання логічних елементів: що мають надлишкове число або недостатню кількість входів. Подання й мінімізація функції за допомогою карт Карно.

    лекция [95,3 K], добавлен 13.04.2008

  • Вибір первинних вимірювальних перетворювачів та виконавчих механізмів, мікропроцесорних засобів автоматизації. Розробка блок-схеми системи автоматичного керування, програми функціонування вибраних засобів, принципових електричних схем зовнішніх з’єднань.

    курсовая работа [176,5 K], добавлен 08.03.2015

  • Дія елементів системи автоматичного регулювання. Розрахунок передаточної функції замкнутої системи за каналами задаючої і збурюючої дії. Побудова годографа амплітудно-фазової частотної характеристики розімкнутої системи і визначення запасу стійкості.

    курсовая работа [2,6 M], добавлен 24.12.2012

  • Розгляд та аналіз основних способів розв’язання звичайних диференціальних рівнянь за методом Рунге-Кутта з автоматичним вибором кроку. Способи оцінки погрішності і збіжності методу Рунге-кутти четвертого порядку з автоматичним вибором довжини кроку.

    контрольная работа [31,0 K], добавлен 18.01.2013

  • Середовище Delphi як засіб розробки комп'ютерних систем для роботи з базами даних. Основи технології ADO та особливості її застосування в Delphi. Опис та етапи розподілу інформаційних потоків на виробничій дільниці автоматики аглодоменного виробництва.

    дипломная работа [1,9 M], добавлен 26.10.2012

  • Характеристика особливостей мікроконтролерів AVR сімейства Mega: пам'ять даних на основі РПЗПЕС, можливість захисту від читання і модифікації пам'яті програм. Аналіз проблем побудови цифрових пристроїв на МК та ПЛІС. Розгляд портів введення-виведення.

    курсовая работа [4,0 M], добавлен 05.12.2014

  • Стандартний спосіб розв’язання задачі Коші для звичайного диференціального рівняння першого порядку чисельними однокроковими методами. Геометричний зміст методу Ейлера. Побудова графіку інтегральної кривої. Особливість оцінки похибки за методом Рунге.

    курсовая работа [112,9 K], добавлен 30.11.2009

  • Теорія обчислювальних систем. Режим обробки, що визначає порядок функціонування системи. Клас оброблюваних задач і порядок їхнього надходження в систему. Порядок ідентифікації обчислювальної системи. Математично задача синтезу обчислювальної системи.

    реферат [33,7 K], добавлен 08.09.2011

  • Анализ предметной области объектно-ориентированного программирования. Языки Delphi, Object Pascal - объектно-ориентированная среда программирования. Основные алгоритмические решения. Решение дифференциального уравнения методом Рунге-Кутта в среде Excel.

    курсовая работа [1,5 M], добавлен 02.04.2011

  • Алгоритмічна структура алгоритму керування. Вибір конфігурації контролера, схем підключення, технічних засобів автоматизації. Схеми підключення зовнішніх пристроїв. Розроблення прикладного програмного забезпечення для реалізації алгоритму керування.

    курсовая работа [3,5 M], добавлен 22.01.2014

  • Основна причина аварійних відмов операційних систем, їх принципові дефекти, методика нейтралізації та "лікування" системи. Порядок і етапи розробки безвідмовної операційної системи, властивості та оцінка її надійності, вимірювання продуктивності.

    реферат [58,5 K], добавлен 20.05.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.