/
Messus
/
Source_power
Обзор
Документация
Войти
/
Messus
/
Source_power
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
source_rus.c
207 строк
6 KB
Messus
files modified
12 дек 2025, 06:10
12 дек 2025, 06:10
cb3a9f7
Код
Авторство
О чём код?
#include <string.h> #include <math.h> #include "source.h" #define DELTA 0.48 void user_construct(user_type* user, const char* name) { strcpy(user->name, name); user->value = 1; user->power_meh = 3.6; user->power_eng = 4.0; user->power_eng_min = 0.0; user->kpd = 0.86; user->cos_nom = 0.84; user->work_mode = FIVE; user->num_work = 1; user->kz = 0.7; user->power_inpt = 0.0; user->time_i = 1.0; user->work_time = 24.0; user->u_value = 3; } void user_destruct(user_type* user) { } //*****непрерывно работающий с постоянной нагрузкой****** //мат. ожидание активной мощности,кВт double math_p_act_mode_one(user_type* user) { double math_p; user->power_inpt = user->power_eng*(user->kz/user->kpd)*user->num_work; math_p = user->power_inpt; return math_p; } //мат. ожидание реактивной мощности, кВар double math_p_react_mode_one(user_type* user) { double math_r; double power_react; double tan_phi = sqrt(1-user->cos_nom*user->cos_nom)/user->cos_nom; power_react = user->power_eng*user->num_work*tan_phi; math_r = power_react*(user->kz/user->kpd); return math_r; } //дисперсия double dispersion_mode_one(user_type* user) { double dis = 0; return dis; } //******непрерывно работающий с переменной нагрузкой****** //мат. ожидание активной мощности,кВт double math_p_act_mode_two(user_type* user) { double math_p; double power_inpt_min; user->power_inpt = user->power_eng*(user->kz/user->kpd); power_inpt_min = user->power_eng_min*(user->kz/user->kpd); math_p = (power_inpt_min + user->power_inpt) / 2; return math_p; } //мат. ожидание реактивной мощности, кВар double math_p_react_mode_two(user_type* user) { double math_r; double power_react; double power_react_min; double tan_phi = sqrt(1-user->cos_nom*user->cos_nom)/user->cos_nom; power_react = user->power_eng*tan_phi*(user->kz/user->kpd); power_react_min = user->power_eng_min*tan_phi*(user->kz/user->kpd); math_r = (power_react_min + power_react) / 2; return math_r; } //дисперсия double dispersion_mode_two(user_type* user) { int normal = 1; //bool if (normal) { double dis; double power_inpt_min; user->power_inpt = user->power_eng*(user->kz/user->kpd); power_inpt_min = user->power_eng_min*(user->kz/user->kpd); dis = sqrt(user->power_inpt - power_inpt_min) / 36; return dis; } else { double dis; double power_inpt_min; user->power_inpt = user->power_eng*(user->kz/user->kpd); power_inpt_min = user->power_eng_min*(user->kz/user->kpd); dis = sqrt(user->power_inpt - power_inpt_min) / 12; return dis; } } //******периодически работающий с постоянной нагрузкой****** //мат. ожидание активной мощности потребитель¤ ,кВт double math_p_act_mode_tree(user_type* user) { double math_p; user->power_inpt = user->power_eng*(user->kz/user->kpd); math_p = user->power_inpt * user->time_i/user->work_time; return math_p; } //мат. ожидание реактивной мощности потребител¤, кВар double math_p_react_mode_tree(user_type* user) { double math_r; double power_react; double tan_phi = sqrt(1-user->cos_nom*user->cos_nom)/user->cos_nom; power_react = user->power_eng*tan_phi*(user->kz/user->kpd); math_r = power_react * user->time_i/user->work_time; return math_r; } //дисперсия активнной мощности потребителя double dispersion_mode_tree(user_type* user) { double dis; user->power_inpt = user->power_eng*(user->kz/user->kpd); dis = sqrt(user->power_inpt)*(user->time_i/user->work_time) - sqrt(user->power_inpt*(user->time_i/user->work_time)); return dis; } //***********дискретное распределение нагрузки************ //мат. ожидание активной мощности,кВт double math_p_act_mode_four(user_type* user) { double math_p; double power_inpt_min; user->power_inpt = user->power_eng*(user->kz/user->kpd); power_inpt_min = user->power_eng_min*(user->kz/user->kpd); math_p = (user->power_inpt + power_inpt_min) * user->time_i/user->work_time; return math_p; } //мат. ожидание реактивной мощности, кВар double math_p_react_mode_four(user_type* user) { double math_r; double power_react; double power_react_min; double tan_phi = sqrt(1-user->cos_nom*user->cos_nom)/user->cos_nom; power_react = user->power_eng*tan_phi*(user->kz/user->kpd); power_react_min = user->power_eng_min*tan_phi*(user->kz/user->kpd); math_r = (power_react + power_react_min) * user->time_i/user->work_time; return math_r; } //дисперсия double dispersion_mode_four(user_type* user) { double dis; double power_inpt_min; user->power_inpt = user->power_eng*(user->kz/user->kpd); power_inpt_min = user->power_eng_min*(user->kz/user->kpd); dis = sqrt(user->power_inpt + power_inpt_min) * user->time_i * (user->work_time - user->time_i)/sqrt(user->work_time); return dis; } //*********лебедки, краны при погрузке/разгрузке********** //мат. ожидание активной мощности потребителья ,кВт double math_p_act_mode_five(user_type* user) { double math_p; user->power_inpt = user->power_eng*(user->kz/user->kpd); math_p = user->u_value * user->power_inpt * DELTA; return math_p; } //мат. ожидание реактивной мощности потребителя, кВар double math_p_react_mode_five(user_type* user) { double math_r; double power_react; double tan_phi = sqrt(1-user->cos_nom*user->cos_nom)/user->cos_nom; power_react = user->power_eng*tan_phi*(user->kz/user->kpd); math_r = user->u_value * power_react * DELTA; return math_r; } //дисперсия активнной мощности потребителя double dispersion_mode_five(user_type* user) { double dis; user->power_inpt = user->power_eng*(user->kz/user->kpd); dis = user->u_value * sqrt(user->power_inpt) * DELTA * (1 - DELTA); return dis; } //среднеквадратическое отклонение double standard_dev(user_type* user) { double dev; dev = sqrt(0); }