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

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

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

Оглавление

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

. Исходные данные

. Анализ поставленной задачи

. Структура программы

.1 Модули программы

.2 Список идентификаторов

.3 Список функций и их назначения

.4 Интерфейс программы

. Исходный код программы

. Проверка расчетов в Maxima и построение графиков

Выводы

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

В данной работе требуется написать программу, с помощью которой можно выполнить следующие действия:

1. Вычисление значения входного и выходного сигналов в n-равноотстоящих точках.

2. Вывод на экран таблицы со значениями входного и выходного сигналов.

3. Запись результатов вычислений на диск.

4. Чтение и использование рабочего набора из файла.

5. Проверка полученных значений в Maxima и построение графиков Uвх(t) и Uвых(t).

2. Исходные данные

Имеется электрическая цепь, на вход которой подается определенный сигнал Uвх. Необходимо по заданному входному сигналу определить величину Uвых.

Рис. 1

3. Анализ поставленной задачи

В данной задаче входной сигнал задается графически. График состоит из трех прямых. Рассмотрев каждую по отдельности и подставив значения из контрольного расчета, можно составить формулу для расчета Uвх(t):

 

Подставив значения из контрольного расчета в формулу для нахождения выходного сигнала, можно получить конечную формулу:


4. Структура программы

4.1 Модули программы

main.c - главный модуль программы. В нем объявляются все переменные и массивы.

function.c - модуль программы, содержащий все остальные функции, необходимые для работы программы.

function.h - заголовочный файл, содержащий прототипы всех функций.

4.2 Список идентификаторов

SIZE- именованная константа, равная 11. Используется для создания массивов.

Array_t[] - массив значений времени, для которых рассчитываются сигналы.

Array_U_Unput[] - массив значений входного сигнала.

Array_U_Output[] - массив значений выходного сигнала.

T_end - конечный момент времени.

T_start - начальный момент времни.

U_verh - переменная верхней границы фонового режима.

U_niz - переменная нижней границы фонового режима._t - переменная приращения времени._w - вторая переменная приращения времени._various - переменная выбора условия._top - переменная верхней границы фонового режима по напряжению._down - переменная нижней границы фонового режима по напряжению.- указатель на файл.

4.3 Список функций и их назначения

int main() - главная функция программы.

void hello() - функция, читающая приветственное сообщение из файла.

int menu() - функция, отображающая на экране меню и возвращающая номер выбранного пункта в программу.

double Get_U_input (double t) - функция расчета входного напряжения по заданному значению времени.

double Get_U_output (double U_input) - функция расчета выходного напряжения по заданному значению входного напряжения.

int input_various -Функция реализующая возможность множественного выбора выполнения программы.

void arrays_create - функция создания массивов.

void table_output - функция вывода таблицы с результатами выполнения основной задачи.

void file_output- функция записи файла.

void file_input - Функция чтения значений начального и конечного времени из файла.

void output_spec - функция вывода результатов дополнительного задания.clean () - функция очистки экрана.

4.4 Интерфейс программы

Работа с программой осуществляется через меню. В нем имеются 6 пунктов:deistviya

. Vvod peremennih - ввод переменных для выполнения задания.

. Sozdanie massivov - создание массивов значений времени, входного и выходного сигналов.

. Vivod tablizi osnovnoy chasty - вывод таблицы значений основной части программы.

. Vivod znacheniy dop.zadaniya - вывод значений дополнительной части программы.

. Zapis rezultatov v file - запись результатов в файл.

. Chtenie rezultatov iz faila - чтение значений для выполнения программы из файла.

. EXIT

5. Исходный код программы

functions.h

double Get_U_input (double t);Get_U_output (double U_input);ask_dt (int SIZE);input_various ();arrayscreate (int SIZE, double array_t[],double array_in[],double array_out[], double dt);table_output (int SIZE,double arr_name_t[],double arr_name_in[],double arr_name_out[]);file_input (int SIZE,double arr_name_t[],double arr_name_in[],double arr_name_out[]);file_output (int SIZE,double arr_name_t[],double arr_name_in[],double arr_name_out[]);zadniy_front ();.hget_entry();.c

#include <stdio.h>

#include <stdlib.h>

#include "functions.h"

#include "menu.h"

#define SIZE 50

#define t_start 0.0

#define EXIT_CODE 7main() {("clear");array_t[SIZE],array_in[SIZE],array_out[SIZE];dt;entry;((entry=get_entry())!=EXIT_CODE)

{(entry)

{1:= ask_dt (SIZE);;2:_create (SIZE,array_t,array_in,array_out,dt);;3:_output (SIZE,array_t,array_in,array_out);;4:_front();;5:_output (SIZE,array_t,array_in,array_out);;6:_input (SIZE,array_t,array_in,array_out);;

}

}0;

}.c

