vault backup: 2025-03-29 15:39:12

This commit is contained in:
Dane Sabo 2025-03-29 15:39:12 -04:00
commit ca8b5fc5ba
27 changed files with 362 additions and 314 deletions

198
.obsidian/workspaces.json vendored Normal file
View File

@ -0,0 +1,198 @@
{
"workspaces": {
"task_master": {
"main": {
"id": "9acdaefd89bfd05b",
"type": "split",
"children": [
{
"id": "7860a3855250521b",
"type": "tabs",
"children": [
{
"id": "f446cb1a27f0bd59",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "0 Managerial Pages/1 Task Dashboard.md",
"mode": "preview",
"source": false
},
"icon": "lucide-file",
"title": "1 Task Dashboard"
}
}
]
},
{
"id": "1985378602a54327",
"type": "tabs",
"children": [
{
"id": "72a82e0b37e63751",
"type": "leaf",
"state": {
"type": "full-calendar-view",
"state": {},
"icon": "calendar-glyph",
"title": "Calendar"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "e5fa84f508f70d4a",
"type": "split",
"children": [
{
"id": "7f6b5f16b83d9662",
"type": "tabs",
"children": [
{
"id": "2ae31a6460a580c2",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "5dcbb689e8ca2590",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "52955ed22e885f54",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 264.5
},
"right": {
"id": "6fb573180b35203e",
"type": "split",
"children": [
{
"id": "d04fee9208814d29",
"type": "tabs",
"children": [
{
"id": "9ac223f2f70c509e",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "2 Cole Group Meeting Notes/Weekly Note 2025-03-18.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for Weekly Note 2025-03-18"
}
},
{
"id": "eac2ce2689908506",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "2 Cole Group Meeting Notes/Weekly Note 2025-03-18.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from Weekly Note 2025-03-18"
}
},
{
"id": "2aaa48c81770326e",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "f2acfdc4f8875b73",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "2 Cole Group Meeting Notes/Weekly Note 2025-03-18.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of Weekly Note 2025-03-18"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"workspaces:Manage workspace layouts": false,
"obsidian-full-calendar:Open Full Calendar": false,
"obsidian-git:Open Git source control": false,
"templater-obsidian:Templater": false
}
},
"active": "2ae31a6460a580c2",
"mtime": "2025-03-27T14:09:34-04:00"
}
},
"active": "task_master"
}

View File

@ -1,43 +0,0 @@
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

@ -1,43 +0,0 @@
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

@ -1,53 +0,0 @@
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 ~/Documents/Dane\'s\ Vault/300s\ School/ME\ 2150\ -\ High\ Assurance\ Cyber-Physical\ Systems
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 +15 2025-03-25\ Max\'s\ Lecture.md
argglobal
%argdel
edit 2025-03-25\ Max\'s\ Lecture.md
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 = 15 - ((14 * winheight(0) + 30) / 60)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 15
normal! 049|
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

@ -1,43 +0,0 @@
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 ~/Documents/Dane\'s\ Vault
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

@ -1,96 +0,0 @@
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 ~/Documents/Dane\'s\ Vault/300s\ School/ME\ 2046\ -\ Digital\ Control\ Theory
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 +49 Project/Project_Proposal.md
argglobal
%argdel
edit Project/Project_Proposal.md
let s:save_splitbelow = &splitbelow
let s:save_splitright = &splitright
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
let &splitbelow = s:save_splitbelow
let &splitright = s:save_splitright
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
exe 'vert 1resize ' . ((&columns * 112 + 112) / 224)
exe 'vert 2resize ' . ((&columns * 111 + 112) / 224)
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 = 49 - ((45 * winheight(0) + 32) / 65)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 49
normal! 0345|
wincmd w
argglobal
if bufexists(fnamemodify("term://~/Documents/Dane\'s\ Vault/300s\ School/ME\ 2046\ -\ Digital\ Control\ Theory//24828:/bin/bash", ":p")) | buffer term://~/Documents/Dane\'s\ Vault/300s\ School/ME\ 2046\ -\ Digital\ Control\ Theory//24828:/bin/bash | else | edit term://~/Documents/Dane\'s\ Vault/300s\ School/ME\ 2046\ -\ Digital\ Control\ Theory//24828:/bin/bash | endif
if &buftype ==# 'terminal'
silent file term://~/Documents/Dane\'s\ Vault/300s\ School/ME\ 2046\ -\ Digital\ Control\ Theory//24828:/bin/bash
endif
balt Project/Project_Proposal.md
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
let s:l = 125 - ((64 * winheight(0) + 32) / 65)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 125
normal! 0
wincmd w
exe 'vert 1resize ' . ((&columns * 112 + 112) / 224)
exe 'vert 2resize ' . ((&columns * 111 + 112) / 224)
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 &winminheight = s:save_winminheight
let &winminwidth = s:save_winminwidth
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

@ -13,13 +13,11 @@ if &shortmess =~ 'A'
else
set shortmess=aoO
endif
badd +74 3-99\ Research/Sensors/Handbook\ of\ Modern\ Sensors/Chapter\ 4\ -\ Interface\ Electronic\ Circuits.md
badd +7 .sessions/nvim_config.vim
badd +19 3-99\ Research/Sensors/Handbook\ of\ Modern\ Sensors/Chapter\ 4\ -\ Interface\ Electronic\ Circuits.md
argglobal
%argdel
edit .sessions/nvim_config.vim
edit 3-99\ Research/Sensors/Handbook\ of\ Modern\ Sensors/Chapter\ 4\ -\ Interface\ Electronic\ Circuits.md
argglobal
balt 3-99\ Research/Sensors/Handbook\ of\ Modern\ Sensors/Chapter\ 4\ -\ Interface\ Electronic\ Circuits.md
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
@ -30,11 +28,11 @@ setlocal fdn=20
setlocal fen
silent! normal! zE
let &fdl = &fdl
let s:l = 7 - ((6 * winheight(0) + 30) / 60)
let s:l = 19 - ((0 * winheight(0) + 33) / 67)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 7
keepjumps 19
normal! 0
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'

View File

@ -3,7 +3,7 @@ let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/Projects/BeagleBone
cd ~/Documents/Dane\'s\ Vault/5\ Thesis
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
@ -13,11 +13,10 @@ if &shortmess =~ 'A'
else
set shortmess=aoO
endif
badd +11 Murphy_Test_Code/helper.py
badd +1 health://
badd +4 4\ Meetings/DGC_DAS_328.md
argglobal
%argdel
edit Murphy_Test_Code/helper.py
edit 4\ Meetings/DGC_DAS_328.md
argglobal
setlocal fdm=manual
setlocal fde=0
@ -29,12 +28,12 @@ setlocal fdn=20
setlocal fen
silent! normal! zE
let &fdl = &fdl
let s:l = 11 - ((10 * winheight(0) + 32) / 64)
let s:l = 4 - ((3 * winheight(0) + 5) / 11)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 11
normal! 0
keepjumps 4
normal! 03|
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
@ -48,6 +47,7 @@ if filereadable(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

@ -14,14 +14,15 @@ else
set shortmess=aoO
endif
badd +17 ~/.config/nvim/lua/custom/plugins.lua
badd +9 ~/.config/nvim/lua/custom/configs/lspconfig.lua
badd +33 ~/.config/nvim/lua/custom/configs/lspconfig.lua
badd +6 custom/configs/rust-tools.lua
badd +4 custom/init.lua
badd +5 custom/init.lua
badd +91 ~/.config/nvim/lua/custom/chadrc.lua
argglobal
%argdel
edit custom/init.lua
argglobal
balt ~/.config/nvim/lua/custom/configs/lspconfig.lua
balt ~/.config/nvim/lua/custom/chadrc.lua
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
@ -32,12 +33,12 @@ setlocal fdn=20
setlocal fen
silent! normal! zE
let &fdl = &fdl
let s:l = 4 - ((3 * winheight(0) + 32) / 64)
let s:l = 11 - ((10 * winheight(0) + 27) / 55)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 4
normal! 028|
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

View File

@ -9,7 +9,7 @@ tags:
[[ Weekly Note 2025-03-10]]
# Summary
## What's the plan?
- [<] Make a travel itenerary for Amber's Feds #Personal ⏫ 📅 2025-03-21
- [<] Make a travel itenerary for Amber's Feds #Personal ⏫ 📅 2025-04-10
## What's the results!
```tasks

View File

@ -7601,6 +7601,26 @@ for defect classification of TFTLCD panels.pdf}
file = {/home/danesabo/Zotero/storage/84GMPWDD/DBN for aircraft wing health monitoring DT.pdf}
}
@article{linInnovativeSuccessiveApproximation2021,
title = {An {{Innovative Successive Approximation Register Analog-to-Digital Converter}} for a {{Nine-Axis Sensing System}}},
author = {Lin, Chih-Hsuan and Wen, Kuei-Ann},
date = {2021-03},
journaltitle = {Journal of Low Power Electronics and Applications},
volume = {11},
number = {1},
pages = {3},
publisher = {Multidisciplinary Digital Publishing Institute},
issn = {2079-9268},
doi = {10.3390/jlpea11010003},
url = {https://www.mdpi.com/2079-9268/11/1/3},
urldate = {2025-03-28},
abstract = {With nine-axis sensing systems in 5G smartphones, mobile power consumption has become increasingly important, and ultra-low-power (ULP) sensor circuits can decrease power consumption to tens of microwatts. This paper presents an innovative successive approximation register analog-to-digital converter, which comprises fine (three most significant bits (MSBs) plus course conversion (11 least significant bits (LSBs)) capacitive digital-to-analog converters (CDACs), ULP, four-mode reconfigurable resolution (9, 10, 11, or 12 bits), an internally generated clock, meta-detection, the switching base midpoint voltage (Vm) (SW-B-M), bit control logic, multi-phase control logic, fine (three MSBs) plus course conversion (11 LSBs) switch control logic, phase control logic, and an input signal plus negative voltage (VI + NEG) voltage generator. Then, the mechanism of the discrete Fourier transform (DFT)-based calibration is applied. The scalable voltage technique was used, and the analog/digital voltage was Vanalog (1.5 V) and Vdigital (0.9 V) to meet the specifications of the nine-axis ULP sensing system. The CDACs can reconfigure four-mode resolutions, 912 bits, for use in nine-axis sensor applications. The corresponding dynamic signal-to-noise and distortion ratio performance was 50.78, 58.53, 62.42, and 66.51 dB. In the 12-bit mode, the power consumption of the ADC was approximately 2.7 μW, and the corresponding figure of merit (FoM) was approximately 30.5 fJ for each conversion step.},
issue = {1},
langid = {english},
keywords = {DFT-based,fine (3 MSBs) plus course conversion (11 LSBs) CDAC,reconfigurable,SAR-ADC},
file = {/home/danesabo/Zotero/storage/DKEJCQ8S/Lin and Wen - 2021 - An Innovative Successive Approximation Register Analog-to-Digital Converter for a Nine-Axis Sensing.pdf}
}
@article{linUncertaintyQuantificationSoftware2021,
title = {Uncertainty Quantification and Software Risk Analysis for Digital Twins in the Nearly Autonomous Management and Control Systems: {{A}} Review},
shorttitle = {Uncertainty Quantification and Software Risk Analysis for Digital Twins in the Nearly Autonomous Management and Control Systems},

View File

@ -0,0 +1,14 @@
The quick brown fox jumps over the lazy dog. The dog stays blissfully asleep. :)
Iterative learning control is a control method that can only be implemented on
a computer, because the system itself can change over time. By nature of it
being iterative as well, it is most useful when it is a system that does a
repetitive task.
> [!seealso] Lifting and the SAR ADC Interpolation
> Look deeper into lifting of digital control systems. May be relevant to the
> project and the partial time step thing. I think using a lifted output to the
> partial timesteps during an interpolation will reveal what it means for the
> system to be stable.

View File

@ -8,6 +8,7 @@
## Files
- [[2025-01-09 Sampling Theory.md]]
- [[2025-01-16 The Z Transform.md]]
- [[2025-03-27 Iterative Learning Control.md]]
- [[Homework 1.md]]
- [[LQR Regulators.md]]
- [[test.m]]

View File

@ -12,26 +12,27 @@ 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
\cite{modern_sensor_handbook}. ADCs jobs 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
first storing the signal at an instant (a Zero-Order-Hold like operation), and
then compares 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
must have a `0` for that bit. The SAR ADC repeats 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
components of a SAR ADC are usually some configuration of capacitors 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
@ -46,4 +47,32 @@ 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*
There is potential that this waiting can be circumnavigated. If the memory
registers of the SAR ADC can be accessed while it is actively building a
sample, the first significant bits can be used in combination with a state
estimation to perform control while the rest of the sample is still being
generated. For this project, I will implement such a system.
For this project, a simulated SAR ADC will be created. This simulated SAR ADC
will be created to mimic the register behavior of the SAR ADC found on the
ATMega328P, where the data registers are updated one by one on each clock cycle,
and a flag register is utilized to indicate a conversion has finished. This
simulated SAR ADC will be paired with a simulated controller fast enough to
make state estimates and issue control commands between batches of ADC
bits (3-4 bits per batch). This controller will estimate the state of the system
at this partial-sample, and combined with the current ADC readout, perform control.
For a plant, I plan to use the case of a read head on a hard disk drive. Hard
disk drives require extreme precision to operate properly, and as such would
benefit from an extremely high speed control system. In my problem, I will model
this system as controlling the radial position of the read head, while modeling
the inertia of the read head apparatus and motor dynamics. In addition to these
effects, I will introduce a high frequency disturbance that represents turbulent
fluid interacting with the drive head, pushing it off of its ideal position.
The block diagram of this system is expressed in figure~\ref{fig}.
If this project is successful, the higher inter-sample controller will have a
lower average error between the real head position and desired head position
when compared to the controller using only full ADC sampling.

View File

@ -0,0 +1,8 @@
# Table of Contents for 4 Meetings
## Files
- [[DGC_DAS_328.md]]
## Summary
Generated by llama3.2:latest

View File

@ -0,0 +1,4 @@
The quick brown fox jumps over the lazy dog. The dog stays blissfully asleep. :)
# Things to discuss
1.

View File

@ -4,22 +4,12 @@
- [[1 Ideas/1 Ideas - README]]
- [[2 Logs/2 Logs - README]]
- [[3 Notes/3 Notes - README]]
- [[4 Meetings/4 Meetings - README]]
## Files
- [[Thesis Thoughts.md]]
- [[Things to Do.md]]
## Summary
# 5 Thesis Folder Contents
The `5 Thesis` folder contains the following:
* Three subdirectories for organizing notes:
+ [[1 Ideas]]
+ [[2 Logs]]
+ [[3 Notes]]
* Two Markdown files:
+ [[Thesis Thoughts.md]], a note on my initial thoughts and ideas for the thesis
+ [[Things to Do.md]], a list of follow-up tasks and questions related to the thesis
Generated by llama3.2:latest

View File

@ -0,0 +1,8 @@
---
title: ME 2046 Project Proposal
allDay: false
startTime: 13:30
endTime: 15:45
date: 2025-03-26
completed: null
---

View File

@ -0,0 +1,8 @@
---
title: ME2046 Project Proposal
allDay: false
startTime: 10:14
endTime: 11:15
date: 2025-03-27
completed: null
---

View File

@ -0,0 +1,8 @@
---
title: ME2046 Proposal
allDay: false
startTime: 14:15
endTime: 16:00
date: 2025-03-27
completed: null
---

View File

@ -35,6 +35,9 @@
- [[2025-03-21 Vim Shortcuts (Folding).md]]
- [[2025-03-24 Read About ADC.md]]
- [[2025-03-25 IDR.md]]
- [[2025-03-26 ME 2046 Project Proposal.md]]
- [[2025-03-27 ME2046 Project Proposal.md]]
- [[2025-03-27 ME2046 Proposal.md]]
## Summary

View File

@ -0,0 +1,8 @@
---
title: Get engine stand from Gabe
allDay: false
startTime: 13:00
endTime: 14:00
date: 2025-03-28
completed: null
---

View File

@ -0,0 +1,8 @@
---
title: Lewie Vet Appointment
allDay: false
startTime: 14:15
endTime: 15:15
date: 2025-03-28
completed: null
---

View File

@ -0,0 +1,8 @@
---
title: Travel home
allDay: false
startTime: 11:00
endTime: 11:30
date: 2025-03-28
completed: null
---

View File

@ -34,6 +34,9 @@
- [[2025-03-25 Walk tha DAWG.md]]
- [[2025-03-26 Coffee Yak and Explore Med School.md]]
- [[2025-03-26 Lunch.md]]
- [[2025-03-28 Get engine stand from Gabe.md]]
- [[2025-03-28 Lewie Vet Appointment.md]]
- [[2025-03-28 Travel home.md]]
- [[2025-07-01 Arrive.md]]
- [[2025-07-01 Churchill War Rooms.md]]
- [[2025-07-01 London Eye.md]]

View File

@ -0,0 +1,8 @@
---
title: Manyu defense
allDay: false
startTime: 08:00
endTime: 10:00
date: 2025-03-28
completed: null
---

View File

@ -24,6 +24,7 @@
- [[2025-03-24 Write about Chapter 4 from Modern Sensors Handbook.md]]
- [[2025-03-25 Chat about secure platforms for seL4.md]]
- [[2025-03-25 Fix Pyright for Neovim.md]]
- [[2025-03-28 Manyu defense.md]]
## Summary