
- •Оглавление
- •1. Введение
- •Постановка задачи
- •2.1 Условия
- •2.2 Анализ графиков
- •3. Разработка алгоритма на языке Си
- •3.1 Проектирование
- •Реализация программы
- •3.3.1 Main.C
- •3.3.2 Library.C
- •Void times(float*, parametrs);
- •Void uins(float*, float*, parametrs);
- •Void uouts(float*, float*, parametrs);
- •Int save_full_file(char*, float*, float*, float*, parametrs);
- •Int save_maxima_file(char*, char*, char*, float*, float*, float*, parametrs);
- •Void load_file(char*, parametrs*);
- •3.3.3 Таблица констант
- •3.3.4 Таблица идентификаторов
- •4.1 Тест 1
- •5. Заключение
- •7. Приложение
- •7.11 Main.C
- •7.12 Library.C
- •7.13 Include.H
Void load_file(char*, parametrs*);
Назначение: функция читает входные параметры из текстового файла
Интерфейс: функция принимает имя файла, который нужно прочитать, и указатель на структуру parameters . Считываемые значения записываются в структуру. Возвращаемое значение отсутствует
Результат: После успешного выполнения этой функции переменная структуры будет содержать рабочий набор параметров цепи.
3.3.3 Таблица констант
Имя |
Назначение |
MAXSIZE |
Максимальный размер рабочих массивов |
ci_N |
Минимальное количество точек |
F_O_FULL |
Имя файла для результатов |
F_O_MAXIMA_TIME |
Имя файла для массива времени |
F_O_MAXIMA_UI |
Имя файла для массива входного сигнала |
F_O_MAXIMA_UO |
Имя файла для массива выходного сигнала |
F_INPUT |
Имя файла с входными параметрами |
EXIT_CODE |
Код выхода из меню |
3.3.4 Таблица идентификаторов
Имя |
Тип |
Назначение |
c |
char |
Используется в конструкции switch. Хранит код пункта меню, который выбрал пользователь |
p; |
typedef struct { int n; float tn; float tk; float t1; float t2; float ui1; float ui2; float uimax; float uimin; float uomax; float uomin; } parametrs; |
Структура, хранящая все текущие рабочие параметры (параметры цепи) Определена для облегчения передачи аргументов функции. Так как намного легче передать функции один параметр, чем 11. |
af_time[MAXSIZE] |
float |
Массив отсчетов времени |
af_uin[MAXSIZE] |
float |
Массив входного сигнала |
af_uout[MAXSIZE] |
float |
Массив выходного сигнала |
Тестирование программы
4.1 Тест 1
Верхняя граница входного сигнала U1 = 100 В
Нижняя граница входного сигнала U2 = 0
Начальное время tn = -5 с
Конечное время tk = 15 c
Отсчет времени t1 = 2 с
Отсчет сигнала 1 0 В
Отсчет сигнала 2 10 В
Верхняя граница выходного сигнала 0 В
Нижняя граница выходного сигнала 50 В
Входной сигнал:
Передаточная характеристика:
Выходной сигнал в wxMaxima
Входной сигнал по точкам
Выходной
сигнал по точкам:
Таблица Расчетов
Time |
Uin |
Uout |
-5 -4.8995 -4.799 -4.6985 -4.598 -4.4975 -4.397 -4.2965 -4.196 -4.0955 -3.995 -3.8945 -3.794 -3.6935 -3.593 -3.4925 -3.392 -3.2915 -3.191 -3.0905 -2.9899 -2.8894 -2.7889 -2.6884 -2.5879 -2.4874 -2.3869 -2.2864 -2.1859 -2.0854 -1.9849 -1.8844 -1.7839 -1.6834 -1.5829 -1.4824 -1.3819 -1.2814 -1.1809 -1.0804 -0.98 |
f(-5)=0 f(-4.8995)=1.4358 f(-4.799)=2.8715 f(-4.6985)=4.3073 f(-4.598)=5.743 f(-4.4975)=7.1788 f(-4.397)=8.6145 f(-4.2965)=10.05 f(-4.196)=11.486 f(-4.0955)=12.922 f(-3.995)=14.358 f(-3.8945)=15.793 f(-3.794)=17.229 f(-3.6935)=18.665 f(-3.593)=20.101 f(-3.4925)=21.536 f(-3.392)=22.972 f(-3.2915)=24.408 f(-3.191)=25.844 f(-3.0905)=27.279 f(-2.9899)=28.715 f(-2.8894)=30.151 f(-2.7889)=31.587 f(-2.6884)=33.022 f(-2.5879)=34.458 f(-2.4874)=35.894 f(-2.3869)=37.33 f(-2.2864)=38.765 f(-2.1859)=40.201 f(-2.0854)=41.637 f(-1.9849)=43.073 f(-1.8844)=44.508 f(-1.7839)=45.944 f(-1.6834)=47.38 f(-1.5829)=48.816 f(-1.4824)=50.251 f(-1.3819)=51.687 f(-1.2814)=53.123 f(-1.1809)=54.559 f(-1.0804)=55.994 f(-0.98)=57.43 |
time=-5 p(0)=0 time=-4.8995 p(1.4358)=7.1788 time=-4.799 p(2.8715)=14.358 time=-4.6985 p(4.3073)=21.536 time=-4.598 p(5.743)=28.715 time=-4.4975 p(7.1788)=35.894 time=-4.397 p(8.6145)=43.073 time=-4.2965 p(10.05)=50 time=-4.196 p(11.486)=50 time=-4.0955 p(12.922)=50 time=-3.995 p(14.358)=50 time=-3.8945 p(15.793)=50 time=-3.794 p(17.229)=50 time=-3.6935 p(18.665)=50 time=-3.593 p(20.101)=50 time=-3.4925 p(21.536)=50 time=-3.392 p(22.972)=50 time=-3.2915 p(24.408)=50 time=-3.191 p(25.844)=50 time=-3.0905 p(27.279)=50 time=-2.9899 p(28.715)=50 time=-2.8894 p(30.151)=50 time=-2.7889 p(31.587)=50 time=-2.6884 p(33.022)=50 time=-2.5879 p(34.458)=50 time=-2.4874 p(35.894)=50 time=-2.3869 p(37.33)=50 time=-2.2864 p(38.765)=50 time=-2.1859 p(40.201)=50 time=-2.0854 p(41.637)=50 time=-1.9849 p(43.073)=50 time=-1.8844 p(44.508)=50 time=-1.7839 p(45.944)=50 time=-1.6834 p(47.38)=50 time=-1.5829 p(48.816)=50 time=-1.4824 p(50.251)=50 time=-1.3819 p(51.687)=50 time=-1.2814 p(53.123)=50 time=-1.1809 p(54.559)=50 time=-1.0804 p(55.994)=50 time=-0.98 p(57.43)=50 |
Задний фронт входного и выходного сигнала:
back front Uout = 1.005030
back front Uin = 10.452286