#include <stdio.h>

#include <stdlib.h>Get_U_input (double t) {("clear");((t<-3) || (t>4))0;if ((t>=-3) && (t<0))((-100/3)*t - 100);return (25*t - 100);

}Get_U_output (double U_input) {("clear");(U_input > 0)0;if ((U_input<=0) && (U_input > -10))(10*U_input);return -100;

}ask_dt (int SIZE){("clear");t_end, t_start, dt_w;("vvedite konechnoe znachenie");("%lf",&t_end);("vvedite nachalnoe znachenie");("%lf",&t_start);_w = 0;_w = (t_end - t_start) / (double) (SIZE - 1);dt_w;

}input_various (){("clear");name;("bil li vipolnen vvod peremennih?\n");("esli da , najmite 2, esli net najmite 1\n");("%d",&name);name;

}arrays_create (int SIZE, double array_t[],double array_in[],double array_out[], double dt) {("clear");dt_t, t_start;i;("vvedite nachalnoe znachenie");("%lf",&t_start);(input_various () == 1)_t = ask_dt (SIZE);_t = dt;(i=0;i<SIZE;i++){_t[i] = t_start + i*dt_t;

}(i=0;i<SIZE;i++){_in[i]= Get_U_input (array_t[i]);

}(i=0;i<SIZE;i++){_out[i] = Get_U_output (array_in[i]);

}

}table_output (int SIZE,double arr_name_t[],double arr_name_in[],double arr_name_out[]) {("clear");i;(" Vremya || U vhodnoe || U vihodnoe\n ");(i=0;i<SIZE;i++){(" %11f || %11f || %11f\n ",arr_name_t[i],arr_name_in[i],arr_name_out[i]);

}("_________________________________________________\n");

printf (" vremya || U_vhodnoe || U_vihodnoe \n\n\n ");

}file_output (int SIZE,double arr_name_t[],double arr_name_in[],double arr_name_out[]) {("clear");* file = fopen ("data.csv", "w");(file == NULL) {("Oshibka zapisi v fail.\n");;

}i;(file, "Vremya,U in, U out\n");(i=0;i<SIZE;i++)(file, "%lf,%lf,%lf\n",arr_name_t[i],arr_name_in[i],arr_name_out[i]);(file);

}file_input (int SIZE,double arr_name_t[],double arr_name_in[],double arr_name_out[]) {("clear");* file = fopen ("data.csv", "r");(file == NULL) {("Fail data.csv ne naiden!\n");;

}c;((c = fgetc (file)) != '\n')

;i;(i = 0; i < SIZE; i++)(file, "%lf,%lf,%lf", &arr_name_t[i], &arr_name_in[i], &arr_name_out[i]);(file);

}zadniy_front () {("clear");m1,m2;= 0.1;= 0.9;t1,t2,t3,t4;k1 = 100/3;k2 = 25;= 100*m1/k1;= 100*m2/k1;= 100*m1/k2;= 100*m2/k2;time = t1 + (3 - t2) + t3 + (4 - t4);("dlitelnost zadnego fronta ravna %lf \n\n",time);

}.c

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

#include "menu.h"

#define EXIT_CODE 7

int get_entry()

{entry=0;("Vibor deistviya\n");("%10d %-50s\n",1, "Vvod peremennih");("%10d %-50s\n",2, "sozdanie massivov");("%10d %-50s\n",3, "Vivod tablizi osnovnoy chasty");("%10d %-50s\n",4, "Vivod znacheniy dop.zadaniya");("%10d %-50s\n",5, "zapis rezultatov v file");("%10d %-50s\n",6, "chtenie parametrov iz faila");("%10d %-50s\n",EXIT_CODE, "EXIT");("Vash vibor:");("%d%*c",&entry);(entry <1 || entry>EXIT_CODE)

{("Vibor tol'ko ot 1 do %d\n",EXIT_CODE);("Vash vibor:");("%d%*c",&entry);

}

return entry;

}

6. Проверка расчетов в Maxima и построение графиков

Проверка в системе Maxima будет проведена с помощью записи формул непосредственно в саму систему. Т.е. значения входных и выходных сигналов будут рассчитываться непосредственно в Maxima.

выходной сигнал программа код

Рис. 2

Рис. 3

Рис. 4

Выводы

Как мы видим из графиков, значения, получившиеся в составленной программе и в Maxima, совпадают. Соответственно можно сделать вывод, что написанная в данной курсовой работе программа проводит вычисления верно, а значит, составлена правильно.

Похожие работы на - Расчет характеристик выходных сигналов электрических цепей

 

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