{"id":"https://openalex.org/W2043724067","doi":"https://doi.org/10.1145/1950413.1950454","title":"An FPGA implementation of a sparse quadratic programming solver for constrained predictive control","display_name":"An FPGA implementation of a sparse quadratic programming solver for constrained predictive control","publication_year":2011,"publication_date":"2011-02-27","ids":{"openalex":"https://openalex.org/W2043724067","doi":"https://doi.org/10.1145/1950413.1950454","mag":"2043724067"},"language":"en","primary_location":{"id":"doi:10.1145/1950413.1950454","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1950413.1950454","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 19th ACM/SIGDA international symposium on Field programmable gate arrays","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5039670942","display_name":"Juan L. Jerez","orcid":null},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Juan Luis Jerez","raw_affiliation_strings":["Imperial College London, London, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Imperial College London, London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5029829952","display_name":"George A. Constantinides","orcid":"https://orcid.org/0000-0002-0201-310X"},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"George Anthony Constantinides","raw_affiliation_strings":["Imperial College London, London, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Imperial College London, London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5073800864","display_name":"Eric C. Kerrigan","orcid":"https://orcid.org/0000-0002-3967-1544"},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Eric C. Kerrigan","raw_affiliation_strings":["Imperial College London, London, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Imperial College London, London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I47508984"],"apc_list":null,"apc_paid":null,"fwci":15.1159,"has_fulltext":false,"cited_by_count":58,"citation_normalized_percentile":{"value":0.98917537,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"209","last_page":"218"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10791","display_name":"Advanced Control Systems Optimization","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/2207","display_name":"Control and Systems Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10791","display_name":"Advanced Control Systems Optimization","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/2207","display_name":"Control and Systems Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11236","display_name":"Control Systems and Identification","score":0.9929999709129333,"subfield":{"id":"https://openalex.org/subfields/2207","display_name":"Control and Systems Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10876","display_name":"Fault Detection and Control Systems","score":0.9878000020980835,"subfield":{"id":"https://openalex.org/subfields/2207","display_name":"Control and Systems Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7222588658332825},{"id":"https://openalex.org/keywords/field-programmable-gate-array","display_name":"Field-programmable gate array","score":0.7197188138961792},{"id":"https://openalex.org/keywords/model-predictive-control","display_name":"Model predictive control","score":0.6847226619720459},{"id":"https://openalex.org/keywords/quadratic-programming","display_name":"Quadratic programming","score":0.6433141827583313},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.623799741268158},{"id":"https://openalex.org/keywords/gate-array","display_name":"Gate array","score":0.5127283334732056},{"id":"https://openalex.org/keywords/optimization-problem","display_name":"Optimization problem","score":0.5095627307891846},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.47184064984321594},{"id":"https://openalex.org/keywords/interfacing","display_name":"Interfacing","score":0.46664053201675415},{"id":"https://openalex.org/keywords/microprocessor","display_name":"Microprocessor","score":0.4604834020137787},{"id":"https://openalex.org/keywords/floating-point","display_name":"Floating point","score":0.4455721974372864},{"id":"https://openalex.org/keywords/sampling","display_name":"Sampling (signal processing)","score":0.44289955496788025},{"id":"https://openalex.org/keywords/computation","display_name":"Computation","score":0.43857455253601074},{"id":"https://openalex.org/keywords/controller","display_name":"Controller (irrigation)","score":0.4122634828090668},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.397834450006485},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.38898515701293945},{"id":"https://openalex.org/keywords/computer-hardware","display_name":"Computer hardware","score":0.28616613149642944},{"id":"https://openalex.org/keywords/mathematical-optimization","display_name":"Mathematical optimization","score":0.23332145810127258},{"id":"https://openalex.org/keywords/control","display_name":"Control (management)","score":0.18491137027740479},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.18021637201309204},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.09049427509307861}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7222588658332825},{"id":"https://openalex.org/C42935608","wikidata":"https://www.wikidata.org/wiki/Q190411","display_name":"Field-programmable gate array","level":2,"score":0.7197188138961792},{"id":"https://openalex.org/C172205157","wikidata":"https://www.wikidata.org/wiki/Q1782962","display_name":"Model predictive control","level":3,"score":0.6847226619720459},{"id":"https://openalex.org/C81845259","wikidata":"https://www.wikidata.org/wiki/Q290117","display_name":"Quadratic programming","level":2,"score":0.6433141827583313},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.623799741268158},{"id":"https://openalex.org/C114237110","wikidata":"https://www.wikidata.org/wiki/Q114901","display_name":"Gate array","level":3,"score":0.5127283334732056},{"id":"https://openalex.org/C137836250","wikidata":"https://www.wikidata.org/wiki/Q984063","display_name":"Optimization problem","level":2,"score":0.5095627307891846},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.47184064984321594},{"id":"https://openalex.org/C2776303644","wikidata":"https://www.wikidata.org/wiki/Q1020499","display_name":"Interfacing","level":2,"score":0.46664053201675415},{"id":"https://openalex.org/C2780728072","wikidata":"https://www.wikidata.org/wiki/Q5297","display_name":"Microprocessor","level":2,"score":0.4604834020137787},{"id":"https://openalex.org/C84211073","wikidata":"https://www.wikidata.org/wiki/Q117879","display_name":"Floating point","level":2,"score":0.4455721974372864},{"id":"https://openalex.org/C140779682","wikidata":"https://www.wikidata.org/wiki/Q210868","display_name":"Sampling (signal processing)","level":3,"score":0.44289955496788025},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.43857455253601074},{"id":"https://openalex.org/C203479927","wikidata":"https://www.wikidata.org/wiki/Q5165939","display_name":"Controller (irrigation)","level":2,"score":0.4122634828090668},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.397834450006485},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.38898515701293945},{"id":"https://openalex.org/C9390403","wikidata":"https://www.wikidata.org/wiki/Q3966","display_name":"Computer hardware","level":1,"score":0.28616613149642944},{"id":"https://openalex.org/C126255220","wikidata":"https://www.wikidata.org/wiki/Q141495","display_name":"Mathematical optimization","level":1,"score":0.23332145810127258},{"id":"https://openalex.org/C2775924081","wikidata":"https://www.wikidata.org/wiki/Q55608371","display_name":"Control (management)","level":2,"score":0.18491137027740479},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.18021637201309204},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.09049427509307861},{"id":"https://openalex.org/C6557445","wikidata":"https://www.wikidata.org/wiki/Q173113","display_name":"Agronomy","level":1,"score":0.0},{"id":"https://openalex.org/C31972630","wikidata":"https://www.wikidata.org/wiki/Q844240","display_name":"Computer vision","level":1,"score":0.0},{"id":"https://openalex.org/C106131492","wikidata":"https://www.wikidata.org/wiki/Q3072260","display_name":"Filter (signal processing)","level":2,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.0},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1950413.1950454","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1950413.1950454","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 19th ACM/SIGDA international symposium on Field programmable gate arrays","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.385.4548","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.385.4548","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://cas.ee.ic.ac.uk/people/gac1/pubs/JuanFPGA11.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G6787767956","display_name":null,"funder_award_id":"EP/G031576/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":24,"referenced_works":["https://openalex.org/W1512732958","https://openalex.org/W1518039036","https://openalex.org/W1519818083","https://openalex.org/W1561941139","https://openalex.org/W1789514930","https://openalex.org/W1996497804","https://openalex.org/W2019495552","https://openalex.org/W2074168837","https://openalex.org/W2077428505","https://openalex.org/W2086867325","https://openalex.org/W2099524603","https://openalex.org/W2131426639","https://openalex.org/W2136897996","https://openalex.org/W2147866813","https://openalex.org/W2160400383","https://openalex.org/W2169117596","https://openalex.org/W2296319761","https://openalex.org/W2297159073","https://openalex.org/W3029645440","https://openalex.org/W4299397646","https://openalex.org/W4301014524","https://openalex.org/W6631119051","https://openalex.org/W6633669424","https://openalex.org/W6842097421"],"related_works":["https://openalex.org/W2136647108","https://openalex.org/W2350029007","https://openalex.org/W2152662857","https://openalex.org/W1965180958","https://openalex.org/W1973428399","https://openalex.org/W2182594080","https://openalex.org/W2484987020","https://openalex.org/W649172505","https://openalex.org/W2050955469","https://openalex.org/W2391308973"],"abstract_inverted_index":{"Model":[0],"predictive":[1],"control":[2,8,32,179],"(MPC)":[3],"is":[4,67,168,182],"an":[5,134],"advanced":[6],"industrial":[7],"technique":[9],"that":[10,158,170,173],"relies":[11,93],"on":[12,94,225],"the":[13,27,33,72,87,117,138,145,148,160,174,189,192],"solution":[14],"of":[15,38,80,89,97,120,126,188],"a":[16,39,123,131,153,178,206,212,221,226],"quadratic":[17],"programming":[18],"(QP)":[19],"problem":[20,74,193],"at":[21],"every":[22],"sampling":[23,76,91],"instant":[24],"to":[25,31,58,82,101,116,147,184,194],"determine":[26],"input":[28,48],"action":[29],"required":[30,142],"current":[34],"and":[35,197,211],"future":[36],"behaviour":[37],"physical":[40,54,149],"system.":[41,150],"Its":[42],"ability":[43],"in":[44,62,163,191,209,215],"handling":[45],"large":[46,118,218],"multiple":[47,49],"output":[50],"(MIMO)":[51],"systems":[52],"with":[53],"constraints":[55],"has":[56],"led":[57],"very":[59],"successful":[60],"applications":[61],"slow":[63],"processes,":[64],"where":[65],"there":[66],"sufficient":[68],"time":[69],"for":[70,112,122,143,217],"solving":[71],"optimization":[73,165],"between":[75],"instants.":[77],"The":[78,203],"application":[79,114],"MPC":[81],"faster":[83,99],"systems,":[84],"which":[85],"adds":[86],"requirement":[88],"greater":[90],"frequencies,":[92],"new":[95],"ways":[96],"finding":[98],"solutions":[100],"QP":[102],"problems.":[103],"Field-programmable":[104],"gate":[105],"arrays":[106],"(FPGAs)":[107],"are":[108],"specially":[109],"well":[110],"suited":[111],"this":[113],"due":[115],"amount":[119,125],"computation":[121],"small":[124],"I/O.":[127],"In":[128],"addition,":[129],"unlike":[130],"software":[132,222],"implementation,":[133],"FPGA":[135,156],"can":[136],"provide":[137],"precise":[139],"timing":[140],"guarantees":[141],"interfacing":[144],"controller":[146],"We":[151],"present":[152],"high-throughput":[154],"floating-point":[155],"implementation":[157,204,223],"exploits":[159],"parallelism":[161],"inherent":[162],"interior-point":[164],"methods.":[166],"It":[167],"shown":[169],"by":[171,201],"considering":[172],"QPs":[175],"come":[176],"from":[177],"formulation,":[180],"it":[181],"possible":[183],"make":[185],"heavy":[186],"use":[187],"sparsity":[190],"save":[195],"computations":[196],"reduce":[198],"memory":[199],"requirements":[200],"75%.":[202],"yields":[205],"6.5x":[207],"improvement":[208,214],"latency":[210],"51x":[213],"throughput":[216],"problems":[219],"over":[220],"running":[224],"general":[227],"purpose":[228],"microprocessor.":[229]},"counts_by_year":[{"year":2025,"cited_by_count":4},{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":3},{"year":2019,"cited_by_count":4},{"year":2018,"cited_by_count":7},{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":3},{"year":2014,"cited_by_count":7},{"year":2013,"cited_by_count":11},{"year":2012,"cited_by_count":3}],"updated_date":"2026-06-26T08:34:08.712188","created_date":"2025-10-10T00:00:00"}
