Расчет на ЭВМ характеристик выходных сигналов электрический цепей
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
Санкт - Петербургский Государственный Университет Телекоммуникаций
им. проф. М. А. Бонч-Бруевича
Курсовая работа по дисциплине
Программирование на языке высшего уровня
Расчет на ЭВМ характеристик выходных сигналов электрический цепей
выполнила Севастьянова Елена,
студентка группы Р-01
Санкт-Петербург
Оглавление
Постановка задачи
Таблица идентификаторов
Список основных функций
Блок - схема программы
Блок - схема U входа
Текст программы
Расчёт на Maxima
Результат вычисление параметра с заданной точностью
Заключение
массив файл программа
Постановка задачи
Данная курсовая работа посвящена решению задач машинного анализа электрических цепей.
В данной работе сигнал на входе электрической цепи Uвх и сигнал на выходе электрической цепи Uвых заданы функцией, графиком и условиями. Так же дан рабочий набор, с помощью которого необходимо для заданной электрической цепи вывести формулы зависимости входного сигнала Uвхот времени и выходного сигнала Uвых от времени. Затем нужно рассчитать значение параметров Uвх и Uвых. Вычислить точность, провести запись в файл и построить графики.
Создание входного сигнала:
Входной сигнал
Uвх(t)=
Рабочий набор
U = 6B
tn = 0 сек
tк = 2? сек
Передаточная характеристика.
Рабочий набор
U1 = 3 В
U2 = 15 В
Передаточная характеристика
вых (t)
Таблица идентификаторов
Обозначение в задачеидентификаторназначениеtнtnначальный момент времени наблюдения входного напряжения.tкtkконечный момент времени наблюдения входного напряженияNNколичество точек разбиенияtt[n]массив времениUвхUin[n]массив входного напряженияUвыхUout[n]массив выходного напряжения-dtшаг между точками разбиенияt1t1константа времениUUконстанта входного сигналаU1U1константа выходногосигналаU2U2константа выходногосигналаU3U3константа выходногосигналаddдостигнутая погрешность-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
#include
#include
#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 = 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 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++