Расчет на ЭВМ характеристик выходных сигналов электрический цепей

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    34,12 Кб
  • Опубликовано:
    2012-04-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Расчет на ЭВМ характеристик выходных сигналов электрический цепей

Санкт - Петербургский Государственный Университет Телекоммуникаций

им. проф. М. А. Бонч-Бруевича









Курсовая работа по дисциплине

«Программирование на языке высшего уровня»

Расчет на ЭВМ характеристик выходных сигналов электрический цепей

выполнила Севастьянова Елена,

студентка группы Р-01





Санкт-Петербург

Оглавление

Постановка задачи

Таблица идентификаторов

Список основных функций

Блок - схема программы

Блок - схема U входа

Текст программы

Расчёт на Maxima

Результат вычисление параметра с заданной точностью

Заключение

массив файл программа

Постановка задачи

Данная курсовая работа посвящена решению задач машинного анализа электрических цепей.

В данной работе сигнал на входе электрической цепи Uвх и сигнал на выходе электрической цепи Uвых заданы функцией, графиком и условиями. Так же дан рабочий набор, с помощью которого необходимо для заданной электрической цепи вывести формулы зависимости входного сигнала Uвхот времени и выходного сигнала Uвых от времени. Затем нужно рассчитать значение параметров Uвх и Uвых. Вычислить точность, провести запись в файл и построить графики.

Создание входного сигнала:


Входной сигнал

Uвх(t)=

Рабочий набор

U = 6B

tn = 0 сек

tк = 2π сек 

Передаточная характеристика.








Рабочий набор

U1 = 3 В

U2 = 15 В

Передаточная характеристика

вых (t)


Таблица идентификаторов

Обозначение в задаче

идентификатор

назначение

tn

начальный момент времени наблюдения входного напряжения.

tk

конечный момент времени наблюдения входного напряжения

N

N

количество точек разбиения

t

t[n]

массив времени

Uвх

Uin[n]

массив входного напряжения

Uвых

Uout[n]

массив выходного напряжения

-

dt

шаг между точками разбиения

t1

t1

константа времени

U

U

константа входного сигнала

U1

константа выходногосигнала

U2

U2

константа выходногосигнала

U3

U3

константа выходногосигнала

d

d

достигнутая погрешность

-

p

вычисленный параметр


Список основных функций

1.      void time (int n, float *t) - функции формирования массива времени

2.      void vhod (int n, float *t, float *Uin) - функции формирования массива входного напряжения

3.      void vihod (int n, float *t, float *Uin, float *Uout) - функции формирования массива выходного напряжения

4.      void tabl (int n, float *t, float *Uin, float *Uout) - функция вывода таблицы

5.      float par (int n, float *t, float *Uout) - функция расчета параметра

6.      float spend (int n, float *t, float *Uin, float *Uout) - функция расчёта заданной точности

7.      char vivod_titylnik (char *str, int n) - функция вывода титульного листа

8.      void zapis_time(float n, float *t) - запись в файл массива времени

9.      void zapis_mas_Uin(float n, float *t, float *Uin) - запись в файл массива входного напряжения

10.    void zapis_mas_Uout(float n,float *t, float *Uin, float *Uout) - запись в файл массива выходного напряжения

Блок - схема программы




























Блок - схема U входа



















