You can migrate controlfile from file system to asm disk or to different diskgroup in ASM. For that you have to stop the database and startup in nomount state.
STEP 1: Stop the Database and startup in nomount state
SQL> shutdown immediate;
SQL> startup nomount;
STEP 2:Connect the target database using RMAN
$ rman
RMAN>connect target /
RMAN>restore controlfile to '<DISKGROUP_NAME>' from '<OLD_PATH>';
RMAN> restore controlfile to '+DATA' from '/oradatao1/test11/oradata/san/control01.ctl';
RMAN> restore controlfile to '+FRA' from '/oradatao1/test11/oradata/san/control01.ctl';
STEP 3: Show Location Of New Control Files
ASMCMD> find -t controlfile . *
+DATA/DG/CONTROLFILE/current.321.780791421
+FRA/DG/CONTROLFILE/current.368.870851527
STEP 4: On the database side:
Modify init.ora or spfile, replacing the new path to the init parameter control_files.
if using init<SID>.ora, just modify the control_files parameter and restart the database.
If using spfile, Change Parameter for new locations.
alter system set control_files='+DATA/DG/CONTROLFILE/current.321.780791421','+FRA/DG/CONTROLFILE/current.368.870851527' scope=spfile;
STEP 5: Shutdown the database and open for use
SQL>shutdown immediate
SQL> alter database open;
Verify that new control file has been recognized. If the new controlfile was not used, the complete procedure needs to be repeated.
If you do not use ASM and If you want to new control file in file system, you can copy – paste controlfile to clone after stop database. And you have to change control_files parameter when database is nomount mode or stop.