Programmatically add a views
I would suggest You to check views export functionality (admin/structure/views/view/name-of-some-view/export). There you should get the view object. 

Then, copy this object to your form_submit function, replace desired values with form values and call $view->save() function. The view should be created (or updated, if such machine name exist.)