Текст программы

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define N 1000*fp1;*fp2;*fp3;*fp4;vivod_titylnik(char*str, int n);time(int n, float *t);vhod(int n, float *t, float *Uin);vihod(int n, float *Uin, float *Uout);tabl(int n, float *t, float *Uin, float *Uout);par(int n, float *t, float *Uout);spend(int n, float *t, float *Uin, float *Uout);zapis_time(float n, float *t);zapis_mas_Uin(float n, float *t, float *Uin);zapis_mas_Uout(float n, float *t, float *Uin, float *Uout);main() {n;cc;str[80];_titylnik(str, 80);("\nn-chislo tochek \n");("Vvedite n \n");("%d%c", &n, &cc);t[N], Uin[N], Uout[N];end = 1, command;(end) {("\nMenu \n");("1-titylniy list \n");("2-tablica \n");("3-parametr \n");("4-zapis_v_fail \n");("5-tochnost \n");("0-vihod iz programmi \n");("Vvedite komandy \n");("%d", &command);(command) {1:("TITYLNIY LIST \n");_titylnik(str, 81);;2:("\nTABLISA \n");(n, t);(n, t, Uin);(n, Uin, Uout);(n, t, Uin, Uout);;3:("\nPARAMETR \n");(n, t);(n, t, Uin);(n, Uin, Uout);p;= par(n, t, Uout);("p=%5.2f \n", p);;4:(n, t);(n, t, Uin);(n, Uin, Uout);_time(n, t);_mas_Uin(n, t, Uin);_mas_Uout(n, t, Uin, Uout);("zapis'_v_fail_sovershena \n");;5:("\nTOCHNOST' \n");(n, t, Uin, Uout);;0:= 0;

}

}0;

}time(int n, float *t) {i;dt, tn = 0, tk = 2*3.14;= (tk - tn) / (n - 1);(i = 0; i < n; i++) {[i] = tn + i*dt;

}

}vhod(int n, float *t, float *Uin) {i, U=6;(i = 0; i < N; i++) {((t[i] >= 0) && (t[i] < 3.14 / 2))[i] = U * (1 - cos(t[i]));if (t[i] < 3.14)[i] = U * (1 + cos(t[i]));if (t[i] < (3 * 3.14 / 2))[i] = U * (1 - cos(3.14 - t[i]));[i] = U * (1 + cos(3.14 - t[i]));

}

}vihod(int n, float *Uin, float *Uout) {U1 = 3, U2 = 15;i;(i = 0; i < n; i++) {(Uin[i] < U1)[i] = U2 / U1 * Uin[i];[i] = U2;

}

}tabl(int n, float *t, float *Uin, float *Uout) {i;("%3s %6s %5s \n", "t", "Uin", "Uout");(i = 0; i < n; i++) {("%5.2f %5.2f %5.2f \n", *(t + i), *(Uin + i), *(Uout + i));

}

}par(int n, float *t, float *Uout) {Um =10;p, t1 = 0,t2;(int i = 0; i < (n-1); i++) {((Uout[i] < Um) && (Uout[i + 1] > Um)) t1 = t[i];((Uout[i] > Um) && (Uout[i + 1] < Um)) t2 = t[i];p = 2*(t2 - t1);

}p;

}spend(int n, float *t, float *Uin, float *Uout) {p1, p2, d;(n, t);(n, t, Uin);(n, Uin, Uout);= par(n, t, Uout);(;;) {= 2 * n;(n > N) {("Neverno n>N \n");;

} else {(n, t);(n, t, Uin);(n, Uin, Uout);= par(n, t, Uout);= fabs((p2 - p1) / p2);

}(d < 0.01) {("\nn-kollichestvo tochek, neobhodimih dlya vichisleniy \n");("p2-parametr s tochnostuy \n");("d-dostignytaya pogreshnost' \n");("n=%d p2=%5.2f d=%f \n", n, p2, d);;

} else p1 = p2;

}

}zapis_time(float n, float *t) {i;(n, t);= fopen("t[i].txt", "w");(i = 0; i < n; i++)(fp1, "\n %f", t[i]);(fp1);

}zapis_mas_Uin(float n, float *t, float *Uin) {i;(n, t);(n, t, Uin);= fopen("Uin[i].txt", "w");(i = 0; i < n; i++)(fp2, "\n %f", Uin[i]);(fp2);

}zapis_mas_Uout(float n, float *t, float *Uin, float *Uout) {i;(n, t);(n, t, Uin);(n, Uin, Uout);= fopen("Uout[i].txt", "w");(i = 0; i < n; i++)(fp3, "\n %f", Uout[i]);(fp3);

}vivod_titylnik(char *str, int n) {= fopen("titulnik.txt", "r");(fp4 == NULL) {("\n file is not open \n");0;

}(fgets(str, n, fp4) != NULL) {(str);

}(fp4);0;

}

Результат вычисления параметра с заданной точностью

Параметр, который необходимо найти, задаётся следующими условиями.

Найти период времени когда Uвх>=10 B на временном интервале от 0 с до 2π с.

Заданная точность вычисления параметра d=0,01.

Для получения необходимого значения параметра понадобилось 1000 точек расчёта, при этом значение данного параметра 2,64 с.

Заключение

По заданным начальным данным были получены следующие результаты:

•        Расчет для n - равностоящих точек значений времени t, напряжение входного сигнала Uвх(t) и напряжения выходного сигнала Uвых (t).

•        Расчет параметров для Uвых(t)

•        Расчет точности.

•        Сделана запись в файл.

•        Построены графики зависимости напряжения входного и выходного сигнала в Maxima и Neoffice Cals

•        Сделан контрольный расчёт в Maxima. Результаты вычислений в NetBeans сошлись с результатами в Maxima


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!