Compare commits

...

2 Commits

Author SHA1 Message Date
f33070f08d project proposal me2046 2025-03-27 11:17:53 -04:00
b032016e97 idk 2025-03-27 09:43:50 -04:00
6 changed files with 250 additions and 13 deletions

View File

@ -0,0 +1,43 @@
let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/.config/nvim/lua/custom
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
let s:shortmess_save = &shortmess
if &shortmess =~ 'A'
set shortmess=aoOA
else
set shortmess=aoO
endif
argglobal
%argdel
argglobal
enew
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20
let &shortmess = s:shortmess_save
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

View File

@ -0,0 +1,43 @@
let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/.config/nvim/lua
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
let s:shortmess_save = &shortmess
if &shortmess =~ 'A'
set shortmess=aoOA
else
set shortmess=aoO
endif
argglobal
%argdel
argglobal
enew
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20
let &shortmess = s:shortmess_save
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

View File

@ -0,0 +1,53 @@
let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/Projects/BeagleBone
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
let s:shortmess_save = &shortmess
if &shortmess =~ 'A'
set shortmess=aoOA
else
set shortmess=aoO
endif
badd +11 Murphy_Test_Code/helper.py
badd +1 health://
argglobal
%argdel
edit Murphy_Test_Code/helper.py
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let &fdl = &fdl
let s:l = 11 - ((10 * winheight(0) + 32) / 64)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 11
normal! 0
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20
let &shortmess = s:shortmess_save
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

56
.sessions/SMARTTERER.vim Normal file
View File

@ -0,0 +1,56 @@
let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/Projects/SMARTTERER
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
let s:shortmess_save = &shortmess
if &shortmess =~ 'A'
set shortmess=aoOA
else
set shortmess=aoO
endif
badd +2 pyproject.toml
badd +28 OT_Emulation_Data_Broker/Endpoint/EndPoint.py
badd +1211 ~/.local/state/nvim/lsp.log
badd +10 health://
argglobal
%argdel
edit OT_Emulation_Data_Broker/Endpoint/EndPoint.py
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let &fdl = &fdl
let s:l = 28 - ((27 * winheight(0) + 32) / 64)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 28
normal! 037|
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20
let &shortmess = s:shortmess_save
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
nohlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

View File

@ -13,16 +13,13 @@ if &shortmess =~ 'A'
else else
set shortmess=aoO set shortmess=aoO
endif endif
badd +44 custom/mappings.lua badd +17 ~/.config/nvim/lua/custom/plugins.lua
badd +63 ~/.config/nvim/lua/custom/plugins.lua badd +9 ~/.config/nvim/lua/custom/configs/lspconfig.lua
badd +62 ~/.config/nvim/lua/custom/language_specific_commands/rust.lua badd +6 custom/configs/rust-tools.lua
badd +7 custom/language_specific_commands/markdown.lua badd +4 custom/init.lua
badd +43 custom/language_specific_commands/matlab.lua
badd +45 ~/.config/nvim/lua/custom/configs/lspconfig.lua
badd +1 custom/configs/rust-tools.lua
argglobal argglobal
%argdel %argdel
edit custom/configs/rust-tools.lua edit custom/init.lua
argglobal argglobal
balt ~/.config/nvim/lua/custom/configs/lspconfig.lua balt ~/.config/nvim/lua/custom/configs/lspconfig.lua
setlocal fdm=manual setlocal fdm=manual
@ -35,12 +32,12 @@ setlocal fdn=20
setlocal fen setlocal fen
silent! normal! zE silent! normal! zE
let &fdl = &fdl let &fdl = &fdl
let s:l = 1 - ((0 * winheight(0) + 32) / 64) let s:l = 4 - ((3 * winheight(0) + 32) / 64)
if s:l < 1 | let s:l = 1 | endif if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l keepjumps exe s:l
normal! zt normal! zt
keepjumps 1 keepjumps 4
normal! 0 normal! 028|
tabnext 1 tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal' if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf silent exe 'bwipe ' . s:wipebuf

View File

@ -1,4 +1,49 @@
The quick brown fox jumps over the lazy dog. The dog stays blissfully asleep. :) The quick brown fox jumps over the lazy dog. The dog stays blissfully asleep. :)
The goal of this research is to surpass analog-to-digital converter sampling The goal of this project is to surpass sampling rate limitations of a successive
rate limitations by using an observer t approximation analog to digital converter by utilizing a modified
observer to perform control on incomplete successive approximation data, while
refining control based on latent sensor resolution.
When a sensor makes an observation about a physical phenomena, the output of that
sensor is a continuously changing value. Most modern control implementations,
however, operate on computers that use a discrete space of values that can be
expressed in memory. This creates an issue, where the continuous value of
interest output by a sensor must be converted into a discrete equivalent that
the controller can use. This step is processed by a special sensor interface
circuit component called an analog to digital converter (ADC)
\cite{modern_sensor_handbook}. ADCs job are to interpret the continuous signal
of the sensor, and deliver the digital equivalent that can then be used for
control.
One type of ADC is especially common in microcontrollers today. The successive
approximation (SAR) ADC converts analog signals to a digital equivalent by
comparing the input voltage to a series of reference voltages controlled by
a logical circuit. This conversion compares the input first to the most
significant bit of the digital representation, and evaluates whether the
input voltage is above or below the reference value. If the input voltage is
higher than this value, the corresponding digital value must have a `1` in
that location, while if the input voltage is less than the reference, it
must have a `0` for that bit. The SAR ADC repeates this process for the number
of bits required to complete a sample (usually about 12 bits). This series of
comparisons happens one bit at a time, and must happen in the order of most
significant bit to least significant bit.
SAR ARC components must balance three competing design requirements: power
usage, sampling speed, and noise rejection \cite{paper_about_adc}. The internal
components of a SAR ADC are usually some configuration of capicitors that sample
voltage from a certain instant, hold that sample throughout comparison, and
perform the comparisons themselves. All of these processes take a significant
amount of time complete, and due to the requirements of SAR ADCs to reject
noise and limit power consumption, are difficult to speed up without incurring
significant cost. These SAR ADC usually operate on their own internal clock
that is much slower than the CPU clock on the broader controller. For example,
the built-in ADC converters on the Atmel ATMega328P microcontroller commonly found
in the Arduino Uno boards, has a maximum 10-bit analog to digital conversion
rate of 15,000 samples per second. In comparison, the CPU on the ATmega328P can
operate as quickly as 20 MHz when using an external clock \cite{ATmega_user_manual}.
This means for a ATMega328P microcontroller utilizing ADC conversion, the CPU
may spend a significant amount of time between control computations just waiting
for an updated sensor value.
There is potential that this waiting can be circumnavigated. *explain how SAR updates registers continuously for some devices. perhaps we can use first couple bits with a state estimator to make a guess what the final value will be and do control. then as we get mroe info, and with our model of the system, we can correct for how wrong we were*