From f4b08695d5535cb650d92df326718c0fe81b4984 Mon Sep 17 00:00:00 2001 From: rearman Date: Fri, 21 Oct 2022 23:00:53 -0400 Subject: [PATCH] Adding the work-eqs.el file --- common-init.el | 2 ++ work-eqs.el | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 work-eqs.el diff --git a/common-init.el b/common-init.el index fbdad51..f311518 100644 --- a/common-init.el +++ b/common-init.el @@ -150,6 +150,8 @@ Assumes common-init is defined as a variable in the separate init." (interactive) (find-file common-init)) +(load-file "./work-eqs.el") + ;; PUTS AND PUSHES (put 'upcase-region 'disabled nil) (put 'downcase-region 'disabled nil) diff --git a/work-eqs.el b/work-eqs.el new file mode 100644 index 0000000..a12d0d7 --- /dev/null +++ b/work-eqs.el @@ -0,0 +1,35 @@ +;; WORK (NON-EDITING) RELATED DEFUNS +(defun square (x) + "Calculate the square of a value." + (* x x)) + +(defun scaleval (pmax pmin emax emin &optional ai) + "Calculate the slope and offset given PLC Max/Min and Eng. Max/Min. +With optional argument 'ai', also calculate a final scaled value from an input." + (let ((div (/ (- pmax pmin) (- emax emin)))) + (let ((ofst (- emin (/ pmin div)))) + (if (not (eq nil ai)) + (let ((final (+ ofst (/ ai div)))) + (list div ofst final)) + (list div ofst))))) + +(defun cfm-circ (fpm radius) + "Calculate the CFM of a circular duct given fpm and radius (in)." + (list (* pi fpm (square (/ radius 12))))) + +(defun cfm-rect (fpm width height) + "Calculate the CFM of a circular duct given fpm, width (in) and height (in)." + (list (* fpm (/ width 12) (/ height 12)))) + +(defun pid-tune (Ku Tu p-type) + "Use the Ziegler-Nichols method to tune a P, PI or PID loop. +Takes Ku, Tu and p-type (P, PI, or PID) as arguments, and returns appropriate kp, ki, and kd." + (cond ((or (equal 'p p-type) + (equal 'P p-type)) + (list (* 0.5 Ku))) + ((or (equal 'pi p-type) + (equal 'PI p-type)) + (list (* 0.45 Ku) (/ (* 0.54 Ku) Tu))) + ((or (equal 'pid p-type) + (equal 'PID p-type)) + (list (* 0.6 Ku) (/ (* 1.2 Ku) Tu) (/ (* 3.0 Ku Tu) 40))))) -- 2.39.5